Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java =================================================================== diff -u -r25162 -r25302 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 25162) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 25302) @@ -535,6 +535,16 @@ */ private Integer splitNumber; + /** + * 发货数量计算方式 + * 0或者为null,表示未启用 + * 1,发货依据为回收数量,回收后发货 + * 2,发货依据为回收数量,回收前发货 + * 3,发货依据为申请数量,回收后发货 + * 4,发货依据为申请数量,回收前发货 + */ + private Integer invoiceAmountMode; + @Override @Id @GeneratedValue(strategy = GenerationType.AUTO) @@ -1744,5 +1754,14 @@ public void setSplitNumber(Integer splitNumber) { this.splitNumber = splitNumber; } + + public Integer getInvoiceAmountMode() { + return invoiceAmountMode; + } + + public void setInvoiceAmountMode(Integer invoiceAmountMode) { + this.invoiceAmountMode = invoiceAmountMode; + } + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java =================================================================== diff -u -r24778 -r25302 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java (.../TousseItem.java) (revision 24778) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java (.../TousseItem.java) (revision 25302) @@ -308,6 +308,16 @@ */ private String timeoutProcessType; + /** + * 发货数量计算方式 + * 0或者为null,表示未启用 + * 1,发货依据为回收数量,回收后发货 + * 2,发货依据为回收数量,回收前发货 + * 3,发货依据为申请数量,回收后发货 + * 4,发货依据为申请数量,回收前发货 + */ + private Integer invoiceAmountMode; + public Boolean getWillnotPrint() { return willnotPrint; } @@ -1019,4 +1029,13 @@ this.timeoutProcessType = timeoutProcessType; } + public Integer getInvoiceAmountMode() { + return invoiceAmountMode; + } + + public void setInvoiceAmountMode(Integer invoiceAmountMode) { + this.invoiceAmountMode = invoiceAmountMode; + } + + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r25045 -r25302 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 25045) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 25302) @@ -9,7 +9,6 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringReader; -import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; @@ -26,12 +25,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; import net.sf.json.JSON; import net.sf.json.JSONArray; @@ -91,7 +84,6 @@ import com.forgon.tools.util.ConfigUtils; import com.forgon.tools.util.PathUtils; import com.forgon.tools.xml.XMLUtil; -import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl; /*** * @@ -362,11 +354,12 @@ || TousseDefinition.PACKAGE_TYPE_DISINFECTION .equals(type) || TousseDefinition.PACKAGE_TYPE_CUSTOM .equals(type))) { - if (SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING.equals(invoiceOrigin)) { - appAmount = tousseItem.getRecyclingAmount(); - // 回收数量为空,即还没有回收 - if (appAmount == null) { - if (afterRecyclingTousseDeliver){ + Integer invoiceAmountMode = tousseItem.getInvoiceAmountMode(); + if(invoiceAmountMode != null && invoiceAmountMode != 0){ + switch (invoiceAmountMode) { + case 1: + appAmount = tousseItem.getRecyclingAmount(); + if (appAmount == null) { // 回收后发货,则判断该物品是否需要回收 String isRecycling = TousseDefinition.STR_YES; isRecycling = tousseItem.getIsRecycling(); @@ -375,15 +368,15 @@ appAmount = tousseItem.getAmount(); } } - else{ + break; + case 2: + appAmount = tousseItem.getRecyclingAmount(); + if (appAmount == null) { appAmount = tousseItem.getAmount(); } - } - } else { - // 发货数量的依据为申请数量 - appAmount = tousseItem.getAmount(); - // 回收后发货 - if (afterRecyclingTousseDeliver){ + break; + case 3: + appAmount = tousseItem.getAmount(); Integer recyclingAmount = tousseItem.getRecyclingAmount(); if (recyclingAmount == null){ // 回收后发货,则判断该物品是否需要回收 @@ -394,9 +387,51 @@ appAmount = 0; } } + break; + case 4: + appAmount = tousseItem.getAmount(); + break; + default: + break; + } + }else{ + if (SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING.equals(invoiceOrigin)) { + appAmount = tousseItem.getRecyclingAmount(); + // 回收数量为空,即还没有回收 + if (appAmount == null) { + if (afterRecyclingTousseDeliver){ + // 回收后发货,则判断该物品是否需要回收 + String isRecycling = TousseDefinition.STR_YES; + isRecycling = tousseItem.getIsRecycling(); + // 如果不需要回收,则返回申请数量 + if (TousseDefinition.STR_NO.equals(isRecycling)){ + appAmount = tousseItem.getAmount(); + } + } + else{ + appAmount = tousseItem.getAmount(); + } + } + } else { + // 发货数量的依据为申请数量 + appAmount = tousseItem.getAmount(); + // 回收后发货 + if (afterRecyclingTousseDeliver){ + Integer recyclingAmount = tousseItem.getRecyclingAmount(); + if (recyclingAmount == null){ + // 回收后发货,则判断该物品是否需要回收 + String isRecycling = TousseDefinition.STR_YES; + isRecycling = tousseItem.getIsRecycling(); + // 如果需要回收,则返回0,不能进行发货 + if (TousseDefinition.STR_YES.equals(isRecycling)){ + appAmount = 0; + } + } + } } } + } if (appAmount == null) { appAmount = 0;