|
|
@@ -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日 服务产品的 单价取采购单价、采购总价
|