From 15f9f8b8203f83c2042c226fe9aaa0bbbffed2a7 Mon Sep 17 00:00:00 2001 From: caozhen <18736171426@139.com> Date: Wed, 13 Sep 2023 15:37:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE-=E6=A0=87=E5=87=86=E8=AF=84?= =?UTF-8?q?=E4=BC=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LawsAssessController.java | 228 +++++++++++++++--- .../LawsProjectLibraryController.java | 2 +- .../projectLibrary/entity/LawsAssess.java | 11 +- .../service/ILawsAssessService.java | 2 + .../service/impl/LawsAssessServiceImpl.java | 14 ++ .../projectLibrary/vo/LawsAssessAddVo.java | 45 ++++ 6 files changed, 261 insertions(+), 41 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/projectLibrary/vo/LawsAssessAddVo.java diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsAssessController.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsAssessController.java index 5619751a..eeffce6e 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsAssessController.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsAssessController.java @@ -1,11 +1,19 @@ package com.jero.modules.projectLibrary.controller; -import java.util.List; -import java.util.Map; +import java.io.OutputStream; +import java.util.*; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; -import com.jero.modules.laws.enterprise.entity.EnterpriseStandard; -import com.jero.modules.laws.enterprise.service.EnterpriseStandardService; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.MessageUtils; import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.laws.standard.entity.LawsOverseasStandard; import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; @@ -13,9 +21,10 @@ import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; import com.jero.modules.projectLibrary.entity.LawsAssess; import com.jero.modules.projectLibrary.service.ILawsAssessService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.modules.projectLibrary.vo.LawsAssessAddVo; +import com.sun.deploy.net.URLEncoder; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -40,13 +49,12 @@ import org.apache.poi.ss.formula.functions.T; public class LawsAssessController extends JeroController { @Autowired private ILawsAssessService lawsAssessService; - - @Autowired - private ILawsDomesticStandardService lawsDomesticStandardService; //国内标准 - @Autowired - private ILawsOverseasStandardService lawsOverseasStandardService; //海外标准 - @Autowired - private EnterpriseStandardService enterpriseStandardService; //企业标准 + //国内标准 + @Autowired + private ILawsDomesticStandardService lawsDomesticStandardService; + //海外标准 + @Autowired + private ILawsOverseasStandardService lawsOverseasStandardService; /** * 分页列表查询 @@ -62,7 +70,6 @@ public class LawsAssessController extends JeroController records) { for (LawsAssess assess : records) { String standardId = assess.getStandardId(); @@ -70,32 +77,130 @@ public class LawsAssessController extends JeroController add(@Validated @RequestBody LawsAssess lawsAssess) { - lawsAssessService.add(lawsAssess); + @AutoLog(value = "项目-标准评估-调取") + @ApiOperation(value="项目-标准评估-调取", notes="项目-标准评估-调取") + @PostMapping(value = "/retrieval") + public Result retrieval(@Validated @RequestBody LawsAssessAddVo lawsAssessAddVo) { + String domesticStandardId = lawsAssessAddVo.getDomesticStandardId(); + String overseasStandardId = lawsAssessAddVo.getOverseasStandardId(); + if (StringUtils.isNotBlank(domesticStandardId) && StringUtils.isNotBlank(overseasStandardId)){ + return Result.error("请至少选择一个标准进行调取!"); + } + //查询当前项目已绑定的标准,为了不造成重复绑定 + List assessArrayList = lawsAssessService.getAllByProjectId(lawsAssessAddVo.getProjectId()); + List collect = assessArrayList.stream().map(LawsAssess::getStandardId).distinct().collect(Collectors.toList()); + Date now = new Date(); + List lawsAssesses = new ArrayList<>(); + if (StringUtils.isNotBlank(domesticStandardId)){ + List asList = Arrays.asList(domesticStandardId.split(",")); + for (String id : asList) { + if (collect.contains(id)){ + continue; + } + LawsAssess lawsAssess = new LawsAssess(); + lawsAssess.setSource("1"); + lawsAssess.setProjectId(lawsAssessAddVo.getProjectId()); + lawsAssess.setStandardId(id); + LawsDomesticStandard standard = lawsDomesticStandardService.queryById(id); + lawsAssess.setStandardNumber(standard.getStandardNumber()); + lawsAssess.setStandardName(standard.getStandardName()); + lawsAssess.setProcessStatus("1"); + lawsAssess.setCreateTime(now); + lawsAssess.setUpdateTime(now); + lawsAssesses.add(lawsAssess); + } + } + if (StringUtils.isNotBlank(overseasStandardId)){ + List asList = Arrays.asList(overseasStandardId.split(",")); + for (String id : asList) { + if (collect.contains(id)){ + continue; + } + LawsAssess lawsAssess = new LawsAssess(); + lawsAssess.setSource("2"); + lawsAssess.setProjectId(lawsAssessAddVo.getProjectId()); + lawsAssess.setStandardId(id); + LawsOverseasStandard standard = lawsOverseasStandardService.queryById(id); + lawsAssess.setStandardNumber(standard.getStandardNumber()); + lawsAssess.setStandardName(standard.getStandardName()); + lawsAssess.setProcessStatus("1"); + lawsAssess.setCreateTime(now); + lawsAssess.setUpdateTime(now); + lawsAssesses.add(lawsAssess); + } + } + if (lawsAssesses.isEmpty()){ + return Result.error("调取标准全部存在,请重新选择标准!"); + } + lawsAssessService.saveBatch(lawsAssesses); return Result.OK("操作成功!"); } + /** + * 复制 + */ + @AutoLog(value = "项目-标准评估-复制") + @ApiOperation(value="项目-标准评估-复制", notes="项目-标准评估-复制") + @PostMapping(value = "/copy") + public Result copy(@Validated @RequestBody LawsAssessAddVo lawsAssessAddVo) { + String copyProjectId = lawsAssessAddVo.getCopyProjectId(); + if (StringUtils.isBlank(copyProjectId)){ + return Result.error("请至少选择一个项目进行复制!"); + } + Date now = new Date(); + List lawsAssesses = new ArrayList<>(); + List assessArrayList = lawsAssessService.getAllByProjectId(lawsAssessAddVo.getProjectId()); + List collect = assessArrayList.stream().map(LawsAssess::getStandardId).distinct().collect(Collectors.toList()); + List copyAssessArrayList = lawsAssessService.getAllByProjectId(copyProjectId); + for (LawsAssess lawsAssess : copyAssessArrayList) { + String standardId = lawsAssess.getStandardId(); + if (collect.contains(standardId)){ + continue; + } + LawsAssess assess = new LawsAssess(); + assess.setSource(lawsAssess.getSource()); + assess.setProjectId(lawsAssessAddVo.getProjectId()); + assess.setStandardId(standardId); + assess.setStandardNumber(lawsAssess.getStandardNumber()); + assess.setStandardName(lawsAssess.getStandardName()); + assess.setProcessStatus("1"); + assess.setCreateTime(now); + assess.setUpdateTime(now); + lawsAssesses.add(assess); + } + if (lawsAssesses.isEmpty()){ + return Result.error("复制项目标准全部存在,请重新选择项目!"); + } + lawsAssessService.saveBatch(lawsAssesses); + return Result.OK("操作成功!"); + } + + /** * 通过id删除 */ @@ -110,14 +215,67 @@ public class LawsAssessController extends JeroController dos = null; + String selections = request.getParameter("selections"); + if (StringUtils.isNotBlank(selections)){ + dos = lawsAssessService.listByIds(Arrays.asList(selections.split(","))); + }else { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsAssess, request.getParameterMap()); + dos = lawsAssessService.list(queryWrapper); + } + if (dos.isEmpty()){ + throw new JeroBootException("请选择数据导出!"); + } + this.assignment(dos); + + //导出表头只保留别名中的字段 + writer.setOnlyAlias(true); + //表格高度 + writer.setDefaultRowHeight(18); + //表格宽度 + writer.setColumnWidth(-1, 20); + //放入数据 + writer.write(dos, true); + try { + // 获取我们的输出流 + final OutputStream output = response.getOutputStream(); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + outFileName + ";filename*=utf-8" + + URLEncoder.encode(outFileName, ENCODING)); + writer.flush(output, true); + writer.close(); + // 这里可以自行关闭资源或者写一个关闭资源的工具类 + IoUtil.close(output); + } catch (Exception e) { + log.error("导出失败:", e); + } + return null; + } + private void assembleWriter(ExcelWriter writer) { + writer.addHeaderAlias("standardNumber", "标准号"); + writer.addHeaderAlias("standardName", "标准名称"); + writer.addHeaderAlias("standardState", "标准状态"); + writer.addHeaderAlias("applicableVehicle", "适用车型"); + writer.addHeaderAlias("onTheProductionDate", "在产车实施日期"); + writer.addHeaderAlias("newModelImplementationDate", "新车型实施日期"); + writer.addHeaderAlias("processStatus", "流程状态"); + writer.addHeaderAlias("evaluationResults", "评估结果"); + writer.addHeaderAlias("responsibleDepartment", "责任部门"); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java index b1cf5c16..a8d1fb20 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java @@ -155,10 +155,10 @@ public class LawsProjectLibraryController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(lawsProjectLibrary, request.getParameterMap()); dos = lawsProjectLibraryService.list(queryWrapper); } - this.translate(dos); if (dos.isEmpty()){ throw new JeroBootException("请选择数据导出!"); } + this.translate(dos); //导出表头只保留别名中的字段 writer.setOnlyAlias(true); diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsAssess.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsAssess.java index 2f8fbe39..0a21d317 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsAssess.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsAssess.java @@ -58,10 +58,14 @@ public class LawsAssess implements Serializable { private String source; /**标准编号*/ - @NotBlank(message = "standardNum not null") @Excel(name = "标准编号", width = 15) @ApiModelProperty(value = "标准编号") - private String standardNum; + private String standardNumber; + + /**标准名称*/ + @Excel(name = "标准名称", width = 15) + @ApiModelProperty(value = "标准名称") + private String standardName; /**流程状态(1-未评估、2-评估中、3-已评估)*/ @Dict(dicCode = "process_status") @@ -94,9 +98,6 @@ public class LawsAssess implements Serializable { @ApiModelProperty(value = "所属部门") private String orgCode; - @TableField(exist = false) - @ApiModelProperty(value = "标准名称") - private String standardName; @TableField(exist = false) @ApiModelProperty(value = "英文名称") diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/ILawsAssessService.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/ILawsAssessService.java index ed465357..785ca255 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/ILawsAssessService.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/ILawsAssessService.java @@ -73,4 +73,6 @@ public interface ILawsAssessService extends IService { * @return */ LawsAssess queryById(String id); + + List getAllByProjectId(String projectId); } diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/impl/LawsAssessServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/impl/LawsAssessServiceImpl.java index eec1e3a9..6e4500c1 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/impl/LawsAssessServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/service/impl/LawsAssessServiceImpl.java @@ -1,12 +1,16 @@ package com.jero.modules.projectLibrary.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.modules.projectLibrary.entity.LawsAssess; import com.jero.modules.projectLibrary.mapper.LawsAssessMapper; import com.jero.modules.projectLibrary.service.ILawsAssessService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jero.common.exception.JeroBootException; + +import java.util.ArrayList; import java.util.List; import java.util.Date; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -115,4 +119,14 @@ public class LawsAssessServiceImpl extends ServiceImpl getAllByProjectId(String projectId) { + if (StringUtils.isBlank(projectId)){ + return new ArrayList<>(); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(LawsAssess::getProjectId, projectId); + return list(wrapper); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/vo/LawsAssessAddVo.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/vo/LawsAssessAddVo.java new file mode 100644 index 00000000..f13853d9 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/vo/LawsAssessAddVo.java @@ -0,0 +1,45 @@ +package com.jero.modules.projectLibrary.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; + +/** + * 项目-标准评估 调取、复制接口当作入参对象使用 + */ + +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="lawsAssessAddVo对象", description="项目-标准评估-调取、复制") +public class LawsAssessAddVo { + + /**项目ID*/ + @NotBlank(message = "projectId not null") + @ApiModelProperty(value = "所在项目ID") + private String projectId; + + /**项目ID*/ + @ApiModelProperty(value = "所选复制项目ID") + private String copyProjectId; + + /**标准ID*/ + @ApiModelProperty(value = "国内标准ID") + private String domesticStandardId; + + /**标准编号*/ + @ApiModelProperty(value = "国内标准编号") + private String domesticStandardNumber; + + /**标准ID*/ + @ApiModelProperty(value = "海外标准ID") + private String overseasStandardId; + + /**标准编号*/ + @ApiModelProperty(value = "海外标准编号") + private String overseasStandardNumber; +}