From 2bb7c861f998790b14e1d60108fc7ee3bb956fd2 Mon Sep 17 00:00:00 2001 From: 354798ggg <1074825718@qq.com> Date: 星期五, 11 八月 2023 15:18:26 +0800 Subject: [PATCH] 项目统计分析 --- product-server-project-management/src/main/java/com/product/project/management/config/Cmnconst.java | 2 +- product-server-project-management/src/main/java/com/product/project/management/service/ProjectStatisticAnalysisService.java | 54 +++++++++++++++++++++++++++--------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/product-server-project-management/src/main/java/com/product/project/management/config/Cmnconst.java b/product-server-project-management/src/main/java/com/product/project/management/config/Cmnconst.java index 9402a08..f563d28 100644 --- a/product-server-project-management/src/main/java/com/product/project/management/config/Cmnconst.java +++ b/product-server-project-management/src/main/java/com/product/project/management/config/Cmnconst.java @@ -14,7 +14,7 @@ //瀛楁鍚� public static final String MATERIAL_TYPE="material_type"; - public static final String MATERIAL_CODE="material_model"; + public static final String MATERIAL_CODE="material_code"; public static final String OUTBOUND_WEIGHT="outbound_weight"; public static final String TOTAL_OUTBOUND_WEIGHT="total_outbound_weight"; public static final String PROJECT_NAME="project_name"; diff --git a/product-server-project-management/src/main/java/com/product/project/management/service/ProjectStatisticAnalysisService.java b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectStatisticAnalysisService.java index e8e663d..3edb86c 100644 --- a/product-server-project-management/src/main/java/com/product/project/management/service/ProjectStatisticAnalysisService.java +++ b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectStatisticAnalysisService.java @@ -19,11 +19,11 @@ @Component public class ProjectStatisticAnalysisService extends AbstractBaseService{ - - + + @Autowired BaseDao baseDao; - + /** * 椤圭洰鏁版嵁鍒嗘瀽 * @@ -33,21 +33,21 @@ public JSONObject statistAnalysis(String project_uuid) { JSONObject returnJson = new JSONObject(); - + List<List<String>> listMaterialType = getReportMaterialType(); //鏁版嵁搴撳嚭搴撲俊鎭眹鎬� StringBuilder outboundInfo = new StringBuilder(512); outboundInfo.append(" WITH outbound AS( ") - .append(" SELECT project_uuid,itemize,material_type,material_model,SUM(outbound_weight)outbound_weight FROM ( ") + .append(" SELECT project_uuid,itemize,material_type,material_code,SUM(outbound_weight)outbound_weight FROM ( ") .append(" SELECT ") - .append(" A.project_uuid,B.material_type,B.material_model,B.outbound_weight, ") + .append(" A.project_uuid,B.material_type,B.material_code,B.outbound_weight, ") .append(" (SELECT itemize FROM product_project_item WHERE project_uuid = A.project_uuid AND itemize_code = substring(C.itemize_code,1,11)) itemize ") .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_item C ON C.uuid = A.project_itemize ") .append(" WHERE A.flow_flag=2 AND A.project_uuid=? ") - .append(" )A GROUP BY project_uuid,itemize,material_type,material_model ") + .append(" )A GROUP BY project_uuid,itemize,material_type,material_code ") .append(" )"); //鍑哄簱淇℃伅鎿嶄綔锛坓etItemizeSum[閽㈢瓔鍜屾灦绔嬬瓔宸︿晶姹囨�籡锛沘llitemize[鎵�鏈変笁绾у垎椤筣锛沬ntermediateData1[閽㈢瓔鏋剁珛绛嬫寜鍒嗛」姹囨�籡锛沬ntermediateData2[閽㈢瓔缃戠墖鎸夊垎椤瑰拰鏉愭枡姹囨�籡锛沬ntermediateData3[鎶ヨ〃鎴愬瀷]锛� StringBuilder operateInfo = new StringBuilder(1024); @@ -56,11 +56,11 @@ .append(BaseUtil.buildQuestionMarkFilter(Cmnconst.MATERIAL_TYPE, listMaterialType.get(0).toArray(), true)) .append(" GROUP BY itemize ") .append(" )") - + .append(",allitemize AS( ") .append(" SELECT itemize FROM outbound GROUP BY itemize ") .append(" )") - + .append(",intermediateData1 AS( ") .append(" SELECT A.itemize "); for (int i = 0; i < listMaterialType.get(2).size(); i++) { @@ -78,8 +78,8 @@ .append(" THEN ") .append("'").append(listMaterialType.get(3).get(i)).append("'"); } - - operateInfo.append(" END AS material_model ") + + operateInfo.append(" END AS material_code ") .append(" FROM outbound ") .append(" WHERE ") .append(BaseUtil.buildQuestionMarkFilter(Cmnconst.MATERIAL_TYPE, listMaterialType.get(1).toArray(), false)) @@ -87,14 +87,14 @@ .append(" ) B ON A.itemize = B.itemize ") .append(" GROUP BY A.itemize ") .append(" )") - + .append(",intermediateData2 AS( ") - .append(" SELECT project_uuid,itemize,material_type,material_model,outbound_weight FROM outbound WHERE ") + .append(" SELECT project_uuid,itemize,material_type,material_code,outbound_weight FROM outbound WHERE ") .append(BaseUtil.buildQuestionMarkFilter(Cmnconst.MATERIAL_TYPE, listMaterialType.get(1).toArray(), true)) .append(" )") - + .append(",intermediateData3 AS( ") - .append(" SELECT A.itemize,A.total_outbound_weight,B.material_type,material_model,outbound_weight"); + .append(" SELECT A.itemize,A.total_outbound_weight,B.material_type,material_code,outbound_weight"); for (int i = 0; i < listMaterialType.get(3).size(); i++) { operateInfo.append(",A.").append(listMaterialType.get(3).get(i)); } @@ -110,11 +110,11 @@ .append(" LEFT JOIN intermediateData2 B ON A.itemize = B.itemize ") .append(" ) ") .append(" select * from intermediateData3 "); - + StringBuilder totalSum = new StringBuilder(""); - totalSum.append(" SELECT material_model,ROUND(SUM(outbound_weight),1) outbound_weight FROM outbound WHERE ") + totalSum.append(" SELECT material_code,ROUND(SUM(outbound_weight),1) outbound_weight FROM outbound WHERE ") .append(BaseUtil.buildQuestionMarkFilter(Cmnconst.MATERIAL_TYPE, listMaterialType.get(1).toArray(), true)) - .append(" GROUP BY material_model ") + .append(" GROUP BY material_code ") .append(" UNION ALL ") .append(" SELECT CASE "); for (int i = 0; i < listMaterialType.get(2).size(); i++) { @@ -129,7 +129,7 @@ .append(" GROUP BY material_type ") .append(" UNION ALL ") .append(" SELECT '鍚堣',ROUND(SUM(outbound_weight)/1000,1) FROM outbound WHERE material_type IN (0,1,3) GROUP BY project_uuid "); - + //鑾峰彇SQL瑙f瀽鐨勫熀鏈暟鎹紝鍒╃敤JAVA灏嗛」鐩垎椤瑰搴旂殑涓嶅悓鏉愭枡琛岃浆鍒� DataTableEntity dtItemizeInfo = baseDao.listTable(outboundInfo.toString() + operateInfo.toString(), new Object[]{project_uuid}); if (!BaseUtil.dataTableIsEmpty(dtItemizeInfo)) { @@ -145,7 +145,7 @@ String materialCode = fseItemize.getString(Cmnconst.MATERIAL_CODE); String outboundWeight = fseItemize.getString(Cmnconst.OUTBOUND_WEIGHT); Integer materialType = fseItemize.getInteger(Cmnconst.MATERIAL_TYPE); - + //鏀堕泦鑾峰彇鎵�鏈夎〃澶村垪锛堟潗鏂欑紪鐮侊級,鏋剁珛绛嬪拰澹版祴绠℃病鏈夎〃澶� if (!BaseUtil.strIsNull(materialCode)) { if (BaseUtil.strIsNull(materialTypes[materialType])) { @@ -174,7 +174,7 @@ convertData.put(itemize, fseConvertData); } } - + //璁$畻姹囨�� DataTableEntity dtTotalInfo = baseDao.listTable(outboundInfo.toString() + totalSum.toString(), new Object[]{project_uuid}); FieldSetEntity fseConvertData = new FieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW); @@ -193,7 +193,7 @@ } } } - + //灏嗘暟鎹浆涓篋ataTableEntity杩斿洖 if (!convertData.isEmpty()) { DataTableEntity finalConvertData = new DataTableEntity(); @@ -212,8 +212,8 @@ } return returnJson; } - - + + /** * 杩斿洖鏉愭枡绫诲瀷淇℃伅 * listSummary 闇�瑕佹眹鎬荤殑鏉愭枡 @@ -225,13 +225,13 @@ public List<List<String>> getReportMaterialType() { DataTableEntity dtMaterialType = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BASE_MATERIAL_TYPE, null, new Object[] {}, new Object[] {"material_type_name","material_type_value"}); if (!BaseUtil.dataTableIsEmpty(dtMaterialType)) { - + List<List<String>> returnList = new ArrayList<>(); List<String> listSummary = new ArrayList<>(); List<String> listShowMaterialCode = new ArrayList<>(); List<String> listNotShowMaterialCode = new ArrayList<>(); List<String> listNotShowMaterialCodeName = new ArrayList<>(); - + for (int i = 0; i < dtMaterialType.getRows(); i++) { String dictValue = dtMaterialType.getFieldSetEntity(i).getString("material_type_value"); String dictLabel = dtMaterialType.getFieldSetEntity(i).getString("material_type_name"); @@ -253,7 +253,7 @@ returnList.add(listShowMaterialCode); returnList.add(listNotShowMaterialCode); returnList.add(listNotShowMaterialCodeName); - + return returnList; } return null; -- Gitblit v1.9.2