|
|
@@ -78,38 +78,37 @@ public class contractService {
|
|
|
String PERIOD_TYPE = contractBO.getString("PERIOD_TYPE");//合同周期类型
|
|
|
Integer OCCURRENCES = contractBO.get("OCCURRENCES", Integer.class);
|
|
|
Date START_DATE = contractBO.get("START_DATE", Date.class);
|
|
|
+ Date END_DATE = contractBO.get("END_DATE", Date.class);
|
|
|
|
|
|
//通过 合同周期个数和合同周期类型计算结束日期
|
|
|
- if (OCCURRENCES != null && OCCURRENCES > 0) {
|
|
|
- Date END_DATE = null;
|
|
|
- // 使用 Calendar 进行日期操作
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(START_DATE);
|
|
|
- if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_HALFYEAR)) {
|
|
|
- calendar.add(Calendar.MONTH, OCCURRENCES * 6);
|
|
|
- calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
- END_DATE = calendar.getTime();
|
|
|
- } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_MONTH)) {
|
|
|
- calendar.add(Calendar.MONTH, OCCURRENCES);
|
|
|
- calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
- END_DATE = calendar.getTime();
|
|
|
- } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_QUARTER)) {
|
|
|
- calendar.add(Calendar.MONTH, OCCURRENCES * 3);
|
|
|
- calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
- END_DATE = calendar.getTime();
|
|
|
- } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_YEAR)) {
|
|
|
- calendar.add(Calendar.MONTH, OCCURRENCES * 12);
|
|
|
- calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
- END_DATE = calendar.getTime();
|
|
|
- } else {
|
|
|
- resultDto.put("success", false);
|
|
|
- resultDto.put("msg", "周期类型输入错误!");
|
|
|
- return resultDto;
|
|
|
+ if (END_DATE == null || END_DATE.before(START_DATE))
|
|
|
+ if (OCCURRENCES != null && OCCURRENCES > 0) {
|
|
|
+ // 使用 Calendar 进行日期操作
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(START_DATE);
|
|
|
+ if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_HALFYEAR)) {
|
|
|
+ calendar.add(Calendar.MONTH, OCCURRENCES * 6);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
+ END_DATE = calendar.getTime();
|
|
|
+ } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_MONTH)) {
|
|
|
+ calendar.add(Calendar.MONTH, OCCURRENCES);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
+ END_DATE = calendar.getTime();
|
|
|
+ } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_QUARTER)) {
|
|
|
+ calendar.add(Calendar.MONTH, OCCURRENCES * 3);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
+ END_DATE = calendar.getTime();
|
|
|
+ } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_YEAR)) {
|
|
|
+ calendar.add(Calendar.MONTH, OCCURRENCES * 12);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
+ END_DATE = calendar.getTime();
|
|
|
+ } else {
|
|
|
+ resultDto.put("success", false);
|
|
|
+ resultDto.put("msg", "周期类型输入错误!");
|
|
|
+ return resultDto;
|
|
|
+ }
|
|
|
+ contractBO.set("END_DATE", END_DATE);
|
|
|
}
|
|
|
-
|
|
|
- contractBO.set("END_DATE", END_DATE);
|
|
|
-
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
contractBO.set("ADJUST_SETUP_FEE", contractBO.get("SETUP_FEE"));
|
|
|
@@ -150,7 +149,7 @@ public class contractService {
|
|
|
}
|
|
|
|
|
|
//更新合同产品上面的客户ID
|
|
|
- DBSql.update("update BO_EU_DNCTT_CONTRACT_COST set ACCOUNT_ID=?,BILL_ACCOUNT_ID where CONTRACT_ID=?", new Object[]{dto.getString("ACCOUNT_ID"), dto.getString("BILL_ACCOUNT_ID"), dto.getString("ID")});
|
|
|
+ DBSql.update("update BO_EU_DNCTT_CONTRACT_COST set ACCOUNT_ID=?,BILL_ACCOUNT_ID=? where CONTRACT_ID=?", new Object[]{dto.getString("ACCOUNT_ID"), dto.getString("BILL_ACCOUNT_ID"), dto.getString("ID")});
|
|
|
|
|
|
|
|
|
if (TYPE_ID.equals(cttConstant.CONTRACT_TYPE_SERVICE)) // 如果是服务合同
|
|
|
@@ -634,7 +633,7 @@ public class contractService {
|
|
|
conn = DBSql.open();
|
|
|
conn.setAutoCommit(false);
|
|
|
//获取服务列表
|
|
|
- List<BO> serviceList = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_SERVICE").connection(conn).addQuery("BINDID=", contract.get("BINDID")).list();
|
|
|
+ List<BO> serviceList = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_SERVICE").connection(conn).addQuery("BINDID=", contract.get("BINDID")).list();//需要采购
|
|
|
|
|
|
for (BO service : serviceList) {
|
|
|
|
|
|
@@ -645,23 +644,46 @@ public class contractService {
|
|
|
for (String serviceID : serviceIDS.split(",")) {
|
|
|
String contractCostId = DBSql.getString(conn, "select ID from BO_EU_DNCTT_CONTRACT_COST where CONTRACT_ID=? and SERVICE_ID=? and PRODUCT_ID in(select PRODUCT_ID from BO_EU_DNIVT_SERVICE where ID=?)", new Object[]{contract.getString("ID"), service.getString("ID"), serviceID});
|
|
|
|
|
|
+ String NEED_PURCHASE = service.getString("NEED_PURCHASE");
|
|
|
+ if (NEED_PURCHASE.equals("1")) {
|
|
|
+ Map<String, String> contractCost = new HashMap<String, String>();
|
|
|
+ contractCost.put("ID", contractCostId);
|
|
|
+ contractCost.put("SERVICE_ID", service.getString("ID"));
|
|
|
+ contractCost.put("serviceID", serviceID);
|
|
|
+ contractCost.put("CONTRACT_ID", contract.getString("ID"));
|
|
|
+ contractCost.put("QUANTITY", service.getString("QUANTITY"));
|
|
|
+ PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost);
|
|
|
+ } 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) {
|
|
|
+ String contractCostBINDId = DBSql.getString(conn, "select BINDID from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{contractCostId});
|
|
|
+ SDK.getProcessAPI().deleteById(contractCostBINDId, uc.getUID());
|
|
|
+ DBSql.update(conn, "delete from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{contractCostId});
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ String contractCostId = DBSql.getString(conn, "select ID from BO_EU_DNCTT_CONTRACT_COST where CONTRACT_ID=? and SERVICE_ID=?", new Object[]{contract.getString("ID"), service.getString("ID")});
|
|
|
+ String NEED_PURCHASE = service.getString("NEED_PURCHASE");
|
|
|
+ if (NEED_PURCHASE.equals("1")) {
|
|
|
Map<String, String> contractCost = new HashMap<String, String>();
|
|
|
contractCost.put("ID", contractCostId);
|
|
|
contractCost.put("SERVICE_ID", service.getString("ID"));
|
|
|
- contractCost.put("serviceID", serviceID);
|
|
|
+ contractCost.put("serviceID", service.getString("OBJECT_ID"));
|
|
|
contractCost.put("CONTRACT_ID", contract.getString("ID"));
|
|
|
contractCost.put("QUANTITY", service.getString("QUANTITY"));
|
|
|
PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost);
|
|
|
+ } else {
|
|
|
+ //是否 删除 contractCostId
|
|
|
+ //是否 删除 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) {
|
|
|
+ String contractCostBINDId = DBSql.getString(conn, "select BINDID from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{contractCostId});
|
|
|
+ SDK.getProcessAPI().deleteById(contractCostBINDId, uc.getUID());
|
|
|
+ DBSql.update(conn, "delete from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{contractCostId});
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- } else {
|
|
|
- String contractCostId = DBSql.getString(conn, "select ID from BO_EU_DNCTT_CONTRACT_COST where CONTRACT_ID=? and SERVICE_ID=?", new Object[]{contract.getString("ID"), service.getString("ID")});
|
|
|
- Map<String, String> contractCost = new HashMap<String, String>();
|
|
|
- contractCost.put("ID", contractCostId);
|
|
|
- contractCost.put("SERVICE_ID", service.getString("ID"));
|
|
|
- contractCost.put("serviceID", service.getString("OBJECT_ID"));
|
|
|
- contractCost.put("CONTRACT_ID", contract.getString("ID"));
|
|
|
- contractCost.put("QUANTITY", service.getString("QUANTITY"));
|
|
|
- PRODUCT_ID = AddContractServiceProduct(uc, conn, contractCost);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -698,6 +720,8 @@ public class contractService {
|
|
|
}
|
|
|
contractCost.set("CONTRACT_ID", service.get("CONTRACT_ID"));
|
|
|
contractCost.set("SERVICE_ID", service.get("SERVICE_ID"));
|
|
|
+ contractCost.set("QUANTITY", service.get("QUANTITY"));
|
|
|
+
|
|
|
contractCost.set("PRODUCT_ID", DBSql.getString(conn, "select PRODUCT_ID from BO_EU_DNIVT_SERVICE where ID=?", new Object[]{service.get("serviceID")}));
|
|
|
|
|
|
if (StringUtils.isNotBlank(contractCost.getString("PRODUCT_ID"))) {
|