Эх сурвалжийг харах

5、合同产品删除校验:已经拣货或创建采购单的不能删除,提示;

zhangyao 4 сар өмнө
parent
commit
16522f2e84

+ 45 - 3
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/contractCreateController.java

@@ -10,12 +10,11 @@ import com.actionsoft.bpms.util.DBSql;
 import com.actionsoft.sdk.local.SDK;
 import com.actionsoft.sdk.local.api.Logger;
 import com.awspaas.user.apps.donenow_ctt.service.contractService;
+import org.apache.commons.lang3.StringUtils;
 
 import java.sql.Connection;
 import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 合同创建时,使用的接口
@@ -185,4 +184,47 @@ public class contractCreateController {
     }
 
 
+    /**
+     * 合同产品删除
+     */
+    @Mapping(value = "com.awspaas.user.apps.donenow_ctt.contract_cost_delete", desc = "合同产品删除")
+    public ResponseObject deleteContractProduct(UserContext uc, String costIds) {
+        if (StringUtils.isBlank(costIds))
+            return ResponseObject.newErrResponse("请选择要删除的条目!");
+
+        String[] costIdArr = costIds.split(",");
+        String sql = "SELECT * FROM BO_EU_DNCTT_CONTRACT_COST WHERE ID IN(";
+        for (int i = 0; costIdArr.length > i; i++) {
+            sql += "?,";
+        }
+        sql = sql.substring(0, sql.length() - 1) + ")";
+        List<RowMap> costList = DBSql.getMaps(sql, Arrays.stream(costIdArr).toArray());
+
+        List<String> errorList = new ArrayList<>();
+        for (RowMap cost : costList) {
+            //1、判断是否拣货
+            if (DBSql.getInt("SELECT COUNT(ID) FROM BO_EU_DNCTT_CONTRACT_COST_PRODUCT WHERE CONTRACT_COST_ID=?", new Object[]{cost.getString("ID")}) > 0) {
+                errorList.add(cost.getString("NAME") + "已拣货");
+            }
+            //2、判断是否创建采购单
+            if (DBSql.getInt("SELECT COUNT(ID) FROM BO_EU_DNIVT_ORDER_PRODUCT WHERE CONTRACT_COST_ID=?", new Object[]{cost.getString("ID")}) > 0) {
+                errorList.add(cost.getString("NAME") + "已创建采购单");
+            }
+        }
+
+        if (errorList.size() > 0) {
+            return ResponseObject.newErrResponse(StringUtils.join(errorList, "、") + ",无法删除!");
+        }
+
+        String delSql = "DELETE FROM BO_EU_DNCTT_CONTRACT_COST WHERE ID IN(";
+        for (int i = 0; costIdArr.length > i; i++) {
+            delSql += "?,";
+        }
+        delSql = delSql.substring(0, delSql.length() - 1) + ")";
+        DBSql.update(delSql, Arrays.stream(costIdArr).toArray());
+
+        return ResponseObject.newOkResponse();
+    }
+
+
 }