diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ConditionAssessmentEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ConditionAssessmentEOController.java index 1d974adf6..197e40252 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ConditionAssessmentEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ConditionAssessmentEOController.java @@ -1,26 +1,28 @@ package com.jero.modules.project.controller; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import com.jero.common.api.vo.Result; -import com.jero.common.system.query.QueryGenerator; -import com.jero.modules.project.entity.ConditionAssessmentEO; -import com.jero.modules.project.service.IConditionAssessmentEOService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.project.entity.ConditionAssessmentEO; +import com.jero.modules.project.service.IConditionAssessmentEOService; +import com.jero.modules.project.vo.ConditionAssessmentVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import com.jero.common.aspect.annotation.AutoLog; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; +import java.util.Map; /** @@ -181,4 +183,16 @@ public class ConditionAssessmentEOController extends JeroController addOrUpdateConditionAssessmentBatch(@RequestBody ConditionAssessmentVO conditionAssessmentVO) { + return conditionAssessmentEOService.addOrUpdateBatch(conditionAssessmentVO); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java index 34920988e..ab49ac4e7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java @@ -1,27 +1,27 @@ package com.jero.modules.project.controller; -import java.util.Arrays; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import com.alibaba.fastjson.JSONObject; -import com.jero.common.api.vo.Result; -import com.jero.common.system.query.QueryGenerator; -import com.jero.modules.project.entity.ProjectTaskInventoryEO; -import com.jero.modules.project.service.IProjectTaskInventoryEOService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.project.entity.ProjectTaskInventoryEO; +import com.jero.modules.project.service.IProjectTaskInventoryEOService; +import com.jero.modules.project.vo.ProjectTaskInventoryVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import com.jero.common.aspect.annotation.AutoLog; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; /** @@ -203,4 +203,32 @@ public class ProjectTaskInventoryEOController extends JeroController remindDispose(@RequestBody JSONObject jsonObject){ return this.projectTaskInventoryEOService.remindDispose(jsonObject); } + + /** + * 编辑 + * + * @param projectTaskInventoryVO + * @return + */ + @AutoLog(value = "项目库-任务清单表-批量维护进度") + @ApiOperation(value="项目库-任务清单表-批量维护进度", notes="项目库-任务清单表-批量维护进度") + @PutMapping(value = "/editBatch") + public Result editCertificationProgressBatch(@RequestBody ProjectTaskInventoryVO projectTaskInventoryVO) { + projectTaskInventoryEOService.editBatch(projectTaskInventoryVO); + return Result.OK("编辑成功!"); + } + + /** + * 认证进度和当前状态修改时,校验角色是否符合 + * + * @param projectTaskInventoryVO + * @return + */ + @AutoLog(value = "项目库-任务清单表-校验角色是否符合") + @ApiOperation(value="项目库-任务清单表-校验角色是否符合", notes="项目库-任务清单表-校验角色是否符合") + @PutMapping(value = "/verifyRoleCode") + public Result verifyRoleCode(@RequestBody ProjectTaskInventoryVO projectTaskInventoryVO) { + List msgList = projectTaskInventoryEOService.verifyRoleCode(projectTaskInventoryVO); + return Result.OK(msgList); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java index b4ed25732..ff5ad39bd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java @@ -1,11 +1,11 @@ package com.jero.modules.project.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.ConditionAssessmentEO; -import com.jero.modules.project.entity. ConditionAssessmentEO; -import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.project.entity.ProjectTaskInventoryEO; +import com.jero.modules.project.vo.ConditionAssessmentVO; import java.util.List; import java.util.Map; @@ -92,4 +92,10 @@ public interface IConditionAssessmentEOService extends IService> getProjectStatusAssessStatisticsGroupByTerritory(Map params); + + /** + * 任务清单-项目状态评估表-批量添加或修改 + * @param conditionAssessmentVO + */ + Result addOrUpdateBatch(ConditionAssessmentVO conditionAssessmentVO); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java index 034acff8a..0ade9b8a2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectTaskInventoryEOService.java @@ -1,9 +1,10 @@ package com.jero.modules.project.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.modules.project.entity.ProjectTaskInventoryEO; -import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.project.vo.ProjectTaskInventoryVO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -84,5 +85,21 @@ public interface IProjectTaskInventoryEOService extends IService projectLawsInventoryIds); + /** + * 批量更新认证进度 + * + * @param projectTaskInventoryVO + * @return + */ + void editBatch(ProjectTaskInventoryVO projectTaskInventoryVO); + + /** + * 校验角色是否符合 + * + * @param projectTaskInventoryVO + * @return + */ + List verifyRoleCode(ProjectTaskInventoryVO projectTaskInventoryVO); + void exportXls(HttpServletResponse response, HttpServletRequest request, ProjectTaskInventoryEO projectTaskInventoryEO); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java index 8f87663db..2f28cb299 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.modules.project.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.ConditionAssessmentEO; @@ -8,6 +9,7 @@ import com.jero.modules.project.entity.ProjectTaskInventoryEO; import com.jero.modules.project.enums.ProjectRoleEnum; import com.jero.modules.project.mapper.ConditionAssessmentEOMapper; import com.jero.modules.project.service.IConditionAssessmentEOService; +import com.jero.modules.project.vo.ConditionAssessmentVO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -16,8 +18,6 @@ import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - /** * @Description: 任务清单-项目状态评估表 * @Author: jero-boot @@ -251,4 +251,70 @@ public class ConditionAssessmentEOServiceImpl extends ServiceImpl addOrUpdateBatch(ConditionAssessmentVO conditionAssessmentVO) { + List projectLawsInventoryIdList = Arrays.asList(conditionAssessmentVO.getProjectLawsInventoryIds().split(",")); + List roleCodeListOld = Arrays.asList(conditionAssessmentVO.getRoleCodes().split(",")); + + + for (int i=0; i < projectLawsInventoryIdList.size(); i++) { + String projectLawsInventoryId = projectLawsInventoryIdList.get(i); + String roleCode = roleCodeListOld.get(i); + List roleCodeList = new ArrayList<>(); + List list = new ArrayList<>(); + + if (StringUtils.equals(roleCode, ProjectRoleEnum.REGULATI_ENGINEER.getValue())) { + roleCodeList.add(ProjectRoleEnum.REGULATI_ENGINEER.getValue()); + + ConditionAssessmentEO regulatiEngineer = new ConditionAssessmentEO(); + regulatiEngineer.setProjectLawsInventoryId(projectLawsInventoryId); + regulatiEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment()); + regulatiEngineer.setRemark(conditionAssessmentVO.getRemark()); + regulatiEngineer.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue()); + + list.add(regulatiEngineer); + + } else if (StringUtils.equals(roleCode, ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())) { + roleCodeList.add(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + + ConditionAssessmentEO homologationEngineer = new ConditionAssessmentEO(); + homologationEngineer.setProjectLawsInventoryId(projectLawsInventoryId); + homologationEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment()); + homologationEngineer.setRemark(conditionAssessmentVO.getRemark()); + homologationEngineer.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + + list.add(homologationEngineer); + + } else if (StringUtils.equals(roleCode, ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue())) { + roleCodeList.add(ProjectRoleEnum.REGULATI_ENGINEER.getValue()); + roleCodeList.add(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + + ConditionAssessmentEO regulatiEngineer = new ConditionAssessmentEO(); + regulatiEngineer.setProjectLawsInventoryId(projectLawsInventoryId); + regulatiEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment()); + regulatiEngineer.setRemark(conditionAssessmentVO.getRemark()); + regulatiEngineer.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue()); + + ConditionAssessmentEO homologationEngineer = new ConditionAssessmentEO(); + homologationEngineer.setProjectLawsInventoryId(projectLawsInventoryId); + homologationEngineer.setConditionAssessment(conditionAssessmentVO.getConditionAssessment()); + homologationEngineer.setRemark(conditionAssessmentVO.getRemark()); + homologationEngineer.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + + list.add(regulatiEngineer); + list.add(homologationEngineer); + } + if(CollectionUtils.isNotEmpty(list)){ + QueryWrapper deleteWrapper = new QueryWrapper<>(); + deleteWrapper.lambda().eq(ConditionAssessmentEO::getProjectLawsInventoryId,projectLawsInventoryId); + deleteWrapper.lambda().in(ConditionAssessmentEO::getRoleCode,roleCodeList); + this.baseMapper.delete(deleteWrapper); + + saveBatch(list); + } + } + + return Result.ok(); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java index 17c1d4e9c..d7b7bf1a5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java @@ -18,6 +18,7 @@ import com.jero.modules.project.service.IConditionAssessmentEOService; import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectTaskInventoryEOService; import com.jero.modules.project.util.SendMessageUtils; +import com.jero.modules.project.vo.ProjectTaskInventoryVO; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysUserMapper; @@ -459,6 +460,88 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl idList = Arrays.asList(projectTaskInventoryVO.getIds().split(",")); + + List updateEOList = new ArrayList<>(); + for (String id : idList) { + ProjectTaskInventoryEO updateEO = new ProjectTaskInventoryEO(); + updateEO.setId(id); + updateEO.setCertificationProgress(projectTaskInventoryVO.getCertificationProgress()); + updateEO.setCertificationProgressRemark(projectTaskInventoryVO.getCertificationProgressRemark()); + + Date now = new Date(); + updateEO.setUpdateTime(now); + + updateEOList.add(updateEO); + } + + updateBatchById(updateEOList); + } + + @Override + public List verifyRoleCode(ProjectTaskInventoryVO projectTaskInventoryVO) { + List projectLawsInventoryIdList = Arrays.asList(projectTaskInventoryVO.getProjectLawsInventoryIds().split(",")); + List roleCodeList = Arrays.asList(projectTaskInventoryVO.getRoleCodes().split(",")); + String cut = projectTaskInventoryVO.getCut(); + String operation = projectTaskInventoryVO.getOperation(); + + List> msgMapList = new ArrayList<>(); + for (int i=0; i < projectLawsInventoryIdList.size(); i++) { + String projectLawsInventoryId = projectLawsInventoryIdList.get(i); + String roleCode = roleCodeList.get(i); + ProjectLawsInventoryEO projectLawsInventoryEO = projectLawsInventoryEOService.getById(projectLawsInventoryId); + + Map msgMap = new HashMap<>(); + if ("1".equals(operation)) { + if (! ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(roleCode)) { + msgMap.put("serialNumber", projectLawsInventoryEO.getSerialNumber()); + + } + } else if ("2".equals(operation)) { + if (!(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(roleCode) + || ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(roleCode) + || ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue().equals(roleCode))) { + msgMap.put("serialNumber", projectLawsInventoryEO.getSerialNumber()); + + } + } + + } + + return getMsg(msgMapList, cut, operation); + + } + + private List getMsg(List> msgMapList, String cut, String operation) { + List msgList = new ArrayList<>(); + + for (Map msgMap : msgMapList) { + String serialNumber = msgMap.get("serialNumber"); + StringBuilder stringBuilder = new StringBuilder(); + if ("1".equals(operation)) { + if (CutEnum.EN.getValue().equals(cut)) { + stringBuilder.append("Number ").append("").append(serialNumber).append("").append(", the current user can not maintain homologation progress."); + } else { + stringBuilder.append("编号").append("").append(serialNumber).append("").append(",当前用户没有维护认证进度权限。"); + } + + } else if("2".equals(operation)) { + if (CutEnum.EN.getValue().equals(cut)) { + stringBuilder.append("Number ").append("").append(serialNumber).append("").append(", the current user can not modify current status."); + } else { + stringBuilder.append("编号").append("").append(serialNumber).append("").append("当前用户没有修改状态权限。"); + } + + } + + msgList.add(stringBuilder.toString()); + } + + return msgList; + } + /** * 创建任务清单列表数据 * @param projectTaskInventoryEOList diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ConditionAssessmentVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ConditionAssessmentVO.java new file mode 100644 index 000000000..21bf266c1 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ConditionAssessmentVO.java @@ -0,0 +1,15 @@ +package com.jero.modules.project.vo; + +import lombok.Data; + +@Data +public class ConditionAssessmentVO { + + private String cut; + + // 当前状态 + private String projectLawsInventoryIds; + private String roleCodes; + private String conditionAssessment; + private String remark; +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskInventoryVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskInventoryVO.java new file mode 100644 index 000000000..321895fd8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskInventoryVO.java @@ -0,0 +1,18 @@ +package com.jero.modules.project.vo; + +import lombok.Data; + +@Data +public class ProjectTaskInventoryVO { + + private String cut; + + // 认证进度 + private String ids; + private String projectLawsInventoryIds; + private String roleCodes; + private String certificationProgress; + private String certificationProgressRemark; + + private String operation; // 1-维护进度,2-修改状态 +}