zhangyao преди 4 месеца
родител
ревизия
43efa01360

BIN
com.awspaas.user.apps.donenow_ctt/lib/com.awspaas.user.apps.donenow_ctt.jar


+ 39 - 31
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/contractCostController.java

@@ -203,7 +203,7 @@ public class contractCostController {
 
         String OUT_RULE = DBSql.getString("SELECT OUT_RULE FROM BO_EU_DNIVT_PRODUCT WHERE ID=?", new Object[]{stockMap.getString("PRODUCT_ID")});
         //1031 FIFO先进先出  1032 LIFO后进先出
-        List<RowMap> lotList = DBSql.getMaps("SELECT b.* FROM bo_eu_dnivt_warehouse_product a JOIN BO_EU_DNIVT_WAREHOUSE_PRODUCT_LOT b ON a.BINDID=b.BINDID WHERE b.QUANTITY>0 AND a.ID=? ORDER BY b.CREATEDATE " + (OUT_RULE!=null&&OUT_RULE.equals("1032") ? "DESC" : "ASC"), new Object[]{warehouseProductId});
+        List<RowMap> lotList = DBSql.getMaps("SELECT b.* FROM bo_eu_dnivt_warehouse_product a JOIN BO_EU_DNIVT_WAREHOUSE_PRODUCT_LOT b ON a.BINDID=b.BINDID WHERE b.QUANTITY>0 AND a.ID=? ORDER BY b.CREATEDATE " + (OUT_RULE != null && OUT_RULE.equals("1032") ? "DESC" : "ASC"), new Object[]{warehouseProductId});
 
         //已被拣货数量
         List<RowMap> pickList = DBSql.getMaps("SELECT a.* from BO_EU_DNCTT_CONTRACT_COST_PRODUCT a JOIN BO_EU_DNCTT_CONTRACT_COST b ON a.CONTRACT_COST_ID=b.ID WHERE a.WAREHOUSE_ID=? AND b.PRODUCT_ID=?", new Object[]{stockMap.getString("WAREHOUSE_ID"), stockMap.getString("PRODUCT_ID")});
@@ -211,42 +211,50 @@ public class contractCostController {
         List<String> selectedSns = new ArrayList<>();//默认选择
         for (RowMap lotMap : lotList) {
             String lotSNs = lotMap.getString("SN");
-            if (StringUtils.isBlank(lotSNs)) continue;
-
-            List<String> lotsns = new ArrayList<>();//本批次允许拣货数量
-            for (String SN : lotSNs.split(",")) {
-                boolean isPicked = false;
-                for (RowMap pickMap : pickList) {
-                    String pickSNs = pickMap.getString("SN");
-                    if (StringUtils.isBlank(pickSNs)) continue;
-                    for (String pickSN : pickSNs.split(",")) {
-                        if (SN.equals(pickSN)) {
-                            //已被拣货
-                            isPicked = true;
-                            break;
+            if (StringUtils.isNotBlank(lotSNs)) {
+                List<String> lotsns = new ArrayList<>();//本批次允许拣货数量
+                for (String SN : lotSNs.split(",")) {
+                    boolean isPicked = false;
+                    for (RowMap pickMap : pickList) {
+                        String pickSNs = pickMap.getString("SN");
+                        if (StringUtils.isBlank(pickSNs)) continue;
+                        for (String pickSN : pickSNs.split(",")) {
+                            if (SN.equals(pickSN)) {
+                                //已被拣货
+                                isPicked = true;
+                                break;
+                            }
                         }
+                        if (isPicked) break;
+                    }
+                    if (!isPicked) {
+                        lotsns.add(SN);
                     }
-                    if (isPicked) break;
-                }
-                if (!isPicked) {
-                    lotsns.add(SN);
                 }
-            }
-            if (lotsns.size() > quantity)//允许挑选
-            {
-                for (String sn : lotsns) {
-                    BO bo = new BO();
-                    bo.set("SN", sn);
-                    bo.setBindId(bindid);
-                    SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_PRODUCT_PICKSN", bo, uc);
+                if (lotsns.size() > quantity)//允许挑选
+                {
+                    for (String sn : lotsns) {
+                        BO bo = new BO();
+                        bo.set("SN", sn);
+                        bo.setBindId(bindid);
+                        SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_PRODUCT_PICKSN", bo, uc);
+                    }
+                    quantity = 0;
+                } else {
+                    //全部拣货,不允许挑选
+                    quantity -= lotsns.size();
+                    selectedSns.addAll(lotsns);
                 }
-                quantity = 0;
+                if (quantity <= 0) break;
             } else {
-                //全部拣货,不允许挑选
-                quantity -= lotsns.size();
-                selectedSns.addAll(lotsns);
+                //没有序列号的
+                int lotQuantity = lotMap.getInt("QUANTITY");//库存数量
+                if (quantity > lotQuantity) {
+                    quantity = quantity - lotQuantity;
+                } else {
+                    quantity = 0;
+                }
             }
-            if (quantity <= 0) break;
         }
 
         if (quantity > 0) {

+ 6 - 1
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractService.java

@@ -119,11 +119,16 @@ public class contractService {
                 contractBO.set("BILL_TO_ACCOUNT_NAME", contractBO.getString("ACCOUNT_NAME"));
             }
 
+            //合同:合同新增/编辑页面,默认运维合同字段,如果选中---需要将本客户的其他默认合同改为非默认合同,即一个客户最多只能有一个默认合同--张耀
+            if (contractBO.getString("IS_SDT_DEFAULT").equals("1")) {
+                DBSql.update("update BO_EU_DNCTT_CONTRACT set IS_SDT_DEFAULT=0 where ACCOUNT_ID=?", new Object[]{contractBO.getString("ACCOUNT_ID")});
+            }
+
             if (idApply)
                 SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_APPLY", contractBO);//更新合同
             else {
                 dn.recordFormChanges.record(uc, contractBO, "合同编辑");
-                //SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT", contractBO);
+                SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT", contractBO);
                 ContractExcManage(uc, bindid);//更新合同例外因素
             }
 

+ 2 - 1
com.awspaas.user.apps.donenow_tst/com.awspaas.user.apps.donenow_tst.iml

@@ -2,7 +2,8 @@
 <module version="4">
   <component name="NewModuleRootManager" inherit-compiler-output="true">
     <exclude-output />
-    <content url="file://$MODULE_DIR$/src">
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/com/awspaas/user/apps/donenow_tst" isTestSource="false" packagePrefix="com.awspaas.user.apps.donenow_ivt" />
     </content>
     <orderEntry type="jdk" jdkName="temurin-11" jdkType="JavaSDK" />