diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java index f14e8ba4d..5c2e81632 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java @@ -1,20 +1,19 @@ 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 - * @date: 2020-10-21 + * @date: 2020-10-21 * @version: V1.0 */ @Mapper @@ -25,11 +24,30 @@ public interface QualityRegionMapper extends BaseMapper { List selectChildQualityRegionList(Map map); + /** + * @param param + * @return + */ QualityRegion getPeerNewQualityRegion(Map 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 selectBySnAndNumberOneList(@Param("sn") String projectSn, @Param("regionSet") Set regionSet); } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml index ae40633db..ebe58ce67 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml @@ -1,6 +1,17 @@ + + + + + + + + + @@ -77,17 +88,18 @@ WHERE ancestors LIKE N'${oldAncestor},${id}%' and project_sn = #{projectSn} - + 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} and region_name in #{item} - group by `region_name` - HAVING COUNT(region_name) = 1 diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzTaskProgressContentMapper.xml b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzTaskProgressContentMapper.xml index ad11acafe..f7371e3e2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzTaskProgressContentMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzTaskProgressContentMapper.xml @@ -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} ${ew.customSqlSegment} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressContentServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressContentServiceImpl.java index 7a7ec601a..c9c69bd9d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressContentServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressContentServiceImpl.java @@ -77,10 +77,6 @@ public class XzTaskProgressContentServiceImpl extends ServiceImpl queryPageList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); Page page = PageUtil.getPage(paramMap); - if (SecurityUtils.getUser() != null) { - Integer accountType = SecurityUtils.getUser().getAccountType(); - paramMap.put("accountType", accountType); - } IPage pageList = baseMapper.queryList(page, queryWrapper, paramMap); pageList.setRecords(dealList(pageList.getRecords())); return pageList; @@ -138,6 +134,12 @@ public class XzTaskProgressContentServiceImpl extends ServiceImpl 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 queryList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); - return dealList(baseMapper.queryList(queryWrapper, null)); + return dealList(baseMapper.queryList(queryWrapper, new HashMap<>(16))); } private List dealList(List list) { diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressServiceImpl.java index 6445fc1cf..383b8858c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzTaskProgressServiceImpl.java @@ -261,14 +261,16 @@ public class XzTaskProgressServiceImpl extends ServiceImpl 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 oldSet = progressTasks.stream().map(taskProgress -> taskProgress.getTaskName()).collect(Collectors.toSet()); @@ -298,7 +300,6 @@ public class XzTaskProgressServiceImpl extends ServiceImpl analysisMpp(MultipartFile mppFile, String projectSn, Long createUserId) { List projectTaskList = new LinkedList<>(); - List rtList = new LinkedList<>(); Set userNameSet = new LinkedHashSet<>(); Set regionSet = new LinkedHashSet<>(); Set enterpriseSet = new LinkedHashSet<>(); @@ -309,61 +310,63 @@ public class XzTaskProgressServiceImpl extends ServiceImpl childTasks = pf.getChildTasks(); - if (CollUtil.isNotEmpty(childTasks)) { - structureTaskDataList(projectTaskList, userNameSet, childTasks.get(0).getChildTasks(), 0L, projectSn, createUserId, null, regionSet, enterpriseSet); - // 判断是否具有负责人 - if (CollUtil.isNotEmpty(userNameSet)) { - List dutyUserList = systemUserMapper.selectBySnAndNumberOneList(projectSn, userNameSet); - - // 用户不为空时,进行负责人id赋值 - if (CollUtil.isNotEmpty(dutyUserList)) { - Map userMap = dutyUserList.stream().collect(Collectors.toMap(SystemUser::getRealName, SystemUser::getUserId)); - for (XzTaskProgress progressTask : projectTaskList) { - progressTask.setDutyUserId(userMap.get(progressTask.getDutyUserName())); - } - } - } - - if (CollUtil.isNotEmpty(regionSet)) { - List dutyUserList = qualityRegionMapper.selectBySnAndNumberOneList(projectSn, regionSet); - - if (CollUtil.isNotEmpty(dutyUserList)) { - Map 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 dutyUserList = enterpriseInfoMapper.selectBySnAndNumberOneList(projectSn, enterpriseSet); - if (CollUtil.isEmpty(dutyUserList)) { - throw new OpenPromptException("未导入数据,未找到对应的承包商"); - } - Map 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 progressTaskMap = rtList.stream().collect(Collectors.toMap(XzTaskProgress::getId, Function.identity())); - - return progressTaskMap.values(); + 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("未导入数据,未找到对应的区域"); } - throw new RuntimeException("mpp文件数据为空!"); + //验证和导入区域 + List regions = qualityRegionMapper.selectBySnAndNumberOneList(projectSn, regionSet); + if (CollUtil.isEmpty(regions)) { + throw new OpenPromptException("未导入数据,未找到对应的绑定承包商的区域"); + } + Map 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 enterpriseInfos = enterpriseInfoMapper.selectBySnAndNumberOneList(projectSn, enterpriseSet); + if (CollUtil.isEmpty(enterpriseInfos)) { + throw new OpenPromptException("未导入数据,未找到对应的承包商"); + } + Map 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 dutyUserList = systemUserMapper.selectBySnAndNumberOneList(projectSn, userNameSet); + // 用户不为空时,进行负责人id赋值 + if (CollUtil.isNotEmpty(dutyUserList)) { + Map userMap = dutyUserList.stream().collect(Collectors.toMap(SystemUser::getRealName, SystemUser::getUserId)); + for (XzTaskProgress progressTask : projectTaskList) { + progressTask.setDutyUserId(userMap.get(progressTask.getDutyUserName())); + } + } + } + + Map progressTaskMap = projectTaskList.stream().collect(Collectors.toMap(XzTaskProgress::getId, Function.identity())); + return progressTaskMap.values(); } 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