|
@@ -13,6 +13,7 @@ import com.actionsoft.bpms.server.bind.annotation.Controller;
|
|
|
import com.actionsoft.bpms.server.bind.annotation.Mapping;
|
|
import com.actionsoft.bpms.server.bind.annotation.Mapping;
|
|
|
import com.actionsoft.bpms.util.DBSql;
|
|
import com.actionsoft.bpms.util.DBSql;
|
|
|
import com.actionsoft.sdk.local.SDK;
|
|
import com.actionsoft.sdk.local.SDK;
|
|
|
|
|
+import com.actionsoft.sdk.local.api.Logger;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -31,6 +32,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Controller
|
|
@Controller
|
|
|
public class ivtOrderController {
|
|
public class ivtOrderController {
|
|
|
|
|
+ private static final Logger ivtLogger = SDK.getLogAPI().getLogger(ivtOrderController.class);//记录日志
|
|
|
/**
|
|
/**
|
|
|
* 添加供应商产品
|
|
* 添加供应商产品
|
|
|
* @param uc
|
|
* @param uc
|
|
@@ -448,7 +450,7 @@ public class ivtOrderController {
|
|
|
map.put("PACKINGS", DBSql.getMaps("SELECT DISTINCT A.CONTRACT_COST_ID AS CONTRACTCOSTID, A.QUANTITY,GROUP_CONCAT( A.SN ) AS SERIALNUMBER , C.`NAME` AS 'PRODUCTNAME' FROM BO_EU_DNCTT_CONTRACT_COST_PRODUCT A JOIN BO_EU_DNCTT_CONTRACT_COST B ON A.CONTRACT_COST_ID=B.ID JOIN BO_EU_DNIVT_PRODUCT C ON B.PRODUCT_ID=C.ID WHERE FIND_IN_SET(A.ID,?) ", new Object[]{map.get("CONTRACT_COST_IDS")}));
|
|
map.put("PACKINGS", DBSql.getMaps("SELECT DISTINCT A.CONTRACT_COST_ID AS CONTRACTCOSTID, A.QUANTITY,GROUP_CONCAT( A.SN ) AS SERIALNUMBER , C.`NAME` AS 'PRODUCTNAME' FROM BO_EU_DNCTT_CONTRACT_COST_PRODUCT A JOIN BO_EU_DNCTT_CONTRACT_COST B ON A.CONTRACT_COST_ID=B.ID JOIN BO_EU_DNIVT_PRODUCT C ON B.PRODUCT_ID=C.ID WHERE FIND_IN_SET(A.ID,?) ", new Object[]{map.get("CONTRACT_COST_IDS")}));
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- System.out.println(maps);
|
|
|
|
|
|
|
+ ivtLogger.info(maps.toString());
|
|
|
|
|
|
|
|
ResponseObject responseObject = ResponseObject.newOkResponse();
|
|
ResponseObject responseObject = ResponseObject.newOkResponse();
|
|
|
responseObject.setData(maps);
|
|
responseObject.setData(maps);
|
|
@@ -652,7 +654,7 @@ public class ivtOrderController {
|
|
|
try {
|
|
try {
|
|
|
conn = DBSql.open();
|
|
conn = DBSql.open();
|
|
|
conn.setAutoCommit(false);
|
|
conn.setAutoCommit(false);
|
|
|
- System.out.println("接收到的costIds参数: " + costIds);
|
|
|
|
|
|
|
+ ivtLogger.info("接收到的costIds参数: " + costIds);
|
|
|
|
|
|
|
|
// ========== 新增:初始化TAX_CATEGORY_ID与税率的映射关系 ==========
|
|
// ========== 新增:初始化TAX_CATEGORY_ID与税率的映射关系 ==========
|
|
|
Map<String, BigDecimal> taxRateMap = new HashMap<>();
|
|
Map<String, BigDecimal> taxRateMap = new HashMap<>();
|
|
@@ -671,7 +673,7 @@ public class ivtOrderController {
|
|
|
}
|
|
}
|
|
|
sql = sql.substring(0, sql.length() - 1) + ")";
|
|
sql = sql.substring(0, sql.length() - 1) + ")";
|
|
|
List<RowMap> costList = DBSql.getMaps(sql, Arrays.stream(costIdArr).toArray());
|
|
List<RowMap> costList = DBSql.getMaps(sql, Arrays.stream(costIdArr).toArray());
|
|
|
- System.out.println("查询到的合同成本数据条数: " + costList.size());
|
|
|
|
|
|
|
+ ivtLogger.info("查询到的合同成本数据条数: " + costList.size());
|
|
|
|
|
|
|
|
BO purchaseOrder = new BO();
|
|
BO purchaseOrder = new BO();
|
|
|
purchaseOrder.set("SUBMIT_TIME", getCurrentDateTime());
|
|
purchaseOrder.set("SUBMIT_TIME", getCurrentDateTime());
|
|
@@ -717,18 +719,18 @@ public class ivtOrderController {
|
|
|
cost.put("ACCOUNT_ID", account_id);
|
|
cost.put("ACCOUNT_ID", account_id);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- System.out.println("处理的account_id: " + account_id);
|
|
|
|
|
|
|
+ ivtLogger.info("处理的account_id: " + account_id);
|
|
|
|
|
|
|
|
String PRODUCT_ID = cost.getString("PRODUCT_ID");
|
|
String PRODUCT_ID = cost.getString("PRODUCT_ID");
|
|
|
String vendor_id = DBSql.getString("select VENDOR_ACCOUNT_ID from BO_EU_DNIVT_PRODUCT_VENDOR where PRODUCT_ID=? or BINDID in (select BINDID FROM BO_EU_DNIVT_PRODUCT WHERE ID=?)", new Object[]{PRODUCT_ID, PRODUCT_ID});
|
|
String vendor_id = DBSql.getString("select VENDOR_ACCOUNT_ID from BO_EU_DNIVT_PRODUCT_VENDOR where PRODUCT_ID=? or BINDID in (select BINDID FROM BO_EU_DNIVT_PRODUCT WHERE ID=?)", new Object[]{PRODUCT_ID, PRODUCT_ID});
|
|
|
if (StringUtils.isNotBlank(vendor_id)) {
|
|
if (StringUtils.isNotBlank(vendor_id)) {
|
|
|
VENDOR_ACCOUNT_ID.add(vendor_id);
|
|
VENDOR_ACCOUNT_ID.add(vendor_id);
|
|
|
}
|
|
}
|
|
|
- System.out.println("处理的vendor_id: " + vendor_id);
|
|
|
|
|
|
|
+ ivtLogger.info("处理的vendor_id: " + vendor_id);
|
|
|
|
|
|
|
|
int purchase_quantity = cost.getInt("QUANTITY") - DBSql.getInt("select sum(QUANTITY) AS QU from BO_EU_DNCTT_CONTRACT_COST_PRODUCT where CONTRACT_COST_ID=? and CLOSED=0", new Object[]{cost.getString("ID")});
|
|
int purchase_quantity = cost.getInt("QUANTITY") - DBSql.getInt("select sum(QUANTITY) AS QU from BO_EU_DNCTT_CONTRACT_COST_PRODUCT where CONTRACT_COST_ID=? and CLOSED=0", new Object[]{cost.getString("ID")});
|
|
|
if (purchase_quantity <= 0) {
|
|
if (purchase_quantity <= 0) {
|
|
|
- System.out.println("采购数量<=0,跳过该记录,ID: " + cost.getString("ID"));
|
|
|
|
|
|
|
+ ivtLogger.info("采购数量<=0,跳过该记录,ID: " + cost.getString("ID"));
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
cost.put("PURCHASE_QUANTITY", purchase_quantity);
|
|
cost.put("PURCHASE_QUANTITY", purchase_quantity);
|
|
@@ -736,14 +738,14 @@ public class ivtOrderController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (validCount < 1) {
|
|
if (validCount < 1) {
|
|
|
- System.out.println("没有可处理的采购订单记录");
|
|
|
|
|
|
|
+ ivtLogger.info("没有可处理的采购订单记录");
|
|
|
return ResponseObject.newErrResponse("没有可处理的采购订单");
|
|
return ResponseObject.newErrResponse("没有可处理的采购订单");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ProcessInstance processInstance;
|
|
ProcessInstance processInstance;
|
|
|
try {
|
|
try {
|
|
|
processInstance = SDK.getProcessAPI().createProcessInstance("obj_795cb3601f3a4b919b5896cf5b076a3a", uc.getUID(), "采购订单");
|
|
processInstance = SDK.getProcessAPI().createProcessInstance("obj_795cb3601f3a4b919b5896cf5b076a3a", uc.getUID(), "采购订单");
|
|
|
- System.out.println("流程实例创建成功,ID: " + processInstance.getId());
|
|
|
|
|
|
|
+ ivtLogger.info("流程实例创建成功,ID: " + processInstance.getId());
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
System.err.println("流程实例创建失败: " + e.getMessage());
|
|
System.err.println("流程实例创建失败: " + e.getMessage());
|
|
|
throw new RuntimeException("流程实例创建失败", e);
|
|
throw new RuntimeException("流程实例创建失败", e);
|
|
@@ -757,7 +759,7 @@ public class ivtOrderController {
|
|
|
purchaseOrder.set("VENDOR_ACCOUNT_ID", VENDOR_ACCOUNT_ID.stream().findFirst().get());
|
|
purchaseOrder.set("VENDOR_ACCOUNT_ID", VENDOR_ACCOUNT_ID.stream().findFirst().get());
|
|
|
}
|
|
}
|
|
|
SDK.getBOAPI().createDataBO("BO_EU_DNIVT_ORDER", purchaseOrder, uc, conn);
|
|
SDK.getBOAPI().createDataBO("BO_EU_DNIVT_ORDER", purchaseOrder, uc, conn);
|
|
|
- System.out.println("采购单创建成功,ID: " + purchaseOrder.getId());
|
|
|
|
|
|
|
+ ivtLogger.info("采购单创建成功,ID: " + purchaseOrder.getId());
|
|
|
|
|
|
|
|
for (RowMap cost : costList) {
|
|
for (RowMap cost : costList) {
|
|
|
BO purchaseOrderProduct = new BO();
|
|
BO purchaseOrderProduct = new BO();
|
|
@@ -812,7 +814,7 @@ public class ivtOrderController {
|
|
|
purchaseOrderProduct.set("COST_TOTAL_NOTAX", costTotalNotax);
|
|
purchaseOrderProduct.set("COST_TOTAL_NOTAX", costTotalNotax);
|
|
|
|
|
|
|
|
SDK.getBOAPI().createDataBO("BO_EU_DNIVT_ORDER_PRODUCT", purchaseOrderProduct, uc, conn);
|
|
SDK.getBOAPI().createDataBO("BO_EU_DNIVT_ORDER_PRODUCT", purchaseOrderProduct, uc, conn);
|
|
|
- System.out.println("采购项创建成功,关联采购单ID: " + purchaseOrder.getId());
|
|
|
|
|
|
|
+ ivtLogger.info("采购项创建成功,关联采购单ID: " + purchaseOrder.getId());
|
|
|
|
|
|
|
|
String PURCHASE_ORDER_NO = DBSql.getString("SELECT GROUP_CONCAT(PURCHASE_ORDER_NO) FROM " + IVTConstant.BO_EU_DNIVT_ORDER + " WHERE CLOSED=0 AND ID IN (SELECT ORDER_ID FROM BO_EU_DNIVT_ORDER_PRODUCT WHERE CONTRACT_COST_ID=?) ", new Object[]{cost.getString("ID")});
|
|
String PURCHASE_ORDER_NO = DBSql.getString("SELECT GROUP_CONCAT(PURCHASE_ORDER_NO) FROM " + IVTConstant.BO_EU_DNIVT_ORDER + " WHERE CLOSED=0 AND ID IN (SELECT ORDER_ID FROM BO_EU_DNIVT_ORDER_PRODUCT WHERE CONTRACT_COST_ID=?) ", new Object[]{cost.getString("ID")});
|
|
|
DBSql.update(conn, "UPDATE BO_EU_DNCTT_CONTRACT_COST SET PURCHASE_ORDER_NO=? WHERE ID=?", new Object[]{PURCHASE_ORDER_NO, cost.getString("ID")});
|
|
DBSql.update(conn, "UPDATE BO_EU_DNCTT_CONTRACT_COST SET PURCHASE_ORDER_NO=? WHERE ID=?", new Object[]{PURCHASE_ORDER_NO, cost.getString("ID")});
|
|
@@ -846,7 +848,7 @@ public class ivtOrderController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
List<TaskInstance> taskInstances = SDK.getProcessAPI().start(processInstance).fetchActiveTasks();
|
|
List<TaskInstance> taskInstances = SDK.getProcessAPI().start(processInstance).fetchActiveTasks();
|
|
|
- System.out.println("流程启动成功,活动任务数: " + taskInstances.size());
|
|
|
|
|
|
|
+ ivtLogger.info("流程启动成功,活动任务数: " + taskInstances.size());
|
|
|
conn.commit();
|
|
conn.commit();
|
|
|
|
|
|
|
|
if (taskInstances.isEmpty()) {
|
|
if (taskInstances.isEmpty()) {
|