Просмотр исходного кода

合同编号和采购单编号 修改

zhangyao 1 месяц назад
Родитель
Сommit
30396b4d8f

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

@@ -148,7 +148,11 @@ public class contractService {
                         contractBO.set("NO", contractNo);
                     }
                 } else {
-                    contractNo = SDK.getRuleAPI().executeAtScript("@sequenceYear(@companyId_contract,5)");
+
+                    // contractNo = SDK.getRuleAPI().executeAtScript("@sequence(@companyId_contract_@year,5)");
+                    String varname = uc.getCompanyModel().getId() + "_contract_" + LocalDate.now().getYear();
+                    contractNo = SDK.getRuleAPI().executeAtScript("@sequence(" + varname + ",5)");
+
                     String DISTRICT_ID = DBSql.getString("select DISTRICT_ID from BO_EU_DNCRM_ACCOUNT where ID=?", new Object[]{contractBO.getString("ACCOUNT_ID")});
                     String cssx = "SH";//城市缩写
                     if (StringUtils.isNotBlank(DISTRICT_ID)) {
@@ -1962,7 +1966,8 @@ public class contractService {
                     contractCost.put("CALC_METHOD_1STYEAR", service.getString("CALC_METHOD_1STYEAR"));
                     contractCost.put("MONTH_1STQUARTER", service.getString("MONTH_1STQUARTER"));
 
-                    PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost);
+
+                    PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost, service.asMap());
                 } else {
                     //是否 删除 contractCostId  没有采购 没有拣货时可删除
                     if (DBSql.getInt(conn, "select count(*) from BO_EU_DNCTT_CONTRACT_COST_PRODUCT where CONTRACT_COST_ID=?", new Object[]{contractCostId}) == 0 && DBSql.getInt(conn, "select count(*) from BO_EU_DNIVT_ORDER_PRODUCT where CONTRACT_COST_ID=?", new Object[]{contractCostId}) == 0) {
@@ -2003,7 +2008,7 @@ public class contractService {
                 contractCost.put("CALC_METHOD_1STYEAR", service.getString("CALC_METHOD_1STYEAR"));
                 contractCost.put("MONTH_1STQUARTER", service.getString("MONTH_1STQUARTER"));
 
-                PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost);
+                PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost, service.asMap());
             } else {
                 //是否 删除 contractCostId
                 //是否 删除 contractCostId  没有采购 没有拣货时可删除
@@ -2049,7 +2054,7 @@ public class contractService {
      * @param service
      * @return
      */
-    private String AddContractServiceProduct(UserContext uc, Connection conn, Map<String, String> service) {
+    private String AddContractServiceProduct(UserContext uc, Connection conn, Map<String, String> service, Map<String, Object> serviceBO) {
         contractServiceLogger.info("新增合同产品");
         System.out.println(service);
         BO contractCost = null;
@@ -2079,6 +2084,14 @@ public class contractService {
                 contractCost.set("COST_CODE_NAME", DBSql.getString("select NAME from BO_EU_DND_COST_CODE where OID=?", new Object[]{product.getString("COST_CODE_ID")}));
             }
         }
+
+        //服务表上面 采购税种
+        String PURCHASE_TAX_CATEGORY_ID = serviceBO.get("PURCHASE_TAX_CATEGORY_ID") == null ? null : serviceBO.get("PURCHASE_TAX_CATEGORY_ID").toString();
+        if (StringUtils.isBlank(PURCHASE_TAX_CATEGORY_ID))
+            PURCHASE_TAX_CATEGORY_ID = serviceBO.get("TAX_CATEGORY_ID") == null ? null : serviceBO.get("TAX_CATEGORY_ID").toString();
+
+        contractCost.set("TAX_CATEGORY_ID", PURCHASE_TAX_CATEGORY_ID);
+
         contractCost.set("IS_SERVICE_PRODUCT", 1);
         //单价
         contractCost.set("UNIT_COST", service.get("UNIT_COST"));
@@ -2086,10 +2099,10 @@ public class contractService {
         contractCost.set("UNIT_PRICE", service.get("UNIT_PRICE"));
 
         contractCost.set("EXTENDED_COST", multiply(service.get("UNIT_COST"), service.get("QUANTITY")));//总成本
-        contractCost.set("EXTENDED_PRICE",  multiply(service.get("UNIT_PRICE"), service.get("QUANTITY")));//总价
+        contractCost.set("EXTENDED_PRICE", multiply(service.get("UNIT_PRICE"), service.get("QUANTITY")));//总价
 
 
-       // contractServiceLogger.info("计算合同成本周期:" + service);
+        // contractServiceLogger.info("计算合同成本周期:" + service);
         // 需要通过采购计算总成本
         // List<PeriodCalculationUtil.Period> periodList = PeriodCalculationUtil.getPeriodList(service.get("PURCHASE_PERIOD_TYPE"), LocalDate.parse(service.get("CONTRACT_START_DATE").substring(0, 10)), LocalDate.parse(service.get("PURCHASE_START_DATE").substring(0, 10)), LocalDate.parse(service.get("CONTRACT_END_DATE").substring(0, 10)), service.get("PURCHASE_PERIOD_TYPE").equals("610"), true, -1);
 //2025年11月5日 服务产品的 单价取采购单价、采购总价

+ 5 - 0
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/controller/ivtOrderController.java

@@ -928,6 +928,11 @@ public class ivtOrderController {
 
             if (StringUtils.isNotBlank(costProductID))
                 DBSql.update("delete from BO_EU_DNCTT_CONTRACT_COST_PRODUCT where ID=?", new Object[]{costProductID});
+
+            //如果是合同服务产生采购项
+            if (DBSql.getString("select IS_SERVICE_PRODUCT from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{op.getString("CONTRACT_COST_ID")}).equals("1")) {
+                DBSql.update("delete from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{op.getString("CONTRACT_COST_ID")});
+            }
         }
 
         SDK.getBOAPI().removeByBindId("BO_EU_DNIVT_ORDER", bindId);

+ 4 - 1
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/event/ivtOrderFormAfter.java

@@ -56,7 +56,10 @@ public class ivtOrderFormAfter extends ExecuteListener {
         logger.info("采购订单编号:" + purchaseOrderNo);
         if (StringUtils.isBlank(purchaseOrderNo) || purchaseOrderNo.indexOf("CHT") != 0) {
 
-            purchaseOrderNo = SDK.getRuleAPI().executeAtScript("@sequenceYear(@companyId_purchase_order,4,0,130)", processExecutionContext.getUserContext());
+            // purchaseOrderNo = SDK.getRuleAPI().executeAtScript("@sequenceYear(@companyId_purchase_order,4,0,130)", processExecutionContext.getUserContext());
+
+            String varname = processExecutionContext.getUserContext().getCompanyModel().getId() + "_ivtorder_" + LocalDate.now().getYear();
+            purchaseOrderNo = SDK.getRuleAPI().executeAtScript("@sequence(" + varname + ",5)");
 
             String DISTRICT_ID = DBSql.getString("select DISTRICT_ID from BO_EU_DNCRM_ACCOUNT where ID=?", new Object[]{orderBO.getString("VENDOR_ACCOUNT_ID")});