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