diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java index 226b9d41..b4d818d3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java @@ -153,7 +153,7 @@ public class ESAnnualInitController { @PostMapping("/importExcel") @ApiOperation(value = "企标年度制修订标准化发起流程-导入", notes = "企标年度制修订标准化发起流程-导入") @AutoLog(value = "企标年度制修订标准化发起流程-导入") - @DictPoint + @Translation public Result importExcel(@ApiParam(value = "要上传的文件", required = true) @RequestParam("file") MultipartFile file) { Map resultMap = annualInitService.importData(file); Object flag = resultMap.get("flag"); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java index 8916802a..df159bb9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java @@ -130,25 +130,18 @@ public class ProcessEsAnnualInit implements Serializable { @ApiModelProperty(value = "企标英文名称") private String enStandardEnglishName; - /** - * 企标体系 - */ - @Excel(name = "*标准体系", width = 25, orderNum = "5") - @Dict(dictTable = "laws_tree_node", dicCode = "id", dicText = "node_name") - @ApiModelProperty(value = "企标体系") - private String enStandardSystem; - /** * 企业标准代号 */ - @Excel(name = "企业标准代号", width = 15, orderNum = "6") + @Excel(name = "企业标准代号", width = 15, orderNum = "4") @ApiModelProperty(value = "企业标准代号") + @Dict(dicCode = "enterprise_standard_code") private String enStandardCode; /** * 企业名称代号 */ - @Excel(name = "企业名称代号", width = 15, orderNum = "7") + @Excel(name = "企业名称代号", width = 15, orderNum = "5") @Dict(dicCode = "enterprise_name_code") @ApiModelProperty(value = "企业名称代号") private String enNameCode; @@ -156,11 +149,19 @@ public class ProcessEsAnnualInit implements Serializable { /** * 标准类别代号 */ - @Excel(name = "标准类别代号", width = 15, orderNum = "8") + @Excel(name = "标准类别代号", width = 15, orderNum = "6") @Dict(dicCode = "standard_category_code") @ApiModelProperty(value = "标准类别代号") private String standardCategoryCode; + /** + * 企标体系 + */ + @Excel(name = "*标准体系", width = 25, orderNum = "7") + @Dict(dictTable = "laws_tree_node", dicCode = "id", dicText = "node_name") + @ApiModelProperty(value = "企标体系") + private String enStandardSystem; + /** * 年代号 */ @@ -170,7 +171,7 @@ public class ProcessEsAnnualInit implements Serializable { /** * 标准类型 */ - @Excel(name = "*标准类型", width = 15, orderNum = "13") + @Excel(name = "标准类型", width = 15, orderNum = "8") @Dict(dicCode = "esp_standard_type") @ApiModelProperty(value = "标准类型") private String standardType; @@ -178,7 +179,7 @@ public class ProcessEsAnnualInit implements Serializable { /** * 企标等级分类 */ - @Excel(name = "*标准等级分类", width = 15, orderNum = "14") + @Excel(name = "标准等级分类", width = 15, orderNum = "9") @Dict(dicCode = "standard_grade_classify") @ApiModelProperty(value = "企标等级分类") private String enStandardClassification; @@ -186,30 +187,36 @@ public class ProcessEsAnnualInit implements Serializable { /** * 草稿计划完成日期 */ - @Excel(name = "草稿计划完成日期", width = 20, orderNum = "17") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "草稿计划完成日期") private Date draftPlannedCompleteDate; + @Excel(name = "草稿计划完成日期", width = 20, orderNum = "10") + private String draftPlannedCompleteDateString; + /** * 征求意见稿计划完成日期 */ - @Excel(name = "征求意见稿计划完成日期", width = 24, orderNum = "18") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "征求意见稿计划完成日期") private Date solicitationDraftPlanCompleteDate; + @Excel(name = "征求意见稿计划完成日期", width = 24, orderNum = "11") + private String solicitationDraftPlanCompleteDateString; + /** * 计划报批日期 */ - @Excel(name = "计划报批日期", width = 15, orderNum = "19") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "计划报批日期") private Date planApprovalDate; + @Excel(name = "计划报批日期", width = 15, orderNum = "12") + private String planApprovalDateString; + /** * 项目状态 */ @@ -225,21 +232,31 @@ public class ProcessEsAnnualInit implements Serializable { /** * 零部件名称 */ + @Excel(name = "*零部件名称", width = 15, orderNum = "13") + @Dict(dicCode = "part_name") @ApiModelProperty(value = "零部件名称") private String componentName; + /** + * 授权部门 + */ + @Excel(name = "*授权部门", width = 15, orderNum = "14") + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @ApiModelProperty(value = "授权部门") + private String authDept; + /** * 主起草人 */ - @Excel(name = "*主起草人", width = 15, orderNum = "10") - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Excel(name = "*主起草人", width = 15, orderNum = "15") + @Dict(dicCode = "id", dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "主起草人") private String mainDraftingUser; /** * 主起草单位 */ - @Excel(name = "*主起草单位", width = 15, orderNum = "11") + @Excel(name = "*主起草单位", width = 15, orderNum = "16") @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "主起草单位") private String mainDraftingUnit; @@ -247,16 +264,16 @@ public class ProcessEsAnnualInit implements Serializable { /** * 主起草单位责任人 */ - @Excel(name = "*主起草单位责任人", width = 20, orderNum = "12") - @Dict(dicCode = "id", dictTable = "sys_user", dicText = "realname") + @Excel(name = "*主起草单位责任人", width = 20, orderNum = "17") + @Dict(dicCode = "id", dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "主起草单位责任人") private String mainDraftingUnitResponsiblePerson; /** * 标准推进人 */ - @Excel(name = "*标准推进人", width = 15, orderNum = "16") - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Excel(name = "*标准推进人", width = 15, orderNum = "18") + @Dict(dicCode = "id", dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "标准推进人") private String standardPromoter; @@ -278,7 +295,6 @@ public class ProcessEsAnnualInit implements Serializable { /** * 上传附件 */ - @Dict(dictTable = "oss_file", dicCode = "id", dicText = "file_name") @ApiModelProperty(value = "上传附件") private String uploadAttachment; @@ -288,18 +304,10 @@ public class ProcessEsAnnualInit implements Serializable { @ApiModelProperty(value = "变更原因") private String changeReason; - /** - * 授权部门 - */ - @Excel(name = "*授权部门", width = 15, orderNum = "4") - @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") - @ApiModelProperty(value = "授权部门") - private String authDept; - /** * 配合单位 */ - @Excel(name = "*配合单位", width = 15, orderNum = "9") + @Excel(name = "*配合单位", width = 15, orderNum = "19") @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") @ApiModelProperty(value = "配合单位") private String cooperationUnit; @@ -307,15 +315,15 @@ public class ProcessEsAnnualInit implements Serializable { /** * 联络人 */ - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") - @Excel(name = "*联络人", width = 15, orderNum = "15") + @Excel(name = "*联络人", width = 15, orderNum = "20") + @Dict(dicCode = "id", dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "联络人") private String contactUser; /** * 流程中的主起草人 */ - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Dict(dicCode = "id", dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "流程中的主起草人") private String prcMainDraftUser; @@ -335,7 +343,7 @@ public class ProcessEsAnnualInit implements Serializable { /** * 审批人 */ - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Dict(dicCode = "id", dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')") @ApiModelProperty(value = "审批人") private String approvalUser; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index 39a24da2..572e233e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -22,9 +22,12 @@ import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeService; import com.jero.modules.activiti.util.ExcelUtils; +import com.jero.modules.laws.common.util.ImportUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.sys.utils.UserUtils; +import lombok.Cleanup; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; @@ -38,6 +41,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; +import java.io.InputStream; import java.util.*; import java.util.stream.Collectors; @@ -81,6 +85,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl importData(MultipartFile file) { List listDict = commonAPI.getDictItemAll(); Map resultMap = new HashMap<>(); @@ -356,7 +364,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list = ExcelImportUtil.importExcel(file.getInputStream(), ProcessEsAnnualInit.class, params); + @Cleanup + InputStream inputStream = file.getInputStream(); + List list = ExcelImportUtil.importExcel(inputStream, ProcessEsAnnualInit.class, params); list.remove(0); list.remove(0); if (list.isEmpty()) { @@ -367,7 +377,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl 0) { + if (!errorMsgs.isEmpty()) { resultMap.put("msg", errorMsgs); resultMap.put("flag", YesOrNoEnum.NO.getValue()); } else { @@ -383,12 +393,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list, List listDict) { list.forEach(item -> { - item.setProjectType(excelUtils.translateDictValue("esp_revision_type", item.getProjectType(), listDict)); item.setAuthDept(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getAuthDept(), listDict)); - item.setEnStandardCode(excelUtils.translateDictValue("enterprise_standard_code", item.getEnStandardCode(), listDict)); item.setCooperationUnit(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getCooperationUnit(), listDict)); item.setMainDraftingUser(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getMainDraftingUser(), listDict)); item.setMainDraftingUnit(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getMainDraftingUnit(), listDict)); item.setMainDraftingUnitResponsiblePerson(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getMainDraftingUnitResponsiblePerson(), listDict)); item.setStandardPromoter(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getStandardPromoter(), listDict)); + item.setEnStandardSystem(excelUtils.translateDictValue("node_name", "id", "laws_tree_node", item.getEnStandardSystem(), listDict)); item.setContactUser(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getContactUser(), listDict)); + item.setStandardType(excelUtils.translateDictValue("esp_standard_type", item.getStandardType(), listDict)); + item.setEnStandardCode(excelUtils.translateDictValue("enterprise_standard_code", item.getEnStandardCode(), listDict)); + item.setEnStandardClassification(excelUtils.translateDictValue("standard_category_code", item.getEnStandardClassification(), listDict)); + item.setComponentName(excelUtils.translateDictValue("part_name", item.getComponentName(), listDict)); + item.setProjectType(excelUtils.translateDictValue("esp_revision_type", item.getProjectType(), listDict)); + item.setDraftPlannedCompleteDate(importUtil.convertDate(item.getDraftPlannedCompleteDateString())); + item.setSolicitationDraftPlanCompleteDate(importUtil.convertDate(item.getSolicitationDraftPlanCompleteDateString())); + item.setPlanApprovalDate(importUtil.convertDate(item.getPlanApprovalDateString())); }); } @@ -459,6 +470,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl 0) { errorMsgs.add(errMsgHeader.append(errMsg).toString()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/controller/ESAnnualReportController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/controller/ESAnnualReportController.java index 29dd3690..60310b19 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/controller/ESAnnualReportController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/controller/ESAnnualReportController.java @@ -79,7 +79,7 @@ public class ESAnnualReportController { @PostMapping("/importExcel") @ApiOperation(value = "企标年度制修订主动上报流程-导入", notes = "企标年度制修订主动上报流程-导入") @AutoLog(value = "企标年度制修订主动上报流程-导入") - @DictPoint + @Translation public Result importExcel(@ApiParam(value = "要上传的文件", required = true) @RequestParam("file") MultipartFile file) { Map resultMap = annualReportService.importData(file); Object flag = resultMap.get("flag"); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java index 49afe904..e481c8ca 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java @@ -356,12 +356,6 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl() { - @Override - public int compare(Field o1, Field o2) { - Excel excel1 = o1.getAnnotation(Excel.class); - Excel excel2 = o2.getAnnotation(Excel.class); - return Integer.compare(Integer.parseInt(excel1.orderNum()), Integer.parseInt(excel2.orderNum())); - } + annotatedFields.sort((o1, o2) -> { + Excel excel1 = o1.getAnnotation(Excel.class); + Excel excel2 = o2.getAnnotation(Excel.class); + return Integer.compare(Integer.parseInt(excel1.orderNum()), Integer.parseInt(excel2.orderNum())); }); // 提取排序后字段的name属性值 @@ -375,4 +372,26 @@ public class ExcelUtils { } } + + public String validPartName(String value, List listDict) { + if (StrUtil.isBlank(value)) { + return "零部件名称不能为空"; + } + // 检查工作组 + if (!excelUtils.validDict("part_name", value, null, null, true, listDict)) { + return "'零部件名称'无效。"; + } + return ""; + } + + public String validStandardCode(String value, List listDict) { + if (StrUtil.isBlank(value)) { + return ""; + } + // 检查工作组 + if (!excelUtils.validDict("enterprise_standard_code", value, null, null, true, listDict)) { + return "'企业标准代号'无效。"; + } + return ""; + } } diff --git a/laws-modules/src/main/resources/excelTemplate/es-annual-init.xlsx b/laws-modules/src/main/resources/excelTemplate/es-annual-init.xlsx index 32150b98..0b3eed8c 100644 Binary files a/laws-modules/src/main/resources/excelTemplate/es-annual-init.xlsx and b/laws-modules/src/main/resources/excelTemplate/es-annual-init.xlsx differ