diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java index cc44c5694..2574ed923 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java @@ -2,6 +2,7 @@ package com.jero.modules.project.controller; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.base.controller.JeroController; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.service.IProjectRelatedPersonnelService; @@ -13,7 +14,15 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -46,7 +55,11 @@ public class ProjectRelatedPersonnelController extends JeroController queryPageList(@RequestBody Map map) { - List pageList= projectRelatedPersonnelService.queryPageList((String) map.get("projectId")); + List pageList= projectRelatedPersonnelService.queryPageList((String) map.get("projectId"), + (String) map.get("dutyTerritory"), + (String) map.get("lawEngineer"), + (String) map.get("engineeringInterfacePerson"), + (String) map.get("certificationEngineer")); return Result.OK((String)map.get("cut"),pageList); } /** @@ -205,4 +218,31 @@ public class ProjectRelatedPersonnelController extends JeroController certificationEngineerList = projectRelatedPersonnelService.queryCertificationEngineer(projectId); return Result.OK(certificationEngineerList); } + + /** + * 批量设置 + * @param projectRelatedPersonnel + * @return + */ + @AutoLog(value = "批量设置") + @ApiOperation(value="批量设置", notes="批量设置") + @PostMapping(value = "/setBatch") + public Result setBatch(@RequestBody ProjectRelatedPersonnel projectRelatedPersonnel) { + String cut = projectRelatedPersonnel.getCut(); + try { + projectRelatedPersonnelService.setBatch(projectRelatedPersonnel); + } catch (Exception e) { + if(CutEnum.CN.getValue().equals(cut)){ + return Result.error("批量设置失败!"); + }else{ + return Result.error("Batch set success"); + } + } + if(CutEnum.CN.getValue().equals(cut)){ + return Result.OK("批量设置成功"); + }else{ + return Result.OK("Batch set success"); + } + + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java index 4b6f6c130..e94f363f6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java @@ -90,4 +90,8 @@ public class ProjectRelatedPersonnel implements Serializable { /**中英切换标志*/ @TableField(exist = false) private String cut; -} \ No newline at end of file + + //批量设置传参ids + @TableField(exist = false) + private String ids; +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java index 86d629061..fb4d2d269 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java @@ -14,7 +14,12 @@ import java.util.List; */ public interface ProjectRelatedPersonnelMapper extends BaseMapper { - List queryPageList(@Param("projectId") String projectId,String dictCode); + List queryPageList(@Param("projectId") String projectId, + String dictCode, + @Param("dutyTerritory") String dutyTerritory, + @Param("lawEngineer") String lawEngineer, + @Param("engineeringInterfacePerson") String engineeringInterfacePerson, + @Param("certificationEngineer") String certificationEngineer); List queryById(@Param("id")String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml index 7bfe89213..8c097fef3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml @@ -42,6 +42,18 @@ prp.project_id=#{projectId} + + AND prp.duty_territory=#{dutyTerritory} + + + AND prp.law_engineer like concat(concat('%',#{lawEngineer}),'%') + + + AND prp.engineering_interface_person like concat(concat('%',#{engineeringInterfacePerson}),'%') + + + AND prp.certification_engineer like concat(concat('%',#{certificationEngineer}),'%') + AND sd.dict_code = #{dictCode} ORDER BY sdi.item_text ASC @@ -57,4 +69,4 @@ order by prp.create_time desc - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java index 482e383ca..fe8cc762c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java @@ -67,7 +67,7 @@ public interface IProjectRelatedPersonnelService extends IService queryList(); - List queryPageList(String projectId); + List queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String certificationEngineer); Map queryPersonByProjectId(String projectId, String dutyTerritory); @@ -88,4 +88,6 @@ public interface IProjectRelatedPersonnelService extends IService queryCertificationEngineer(String projectId); + + void setBatch(ProjectRelatedPersonnel projectRelatedPersonnel); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index ba43ecc25..84697d47d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -6400,7 +6400,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId); + List projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null); List lawEngineerNameList = new ArrayList<>(); if(projectRelatedPersonnels.size() != 0){ for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 455dd593e..a22bc0d69 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -34,7 +34,14 @@ import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; -import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -48,7 +55,14 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.OutputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeSet; import java.util.stream.Collectors; /** @@ -183,26 +197,45 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl queryPageList(String projectId) { + public List queryPageList(String projectId, + String dutyTerritoryTemp, + String lawEngineer, + String engineeringInterfacePerson, + String certificationEngineer) { //查询数据 - List result = projectRelatedPersonnelMapper.queryPageList(projectId,DictCodeEnum.DUTY_TERRITORY.getValue()); + List result = projectRelatedPersonnelMapper.queryPageList(projectId, + DictCodeEnum.DUTY_TERRITORY.getValue(), + dutyTerritoryTemp, + lawEngineer, + engineeringInterfacePerson, + certificationEngineer); //查询数据里的责任领域 List dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList()); //查标签内容里的责任领域数据 List sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()); //没有数据->新增所有责任领域,查询 - if(result.size() != sysDictItemValueList.size()){ + if(StringUtils.isBlank(dutyTerritoryTemp) + && StringUtils.isBlank(lawEngineer) + && StringUtils.isBlank(engineeringInterfacePerson) + && StringUtils.isBlank(certificationEngineer)){ + if(result.size() != sysDictItemValueList.size()){ - //更新相关人员表里的责任领域数据 - if (CollectionUtils.isNotEmpty(sysDictItemValueList)) { - for (String sysDictItemValue : sysDictItemValueList) { - if(!dutyTerritory.contains(sysDictItemValue)) { - setDutyTerritoryValue(sysDictItemValue, projectId); + //更新相关人员表里的责任领域数据 + if (CollectionUtils.isNotEmpty(sysDictItemValueList)) { + for (String sysDictItemValue : sysDictItemValueList) { + if(!dutyTerritory.contains(sysDictItemValue)) { + setDutyTerritoryValue(sysDictItemValue, projectId); + } } } + //重新查询列表 + result = projectRelatedPersonnelMapper.queryPageList(projectId, + DictCodeEnum.DUTY_TERRITORY.getValue(), + dutyTerritoryTemp, + lawEngineer, + engineeringInterfacePerson, + certificationEngineer); } - //重新查询列表 - result = projectRelatedPersonnelMapper.queryPageList(projectId,DictCodeEnum.DUTY_TERRITORY.getValue()); } disposeData(result); return result; @@ -456,7 +489,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl projectRelatedPersonnelList = new ArrayList<>(); + for (String id : projectRelatedPersonnel.getIds().split(",")) { + ProjectRelatedPersonnel projectRelatedPersonnelTemp = new ProjectRelatedPersonnel(); + projectRelatedPersonnelTemp.setId(id); + projectRelatedPersonnelTemp.setUpdateTime(new Date()); + if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getLawEngineer())){ + projectRelatedPersonnelTemp.setLawEngineer(projectRelatedPersonnel.getLawEngineer()); + } + if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getEngineeringInterfacePerson())){ + projectRelatedPersonnelTemp.setEngineeringInterfacePerson(projectRelatedPersonnel.getEngineeringInterfacePerson()); + } + if(org.apache.commons.lang3.StringUtils.isNotBlank(projectRelatedPersonnel.getCertificationEngineer())){ + projectRelatedPersonnelTemp.setCertificationEngineer(projectRelatedPersonnel.getCertificationEngineer()); + } + projectRelatedPersonnelList.add(projectRelatedPersonnelTemp); + } + this.updateBatchById(projectRelatedPersonnelList); + } + } diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 420faa5b6..6f9f38f9a 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1072,4 +1072,5 @@ module.exports = { theProjectContactEmpty:'The project contact person of cannot be empty', pleaseSelectinitiatedOrRejected:'Please select the data whose list confirmation status is not initiated or rejected', TheEngineerAndCertification:'The regulatory engineer and Certification Engineer of cannot be empty', + theResponsiblePersonAndDeadlineClank:'The responsible person and deadline of cannot be blank', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 451c6f549..43e10d21e 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -693,7 +693,7 @@ module.exports = { confirmOverrule: '确认驳回?', The: '第', submitted: '条数据已提交不能重复提交', - incorrectsubmitted: '条数据状态有误;只能提交状态为待确认的数据', + incorrectsubmitted: '状态有误;只能提交状态为待确认的数据', basicInformationOfParameters: '项目基本信息', regulatoryCertificationTaskPlan: '法规/认证任务计划', bringInRelevantPersonnel: '带入相关人员', @@ -1076,4 +1076,5 @@ module.exports = { newNiONumber: 'NIO编号', English:'英文', requiredParametersEmpty:'必填参数不能为空', + theResponsiblePersonAndDeadlineClank:'的责任人、截止时间不能为空', } \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/PersonnelSelection/index.vue b/jero-web/src/views/processCenter/components/PersonnelSelection/index.vue new file mode 100644 index 000000000..fb8bcc291 --- /dev/null +++ b/jero-web/src/views/processCenter/components/PersonnelSelection/index.vue @@ -0,0 +1,302 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/engineeringConfirmation.vue b/jero-web/src/views/processCenter/components/engineeringConfirmation.vue index 5082b874a..bf0f9b333 100644 --- a/jero-web/src/views/processCenter/components/engineeringConfirmation.vue +++ b/jero-web/src/views/processCenter/components/engineeringConfirmation.vue @@ -99,6 +99,7 @@ @@ -307,7 +308,7 @@ + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/personBatting.vue b/jero-web/src/views/projectManagement/components/personBatting.vue new file mode 100644 index 000000000..bfbc8f9a6 --- /dev/null +++ b/jero-web/src/views/projectManagement/components/personBatting.vue @@ -0,0 +1,180 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/components/TaskPlanList.vue b/jero-web/src/views/projectManagement/projectStatusBoard/components/TaskPlanList.vue index 6f84b8023..a7c41f30c 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/components/TaskPlanList.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/components/TaskPlanList.vue @@ -46,7 +46,8 @@
-
{{val.name}}
+
{{val.name}}
+
{{val.name}}