Merge remote-tracking branch 'origin/master'

This commit is contained in:
zhaomeijing
2022-04-19 18:01:21 +08:00
18 changed files with 492 additions and 228 deletions
@@ -33,4 +33,10 @@ public interface SysDictItemMapper extends BaseMapper<SysDictItem> {
*/ */
@Update("update sys_dict_item set del_flag = #{flag,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR}") @Update("update sys_dict_item set del_flag = #{flag,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR}")
public void updateDictDelFlag(@Param("flag") int delFlag, @Param("id") String id); public void updateDictDelFlag(@Param("flag") int delFlag, @Param("id") String id);
/**根据code查数据字典具体值*/
@Select("SELECT sdi.item_value FROM sys_dict_item as sdi LEFT JOIN sys_dict as sd ON sdi.dict_id =sd.id " +
"WHERE sd.dict_code =#{dictCode} order by sort_order asc, item_value asc")
public List<String> selectItemValueByDictCode(String dictCode);
} }
@@ -66,13 +66,13 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
* @param projectRelatedPersonnel * @param projectRelatedPersonnel
* @return * @return
*/ */
@AutoLog(value = "项目库-相关人员维护表-添加") /*@AutoLog(value = "项目库-相关人员维护表-添加")
@ApiOperation(value="项目库-相关人员维护表-添加", notes="项目库-相关人员维护表-添加") @ApiOperation(value="项目库-相关人员维护表-添加", notes="项目库-相关人员维护表-添加")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectRelatedPersonnel projectRelatedPersonnel) { public Result<?> add(@Validated @RequestBody ProjectRelatedPersonnel projectRelatedPersonnel) {
projectRelatedPersonnelService.add(projectRelatedPersonnel); projectRelatedPersonnelService.add(projectRelatedPersonnel);
return Result.OK("添加成功!"); return Result.OK("添加成功!");
} }*/
/** /**
* 编辑 * 编辑
@@ -117,16 +117,16 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
} }
/** /**
* 通过projectId查询 * 通过id查询
* *
* @param projectId * @param id
* @return * @return
*/ */
@AutoLog(value = "项目库-相关人员维护表-通过projectId查询") @AutoLog(value = "项目库-相关人员维护表-通过id查询")
@ApiOperation(value="项目库-相关人员维护表-通过projectId查询", notes="项目库-相关人员维护表-通过projectId查询") @ApiOperation(value="项目库-相关人员维护表-通过id查询", notes="项目库-相关人员维护表-通过id查询")
@GetMapping(value = "/queryByProjectId") @GetMapping(value = "/queryId")
public Result<?> queryById(@RequestParam(name="projectId",required=true) String projectId) { public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
List<ProjectRelatedPersonnel> projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectId(projectId); List<ProjectRelatedPersonnel> projectRelatedPersonnel = projectRelatedPersonnelService.queryById(id);
if(projectRelatedPersonnel==null) { if(projectRelatedPersonnel==null) {
return Result.error("未找到对应数据"); return Result.error("未找到对应数据");
} }
@@ -46,15 +46,11 @@ public class ProjectLibraryBase implements Serializable {
private java.lang.String studioEngineer; private java.lang.String studioEngineer;
@TableField(exist = false) @TableField(exist = false)
private java.lang.String studioEngineerName; private java.lang.String studioEngineerName;
@TableField(exist = false)
private java.lang.String studioEngineerEnName;
/**认证工程师*/ /**认证工程师*/
private java.lang.String certificationEngineer; private java.lang.String certificationEngineer;
@TableField(exist = false) @TableField(exist = false)
private java.lang.String certificationEngineerName; private java.lang.String certificationEngineerName;
@TableField(exist = false)
private java.lang.String certificationEngineerEnName;
/**车型平台*/ /**车型平台*/
@Dict(dicCode = "vehicle_platform") @Dict(dicCode = "vehicle_platform")
@@ -41,32 +41,25 @@ public class ProjectRelatedPersonnel implements Serializable {
private java.lang.String dutyTerritory; private java.lang.String dutyTerritory;
/**法规工程师*/ /**法规工程师*/
@Excel(name = "法规工程师", width = 15,orderNum = "2") @Excel(name = "法规工程师", width = 30,orderNum = "2")
private java.lang.String lawEngineer; private java.lang.String lawEngineer;
@TableField(exist = false) @TableField(exist = false)
private java.lang.String lawEngineerName; private java.lang.String lawEngineerName;
@TableField(exist = false)
private java.lang.String lawEngineerEnName;
/**工程接口人*/ /**工程接口人*/
@Excel(name = "工程接口人", width = 15,orderNum = "3") @Excel(name = "工程接口人", width = 30,orderNum = "3")
private java.lang.String engineeringInterfacePerson; private java.lang.String engineeringInterfacePerson;
@TableField(exist = false) @TableField(exist = false)
private java.lang.String engineeringInterfacePersonName; private java.lang.String engineeringInterfacePersonName;
@TableField(exist = false)
private java.lang.String engineeringInterfacePersonEnName;
/**认证工程师*/ /**认证工程师*/
@Excel(name = "认证工程师", width = 15,orderNum = "4") @Excel(name = "认证工程师", width = 30,orderNum = "4")
private java.lang.String certificationEngineer; private java.lang.String certificationEngineer;
@TableField(exist = false) @TableField(exist = false)
private java.lang.String certificationEngineerName; private java.lang.String certificationEngineerName;
@TableField(exist = false)
private java.lang.String certificationEngineerEnName;
/**备注*/ /**备注*/
@Excel(name = "备注", width = 15,orderNum = "5") @Excel(name = "备注", width = 50,orderNum = "5")
private java.lang.String remark; private java.lang.String remark;
/**创建人*/ /**创建人*/
@@ -0,0 +1,30 @@
package com.jero.modules.project.enums;
public enum DictCodeEnum {
DUTY_TERRITORY("责任领域","duty_territory"),
;
String name;
String value;
DictCodeEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -17,5 +17,5 @@ public interface ProjectRelatedPersonnelMapper extends BaseMapper<ProjectRelated
IPage<ProjectRelatedPersonnel> queryPageList(IPage page, Map<String, Object> params); IPage<ProjectRelatedPersonnel> queryPageList(IPage page, Map<String, Object> params);
List<ProjectRelatedPersonnel> queryByProjectId(String projectId); List<ProjectRelatedPersonnel> queryById(String id);
} }
@@ -29,8 +29,7 @@
plb.target_market, plb.target_market,
plb.project_status, plb.project_status,
plb.studio_engineer, plb.studio_engineer,
studiouser.realname as studio_engineer_name, studiouser.username as studio_engineer_name,
studiouser.username as studio_engineer_en_name,
plb.certification_engineer, plb.certification_engineer,
plb.vehicle_platform, plb.vehicle_platform,
plb.digital_platform, plb.digital_platform,
@@ -19,8 +19,6 @@
prp.project_id, prp.project_id,
prp.duty_territory, prp.duty_territory,
prp.law_engineer, prp.law_engineer,
lawuser.username,
enguser.username,
prp.engineering_interface_person, prp.engineering_interface_person,
prp.certification_engineer, prp.certification_engineer,
prp.remark, prp.remark,
@@ -32,11 +30,8 @@
<select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel"> <select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
SELECT SELECT
<include refid="select_item"/> <include refid="select_item"/>
FROM FROM
project_related_personnel AS prp project_related_personnel AS prp
LEFT JOIN sys_user AS lawuser ON prp.law_engineer = lawuser.id
LEFT JOIN sys_user AS enguser ON prp.engineering_interface_person = enguser.id
<where> <where>
<if test="params.projectId != null and params.projectId != ''"> <if test="params.projectId != null and params.projectId != ''">
prp.project_id=#{params.projectId} prp.project_id=#{params.projectId}
@@ -45,15 +40,13 @@
order by prp.create_time desc order by prp.create_time desc
</select> </select>
<select id="queryByProjectId" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel"> <select id="queryById" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
SELECT SELECT
<include refid="select_item"/> <include refid="select_item"/>
FROM FROM
project_related_personnel AS prp project_related_personnel AS prp
LEFT JOIN sys_user AS lawuser ON prp.law_engineer = lawuser.id
LEFT JOIN sys_user AS enguser ON prp.engineering_interface_person = enguser.id
<where> <where>
prp.project_id=#{projectId} prp.id=#{id}
</where> </where>
order by prp.create_time desc order by prp.create_time desc
</select> </select>
@@ -50,10 +50,10 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
/** /**
* 通过id查询 * 通过id查询
* *
* @param projectId * @param id
* @return * @return
*/ */
List<ProjectRelatedPersonnel> queryByProjectId(String projectId); List<ProjectRelatedPersonnel> queryById(String id);
/** /**
* 列表查询 * 列表查询
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.DictCodeEnum;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
@@ -37,6 +38,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired @Autowired
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@Autowired
private ProjectRelatedPersonnelServiceImpl projectRelatedPersonnelService;
/** /**
* 保存 * 保存
* *
@@ -46,12 +50,23 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Override @Override
public void add(ProjectLibraryBase projectLibraryBase) { public void add(ProjectLibraryBase projectLibraryBase) {
Date now = new Date(); Date now = new Date();
projectLibraryBase.setCreateTime(now); projectLibraryBase.setCreateTime(now);
projectLibraryBase.setUpdateTime(now); projectLibraryBase.setUpdateTime(now);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectLibraryBase.setCreateUserId(sysUser.getId()); projectLibraryBase.setCreateUserId(sysUser.getId());
projectLibraryBase.setUpdateUserId(sysUser.getId()); projectLibraryBase.setUpdateUserId(sysUser.getId());
save(projectLibraryBase); save(projectLibraryBase);
//查标签内容里的责任领域数据
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//新建相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
projectRelatedPersonnelService.setDutyTerritoryValue(sysDictItemValue,projectLibraryBase.getId());
}
}
} }
/** /**
@@ -136,41 +151,30 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
for (ProjectLibraryBase projectLibraryBase:records) { for (ProjectLibraryBase projectLibraryBase:records) {
List<SysUser> sysUsers = new ArrayList<>(); List<SysUser> sysUsers = new ArrayList<>();
//认证工程师多个id查询 //认证工程师多个id查询
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(",")); if (StringUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) {
if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) { List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
certificationEngineerIdList=certificationEngineerIdList.stream().distinct().collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) {
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>(); certificationEngineerIdList = certificationEngineerIdList.stream().distinct().collect(Collectors.toList());
userqueryWrapper.in("id ", certificationEngineerIdList); QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
sysUsers = sysUserMapper.selectList(userqueryWrapper); userqueryWrapper.in("id ", certificationEngineerIdList);
} sysUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(sysUsers)) { if (CollectionUtils.isNotEmpty(sysUsers)) {
String certificationEngineerId = projectLibraryBase.getCertificationEngineer(); String certificationEngineerId = projectLibraryBase.getCertificationEngineer();
String certificationEngineerName=null; String certificationEngineerName = null;
String certificationEngineerEnName=null;
StringBuilder certificationName=new StringBuilder(); for (String data : certificationEngineerIdList) {
for (String data:certificationEngineerIdList){
if (StringUtils.isNotEmpty(certificationEngineerId)) { if (StringUtils.isNotEmpty(certificationEngineerId)) {
certificationEngineerName = sysUsers.stream().filter(e -> data.equals(e.getId())) certificationEngineerName = sysUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
certificationEngineerEnName = sysUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
} }
certificationName.append(certificationEngineerName).append("(").append(certificationEngineerEnName).append(")").append(" ");
} }
projectLibraryBase.setCertificationEngineerName(certificationName.toString()); projectLibraryBase.setCertificationEngineerName(certificationEngineerName);
} }
StringBuilder studioCnName= new StringBuilder(projectLibraryBase.getStudioEngineerName()); }
StringBuilder studioEnName= new StringBuilder(projectLibraryBase.getStudioEngineerEnName());
String studioName = studioCnName.append("(").append(studioEnName).append(")").toString();
projectLibraryBase.setStudioEngineerName(studioName);
} }
} }
} }
@@ -42,7 +42,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
/** /**
* 保存 * 保存
* *
* @param projectRelatedPersonnel
* @return * @return
*/ */
@Override @Override
@@ -56,6 +55,17 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
save(projectRelatedPersonnel); save(projectRelatedPersonnel);
} }
/**
* 保存责任领域
*
* @return
*/
public void setDutyTerritoryValue(String sysDictItemValue,String projectId) {
ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel();
projectRelatedPersonnel.setDutyTerritory(sysDictItemValue);
projectRelatedPersonnel.setProjectId(projectId);
add(projectRelatedPersonnel);
}
/** /**
* 更新 * 更新
* *
@@ -78,9 +88,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
* @return * @return
*/ */
@Override @Override
public void deleteById(String id) { public void deleteById(String id) {
removeById(id); removeById(id);
} }
/** /**
* 批量删除 * 批量删除
@@ -89,24 +99,24 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
* @return * @return
*/ */
@Override @Override
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
removeByIds(ids); removeByIds(ids);
} }
/** /**
* 通过projectId查询 * 通过id查询
* *
* @param projectId * @param id
* @return * @return
*/ */
@Override @Override
public List<ProjectRelatedPersonnel> queryByProjectId(String projectId) { public List<ProjectRelatedPersonnel> queryById(String id) {
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelMapper.queryByProjectId(projectId); List<ProjectRelatedPersonnel> records = projectRelatedPersonnelMapper.queryById(id);
disposeData(records); disposeData(records);
return records; return records;
} }
/** /**
* 列表查询 * 列表查询
* *
* @return * @return
@@ -135,91 +145,75 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) { for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
//法规工程师 //法规工程师
List<SysUser> lawEngineerUsers = new ArrayList<>(); List<SysUser> lawEngineerUsers = new ArrayList<>();
List<String> lawEngineerIdList = Arrays.asList(projectRelatedPersonnel.getLawEngineer().split(",")); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())){
if (CollectionUtils.isNotEmpty(lawEngineerIdList)) { List<String> lawEngineerIdList = Arrays.asList(projectRelatedPersonnel.getLawEngineer().split(","));
lawEngineerIdList = lawEngineerIdList.stream().distinct().collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(lawEngineerIdList)) {
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>(); lawEngineerIdList = lawEngineerIdList.stream().distinct().collect(Collectors.toList());
userqueryWrapper.in("id ", lawEngineerIdList); QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
lawEngineerUsers = sysUserMapper.selectList(userqueryWrapper); userqueryWrapper.in("id ", lawEngineerIdList);
} lawEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
String lawEngineerId = projectRelatedPersonnel.getLawEngineer();
String lawEngineerName = null;
String lawEngineerEnName = null;
StringBuilder certificationName = new StringBuilder();
for (String data : lawEngineerIdList) {
if (StringUtils.isNotEmpty(lawEngineerId)) {
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
lawEngineerEnName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
certificationName.append(lawEngineerName).append("(").append(lawEngineerEnName).append(")").append(" ");
} }
projectRelatedPersonnel.setLawEngineerName(certificationName.toString());
}
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
String lawEngineerId = projectRelatedPersonnel.getLawEngineer();
String lawEngineerName = null;
for (String data : lawEngineerIdList) {
if (StringUtils.isNotEmpty(lawEngineerId)) {
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
}
projectRelatedPersonnel.setLawEngineerName(lawEngineerName);
}
}
//工程接口人 //工程接口人
List<SysUser> engineeringInterfacePersonUsers = new ArrayList<>(); List<SysUser> engineeringInterfacePersonUsers = new ArrayList<>();
List<String> engineeringInterfacePersonIdList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePerson().split(",")); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) {
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonIdList)) { List<String> engineeringInterfacePersonIdList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePerson().split(","));
engineeringInterfacePersonIdList = engineeringInterfacePersonIdList.stream().distinct().collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(engineeringInterfacePersonIdList)) {
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>(); engineeringInterfacePersonIdList = engineeringInterfacePersonIdList.stream().distinct().collect(Collectors.toList());
userqueryWrapper.in("id ", engineeringInterfacePersonIdList); QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
engineeringInterfacePersonUsers = sysUserMapper.selectList(userqueryWrapper); userqueryWrapper.in("id ", engineeringInterfacePersonIdList);
} engineeringInterfacePersonUsers = sysUserMapper.selectList(userqueryWrapper);
if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) { }
String engineeringInterfacePersonId = projectRelatedPersonnel.getEngineeringInterfacePerson(); if (CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
String engineeringInterfacePersonName = null; String engineeringInterfacePersonId = projectRelatedPersonnel.getEngineeringInterfacePerson();
String engineeringInterfacePersonEnName = null; String engineeringInterfacePersonName = null;
StringBuilder certificationName = new StringBuilder();
for (String data : engineeringInterfacePersonIdList) { for (String data : engineeringInterfacePersonIdList) {
if (StringUtils.isNotEmpty(engineeringInterfacePersonId)) { if (StringUtils.isNotEmpty(engineeringInterfacePersonId)) {
engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId())) engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(",")); .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
engineeringInterfacePersonEnName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId())) }
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
} }
projectRelatedPersonnel.setEngineeringInterfacePersonName(engineeringInterfacePersonName);
certificationName.append(engineeringInterfacePersonName).append("(").append(engineeringInterfacePersonEnName).append(")").append(" ");
} }
projectRelatedPersonnel.setEngineeringInterfacePersonName(certificationName.toString());
} }
//认证工程师 //认证工程师
List<SysUser> certificationEngineerUsers = new ArrayList<>(); List<SysUser> certificationEngineerUsers = new ArrayList<>();
List<String> certificationEngineerIdList = Arrays.asList(projectRelatedPersonnel.getCertificationEngineer().split(",")); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())){
if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) { List<String> certificationEngineerIdList = Arrays.asList(projectRelatedPersonnel.getCertificationEngineer().split(","));
certificationEngineerIdList=certificationEngineerIdList.stream().distinct().collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) {
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>(); certificationEngineerIdList=certificationEngineerIdList.stream().distinct().collect(Collectors.toList());
userqueryWrapper.in("id ", certificationEngineerIdList); QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
certificationEngineerUsers = sysUserMapper.selectList(userqueryWrapper); userqueryWrapper.in("id ", certificationEngineerIdList);
} certificationEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
String certificationEngineerId = projectRelatedPersonnel.getCertificationEngineer();
String certificationEngineerName=null;
String certificationEngineerEnName=null;
StringBuilder certificationName=new StringBuilder();
for (String data:certificationEngineerIdList){
if (StringUtils.isNotEmpty(certificationEngineerId)) {
certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
certificationEngineerEnName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
certificationName.append(certificationEngineerName).append("(").append(certificationEngineerEnName).append(")").append(" ");
} }
projectRelatedPersonnel.setCertificationEngineerName(certificationName.toString()); if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
String certificationEngineerId = projectRelatedPersonnel.getCertificationEngineer();
String certificationEngineerName = null;
for (String data : certificationEngineerIdList) {
if (StringUtils.isNotEmpty(certificationEngineerId)) {
certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
}
projectRelatedPersonnel.setCertificationEngineerName(certificationEngineerName);
}
} }
} }
+3
View File
@@ -682,4 +682,7 @@ module.exports = {
taskList:'Task list', taskList:'Task list',
TaskParameterCollection:'Task parameter collection', TaskParameterCollection:'Task parameter collection',
nonConformance:'Non conformance', nonConformance:'Non conformance',
deadlineForConfirmationOfDesignCompliance:'Deadline for confirmation of design compliance',
prehomoConfirmationDeadline:'Prehomo confirmation deadline',
verificationComplianceConfirmationDeadline:'Verification compliance confirmation deadline',
} }
+3
View File
@@ -686,4 +686,7 @@ module.exports = {
taskList:'任务清单', taskList:'任务清单',
TaskParameterCollection:'任务参数收集', TaskParameterCollection:'任务参数收集',
nonConformance:'未符合项', nonConformance:'未符合项',
deadlineForConfirmationOfDesignCompliance:'设计符合性确认截止时间',
prehomoConfirmationDeadline:'PreHomo确认截止时间',
verificationComplianceConfirmationDeadline:'验证符合性确认截止时间',
} }
@@ -8,16 +8,18 @@
<span>{{$t('standard')}}</span> <span>{{$t('standard')}}</span>
</div> </div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')" <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.standard"></a-input> v-model="queryParam.serialNumber"></a-input>
</div> </div>
</a-col> </a-col>
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text" :title="$t('areaOfResponsibility')"> <div class="title-text" style="width: 64px" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span> <span>{{$t('areaOfResponsibility')}}</span>
</div> </div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('areaOfResponsibility')" <j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
v-model="queryParam.title"></a-input> :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'region'"/>
</div> </div>
</a-col> </a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons"> <span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
@@ -164,7 +166,7 @@
align: 'center', align: 'center',
dataIndex: 'CurrentProjectStatusEvaluation', dataIndex: 'CurrentProjectStatusEvaluation',
scopedSlots: { customRender: 'CurrentProjectStatusEvaluation' } scopedSlots: { customRender: 'CurrentProjectStatusEvaluation' }
}, }
], ],
selectedRowKeys: [], selectedRowKeys: [],
queryParam: {}, queryParam: {},
@@ -188,9 +190,9 @@
handleExport() { handleExport() {
}, },
CertificationDirectory(){ CertificationDirectory() {
}, }
} }
} }
</script> </script>
@@ -198,66 +200,6 @@
<style lang="less" scoped> <style lang="less" scoped>
@import '~@assets/less/common.less'; @import '~@assets/less/common.less';
.doc-detail {
background: #fff;
height: 100%;
.Virtual-detail-header {
width: 100%;
height: 68px;
line-height: 68px;
padding: 0 32px 0 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
border-bottom: 2px #eff1f3 solid;
background: #fff;
.Virtual-detail-title {
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 20px;
font-weight: 400;
color: #040B29;
line-height: 68px;
}
.doc-detail-right {
width: 800px;
line-height: 68px;
display: flex;
}
}
.Virtual-detail-content {
padding: 0 38px 0 38px;
box-sizing: border-box;
font-size: 16px;
.box-title-text-add {
line-height: 1.4;
}
.title-text-add {
display: inline-block;
font-weight: 500;
margin-right: 16px;
height: 42px;
line-height: 42px;
}
}
}
.header-text {
font-size: 16px;
font-weight: 400;
height: 60px;
color: #000F16;
line-height: 40px;
}
.box-title-text { .box-title-text {
line-height: 1.4; line-height: 1.4;
display: flex; display: flex;
@@ -266,8 +208,7 @@
} }
.title-text { .title-text {
width: 20%; width: 32px;
min-width: 110px;
color: #000F16; color: #000F16;
display: inline-block; display: inline-block;
font-weight: 500; font-weight: 500;
@@ -0,0 +1,276 @@
<template>
<a-modal
:title="$t('batSetting')"
:width="900"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('implementationCategory')">{{$t('implementationCategory')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.implementType"
@input="handleInput('implementType')"
:placeholder="$t('PleaseSelect')+$t('implementationCategory')"
:type="'select'"
:triggerChange="false" dictCode="implement_type"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('certificationType')">{{$t('certificationType')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.attestationType"
@input="handleInput('attestationType')"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
:triggerChange="false" dictCode="attestation_type"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
@input="handleInput('attestationRank')"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" dictCode="attestation_rank"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" dictCode="duty_territory"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('deadlineForConfirmationOfDesignCompliance')">
{{$t('deadlineForConfirmationOfDesignCompliance')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('deadlineForConfirmationOfDesignCompliance')"
@change="dateChange({db_field_name:'designDueDate'})"
format="YYYY-MM-DD"
v-model="formInline.designDueDate"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('prehomoConfirmationDeadline')">
{{$t('prehomoConfirmationDeadline')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('prehomoConfirmationDeadline')"
@change="dateChange({db_field_name:'prehomoDueDate'})"
format="YYYY-MM-DD"
v-model="formInline.prehomoDueDate"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('verificationComplianceConfirmationDeadline')">
{{$t('verificationComplianceConfirmationDeadline')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('verificationComplianceConfirmationDeadline')"
@change="dateChange({db_field_name:'verifyDueDate'})"
format="YYYY-MM-DD"
v-model="formInline.verifyDueDate"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import moment from 'moment'
export default {
name: 'batSetting',
props: ['url'],
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
rules: {},
ids: []
}
},
mounted() {
},
methods: {
edit(data) {
this.visible = true
this.$nextTick(() => {
this.ids = data || []
this.formInline = {}
})
},
handleOk() {
let ids = JSON.parse(JSON.stringify(this.ids))
let query = {
ids: ids.join(','),
...this.formInline
}
this.confirmLoading = true
postAction(this.url.setBatch, query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.confirmLoading = false
this.$emit('batSettingList')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
dateChange(item) {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
}
}
}
</script>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: calc(100% - 130px);
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 84px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
</style>
@@ -198,8 +198,8 @@
<a-select-option v-for="(item, key) in regulatoryEngineerList" <a-select-option v-for="(item, key) in regulatoryEngineerList"
:key="key" :key="key"
:value="item.value"> :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.text || item.label "> <span style="display: inline-block;width: 100%" :title=" item.name">
{{ item.text || item.label }} {{ item.name }}
</span> </span>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -218,11 +218,11 @@
<a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')" <a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')"
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.homologationEngineerId"> v-model="formInline.homologationEngineerId">
<a-select-option v-for="(item, key) in regulatoryEngineerList" <a-select-option v-for="(item, key) in certificationEngineerList"
:key="key" :key="key"
:value="item.value"> :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.text || item.label "> <span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.text || item.label }} {{ item.name}}
</span> </span>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -239,11 +239,11 @@
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')" <a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
:disabled="formInline.roleCode == 0 ? false : true" :disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.engineeringInterfacePerson"> v-model="formInline.engineeringInterfacePerson">
<a-select-option v-for="(item, key) in regulatoryEngineerList" <a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:key="key" :key="key"
:value="item.value"> :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.text || item.label "> <span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.text || item.label }} {{ item.name }}
</span> </span>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -569,14 +569,30 @@
rules: {}, rules: {},
formInline: {}, formInline: {},
regulatoryEngineerList: [], regulatoryEngineerList: [],
engineeringInterfacePersonList: [],
certificationEngineerList: [],
disabled: false disabled: false
} }
}, },
mounted() { mounted() {
}, },
methods: { methods: {
queryPersonByProject(row) {
let query = {
projectId: this.$route.query.id,
dutyTerritory: row.dutyTerritory
}
getAction(this.url.queryPersonByProject, query).then((res) => {
if (res.success) {
this.regulatoryEngineerList = res.result.lawEngineerList
this.engineeringInterfacePersonList = res.result.engineeringInterfacePersonList
this.certificationEngineerList = res.result.certificationEngineerList
}
})
},
editModel(item) { editModel(item) {
this.visible = true this.visible = true
this.queryPersonByProject(item)
this.$nextTick(() => { this.$nextTick(() => {
this.rules = {} this.rules = {}
this.formInline = item this.formInline = item
@@ -680,7 +696,7 @@
}, },
handleSubmit() { handleSubmit() {
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
if (valid){ if (valid) {
let formInline = JSON.parse(JSON.stringify(this.formInline)) let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => { Object.keys(formInline).forEach(res => {
if (formInline[res] && formInline[res] instanceof Array) { if (formInline[res] && formInline[res] instanceof Array) {
@@ -163,6 +163,7 @@
</div> </div>
<listAddModel :url="url" @addModelList="addModelList" ref="addModelRef"/> <listAddModel :url="url" @addModelList="addModelList" ref="addModelRef"/>
<listEditModel :url="url" @editModelList="addModelList" ref="editModelRef"/> <listEditModel :url="url" @editModelList="addModelList" ref="editModelRef"/>
<batSetting :url="url" @batSettingList="addModelList" ref="batSettingRef"/>
<a-modal <a-modal
:title="$t('ListConfirmationDeadline')" :title="$t('ListConfirmationDeadline')"
:width="500" :width="500"
@@ -227,6 +228,7 @@
import ImportFile from '@/components/ImportFile/index' import ImportFile from '@/components/ImportFile/index'
import listAddModel from './listAddModel' import listAddModel from './listAddModel'
import listEditModel from './listEditModel' import listEditModel from './listEditModel'
import batSetting from './batSetting'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage' import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import moment from 'moment' import moment from 'moment'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@@ -237,7 +239,8 @@
components: { components: {
ImportFile, ImportFile,
listAddModel, listAddModel,
listEditModel listEditModel,
batSetting
}, },
data() { data() {
return { return {
@@ -484,7 +487,9 @@
deleteBatch: '/project/projectLawsInventoryEO/deleteBatch', deleteBatch: '/project/projectLawsInventoryEO/deleteBatch',
deleteOne: '/project/projectLawsInventoryEO/delete', deleteOne: '/project/projectLawsInventoryEO/delete',
updateStatusBatch: '/project/projectLawsInventoryEO/updateStatusBatch', updateStatusBatch: '/project/projectLawsInventoryEO/updateStatusBatch',
matchRelevantPeople: '/project/projectLawsInventoryEO/matchRelevantPeople' matchRelevantPeople: '/project/projectLawsInventoryEO/matchRelevantPeople',
queryPersonByProject: '/project/projectRelatedPersonnel/queryPersonByProjectId',
setBatch: ''
}, },
loading: false, loading: false,
dataSource: [] dataSource: []
@@ -511,7 +516,11 @@
}, },
batSettingClick() { batSettingClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
}, },
handleAdd() { handleAdd() {
this.$refs.addModelRef.addModel() this.$refs.addModelRef.addModel()
@@ -69,6 +69,7 @@
</div> </div>
<a-form-model-item class="itemModel" prop="dutyTerritory"> <a-form-model-item class="itemModel" prop="dutyTerritory">
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory" <j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:disabled="true"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'" :type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/> :triggerChange="false" :dictCode="'duty_territory'"/>