2369059705@qq.com
2023-07-07 c913a335643619ac7d1943d75ce06f71a31b8185
Merge branch 'master' of http://nonxin.cn:8090/r/project/qxlw
已添加1个文件
已修改7个文件
192 ■■■■■ 文件已修改
product-server-project-base/src/main/java/com/product/base/config/BaseErrorCode.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-base/src/main/java/com/product/base/config/CmnConst.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-management/src/main/java/com/product/project/management/config/SystemCode.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-management/src/main/java/com/product/project/management/service/ProjectInfoService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-web/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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("项目类型删除失败!", ""),
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";
    
    
}
product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java
@@ -20,7 +20,9 @@
/**
 *     ææ–™ä¿¡æ¯
 * @author 86151
 *     åŒ…含接口:材料类型树接口、列表接口、保存接口
 *     ä¸åŒ…含接口:详情接口、删除接口,采用通用接口
 * @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());
        }
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);
        }
        return baseDao.saveFieldSetEntity(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());
    }
    /**
     *     åˆ é™¤ææ–™ä¿¡æ¯
     * @param uuid
     * @return
     */
    public boolean deleteMaterialInfo(String uuid) {
        Object [] uuids= uuid.split(",");
        return baseDao.delete(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, "uuid=?", uuids);
        return baseDao.saveFieldSetEntity(fse);
    }
}
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;
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     è§£æžæ•°æ®
     * @param headerDataList excel标题数据
     */
    public DataTableEntity importBudget(DataTableEntity dtParseData, List<List<String>> headerDataList) {
        //判断是否有解析EXCEL数据
        if (BaseUtil.dataTableIsEmpty(dtParseData)) {
            return null;
        }
        //声明异常集
        StringBuilder sbError = new StringBuilder();
        //遍历excel转换数据
        for (int i = 0; i < dtParseData.getRows(); i++) {
            FieldSetEntity fseParseData = dtParseData.getFieldSetEntity(i);
            //根据解析数据获取项目分项信息
            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();
    }
}
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,8 +128,10 @@
                if (BaseUtil.strIsNull(materialTypes[materialType])) {
                    materialTypes[materialType] = materialCode;
                } else {
                    if(materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)].indexOf(materialCode)<0) {
                    materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)] += "," + materialCode;
                }
                }
                //收集行转列数据
                String itemize = fseItemize.getString(Cmnconst.PROJECT_ITEMIZE);
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>