From c913a335643619ac7d1943d75ce06f71a31b8185 Mon Sep 17 00:00:00 2001 From: 2369059705@qq.com <2369059705@qq.com> Date: 星期五, 07 七月 2023 15:45:27 +0800 Subject: [PATCH] Merge branch 'master' of http://nonxin.cn:8090/r/project/qxlw --- product-server-project-base/src/main/java/com/product/base/config/BaseErrorCode.java | 3 product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java | 82 ++++++++++++++++++++ product-server-project-management/src/main/java/com/product/project/management/config/SystemCode.java | 1 product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java | 35 ++++---- product-server-web/pom.xml | 4 - product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java | 14 ++- product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java | 54 ------------ product-server-project-base/src/main/java/com/product/base/config/CmnConst.java | 1 8 files changed, 115 insertions(+), 79 deletions(-) diff --git a/product-server-project-base/src/main/java/com/product/base/config/BaseErrorCode.java b/product-server-project-base/src/main/java/com/product/base/config/BaseErrorCode.java index c9c043e..0f907a8 100644 --- a/product-server-project-base/src/main/java/com/product/base/config/BaseErrorCode.java +++ b/product-server-project-base/src/main/java/com/product/base/config/BaseErrorCode.java @@ -23,7 +23,8 @@ PROJECT_BASE_MATERIAL_SAVE_FAIL("鏉愭枡淇℃伅淇濆瓨澶辫触锛�", ""), PROJECT_BASE_MATERIAL_DELETE_FAIL("鏉愭枡淇℃伅鍒犻櫎澶辫触锛�", ""), - PROJECT_BASE_MATERIAL_OPERATE_FAIL("鏉愭枡淇℃伅鎿嶄綔澶辫触锛�", ""), + PROJECT_BASE_MATERIAL_OPERATE_FAIL("鏉愭枡淇℃伅鎿嶄綔澶辫触锛�", ModuleEnum.SYSTEM.getValue() + "002"), + PROJECT_BASE_MATERIAL_CODE_REPEAT("鏉愭枡缂栫爜宸茶鍏朵粬鏉愭枡浣跨敤锛�", ModuleEnum.SYSTEM.getValue() + "003"), PROJECT_TYPE_SAVE_FAIL("椤圭洰绫诲瀷淇濆瓨澶辫触锛�", ""), PROJECT_TYPE_DELETE_FAIL("椤圭洰绫诲瀷鍒犻櫎澶辫触锛�", ""), diff --git a/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java b/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java index c62a82c..397ca10 100644 --- a/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java +++ b/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java @@ -26,6 +26,7 @@ public static final String ITEMIZE_CODE="itemize_code"; public static final String ITEMIZW_PARENT_CODE="itemize_parent_code"; public static final String ITEMIZE_TYPE="itemize_type"; + public static final String MATERIAL_CODE="material_code"; } diff --git a/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java b/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java index b196a15..3420da8 100644 --- a/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java +++ b/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java @@ -20,7 +20,9 @@ /** * 鏉愭枡淇℃伅 - * @author 86151 + * 鍖呭惈鎺ュ彛锛氭潗鏂欑被鍨嬫爲鎺ュ彛銆佸垪琛ㄦ帴鍙c�佷繚瀛樻帴鍙� + * 涓嶅寘鍚帴鍙o細璇︽儏鎺ュ彛銆佸垹闄ゆ帴鍙�,閲囩敤閫氱敤鎺ュ彛 + * @author * */ @RequestMapping("/api/material") @@ -84,28 +86,6 @@ } } - /** - * 鑾峰彇鏉愭枡淇℃伅 - * @param request - * @param response - * @return - */ - @RequestMapping(value="/get/{version}", method = RequestMethod.POST) - @ApiVersion(1) - public String getMaterialInfo(HttpServletRequest request, HttpServletResponse response) { - try { - //鑾峰彇鍙傛暟 - FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_PROJECT_BASE_MATERIAL);; - - //鍒ゆ柇uuid鏄惁涓虹┖ - if (BaseUtil.strIsNull(fse.getUUID())) { - return error(BaseErrorCode.SYSTEM_FORM_COUNT.getValue(), BaseErrorCode.SYSTEM_FORM_COUNT.getValue()); - } - return OK_List(materialManagerService.getMaterialInfo(fse.getUUID())); - } catch (Exception e) { - return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); - } - } /** * 淇濆瓨鏉愭枡淇℃伅 @@ -126,34 +106,6 @@ return OK(); } return error(BaseErrorCode.PROJECT_BASE_MATERIAL_SAVE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_DELETE_FAIL.getText()); - } catch (Exception e) { - return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); - } - } - - /** - * 鍒犻櫎鏉愭枡淇℃伅 - * @param request - * @param response - * @return - */ - @RequestMapping(value="/delete/{version}",method = RequestMethod.POST) - @ApiVersion(1) - public String deleteWarehousrInfo(HttpServletRequest request, HttpServletResponse response) { - try { - //鑾峰彇鍙傛暟 - FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_PROJECT_BASE_MATERIAL);; - - //鍒ゆ柇uuid鏄惁涓虹┖ - if (BaseUtil.strIsNull(fse.getUUID())) { - return error(BaseErrorCode.SYSTEM_FORM_COUNT.getValue(), BaseErrorCode.SYSTEM_FORM_COUNT.getValue()); - } - //鍒犻櫎 - boolean succ = materialManagerService.deleteMaterialInfo(fse.getUUID()); - if (succ) { - return OK(); - } - return error(BaseErrorCode.PROJECT_BASE_MATERIAL_DELETE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_DELETE_FAIL.getText()); } catch (Exception e) { return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); } diff --git a/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java b/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java index 6b035b3..0085d06 100644 --- a/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java +++ b/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java @@ -1,12 +1,17 @@ package com.product.base.service; +import java.util.ArrayList; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import com.product.base.config.BaseErrorCode; import com.product.base.config.CmnConst; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; +import com.product.core.exception.BaseException; import com.product.core.service.support.AbstractBaseService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.module.sys.entity.SystemUser; @@ -48,14 +53,6 @@ return dt; } - /** - * 鑾峰彇鏉愭枡淇℃伅 - * @param uuid - * @return - */ - public FieldSetEntity getMaterialInfo(String uuid) { - return baseDao.getFieldSet(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, uuid, false); - } /** * 淇濆瓨鏉愭枡淇℃伅 @@ -63,22 +60,24 @@ * @return */ public boolean saveMaterialInfo(FieldSetEntity fse) { + + //楠岄噸鏉′欢 + String filter = "material_code=?"; + List<String> param = new ArrayList<>(); + param.add(fse.getString(CmnConst.MATERIAL_CODE)); + SystemUser sysUser = SpringMVCContextHolder.getCurrentUser(); if (BaseUtil.strIsNull(fse.getUUID())) { BaseUtil.createCreatorAndCreationTime(sysUser, fse); }else { + filter += " AND uuid !=?"; + param.add(fse.getUUID()); BaseUtil.updatedRegeneratorAndUpdateTime(sysUser, fse); } + FieldSetEntity fseExistMaterialCode = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, filter, param.toArray(), false); + if (fseExistMaterialCode!=null) { + throw new BaseException(BaseErrorCode.PROJECT_BASE_MATERIAL_CODE_REPEAT.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_CODE_REPEAT.getText()); + } return baseDao.saveFieldSetEntity(fse); - } - - /** - * 鍒犻櫎鏉愭枡淇℃伅 - * @param uuid - * @return - */ - public boolean deleteMaterialInfo(String uuid) { - Object [] uuids= uuid.split(","); - return baseDao.delete(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, "uuid=?", uuids); } } diff --git a/product-server-project-management/src/main/java/com/product/project/management/config/SystemCode.java b/product-server-project-management/src/main/java/com/product/project/management/config/SystemCode.java index e8b4de1..266a7ef 100644 --- a/product-server-project-management/src/main/java/com/product/project/management/config/SystemCode.java +++ b/product-server-project-management/src/main/java/com/product/project/management/config/SystemCode.java @@ -12,6 +12,7 @@ PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL("椤圭洰鍒嗛」鍒犻櫎澶辫触锛屽凡缁忕敓鎴愰绠�",""), PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR("椤圭洰鍒嗛」鎿嶄綔閿欒锛�",""), + PROJECT_BUDGET_IMPORT_FAIL("椤圭洰棰勭畻瀵煎叆澶辫触",""), ; private String text; diff --git a/product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java new file mode 100644 index 0000000..3bc336b --- /dev/null +++ b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java @@ -0,0 +1,82 @@ +package com.product.project.management.service; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.product.core.dao.BaseDao; +import com.product.core.entity.DataTableEntity; +import com.product.core.entity.FieldSetEntity; +import com.product.core.exception.BaseException; +import com.product.core.service.support.AbstractBaseService; +import com.product.project.management.config.Cmnconst; +import com.product.project.management.config.SystemCode; +import com.product.util.BaseUtil; + +@Service("projectBudget") +public class ProjectBudgetService extends AbstractBaseService{ + + @Autowired + BaseDao baseDao; + + /** + * 椤圭洰棰勭畻瀵煎叆 + * @param dtParseData 瑙f瀽鏁版嵁 + * @param headerDataList excel鏍囬鏁版嵁 + */ + public DataTableEntity importBudget(DataTableEntity dtParseData, List<List<String>> headerDataList) { + //鍒ゆ柇鏄惁鏈夎В鏋怑XCEL鏁版嵁 + if (BaseUtil.dataTableIsEmpty(dtParseData)) { + return null; + } + //澹版槑寮傚父闆� + StringBuilder sbError = new StringBuilder(); + //閬嶅巻excel杞崲鏁版嵁 + for (int i = 0; i < dtParseData.getRows(); i++) { + FieldSetEntity fseParseData = dtParseData.getFieldSetEntity(i); + + //鏍规嵁瑙f瀽鏁版嵁鑾峰彇椤圭洰鍒嗛」淇℃伅 + List<Object> params = new ArrayList<>(); + String projectItem = autoCreateFilter(params, fseParseData); + + FieldSetEntity fseProjectItem = baseDao.getFieldSetEntityByFilter(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid IN (SELECT uuid FROM product_project_qxlw WHERE project_name=?) AND itemize_full_name=?", params.toArray(), false); + if(fseProjectItem==null) { + sbError.append(String.format("绗� %s 琛岄」鐩垎椤� '%s' 涓嶅瓨鍦ㄤ簬绯荤粺涓��", fseParseData.getString("~row~"), projectItem)); + continue; + } + fseParseData.setValue("project_itemize_uuid", fseProjectItem.getUUID()); + } + if (!BaseUtil.strIsNull(sbError.toString())) { + throw new BaseException(SystemCode.PROJECT_BUDGET_IMPORT_FAIL.getValue(), sbError.toString()); + } +// baseDao.add(dtParseData); + return dtParseData; + } + + /** + * 鑷姩鐢熸垚鏌ヨ椤圭洰鍒嗛」filter + * @param params + * @param fseParseData + * @return + */ + public String autoCreateFilter(List<Object> params , FieldSetEntity fseParseData) { + StringBuilder projectItem = new StringBuilder(); + for (int i = 1; i < 7; i++) { + String fieldValue = fseParseData.getString("field"+i); + if(!BaseUtil.strIsNull(fieldValue)) { + if (i>2) { + projectItem.append("/"); + } + if(i==1) { + params.add(fieldValue); + }else{ + projectItem.append(fieldValue); + } + } + } + params.add(projectItem.toString()); + return projectItem.toString(); + } +} 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 a331ef5..7b38697 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 @@ -93,12 +93,13 @@ //鑾峰彇鏁版嵁搴撳師濮嬫暟鎹� 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(" SELECT A.project_uuid,D.itemize 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(" LEFT JOIN product_project_item D ON A.project_itemize = D.uuid ") + .append(" WHERE A.flow_flag=2 AND A.project_uuid = ? ") + .append(" GROUP BY A.project_uuid,D.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 ( ") @@ -106,7 +107,8 @@ .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 "); + .append(" RIGHT JOIN outbound B ON A.project_uuid=B.project_uuid AND A.project_itemize=B.project_itemize ") + .append(" ORDER BY project_itemize,material_code"); DataTableEntity dtItemizeInfo = baseDao.listTable(sb.toString(), new Object[]{project_uuid}); if (!BaseUtil.dataTableIsEmpty(dtItemizeInfo)) { @@ -126,7 +128,9 @@ if (BaseUtil.strIsNull(materialTypes[materialType])) { materialTypes[materialType] = materialCode; } else { - materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)] += "," + materialCode; + if(materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)].indexOf(materialCode)<0) { + materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)] += "," + materialCode; + } } //鏀堕泦琛岃浆鍒楁暟鎹� diff --git a/product-server-web/pom.xml b/product-server-web/pom.xml index ce63699..349e0d4 100644 --- a/product-server-web/pom.xml +++ b/product-server-web/pom.xml @@ -146,10 +146,6 @@ <groupId>com.lx</groupId> <artifactId>product-server-tool-table</artifactId> </dependency> - <dependency> - <groupId>com.lx</groupId> - <artifactId>product-server-announcement</artifactId> - </dependency> <dependency> <groupId>com.lx</groupId> -- Gitblit v1.9.2