From 8756ac5f231e381b8f3f41a6a06a24f5bdf11a4e Mon Sep 17 00:00:00 2001
From: 2369059705@qq.com <2369059705@qq.com>
Date: 星期三, 28 六月 2023 10:02:00 +0800
Subject: [PATCH] 项目预警
---
product-server-project-management/src/main/java/com/product/project/management/controller/ProjectInfoController.java | 55 +++++--
product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java | 357 +++++++++++++++++++++++++++-----------------------
2 files changed, 231 insertions(+), 181 deletions(-)
diff --git a/product-server-project-management/src/main/java/com/product/project/management/controller/ProjectInfoController.java b/product-server-project-management/src/main/java/com/product/project/management/controller/ProjectInfoController.java
index 2c561f8..4042289 100644
--- a/product-server-project-management/src/main/java/com/product/project/management/controller/ProjectInfoController.java
+++ b/product-server-project-management/src/main/java/com/product/project/management/controller/ProjectInfoController.java
@@ -24,7 +24,7 @@
@Autowired
ProjectInfoService projectInfoService;
-
+
/**
* 鑾峰彇妯℃澘椤圭洰鍒嗛」
* @param request
@@ -36,7 +36,7 @@
try {
// 鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-
+
// 鍒ゆ柇uuid鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getString(Cmnconst.PROJECTTYPE))) {
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
@@ -51,7 +51,7 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
-
+
/**
* 鑾峰彇椤圭洰淇℃伅锛堥」鐩垎椤瑰涓爲锛�
* @param request
@@ -63,7 +63,7 @@
try {
// 鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-
+
// 鍒ゆ柇uuid鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getUUID())) {
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
@@ -78,7 +78,7 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
-
+
/**
* 鑾峰彇椤圭洰瀛愯〃鍒嗛」锛堝崟涓爲锛�
* @param request
@@ -90,7 +90,7 @@
try {
// 鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-
+
// 鍒ゆ柇uuid鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getString(Cmnconst.PROJECT_UUID))) {
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
@@ -105,7 +105,7 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
-
+
/**
* 鑾峰彇椤圭洰淇℃伅(鏃犲垎椤靛弬鏁�)
* @param request
@@ -125,7 +125,7 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
-
+
/**
* 鑾峰彇椤圭洰鍒嗘瀽鏁版嵁
* @param request
@@ -137,7 +137,7 @@
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-
+
//鍒ゆ柇uuid鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getString(Cmnconst.PROJECT_UUID))) {
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
@@ -153,7 +153,7 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
-
+
/**
* 鍒犻櫎鍗曚釜椤圭洰鍒嗛」楠岃瘉锛堟牴鎹绠楅獙璇佹槸鍚﹀垹闄わ級
* @param request
@@ -165,7 +165,7 @@
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-
+
//鍒ゆ柇uuid鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getUUID())) {
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
@@ -181,7 +181,7 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
-
+
/**
* 鑾峰彇椤圭洰棰勭畻淇℃伅
* @param request
@@ -193,12 +193,12 @@
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
-
+
//鍒ゆ柇uuid鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getString(Cmnconst.PROJECT_UUID))) {
return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
}
-
+
//鍒ゆ柇鍒嗛〉鍙傛暟鏄惁涓虹┖
if (BaseUtil.strIsNull(fse.getString(CoreConst.CPAGE)) || BaseUtil.strIsNull(fse.getString(CoreConst.PAGESIZE))) {
return this.error(SystemCode.SYSTEM_CPAGES_NOT_NULL.getValue(), SystemCode.SYSTEM_CPAGES_NOT_NULL.getText());
@@ -213,4 +213,31 @@
SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
}
}
+ /**
+ * 鏍规嵁uuid鑾峰彇椤圭洰鍒嗛」鏍戠粨鏋勮鎯�
+ * @param request
+ * @return
+ */
+ @RequestMapping(value = "/get-treeProjectItem/{version}", method = RequestMethod.POST)
+ @ApiVersion(1)
+ public String getTreeProjectItem(HttpServletRequest request){
+ try {
+ // 鑾峰彇鍙傛暟
+ FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
+
+ // 鍒ゆ柇uuid鏄惁涓虹┖
+ if (BaseUtil.strIsNull(fse.getUUID())) {
+ return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+ }
+ return ResultInfo.success(projectInfoService.getTreeProjectItem(fse.getUUID()));
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return this.error(e);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return this.error(SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getValue(),
+ SystemCode.PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR.getText() + e.getMessage());
+ }
+ }
+
}
diff --git a/product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java
index f298f33..ef04c1d 100644
--- a/product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java
+++ b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java
@@ -5,6 +5,7 @@
import java.util.List;
import java.util.Map;
+import com.alibaba.fastjson.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -21,172 +22,194 @@
import cn.hutool.json.JSONObject;
@Component("qxlw-project-service")
-public class ProjectInfoService extends AbstractBaseService{
+public class ProjectInfoService extends AbstractBaseService {
- @Autowired
- BaseDao baseDao;
-
- /**
- * 閫氳繃椤圭洰绫诲瀷鑾峰彇椤圭洰鍒嗛」锛堣幏鍙栨ā鏉垮垎椤癸級
- * @param projectType
- * @return
- */
- public DataTableEntity getProjectTypeItem(String projectType) {
- DataTableEntity dtProjectItem = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BASE_PROJECT_ITEM, "itemize_type=?", new Object[] {projectType}, new Object[] {Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_TYPE, Cmnconst.ITEMIZE_PARENT_CODE});
- if (!BaseUtil.dataTableIsEmpty(dtProjectItem)) {
- DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItem, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
- return newDtProjectItem;
- }
- return null;
- }
-
- /**
- * 閫氳繃椤圭洰UUID鑾峰彇椤圭洰鍒嗛」锛堣幏鍙栦繚瀛樼殑瀛愯〃鍒嗛」--澶氫釜鏍戯級
- * @param uuid
- * @return
- */
- public FieldSetEntity getProjectItem(String uuid) {
- FieldSetEntity fseProject = baseDao.getFieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW, uuid, true);
- DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(fseProject.getSubDataTable(Cmnconst.PRODUCT_PROJECT_ITEM), Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
- Map<String, DataTableEntity>dtSubTable = fseProject.getSubData();
- dtSubTable.put(Cmnconst.PRODUCT_PROJECT_ITEM, newDtProjectItem);
- return fseProject;
- }
-
- /**
- * 閫氳繃椤圭洰UUID鑾峰彇椤圭洰鍒嗛」锛堣幏鍙栦繚瀛樼殑瀛愯〃鍒嗛」--鍗曚釜鏍戯級
- * @param uuid
- * @return
- */
- public DataTableEntity getProjectAllItem(String uuid) {
- DataTableEntity dtProjectItemize = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid=?", new Object[] {uuid}, new Object[] {CoreConst.UUID, Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE});
- if (!BaseUtil.dataTableIsEmpty(dtProjectItemize)) {
- DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItemize,Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
- return newDtProjectItem;
- }
- return null;
- }
-
- /**
- * 鑾峰彇鎵�鏈夐」鐩俊鎭�
- * @return
- */
- public DataTableEntity listProject() {
- return baseDao.listTable(Cmnconst.PRODUCT_PROJECT_QXLW, null, null, new Object[] {CoreConst.UUID, Cmnconst.PROJECT_NAME});
- }
-
- /**
- * 椤圭洰鏁版嵁鍒嗘瀽
- * @param project_uuid
- * @return
- */
- public JSONObject statistAnalysis(String project_uuid) {
-
- JSONObject returnJson = new JSONObject();
-
- //鑾峰彇鏁版嵁搴撳師濮嬫暟鎹�
- StringBuilder sb = new StringBuilder();
- sb.append("WITH outbound AS(")
- .append(" SELECT A.project_uuid,A.project_itemize,C.material_type,B.material_code,SUM(B.outbound_weight)outbound_weight ")
- .append(" FROM product_project_outbound A ")
- .append(" LEFT JOIN product_project_outbound_sub B ON A.uuid=B.outbound_uuid ")
- .append(" LEFT JOIN product_project_base_material C ON B.material_uuid = C.uuid ")
- .append(" WHERE project_uuid = ? ")
- .append(" GROUP BY A.project_uuid,A.project_itemize,C.material_type,B.material_code ")
- .append(" ) ")
- .append(" SELECT A.project_uuid,A.project_itemize,A.total_outbound_weight,B.material_type,B.material_code,B.outbound_weight ")
- .append(" FROM ( ")
- .append(" SELECT project_uuid,project_itemize,SUM(outbound_weight)total_outbound_weight ")
- .append(" FROM outbound ")
- .append(" GROUP BY project_uuid,project_itemize ")
- .append(" )A ")
- .append(" RIGHT JOIN outbound B ON A.project_uuid=B.project_uuid AND A.project_itemize=B.project_itemize ");
- DataTableEntity dtItemizeInfo = baseDao.listTable(sb.toString(), new Object[] {project_uuid});
- if(!BaseUtil.dataTableIsEmpty(dtItemizeInfo)) {
-
- Map<String, FieldSetEntity> convertData = new HashMap<>();
- String [] materialTypes = new String[3];
-
- //閫氳繃Java寰幆灏�"鏉愭枡"鍜�"鍑哄簱閲�"鏁版嵁琛岃浆鍒�
- for (int i = 0; i < dtItemizeInfo.getRows(); i++) {
- FieldSetEntity fseItemize = dtItemizeInfo.getFieldSetEntity(i);
-
- //鑾峰彇鏉愭枡缂栫爜锛屾潗鏂欑被鍨嬶紝鍑哄簱閲�
- String materialCode = fseItemize.getString(Cmnconst.MATERIAL_CODE);
- String outboundWeight = fseItemize.getString(Cmnconst.OUTBOUND_WEIGHT);
- Integer materialType = fseItemize.getInteger(Cmnconst.MATERIAL_TYPE);
-
- //鏀堕泦鑾峰彇鎵�鏈夎〃澶村垪锛堟潗鏂欑紪鐮侊級
- if (BaseUtil.strIsNull(materialTypes[materialType])) {
- materialTypes[materialType] = materialCode;
- }else {
- materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)]+=","+materialCode;
- }
-
- //鏀堕泦琛岃浆鍒楁暟鎹�
- String itemize = fseItemize.getString(Cmnconst.PROJECT_ITEMIZE);
- if(convertData.containsKey(itemize)) {
- convertData.get(itemize).setValue(materialCode, outboundWeight);
- }else {
- FieldSetEntity fseConvertData = new FieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW);
- fseConvertData.setValue(Cmnconst.PROJECT_ITEMIZE, itemize);
- fseConvertData.setValue(Cmnconst.TOTAL_OUTBOUND_WEIGHT, fseItemize.getString(Cmnconst.TOTAL_OUTBOUND_WEIGHT));
- fseConvertData.setValue(materialCode, outboundWeight);
- convertData.put(itemize, fseConvertData);
- }
- }
- //灏嗘暟鎹浆涓篋ataTableEntity杩斿洖
- if (!convertData.isEmpty()) {
- DataTableEntity finalConvertData = new DataTableEntity();
- convertData.forEach((k,v) -> {
- finalConvertData.addFieldSetEntity(v);
- });
- returnJson.set("data", BaseUtil.dataTableEntityToJson(finalConvertData));
- }
- for (int i = 0; i < materialTypes.length; i++) {
- if(!BaseUtil.strIsNull(materialTypes[i])) {
- returnJson.set("type"+i, materialTypes[i]);
- }
- }
- }
- return returnJson;
- }
-
- /**
- * 鍒犻櫎瀛愰」楠岃瘉锛堝凡缁忕敓鎴愰绠楃殑瀛愰」涓嶈兘鍒犻櫎锛�
- * @param uuid
- */
- public void deleteItemizeValidate(String uuid) {
- DataTableEntity dtBudget = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BUDGET, "budget_code=?", new Object[] {uuid});
- if (!BaseUtil.dataTableIsEmpty(dtBudget)) {
- throw new BaseException(SystemCode.PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL.getValue(), SystemCode.PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL.getText());
- }
- }
-
- /**
- * 鑾峰彇鍒嗛」棰勭畻淇℃伅
- * @param projectUUID 椤圭洰UUID
- * @param itemizeCode 鍒嗛」缂栫爜
- * @param capge 褰撳墠椤�
- * @param pageSize 椤靛ぇ灏�
- * @return
- */
- public DataTableEntity listItemizeBudget(String projectUUID, String itemizeCode, Integer capge, Integer pageSize) {
-
- String filter;
- List <String> params= new ArrayList<>();
- if (BaseUtil.strIsNull(itemizeCode)) {
- filter = "project_itemize_uuid IN (SELECT uuid FROM product_project_item WHERE project_uuid=?)";
- params.add(projectUUID);
- }else {
- filter = "project_itemize_uuid IN (SELECT uuid FROM product_project_item WHERE project_uuid=? AND itemize_code like ?)";
- params.add(projectUUID);
- params.add(itemizeCode+"%");
- }
- DataTableEntity dtItemizeBudget = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BUDGET, filter, params.toArray(), null, null, pageSize, capge);
- if (!BaseUtil.dataTableIsEmpty(dtItemizeBudget)) {
- baseDao.loadPromptData(dtItemizeBudget);
- }
- return dtItemizeBudget;
- }
+ @Autowired
+ BaseDao baseDao;
+
+ /**
+ * 閫氳繃椤圭洰绫诲瀷鑾峰彇椤圭洰鍒嗛」锛堣幏鍙栨ā鏉垮垎椤癸級
+ *
+ * @param projectType
+ * @return
+ */
+ public DataTableEntity getProjectTypeItem(String projectType) {
+ DataTableEntity dtProjectItem = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BASE_PROJECT_ITEM, "itemize_type=?", new Object[]{projectType}, new Object[]{Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_TYPE, Cmnconst.ITEMIZE_PARENT_CODE});
+ if (!BaseUtil.dataTableIsEmpty(dtProjectItem)) {
+ DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItem, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
+ return newDtProjectItem;
+ }
+ return null;
+ }
+
+ /**
+ * 閫氳繃椤圭洰UUID鑾峰彇椤圭洰鍒嗛」锛堣幏鍙栦繚瀛樼殑瀛愯〃鍒嗛」--澶氫釜鏍戯級
+ *
+ * @param uuid
+ * @return
+ */
+ public FieldSetEntity getProjectItem(String uuid) {
+ FieldSetEntity fseProject = baseDao.getFieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW, uuid, true);
+ DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(fseProject.getSubDataTable(Cmnconst.PRODUCT_PROJECT_ITEM), Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
+ Map<String, DataTableEntity> dtSubTable = fseProject.getSubData();
+ dtSubTable.put(Cmnconst.PRODUCT_PROJECT_ITEM, newDtProjectItem);
+ return fseProject;
+ }
+
+ /**
+ * 閫氳繃椤圭洰UUID鑾峰彇椤圭洰鍒嗛」锛堣幏鍙栦繚瀛樼殑瀛愯〃鍒嗛」--鍗曚釜鏍戯級
+ *
+ * @param uuid
+ * @return
+ */
+ public DataTableEntity getProjectAllItem(String uuid) {
+ DataTableEntity dtProjectItemize = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid=?", new Object[]{uuid}, new Object[]{CoreConst.UUID, Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE});
+ if (!BaseUtil.dataTableIsEmpty(dtProjectItemize)) {
+ DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItemize, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
+ return newDtProjectItem;
+ }
+ return null;
+ }
+
+ /**
+ * 鑾峰彇鎵�鏈夐」鐩俊鎭�
+ *
+ * @return
+ */
+ public DataTableEntity listProject() {
+ return baseDao.listTable(Cmnconst.PRODUCT_PROJECT_QXLW, null, null, new Object[]{CoreConst.UUID, Cmnconst.PROJECT_NAME});
+ }
+
+ /**
+ * 椤圭洰鏁版嵁鍒嗘瀽
+ *
+ * @param project_uuid
+ * @return
+ */
+ public JSONObject statistAnalysis(String project_uuid) {
+
+ JSONObject returnJson = new JSONObject();
+
+ //鑾峰彇鏁版嵁搴撳師濮嬫暟鎹�
+ StringBuilder sb = new StringBuilder();
+ sb.append("WITH outbound AS(")
+ .append(" SELECT A.project_uuid,A.project_itemize,C.material_type,B.material_code,SUM(B.outbound_weight)outbound_weight ")
+ .append(" FROM product_project_outbound A ")
+ .append(" LEFT JOIN product_project_outbound_sub B ON A.uuid=B.outbound_uuid ")
+ .append(" LEFT JOIN product_project_base_material C ON B.material_uuid = C.uuid ")
+ .append(" WHERE project_uuid = ? ")
+ .append(" GROUP BY A.project_uuid,A.project_itemize,C.material_type,B.material_code ")
+ .append(" ) ")
+ .append(" SELECT A.project_uuid,A.project_itemize,A.total_outbound_weight,B.material_type,B.material_code,B.outbound_weight ")
+ .append(" FROM ( ")
+ .append(" SELECT project_uuid,project_itemize,SUM(outbound_weight)total_outbound_weight ")
+ .append(" FROM outbound ")
+ .append(" GROUP BY project_uuid,project_itemize ")
+ .append(" )A ")
+ .append(" RIGHT JOIN outbound B ON A.project_uuid=B.project_uuid AND A.project_itemize=B.project_itemize ");
+ DataTableEntity dtItemizeInfo = baseDao.listTable(sb.toString(), new Object[]{project_uuid});
+ if (!BaseUtil.dataTableIsEmpty(dtItemizeInfo)) {
+
+ Map<String, FieldSetEntity> convertData = new HashMap<>();
+ String[] materialTypes = new String[3];
+
+ //閫氳繃Java寰幆灏�"鏉愭枡"鍜�"鍑哄簱閲�"鏁版嵁琛岃浆鍒�
+ for (int i = 0; i < dtItemizeInfo.getRows(); i++) {
+ FieldSetEntity fseItemize = dtItemizeInfo.getFieldSetEntity(i);
+
+ //鑾峰彇鏉愭枡缂栫爜锛屾潗鏂欑被鍨嬶紝鍑哄簱閲�
+ String materialCode = fseItemize.getString(Cmnconst.MATERIAL_CODE);
+ String outboundWeight = fseItemize.getString(Cmnconst.OUTBOUND_WEIGHT);
+ Integer materialType = fseItemize.getInteger(Cmnconst.MATERIAL_TYPE);
+
+ //鏀堕泦鑾峰彇鎵�鏈夎〃澶村垪锛堟潗鏂欑紪鐮侊級
+ if (BaseUtil.strIsNull(materialTypes[materialType])) {
+ materialTypes[materialType] = materialCode;
+ } else {
+ materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)] += "," + materialCode;
+ }
+
+ //鏀堕泦琛岃浆鍒楁暟鎹�
+ String itemize = fseItemize.getString(Cmnconst.PROJECT_ITEMIZE);
+ if (convertData.containsKey(itemize)) {
+ convertData.get(itemize).setValue(materialCode, outboundWeight);
+ } else {
+ FieldSetEntity fseConvertData = new FieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW);
+ fseConvertData.setValue(Cmnconst.PROJECT_ITEMIZE, itemize);
+ fseConvertData.setValue(Cmnconst.TOTAL_OUTBOUND_WEIGHT, fseItemize.getString(Cmnconst.TOTAL_OUTBOUND_WEIGHT));
+ fseConvertData.setValue(materialCode, outboundWeight);
+ convertData.put(itemize, fseConvertData);
+ }
+ }
+ //灏嗘暟鎹浆涓篋ataTableEntity杩斿洖
+ if (!convertData.isEmpty()) {
+ DataTableEntity finalConvertData = new DataTableEntity();
+ convertData.forEach((k, v) -> {
+ finalConvertData.addFieldSetEntity(v);
+ });
+ returnJson.set("data", BaseUtil.dataTableEntityToJson(finalConvertData));
+ }
+ for (int i = 0; i < materialTypes.length; i++) {
+ if (!BaseUtil.strIsNull(materialTypes[i])) {
+ returnJson.set("type" + i, materialTypes[i]);
+ }
+ }
+ }
+ return returnJson;
+ }
+
+ /**
+ * 鍒犻櫎瀛愰」楠岃瘉锛堝凡缁忕敓鎴愰绠楃殑瀛愰」涓嶈兘鍒犻櫎锛�
+ *
+ * @param uuid
+ */
+ public void deleteItemizeValidate(String uuid) {
+ DataTableEntity dtBudget = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BUDGET, "budget_code=?", new Object[]{uuid});
+ if (!BaseUtil.dataTableIsEmpty(dtBudget)) {
+ throw new BaseException(SystemCode.PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL.getValue(), SystemCode.PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL.getText());
+ }
+ }
+
+ /**
+ * 鑾峰彇鍒嗛」棰勭畻淇℃伅
+ *
+ * @param projectUUID 椤圭洰UUID
+ * @param itemizeCode 鍒嗛」缂栫爜
+ * @param capge 褰撳墠椤�
+ * @param pageSize 椤靛ぇ灏�
+ * @return
+ */
+ public DataTableEntity listItemizeBudget(String projectUUID, String itemizeCode, Integer capge, Integer pageSize) {
+
+ String filter;
+ List<String> params = new ArrayList<>();
+ if (BaseUtil.strIsNull(itemizeCode)) {
+ filter = "project_itemize_uuid IN (SELECT uuid FROM product_project_item WHERE project_uuid=?)";
+ params.add(projectUUID);
+ } else {
+ filter = "project_itemize_uuid IN (SELECT uuid FROM product_project_item WHERE project_uuid=? AND itemize_code like ?)";
+ params.add(projectUUID);
+ params.add(itemizeCode + "%");
+ }
+ DataTableEntity dtItemizeBudget = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BUDGET, filter, params.toArray(), null, null, pageSize, capge);
+ if (!BaseUtil.dataTableIsEmpty(dtItemizeBudget)) {
+ baseDao.loadPromptData(dtItemizeBudget);
+ }
+ return dtItemizeBudget;
+ }
+
+ public JSONArray getTreeProjectItem(String uuid) {
+ FieldSetEntity fseProject = baseDao.getFieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW, uuid, true);
+ DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(fseProject.getSubDataTable(Cmnconst.PRODUCT_PROJECT_ITEM), Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null);
+ JSONArray objects = BaseUtil.dataTableEntityToJson(newDtProjectItem);
+ JSONObject json = new JSONObject();
+ json.put("itemize", "椤圭洰鍒嗛儴鍒嗛」");
+ json.put("children", objects);
+ json.put("type", 1);
+
+ JSONArray array = new JSONArray();
+ array.add(json);
+
+ return array;
+ }
}
--
Gitblit v1.9.2