进度审批修改监理
This commit is contained in:
parent
ab2b00e645
commit
ef02864567
@ -1,16 +1,15 @@
|
||||
package com.zhgd.xmgl.modules.quality.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zhgd.annotation.DataScope;
|
||||
import com.zhgd.xmgl.modules.quality.entity.QualityRegion;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.zhgd.annotation.DataScope;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.zhgd.xmgl.modules.quality.entity.QualityRegion;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @Description: 质量—检查部位
|
||||
* @author: pds
|
||||
@ -25,11 +24,30 @@ public interface QualityRegionMapper extends BaseMapper<QualityRegion> {
|
||||
|
||||
List<QualityRegion> selectChildQualityRegionList(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
QualityRegion getPeerNewQualityRegion(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* @param id
|
||||
*/
|
||||
void updateDutyNull(String id);
|
||||
|
||||
/**
|
||||
* @param oldAncestor
|
||||
* @param newAncestor
|
||||
* @param projectSn
|
||||
* @param id
|
||||
*/
|
||||
void updateAncestors(@Param("oldAncestor") String oldAncestor, @Param("newAncestor") String newAncestor, @Param("projectSn") String projectSn, @Param("id") Long id);
|
||||
|
||||
/**
|
||||
* 通过项目sn和区域名称查询区域列表
|
||||
* @param projectSn
|
||||
* @param regionSet
|
||||
* @return
|
||||
*/
|
||||
List<QualityRegion> selectBySnAndNumberOneList(@Param("sn") String projectSn, @Param("regionSet") Set<String> regionSet);
|
||||
}
|
||||
|
||||
@ -1,6 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zhgd.xmgl.modules.quality.mapper.QualityRegionMapper">
|
||||
<resultMap id="selectBySnAndNumberOneListRm" type="com.zhgd.xmgl.modules.quality.entity.QualityRegion"
|
||||
autoMapping="true">
|
||||
<id column="id" property="id"/>
|
||||
<collection property="enterpriseInfos" ofType="com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo"
|
||||
notNullColumn="enterprise_info_id">
|
||||
<id property="id" column="enterprise_info_id"/>
|
||||
<id property="enterpriseName" column="enterpriseName"/>
|
||||
<id property="enterpriseSn" column="enterprise_sn"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="selectQualityRegionListRm" type="com.zhgd.xmgl.modules.quality.entity.QualityRegion"
|
||||
autoMapping="true">
|
||||
<id column="id" property="id"/>
|
||||
@ -77,17 +88,18 @@
|
||||
WHERE ancestors LIKE N'${oldAncestor},${id}%' and project_sn = #{projectSn}
|
||||
</update>
|
||||
|
||||
<select id="selectBySnAndNumberOneList" resultType="com.zhgd.xmgl.modules.quality.entity.QualityRegion">
|
||||
select id, region_name
|
||||
from quality_region
|
||||
where project_sn = #{sn}
|
||||
<select id="selectBySnAndNumberOneList" resultMap="selectBySnAndNumberOneListRm">
|
||||
SELECT qr.*,ei.id as enterprise_info_id,ei.enterprise_name as
|
||||
enterpriseName,ei.enterprise_sn
|
||||
from quality_region qr
|
||||
JOIN quality_region_to_enterprise te ON te.quality_region_id=qr.id
|
||||
JOIN enterprise_info ei on ei.id=te.enterprise_id
|
||||
WHERE qr.project_sn = #{sn}
|
||||
<if test="regionSet != null and regionSet.size() != 0">
|
||||
and region_name in
|
||||
<foreach collection="regionSet" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
group by `region_name`
|
||||
HAVING COUNT(region_name) = 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
join worker_info wi on wi.enterprise_id= qrte.enterprise_id
|
||||
join system_user su on su.worker_id = wi.id
|
||||
join base_role_user bru on bru.user_id = su.user_id
|
||||
join base_role br on br.role_name = '监理'
|
||||
join base_role br on br.role_name = '监理' and su.user_id = #{param.userId}
|
||||
</if>
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
@ -77,10 +77,6 @@ public class XzTaskProgressContentServiceImpl extends ServiceImpl<XzTaskProgress
|
||||
public IPage<XzTaskProgressContent> queryPageList(HashMap<String, Object> paramMap) {
|
||||
QueryWrapper<XzTaskProgressContent> queryWrapper = getQueryWrapper(paramMap);
|
||||
Page<XzTaskProgressContent> page = PageUtil.getPage(paramMap);
|
||||
if (SecurityUtils.getUser() != null) {
|
||||
Integer accountType = SecurityUtils.getUser().getAccountType();
|
||||
paramMap.put("accountType", accountType);
|
||||
}
|
||||
IPage<XzTaskProgressContent> pageList = baseMapper.queryList(page, queryWrapper, paramMap);
|
||||
pageList.setRecords(dealList(pageList.getRecords()));
|
||||
return pageList;
|
||||
@ -138,6 +134,12 @@ public class XzTaskProgressContentServiceImpl extends ServiceImpl<XzTaskProgress
|
||||
String date = MapUtils.getString(paramMap, "date");
|
||||
Integer isAudit = MapUtils.getInteger(paramMap, "isAudit");
|
||||
String alias = "c.";
|
||||
//这条进度审批数据会发送给区域1下面绑定责任单位的监理角色的人
|
||||
if (SecurityUtils.getUser() != null) {
|
||||
Integer accountType = SecurityUtils.getUser().getAccountType();
|
||||
paramMap.put("accountType", accountType);
|
||||
paramMap.put("userId", SecurityUtils.getUser().getUserId());
|
||||
}
|
||||
QueryWrapper<XzTaskProgressContent> queryWrapper = QueryGenerator.initPageQueryWrapper(XzTaskProgressContent.class, paramMap, alias);
|
||||
if (StrUtil.isNotBlank(taskName)) {
|
||||
queryWrapper.like("xtp.task_name", taskName);
|
||||
@ -160,7 +162,7 @@ public class XzTaskProgressContentServiceImpl extends ServiceImpl<XzTaskProgress
|
||||
@Override
|
||||
public List<XzTaskProgressContent> queryList(HashMap<String, Object> paramMap) {
|
||||
QueryWrapper<XzTaskProgressContent> queryWrapper = getQueryWrapper(paramMap);
|
||||
return dealList(baseMapper.queryList(queryWrapper, null));
|
||||
return dealList(baseMapper.queryList(queryWrapper, new HashMap<>(16)));
|
||||
}
|
||||
|
||||
private List<XzTaskProgressContent> dealList(List<XzTaskProgressContent> list) {
|
||||
|
||||
@ -261,14 +261,16 @@ public class XzTaskProgressServiceImpl extends ServiceImpl<XzTaskProgressMapper,
|
||||
Collection<XzTaskProgress> progressTaskList = analysisMpp(mppFile, projectSn, createUserId);
|
||||
log.info("importData的新增数据:{}", progressTaskList);
|
||||
|
||||
if (Objects.equals(type, 1)) {
|
||||
int deleteAndReplace = 1;
|
||||
int replace = 2;
|
||||
if (Objects.equals(type, deleteAndReplace)) {
|
||||
taskProgressMapper.delete(queryWrapper);
|
||||
taskProgressContentMapper.delete(Wrappers.lambdaQuery(XzTaskProgressContent.class).eq(XzTaskProgressContent::getProjectSn, projectSn));
|
||||
taskProgressAlarmMapper.delete(Wrappers.lambdaQuery(XzTaskProgressAlarm.class).eq(XzTaskProgressAlarm::getProjectSn, projectSn));
|
||||
if (CollUtil.isNotEmpty(progressTaskList)) {
|
||||
this.saveBatch(progressTaskList);
|
||||
}
|
||||
} else if (Objects.equals(type, 2)) {
|
||||
} else if (Objects.equals(type, replace)) {
|
||||
taskProgressAlarmMapper.delete(Wrappers.lambdaQuery(XzTaskProgressAlarm.class).eq(XzTaskProgressAlarm::getProjectSn, projectSn));
|
||||
//新增
|
||||
Set<String> oldSet = progressTasks.stream().map(taskProgress -> taskProgress.getTaskName()).collect(Collectors.toSet());
|
||||
@ -298,7 +300,6 @@ public class XzTaskProgressServiceImpl extends ServiceImpl<XzTaskProgressMapper,
|
||||
*/
|
||||
private Collection<XzTaskProgress> analysisMpp(MultipartFile mppFile, String projectSn, Long createUserId) {
|
||||
List<XzTaskProgress> projectTaskList = new LinkedList<>();
|
||||
List<XzTaskProgress> rtList = new LinkedList<>();
|
||||
Set<String> userNameSet = new LinkedHashSet<>();
|
||||
Set<String> regionSet = new LinkedHashSet<>();
|
||||
Set<String> enterpriseSet = new LinkedHashSet<>();
|
||||
@ -309,12 +310,47 @@ public class XzTaskProgressServiceImpl extends ServiceImpl<XzTaskProgressMapper,
|
||||
ProjectFile pf = mppRead.read(new File(basePath + fileName));
|
||||
// 递归拿到对应的数据, 跳过第0级无用数据
|
||||
List<Task> childTasks = pf.getChildTasks();
|
||||
if (CollUtil.isNotEmpty(childTasks)) {
|
||||
if (CollUtil.isEmpty(childTasks)) {
|
||||
throw new RuntimeException("mpp文件数据为空!");
|
||||
}
|
||||
structureTaskDataList(projectTaskList, userNameSet, childTasks.get(0).getChildTasks(), 0L, projectSn, createUserId, null, regionSet, enterpriseSet);
|
||||
if (CollUtil.isEmpty(enterpriseSet)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的承包商");
|
||||
}
|
||||
if (CollUtil.isEmpty(regionSet)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的区域");
|
||||
}
|
||||
|
||||
//验证和导入区域
|
||||
List<QualityRegion> regions = qualityRegionMapper.selectBySnAndNumberOneList(projectSn, regionSet);
|
||||
if (CollUtil.isEmpty(regions)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的绑定承包商的区域");
|
||||
}
|
||||
Map<String, QualityRegion> regionMap = regions.stream().collect(Collectors.toMap(QualityRegion::getRegionName, Function.identity(), (qualityRegion, qualityRegion2) -> qualityRegion));
|
||||
for (XzTaskProgress progress : projectTaskList) {
|
||||
QualityRegion region = regionMap.get(progress.getQualityRegionName());
|
||||
if (region == null || region.getEnterpriseInfos() == null || !region.getEnterpriseInfos().stream().map(EnterpriseInfo::getEnterpriseName).collect(Collectors.toSet()).contains(progress.getEnterpriseName())) {
|
||||
throw new OpenAlertException(progress.getQualityRegionName() + "和" + progress.getEnterpriseName() + "不对应");
|
||||
}
|
||||
progress.setQualityRegionId(regionMap.get(progress.getQualityRegionName()).getId());
|
||||
}
|
||||
|
||||
//验证和导入承包商
|
||||
List<EnterpriseInfo> enterpriseInfos = enterpriseInfoMapper.selectBySnAndNumberOneList(projectSn, enterpriseSet);
|
||||
if (CollUtil.isEmpty(enterpriseInfos)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的承包商");
|
||||
}
|
||||
Map<String, Long> enterpriseMap = enterpriseInfos.stream().collect(Collectors.toMap(EnterpriseInfo::getEnterpriseName, EnterpriseInfo::getId));
|
||||
for (XzTaskProgress progressTask : projectTaskList) {
|
||||
Long l = enterpriseMap.get(progressTask.getEnterpriseName());
|
||||
if (l != null) {
|
||||
progressTask.setEnterpriseId(l);
|
||||
}
|
||||
}
|
||||
|
||||
// 判断是否具有负责人
|
||||
if (CollUtil.isNotEmpty(userNameSet)) {
|
||||
List<SystemUser> dutyUserList = systemUserMapper.selectBySnAndNumberOneList(projectSn, userNameSet);
|
||||
|
||||
// 用户不为空时,进行负责人id赋值
|
||||
if (CollUtil.isNotEmpty(dutyUserList)) {
|
||||
Map<String, Long> userMap = dutyUserList.stream().collect(Collectors.toMap(SystemUser::getRealName, SystemUser::getUserId));
|
||||
@ -324,46 +360,13 @@ public class XzTaskProgressServiceImpl extends ServiceImpl<XzTaskProgressMapper,
|
||||
}
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(regionSet)) {
|
||||
List<QualityRegion> dutyUserList = qualityRegionMapper.selectBySnAndNumberOneList(projectSn, regionSet);
|
||||
|
||||
if (CollUtil.isNotEmpty(dutyUserList)) {
|
||||
Map<String, Long> userMap = dutyUserList.stream().collect(Collectors.toMap(QualityRegion::getRegionName, QualityRegion::getId));
|
||||
for (XzTaskProgress progressTask : projectTaskList) {
|
||||
progressTask.setQualityRegionId(userMap.get(progressTask.getQualityRegionName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CollUtil.isEmpty(enterpriseSet)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的承包商");
|
||||
}
|
||||
List<EnterpriseInfo> dutyUserList = enterpriseInfoMapper.selectBySnAndNumberOneList(projectSn, enterpriseSet);
|
||||
if (CollUtil.isEmpty(dutyUserList)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的承包商");
|
||||
}
|
||||
Map<String, Long> userMap = dutyUserList.stream().collect(Collectors.toMap(EnterpriseInfo::getEnterpriseName, EnterpriseInfo::getId));
|
||||
for (XzTaskProgress progressTask : projectTaskList) {
|
||||
Long l = userMap.get(progressTask.getEnterpriseName());
|
||||
if (l != null) {
|
||||
progressTask.setEnterpriseId(l);
|
||||
rtList.add(progressTask);
|
||||
}
|
||||
}
|
||||
if (CollUtil.isEmpty(rtList)) {
|
||||
throw new OpenPromptException("未导入数据,未找到对应的承包商");
|
||||
}
|
||||
Map<Long, XzTaskProgress> progressTaskMap = rtList.stream().collect(Collectors.toMap(XzTaskProgress::getId, Function.identity()));
|
||||
|
||||
Map<Long, XzTaskProgress> progressTaskMap = projectTaskList.stream().collect(Collectors.toMap(XzTaskProgress::getId, Function.identity()));
|
||||
return progressTaskMap.values();
|
||||
}
|
||||
throw new RuntimeException("mpp文件数据为空!");
|
||||
|
||||
} catch (MPXJException e) {
|
||||
throw new OpenAlertException("上传甘特图失败,请上传.mpp文件");
|
||||
} catch (Exception e) {
|
||||
log.error("解析文件错误!", e);
|
||||
throw new RuntimeException("操作失败:" + e.getMessage());
|
||||
throw new OpenAlertException("操作失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -425,9 +428,15 @@ public class XzTaskProgressServiceImpl extends ServiceImpl<XzTaskProgressMapper,
|
||||
progressTask.setDutyUserName(dutyUserName);
|
||||
userNameSet.add(dutyUserName);
|
||||
String regionName = task.getText(5);
|
||||
if (StrUtil.isBlank(regionName)) {
|
||||
throw new OpenAlertException("区域不能为空");
|
||||
}
|
||||
progressTask.setQualityRegionName(regionName);
|
||||
regionSet.add(regionName);
|
||||
String enterpriseName = task.getText(6);
|
||||
if (StrUtil.isBlank(enterpriseName)) {
|
||||
throw new OpenAlertException("承包商不能为空");
|
||||
}
|
||||
progressTask.setEnterpriseName(enterpriseName);
|
||||
enterpriseSet.add(enterpriseName);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user