feat: 年段制修订主动上报导入
This commit is contained in:
+5
-8
@@ -18,10 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.jero.common.system.base.controller.JeroController.*;
|
import static com.jero.common.system.base.controller.JeroController.*;
|
||||||
@@ -43,19 +40,19 @@ public class ESAnnualInitController {
|
|||||||
* 导入模板下载
|
* 导入模板下载
|
||||||
*/
|
*/
|
||||||
@GetMapping("/templateDownload")
|
@GetMapping("/templateDownload")
|
||||||
@ApiOperation(value = "企标年度制修订标准化发起流程-导入模板下载", notes = "企标年度制修订标准化发起流程-导入模板下载",
|
@ApiOperation(value = "企标年度制修订标准化发起流程-模板下载", notes = "企标年度制修订标准化发起流程-模板下载",
|
||||||
produces = "application/octet-stream")
|
produces = "application/octet-stream")
|
||||||
@AutoLog(value = "企标年度制修订标准化发起流程-导入模板下载")
|
@AutoLog(value = "企标年度制修订标准化发起流程-模板下载")
|
||||||
public ModelAndView templateDownload() {
|
public ModelAndView templateDownload() {
|
||||||
// AutoPoi 导出Excel
|
// AutoPoi 导出Excel
|
||||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||||
String title = "标准化发起导入模板";
|
String title = "标准化发起导入模板";
|
||||||
mv.addObject(FILE_NAME, title);
|
mv.addObject(FILE_NAME, title);
|
||||||
mv.addObject(CLASS, ProcessEsAnnualInit.class);
|
mv.addObject(CLASS, ProcessEsAnnualInit.class);
|
||||||
ExportParams exportParams=new ExportParams(title, title);
|
ExportParams exportParams = new ExportParams(title, title);
|
||||||
// 导出xlsx
|
// 导出xlsx
|
||||||
exportParams.setType(ExcelType.XSSF);
|
exportParams.setType(ExcelType.XSSF);
|
||||||
mv.addObject(PARAMS,exportParams);
|
mv.addObject(PARAMS, exportParams);
|
||||||
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
|
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
|
||||||
return mv;
|
return mv;
|
||||||
}
|
}
|
||||||
@@ -72,7 +69,7 @@ public class ESAnnualInitController {
|
|||||||
public Result<?> importExcel(@ApiParam(value = "要上传的文件", required = true) @RequestParam("file") MultipartFile file) {
|
public Result<?> importExcel(@ApiParam(value = "要上传的文件", required = true) @RequestParam("file") MultipartFile file) {
|
||||||
Map<String, Object> resultMap = annualInitService.importData(file);
|
Map<String, Object> resultMap = annualInitService.importData(file);
|
||||||
Object flag = resultMap.get("flag");
|
Object flag = resultMap.get("flag");
|
||||||
if (flag == YesOrNoEnum.YES.getValue()) {
|
if (flag == YesOrNoEnum.YES.getValue()) {
|
||||||
return Result.OK(resultMap.get("dataList"));
|
return Result.OK(resultMap.get("dataList"));
|
||||||
} else {
|
} else {
|
||||||
return Result.error("导入失败", resultMap.get("msg"));
|
return Result.error("导入失败", resultMap.get("msg"));
|
||||||
|
|||||||
-145
@@ -1,145 +0,0 @@
|
|||||||
package com.jero.modules.activiti.process.esAnnualInit.entity;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.experimental.Accessors;
|
|
||||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 企标-年度制修订计划-标准化发起
|
|
||||||
* @TableName process_es_annual_init
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Accessors(chain = true)
|
|
||||||
public class EsAnnualInitImportDTO implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 制修订类型
|
|
||||||
*/
|
|
||||||
@Excel(name = "制修订类型", width = 15, orderNum = "1")
|
|
||||||
@ApiModelProperty(value = "制修订类型")
|
|
||||||
private String projectType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 原企标编号
|
|
||||||
*/
|
|
||||||
@Excel(name = "原企标编号", width = 15, orderNum = "2")
|
|
||||||
@ApiModelProperty(value = "原企标编号")
|
|
||||||
private String originEnStandardNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新企标编号
|
|
||||||
*/
|
|
||||||
@Excel(name = "新企标编号", width = 15, orderNum = "3")
|
|
||||||
@ApiModelProperty(value = "新企标编号")
|
|
||||||
private String newEnStandardNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 原企标名称
|
|
||||||
*/
|
|
||||||
@Excel(name = "原企标名称", width = 15, orderNum = "4")
|
|
||||||
@ApiModelProperty(value = "原企标名称")
|
|
||||||
private String originEnStandardName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新企标名称
|
|
||||||
*/
|
|
||||||
@Excel(name = "新企标名称", width = 15, orderNum = "5")
|
|
||||||
@ApiModelProperty(value = "新企标名称")
|
|
||||||
private String newEnStandardName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 授权部门
|
|
||||||
*/
|
|
||||||
@Excel(name = "授权部门", width = 15, orderNum = "6")
|
|
||||||
@ApiModelProperty(value = "授权部门")
|
|
||||||
private String authDept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 企业标准代号
|
|
||||||
*/
|
|
||||||
@Excel(name = "企业标准代号", width = 15, orderNum = "7")
|
|
||||||
@ApiModelProperty(value = "企业标准代号")
|
|
||||||
private String enStandardCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配合单位
|
|
||||||
*/
|
|
||||||
@Excel(name = "配合单位", width = 15, orderNum = "8")
|
|
||||||
@ApiModelProperty(value = "配合单位")
|
|
||||||
private String cooperationUnit;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主起草人
|
|
||||||
*/
|
|
||||||
@Excel(name = "主起草人", width = 15, orderNum = "9")
|
|
||||||
@ApiModelProperty(value = "主起草人")
|
|
||||||
private String mainDraftingUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主起草单位
|
|
||||||
*/
|
|
||||||
@Excel(name = "主起草单位", width = 15, orderNum = "10")
|
|
||||||
@ApiModelProperty(value = "主起草单位")
|
|
||||||
private String mainDraftingUnit;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主起草单位责任人
|
|
||||||
*/
|
|
||||||
@Excel(name = "主起草单位责任人", width = 20, orderNum = "11")
|
|
||||||
@ApiModelProperty(value = "主起草单位责任人")
|
|
||||||
private String mainDraftingUnitResponsiblePerson;
|
|
||||||
|
|
||||||
@Excel(name = "标准推进人", width = 15, orderNum = "12")
|
|
||||||
@ApiModelProperty(value = "标准推进人")
|
|
||||||
private String standardPromoter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 草稿计划完成日期
|
|
||||||
*/
|
|
||||||
@Excel(name = "草稿计划完成日期", width = 20, orderNum = "13")
|
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
|
||||||
@ApiModelProperty(value = "草稿计划完成日期")
|
|
||||||
private Date draftPlannedCompleteDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 征求意见稿计划完成日期
|
|
||||||
*/
|
|
||||||
@Excel(name = "征求意见稿计划完成日期", width = 24, orderNum = "14")
|
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
|
||||||
@ApiModelProperty(value = "征求意见稿计划完成日期")
|
|
||||||
private Date solicitationDraftPlanCompleteDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 计划报批日期
|
|
||||||
*/
|
|
||||||
@Excel(name = "计划报批日期", width = 15, orderNum = "15")
|
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
|
||||||
@ApiModelProperty(value = "计划报批日期")
|
|
||||||
private Date planApprovalDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 变更状态
|
|
||||||
*/
|
|
||||||
@Excel(name = "变更状态", width = 15, orderNum = "16")
|
|
||||||
@ApiModelProperty(value = "变更状态")
|
|
||||||
private String changeStatus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 联络人
|
|
||||||
*/
|
|
||||||
@Excel(name = "联络人", width = 15, orderNum = "17")
|
|
||||||
@ApiModelProperty(value = "联络人")
|
|
||||||
private String contactUser;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "序号")
|
|
||||||
private String sort;
|
|
||||||
}
|
|
||||||
+33
-5
@@ -1,21 +1,27 @@
|
|||||||
package com.jero.modules.activiti.process.esAnnualReport.controller;
|
package com.jero.modules.activiti.process.esAnnualReport.controller;
|
||||||
|
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.aspect.annotation.AutoLog;
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
import com.jero.common.aspect.annotation.Translation;
|
||||||
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||||
|
import com.jero.modules.activiti.process.esAnnualReport.service.ProcessEsAnnualReportService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.jero.common.system.base.controller.JeroController.*;
|
import static com.jero.common.system.base.controller.JeroController.*;
|
||||||
|
|
||||||
@@ -29,6 +35,9 @@ import static com.jero.common.system.base.controller.JeroController.*;
|
|||||||
@RequestMapping("/process/es/annualReport")
|
@RequestMapping("/process/es/annualReport")
|
||||||
public class ESAnnualReportController {
|
public class ESAnnualReportController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProcessEsAnnualReportService annualReportService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入模板下载
|
* 导入模板下载
|
||||||
*/
|
*/
|
||||||
@@ -42,12 +51,31 @@ public class ESAnnualReportController {
|
|||||||
String title = "各部门主动上报导入模板";
|
String title = "各部门主动上报导入模板";
|
||||||
mv.addObject(FILE_NAME, title);
|
mv.addObject(FILE_NAME, title);
|
||||||
mv.addObject(CLASS, ProcessEsAnnualReport.class);
|
mv.addObject(CLASS, ProcessEsAnnualReport.class);
|
||||||
ExportParams exportParams=new ExportParams(title, title);
|
ExportParams exportParams = new ExportParams(title, title);
|
||||||
// 导出xlsx
|
// 导出xlsx
|
||||||
exportParams.setType(ExcelType.XSSF);
|
exportParams.setType(ExcelType.XSSF);
|
||||||
mv.addObject(PARAMS,exportParams);
|
mv.addObject(PARAMS, exportParams);
|
||||||
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
|
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
|
||||||
return mv;
|
return mv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过excel导入数据
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/importExcel")
|
||||||
|
@ApiOperation(value = "企标年度制修订主动上报流程-导入", notes = "企标年度制修订主动上报流程-导入")
|
||||||
|
@AutoLog(value = "企标年度制修订主动上报流程-导入")
|
||||||
|
@Translation
|
||||||
|
public Result<?> importExcel(@ApiParam(value = "要上传的文件", required = true) @RequestParam("file") MultipartFile file) {
|
||||||
|
Map<String, Object> resultMap = annualReportService.importData(file);
|
||||||
|
Object flag = resultMap.get("flag");
|
||||||
|
if (flag == YesOrNoEnum.YES.getValue()) {
|
||||||
|
return Result.OK(resultMap.get("dataList"));
|
||||||
|
} else {
|
||||||
|
return Result.error("导入失败", resultMap.get("msg"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-10
@@ -8,7 +8,6 @@ import java.io.Serializable;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import com.jero.common.aspect.annotation.Dict;
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@@ -109,7 +108,6 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 新企标编号
|
* 新企标编号
|
||||||
*/
|
*/
|
||||||
@Excel(name = "新企标编号", width = 15, orderNum = "3")
|
|
||||||
@ApiModelProperty(value = "新企标编号")
|
@ApiModelProperty(value = "新企标编号")
|
||||||
private String newEnStandardNo;
|
private String newEnStandardNo;
|
||||||
|
|
||||||
@@ -142,7 +140,7 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 企业标准代号
|
* 企业标准代号
|
||||||
*/
|
*/
|
||||||
@Excel(name = "企业标准代号", width = 15, orderNum = "7", dicCode = "enterprise_standard_code")
|
@Excel(name = "企业标准代号", width = 15, orderNum = "7")
|
||||||
@Dict(dicCode = "enterprise_standard_code")
|
@Dict(dicCode = "enterprise_standard_code")
|
||||||
@ApiModelProperty(value = "企业标准代号")
|
@ApiModelProperty(value = "企业标准代号")
|
||||||
private String enStandardCode;
|
private String enStandardCode;
|
||||||
@@ -231,14 +229,14 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 主起草单位
|
* 主起草单位
|
||||||
*/
|
*/
|
||||||
@Excel(name = "主起草单位", width = 15, orderNum = "9", dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
@Excel(name = "主起草单位", width = 15, orderNum = "9")
|
||||||
@ApiModelProperty(value = "主起草单位")
|
@ApiModelProperty(value = "主起草单位")
|
||||||
private String mainDraftingUnit;
|
private String mainDraftingUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主起草单位责任人
|
* 主起草单位责任人
|
||||||
*/
|
*/
|
||||||
@Excel(name = "主起草单位责任人", width = 20, orderNum = "10", dictTable = "sys_user", dicCode = "id", dicText = "username")
|
@Excel(name = "主起草单位责任人", width = 20, orderNum = "10")
|
||||||
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "username")
|
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "username")
|
||||||
@ApiModelProperty(value = "主起草单位责任人")
|
@ApiModelProperty(value = "主起草单位责任人")
|
||||||
private String mainDraftingUnitResponsiblePerson;
|
private String mainDraftingUnitResponsiblePerson;
|
||||||
@@ -246,7 +244,7 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 标准推进人
|
* 标准推进人
|
||||||
*/
|
*/
|
||||||
@Excel(name = "标准推进人", width = 15, orderNum = "12", dicCode = "id", dictTable = "sys_user", dicText = "username")
|
@Excel(name = "标准推进人", width = 15, orderNum = "12")
|
||||||
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "username")
|
@Dict(dicCode = "id", dictTable = "sys_user", dicText = "username")
|
||||||
@ApiModelProperty(value = "标准推进人")
|
@ApiModelProperty(value = "标准推进人")
|
||||||
private String standardPromoter;
|
private String standardPromoter;
|
||||||
@@ -284,7 +282,6 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 变更状态
|
* 变更状态
|
||||||
*/
|
*/
|
||||||
@Excel(name = "变更状态", width = 15, orderNum = "16")
|
|
||||||
@Dict(dicCode = "esp_change_status")
|
@Dict(dicCode = "esp_change_status")
|
||||||
@ApiModelProperty(value = "变更状态")
|
@ApiModelProperty(value = "变更状态")
|
||||||
private String changeStatus;
|
private String changeStatus;
|
||||||
@@ -304,7 +301,7 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 授权部门
|
* 授权部门
|
||||||
*/
|
*/
|
||||||
@Excel(name = "授权部门", width = 15, orderNum = "6", dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
@Excel(name = "授权部门", width = 15, orderNum = "6")
|
||||||
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
||||||
@ApiModelProperty(value = "授权部门")
|
@ApiModelProperty(value = "授权部门")
|
||||||
private String authDept;
|
private String authDept;
|
||||||
@@ -312,7 +309,7 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 配合单位
|
* 配合单位
|
||||||
*/
|
*/
|
||||||
@Excel(name = "配合单位", width = 15, orderNum = "8", dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
@Excel(name = "配合单位", width = 15, orderNum = "8")
|
||||||
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
|
||||||
@ApiModelProperty(value = "配合单位")
|
@ApiModelProperty(value = "配合单位")
|
||||||
private String cooperationUnit;
|
private String cooperationUnit;
|
||||||
@@ -320,11 +317,15 @@ public class ProcessEsAnnualReport implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 隶属工作组
|
* 隶属工作组
|
||||||
*/
|
*/
|
||||||
@Excel(name = "隶属工作组", width = 15, orderNum = "11", dictTable = "laws_working_group", dicCode = "id", dicText = "name")
|
@Excel(name = "隶属工作组", width = 15, orderNum = "11")
|
||||||
@Dict(dictTable = "laws_working_group", dicCode = "id", dicText = "name")
|
@Dict(dictTable = "laws_working_group", dicCode = "id", dicText = "name")
|
||||||
@ApiModelProperty(value = "隶属工作组")
|
@ApiModelProperty(value = "隶属工作组")
|
||||||
private String workGroup;
|
private String workGroup;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String sort;
|
||||||
|
|
||||||
}
|
}
|
||||||
+4
@@ -2,6 +2,9 @@ package com.jero.modules.activiti.process.esAnnualReport.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ThinkBook
|
* @author ThinkBook
|
||||||
@@ -10,4 +13,5 @@ import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualRe
|
|||||||
*/
|
*/
|
||||||
public interface ProcessEsAnnualReportService extends IService<ProcessEsAnnualReport> {
|
public interface ProcessEsAnnualReportService extends IService<ProcessEsAnnualReport> {
|
||||||
|
|
||||||
|
Map<String, Object> importData(MultipartFile file);
|
||||||
}
|
}
|
||||||
|
|||||||
+271
-3
@@ -1,13 +1,28 @@
|
|||||||
package com.jero.modules.activiti.process.esAnnualReport.service.impl;
|
package com.jero.modules.activiti.process.esAnnualReport.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.jero.common.api.CommonAPI;
|
||||||
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.system.vo.SysDictItemCore;
|
||||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||||
import com.jero.modules.activiti.process.esAnnualReport.mapper.ProcessEsAnnualReportMapper;
|
import com.jero.modules.activiti.process.esAnnualReport.mapper.ProcessEsAnnualReportMapper;
|
||||||
|
import com.jero.modules.activiti.process.esAnnualReport.service.ProcessEsAnnualReportService;
|
||||||
|
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType;
|
||||||
|
import com.jero.modules.activiti.util.ExcelUtils;
|
||||||
|
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||||
|
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||||
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ThinkBook
|
* @author ThinkBook
|
||||||
@@ -17,8 +32,261 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = JeroBootException.class)
|
@Transactional(rollbackFor = JeroBootException.class)
|
||||||
public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnualReportMapper, ProcessEsAnnualReport>
|
public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnualReportMapper, ProcessEsAnnualReport>
|
||||||
implements IService<ProcessEsAnnualReport> {
|
implements ProcessEsAnnualReportService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CommonAPI commonAPI;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ExcelUtils excelUtils;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> importData(MultipartFile file) {
|
||||||
|
List<SysDictItemCore> listDict = commonAPI.getDictItemAll();
|
||||||
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
|
List<String> errorMsgs = new ArrayList<>();
|
||||||
|
|
||||||
|
// 获取Excel的header
|
||||||
|
List<String> headers;
|
||||||
|
try {
|
||||||
|
headers = ExcelUtils.getHeaderFromExcel(file.getInputStream());
|
||||||
|
} catch (Exception e) {
|
||||||
|
errorMsgs.add("上传模板错误,请检查后重试。");
|
||||||
|
resultMap.put("msg", errorMsgs);
|
||||||
|
resultMap.put("flag", YesOrNoEnum.NO.getValue());
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
return resultMap; // 返回错误信息
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用静态方法验证header
|
||||||
|
boolean isMatched = headers.equals(ExcelUtils.getSortedHeadersFromClass(ProcessEsAnnualReport.class));
|
||||||
|
if (!isMatched) {
|
||||||
|
errorMsgs.add("上传模板错误,请检查后重试。");
|
||||||
|
resultMap.put("msg", errorMsgs);
|
||||||
|
resultMap.put("flag", YesOrNoEnum.NO.getValue());
|
||||||
|
return resultMap; // 返回错误信息
|
||||||
|
}
|
||||||
|
|
||||||
|
ImportParams params = new ImportParams();
|
||||||
|
params.setTitleRows(1);
|
||||||
|
params.setHeadRows(1);
|
||||||
|
params.setNeedSave(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<ProcessEsAnnualReport> list = ExcelImportUtil.importExcel(file.getInputStream(), ProcessEsAnnualReport.class, params);
|
||||||
|
if (list.isEmpty()) {
|
||||||
|
errorMsgs.add("文件暂无数据,请检查后重试。");
|
||||||
|
resultMap.put("msg", errorMsgs);
|
||||||
|
resultMap.put("flag", YesOrNoEnum.NO.getValue());
|
||||||
|
return resultMap; // 返回错误信息
|
||||||
|
}
|
||||||
|
// 批量检查数据是否有效
|
||||||
|
errorMsgs = this.validationList(list, listDict);
|
||||||
|
if (errorMsgs.size() > 0) {
|
||||||
|
resultMap.put("msg", errorMsgs);
|
||||||
|
resultMap.put("flag", YesOrNoEnum.NO.getValue());
|
||||||
|
} else {
|
||||||
|
resultMap.put("flag", YesOrNoEnum.YES.getValue());
|
||||||
|
// 转换为字典值
|
||||||
|
this.transToDictValue(list, listDict);
|
||||||
|
// 清洗
|
||||||
|
this.cleanData(list);
|
||||||
|
resultMap.put("dataList", list);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
errorMsgs.add("文件导入异常:" + e.getMessage());
|
||||||
|
resultMap.put("msg", errorMsgs);
|
||||||
|
resultMap.put("flag", YesOrNoEnum.NO.getValue());
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
file.getInputStream().close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cleanData(List<ProcessEsAnnualReport> list) {
|
||||||
|
list.forEach(item-> {
|
||||||
|
// 如果是制定则去除掉所有的原企标名称 原企标编号
|
||||||
|
if (ESPProjectType.ENACT.getValue().equals(item.getProjectType())) {
|
||||||
|
item.setOriginEnStandardName(null);
|
||||||
|
item.setOriginEnStandardNo(null);
|
||||||
|
}
|
||||||
|
// 设置变更状态 制定是新增 修订是变更
|
||||||
|
if (item.getProjectType().equals("制定")) {
|
||||||
|
item.setChangeStatus("新增");
|
||||||
|
} else {
|
||||||
|
item.setChangeStatus("变更");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void transToDictValue(List<ProcessEsAnnualReport> list, List<SysDictItemCore> 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("username", "id", "sys_user", item.getMainDraftingUser(), listDict));
|
||||||
|
item.setMainDraftingUnit(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getMainDraftingUnit(), listDict));
|
||||||
|
item.setMainDraftingUnitResponsiblePerson(excelUtils.translateDictValue("username", "id", "sys_user", item.getMainDraftingUnitResponsiblePerson(), listDict));
|
||||||
|
item.setStandardPromoter(excelUtils.translateDictValue("username", "id", "sys_user", item.getStandardPromoter(), listDict));
|
||||||
|
item.setWorkGroup(excelUtils.translateDictValue("name", "id", "laws_working_group", item.getWorkGroup(), listDict));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> validationList(List<ProcessEsAnnualReport> list, List<SysDictItemCore> listDict) {
|
||||||
|
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list();
|
||||||
|
List<String> errorMsgs = new ArrayList<>();
|
||||||
|
|
||||||
|
int i = 3;
|
||||||
|
Iterator<ProcessEsAnnualReport> iterator = list.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
ProcessEsAnnualReport plan = iterator.next();
|
||||||
|
if (ExcelUtils.isEmptyRow(plan)) {
|
||||||
|
iterator.remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
plan.setSort(String.valueOf(i++));
|
||||||
|
String enStandardCode = plan.getProjectType();
|
||||||
|
String authDept = plan.getProjectType();
|
||||||
|
String cooperationUnit = plan.getCooperationUnit();
|
||||||
|
String mainDraftingUnit = plan.getMainDraftingUnit();
|
||||||
|
String mainDraftingUser = plan.getProjectType();
|
||||||
|
String mainDraftingUnitResponsiblePerson = plan.getMainDraftingUnitResponsiblePerson();
|
||||||
|
String standardPromoter = plan.getStandardPromoter();
|
||||||
|
String workGroup = plan.getWorkGroup();
|
||||||
|
|
||||||
|
StringBuilder errMsgHeader = new StringBuilder();
|
||||||
|
StringBuilder errMsg = new StringBuilder();
|
||||||
|
errMsgHeader.append("第").append(plan.getSort()).append("行");
|
||||||
|
|
||||||
|
// 检查制修订类型 编号 名称
|
||||||
|
errMsg.append(validProjectType(plan, listDict, esList));
|
||||||
|
// 检查所有数据字典校验的字段
|
||||||
|
errMsg.append(validAuthDept(authDept, listDict));
|
||||||
|
errMsg.append(validStandardCode(enStandardCode, listDict));
|
||||||
|
errMsg.append(validCooperateUnit(cooperationUnit, listDict));
|
||||||
|
errMsg.append(validMainDraftingUser(mainDraftingUser, listDict));
|
||||||
|
errMsg.append(validMainDraftingUnit(mainDraftingUnit, listDict));
|
||||||
|
errMsg.append(validMainDraftingUnitResponsiblePerson(mainDraftingUnitResponsiblePerson, listDict));
|
||||||
|
errMsg.append(validStandardPromoter(standardPromoter, listDict));
|
||||||
|
errMsg.append(validWorkGroup(workGroup, listDict));
|
||||||
|
// 如果数据有问题,则将提示信息添加到 errorMsgs 中
|
||||||
|
if (errMsg.length() > 0) {
|
||||||
|
errorMsgs.add(errMsgHeader.append(errMsg).toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return errorMsgs;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String validAuthDept(String value, List<SysDictItemCore> listDict) {
|
||||||
|
// 非空检查
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
return "'授权部门'不能为空。";
|
||||||
|
}
|
||||||
|
// 检查授权部门
|
||||||
|
if (!excelUtils.validDict("depart_name", value, "sys_depart", "id", false, listDict)) {
|
||||||
|
return "'授权部门'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validStandardCode(String value, List<SysDictItemCore> listDict) {
|
||||||
|
// 检查企业标准代号
|
||||||
|
if (!excelUtils.validDict("enterprise_standard_code", value, null, null, true, listDict)) {
|
||||||
|
return "'企业标准代号'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validCooperateUnit(String value, List<SysDictItemCore> listDict) { // 非空检查
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
return "'配合单位'不能为空。";
|
||||||
|
}
|
||||||
|
// 检查配合单位
|
||||||
|
if (!excelUtils.validDict("depart_name", value, "sys_depart", "id", false, listDict)) {
|
||||||
|
return "'配合单位'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validMainDraftingUser(String value, List<SysDictItemCore> listDict) {
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
return "'主起草人'不能为空。";
|
||||||
|
}
|
||||||
|
// 检查主起草人
|
||||||
|
if (!excelUtils.validDict("username", value, "sys_user", "id", true, listDict)) {
|
||||||
|
return "'主起草人'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validMainDraftingUnit(String value, List<SysDictItemCore> listDict) {
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
return "'主起草单位'不能为空。";
|
||||||
|
}
|
||||||
|
// 检查主起草单位
|
||||||
|
if (!excelUtils.validDict("depart_name", value, "sys_depart", "id", true, listDict)) {
|
||||||
|
return "'主起草单位'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validMainDraftingUnitResponsiblePerson(String value, List<SysDictItemCore> listDict) {
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
return "'主起草单位负责人'不能为空。";
|
||||||
|
}
|
||||||
|
// 检查主起草单位负责人
|
||||||
|
if (!excelUtils.validDict("username", value, "sys_user", "id", true, listDict)) {
|
||||||
|
return "'主起草单位负责人'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validStandardPromoter(String value, List<SysDictItemCore> listDict) {
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
return "'标准推进人'不能为空。";
|
||||||
|
}
|
||||||
|
// 检查标准推进人
|
||||||
|
if (!excelUtils.validDict("username", value, "sys_user", "id", true, listDict)) {
|
||||||
|
return "'标准推进人'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
private String validWorkGroup(String value, List<SysDictItemCore> listDict) {
|
||||||
|
// 检查工作组
|
||||||
|
if (!excelUtils.validDict("name", value, "laws_working_group", "id", true, listDict)) {
|
||||||
|
return "'工作组'无效。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String validProjectType(ProcessEsAnnualReport plan, List<SysDictItemCore> listDict, List<LawsEnterpriseStandard> esList) {
|
||||||
|
String projectType = plan.getProjectType();
|
||||||
|
String originEnStandardNo = plan.getProjectType();
|
||||||
|
String newEnStandardName = plan.getNewEnStandardName();
|
||||||
|
if (StrUtil.isBlank(projectType)) {
|
||||||
|
return "'制修订类型'不能为空。";
|
||||||
|
}
|
||||||
|
if (!excelUtils.validDict("esp_revision_type", projectType, null, null, true, listDict)) {
|
||||||
|
return "'制修订类型'无效。";
|
||||||
|
}
|
||||||
|
// 修订
|
||||||
|
if (projectType.equals(ESPProjectType.MODIFY.getValue())) {
|
||||||
|
// 检查企标编号是否有效
|
||||||
|
if (StrUtil.isBlank(originEnStandardNo)) {
|
||||||
|
return "'原企标编号'不能为空。";
|
||||||
|
}
|
||||||
|
if (!esList.stream().map(LawsEnterpriseStandard::getStandardNumber).collect(Collectors.toList()).contains(originEnStandardNo)) {
|
||||||
|
return "'原企标编号'无效。";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (newEnStandardName.length() > 50) {
|
||||||
|
return "'新企标名称'过长(最多50字)。";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user