diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java index f067fb23..2c0c80a9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/controller/MaterialMachineController.java @@ -329,4 +329,64 @@ public class MaterialMachineController extends BaseController { ExcelUtil util = new ExcelUtil<>(TeamVo.class); util.exportExcel(response, list, "导出班组进出场记录"); } + + /** + * 获取分公司下拉选 + * @param bean + * @return + */ + @ApiOperation(value = "获取分公司下拉选") + @GetMapping("/getImpUnitNameList") + public AjaxResult getImpUnitNameList(MaterialRetainedEquipmentInfo bean) { + List list = materialMachineService.getImpUnitNameList(bean); + return AjaxResult.success(list); + } + + /** + * 获取项目部下拉选 + * @param bean + * @return + */ + @ApiOperation(value = "获取项目部下拉选") + @GetMapping("/getDepartNameList") + public AjaxResult getDepartNameList(MaterialRetainedEquipmentInfo bean) { + List list = materialMachineService.getDepartNameList(bean); + return AjaxResult.success(list); + } + + /** + * 获取工程下拉选 + * @param bean + * @return + */ + @ApiOperation(value = "获取工程下拉选") + @GetMapping("/getProjectList") + public AjaxResult getProjectList(MaterialRetainedEquipmentInfo bean) { + List list = materialMachineService.getProjectList(bean); + return AjaxResult.success(list); + } + + /** + * 获取班组下拉选 + * @param bean + * @return + */ + @ApiOperation(value = "获取班组下拉选") + @GetMapping("/getTeamList") + public AjaxResult getTeamList(MaterialRetainedEquipmentInfo bean) { + List list = materialMachineService.getTeamList(bean); + return AjaxResult.success(list); + } + + /** + * 获取分包单位下拉选 + * @param bean + * @return + */ + @ApiOperation(value = "获取分包单位下拉选") + @GetMapping("/getSubUnitList") + public AjaxResult getSubUnitList(MaterialRetainedEquipmentInfo bean) { + List list = materialMachineService.getSubUnitList(bean); + return AjaxResult.success(list); + } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java index 0289163b..73dc7c2d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/mapper/MaterialMachineMapper.java @@ -221,4 +221,39 @@ public interface MaterialMachineMapper { * @return */ List getMaCodeDetails(MaterialStorageInfo bean); + + /** + * 获取分公司下拉选 + * @param bean + * @return + */ + List getImpUnitNameList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取项目部下拉选 + * @param bean + * @return + */ + List getDepartNameList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取工程下拉选 + * @param bean + * @return + */ + List getProjectList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取班组下拉选 + * @param bean + * @return + */ + List getTeamList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取分包单位下拉选 + * @param bean + * @return + */ + List getSubUnitList(MaterialRetainedEquipmentInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java index 8cccf4a5..baa9a2e8 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/MaterialMachineService.java @@ -136,4 +136,39 @@ public interface MaterialMachineService { * @return */ List getTeamInOrOutInfo(TeamVo bean); + + /** + * 获取分公司下拉选 + * @param bean + * @return + */ + List getImpUnitNameList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取项目部下拉选 + * @param bean + * @return + */ + List getDepartNameList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取工程下拉选 + * @param bean + * @return + */ + List getProjectList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取班组下拉选 + * @param bean + * @return + */ + List getTeamList(MaterialRetainedEquipmentInfo bean); + + /** + * 获取分包单位下拉选 + * @param bean + * @return + */ + List getSubUnitList(MaterialRetainedEquipmentInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java index 76c7cb55..2bdde268 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java @@ -161,42 +161,13 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { } } } - String deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId().toString(); - Set targetUnits = new HashSet<>(Arrays.asList( - "101", "102", "309", "327", "330", "333", "337", "338", - "339", "340", "341", "342", "344", "345", "346", "347", - "348", "349" - )); - if (targetUnits.contains(deptId)) { - bean.setImpUnit(deptId); - } else { - //判断祖籍是否包含分公司 - String ancestors = mapper.getAncestors(deptId); - if (ancestors != null && !ancestors.isEmpty()) { - // 将ancestors转换为集合 - String[] parts = ancestors.split(","); - for (String part : parts) { - String trimmedPart = part.trim(); - // Check if the trimmed part is in our target set - if (targetUnits.contains(trimmedPart)) { - bean.setImpUnit(trimmedPart); - break; - } - } - } - } + // 部门查询赋值 + extractedDept(bean); } // 查询目前在用的设备信息 List usList = materialMachineMapper.getUsInfoList(bean); //查询目前还有库存的设备 List recordList = materialMachineMapper.getRetainInfoList(bean); - if (!CollectionUtils.isEmpty(usList)) { - for (MaterialRetainedEquipmentInfo materialRetainedEquipmentInfo : usList) { - // 根据班组名称查询分包单位 - String subUnitName = iwsTeamUserMapper.getTeamName(materialRetainedEquipmentInfo.getTeamName()); - materialRetainedEquipmentInfo.setSubUnitName(subUnitName); - } - } // 数据合并 if (!CollectionUtils.isEmpty(recordList)) { usList.addAll(recordList); @@ -208,14 +179,6 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { .filter(item -> StringUtils.isBlank(item.getIdCard()) || username.equals(item.getIdCard())) .collect(Collectors.toList()); } - String subUnitName = bean.getSubUnitName(); - - if (!CollectionUtils.isEmpty(usList)) { - usList = usList.stream() - .filter(item -> StringUtils.isBlank(subUnitName) - || (item.getSubUnitName() != null && item.getSubUnitName().contains(subUnitName))) - .collect(Collectors.toList()); - } } return usList; } @@ -800,37 +763,9 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { } } } - String deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId().toString(); - Set targetUnits = new HashSet<>(Arrays.asList( - "101", "102", "309", "327", "330", "333", "337", "338", - "339", "340", "341", "342", "344", "345", "346", "347", - "348", "349" - )); - if (targetUnits.contains(deptId)) { - bean.setImpUnit(deptId); - } else { - //判断祖籍是否包含分公司 - String ancestors = mapper.getAncestors(deptId); - if (ancestors != null && !ancestors.isEmpty()) { - // 将ancestors转换为集合 - String[] parts = ancestors.split(","); - for (String part : parts) { - String trimmedPart = part.trim(); - // Check if the trimmed part is in our target set - if (targetUnits.contains(trimmedPart)) { - bean.setImpUnit(trimmedPart); - break; - } - } - } - } + // 部门查询赋值 + extractedDept(bean); } - // 获取项目部总数 - Integer departNum = materialMachineMapper.selectDepartNum(bean); - // 获取工程总数 - //Integer projectNum = materialMachineMapper.selectProjectNum(bean); - // 获取班组总数 - //Integer teamNum = materialMachineMapper.selectTeamNum(bean); // 获取在用量 MaterialRetainedEquipmentInfo useInfo = materialMachineMapper.getRetainTotalInfo(bean); BigDecimal useNum = (useInfo != null && useInfo.getUsNum() != null) ? @@ -838,6 +773,7 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { //查询目前还有库存的设备 List recordList = materialMachineMapper.getRetainInfoList(bean); + List infos = new ArrayList<>(); BigDecimal storeNum = BigDecimal.ZERO; if (CollectionUtils.isNotEmpty(recordList)) { // 将recordList中storeNum大于0的数据过滤出来,并对总数求和 @@ -847,13 +783,22 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { .reduce(BigDecimal::add) .orElse(BigDecimal.ZERO); // 获取到recordList中externalId不为null且去重的总数(转换为Integer类型) - long externalIdNum = recordList.stream() + info.setProNum((int) recordList.stream() .map(MaterialRetainedEquipmentInfo::getProName) .filter(Objects::nonNull) .distinct() - .count(); - // 将externalIdNum转换为Integer类型 - info.setProNum((int) externalIdNum); + .count()); + // 获取集合中departName不为空,且去重的数据存放在新集合中 + List distinctDepartNames = recordList.stream() + // 过滤出departName不为空的元素 + .filter(entity -> StringUtils.isNotBlank(entity.getDepartName())) + // 根据departName进行去重 + .distinct() + // 收集到新的List集合中 + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(distinctDepartNames)) { + infos.addAll(distinctDepartNames); + } } else { info.setProNum(0); } @@ -861,23 +806,72 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { List usList = materialMachineMapper.getUsInfoList(bean); if (CollectionUtils.isNotEmpty(usList)) { // 获取usList中的班组id,且去重的数量 - long teamNum = usList.stream() + info.setTeamNum((int) usList.stream() .map(MaterialRetainedEquipmentInfo::getTeamId) .filter(Objects::nonNull) .distinct() - .count(); - info.setTeamNum((int) teamNum); + .count()); + // 获取集合中departName不为空,且去重的数据存放在新集合中 + List userInfoList = usList.stream() + // 过滤出departName不为空的元素 + .filter(entity -> StringUtils.isNotBlank(entity.getDepartName())) + // 根据departName进行去重 + .distinct() + // 收集到新的List集合中 + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(userInfoList)) { + infos.addAll(userInfoList); + } } else { info.setTeamNum(0); } + if (CollectionUtils.isNotEmpty(infos)) { + info.setDepartNum((int) infos.stream() + .map(MaterialRetainedEquipmentInfo::getDepartName) + .filter(Objects::nonNull) + .distinct() + .count()); + } else { + info.setDepartNum(0); + } // 设置结果 info.setInNum(storeNum); info.setUseNum(useNum); - info.setDepartNum(departNum); info.setAllNum(storeNum.add(useNum)); return info; } + /** + * 部门查询赋值 + * @param bean + */ + private void extractedDept(MaterialRetainedEquipmentInfo bean) { + String deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId().toString(); + Set targetUnits = new HashSet<>(Arrays.asList( + "101", "102", "309", "327", "330", "333", "337", "338", + "339", "340", "341", "342", "344", "345", "346", "347", + "348", "349" + )); + if (targetUnits.contains(deptId)) { + bean.setImpUnit(deptId); + } else { + //判断祖籍是否包含分公司 + String ancestors = mapper.getAncestors(deptId); + if (ancestors != null && !ancestors.isEmpty()) { + // 将ancestors转换为集合 + String[] parts = ancestors.split(","); + for (String part : parts) { + String trimmedPart = part.trim(); + // Check if the trimmed part is in our target set + if (targetUnits.contains(trimmedPart)) { + bean.setImpUnit(trimmedPart); + break; + } + } + } + } + } + /** * 班组进出场记录 * @param bean @@ -888,6 +882,141 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { return materialMachineMapper.getTeamInOrOutInfo(bean); } + /** + * 获取分公司下拉选 + * @param bean + * @return + */ + @Override + public List getImpUnitNameList(MaterialRetainedEquipmentInfo bean) { + String username = SecurityUtils.getLoginUser().getUsername(); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + // 根据用户名查询项目部信息 + List departId = mapper.getDepartId(username); + // 根据项目部id查询工程信息 + if (!CollectionUtils.isEmpty(departId)) { + List projectIdList = mapper.getProjectId(departId); + if (!CollectionUtils.isEmpty(projectIdList)) { + bean.setProjectIdList(projectIdList); + } + } + // 部门查询赋值 + extractedDept(bean); + } + return materialMachineMapper.getImpUnitNameList(bean); + } + + /** + * 获取项目部下拉选 + * @param bean + * @return + */ + @Override + public List getDepartNameList(MaterialRetainedEquipmentInfo bean) { + String username = SecurityUtils.getLoginUser().getUsername(); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + // 根据用户名查询项目部信息 + List departId = mapper.getDepartId(username); + // 根据项目部id查询工程信息 + if (!CollectionUtils.isEmpty(departId)) { + List projectIdList = mapper.getProjectId(departId); + if (!CollectionUtils.isEmpty(projectIdList)) { + bean.setProjectIdList(projectIdList); + } + } + // 部门查询赋值 + extractedDept(bean); + } + return materialMachineMapper.getDepartNameList(bean); + } + + /** + * 获取工程下拉选 + * @param bean + * @return + */ + @Override + public List getProjectList(MaterialRetainedEquipmentInfo bean) { + String username = SecurityUtils.getLoginUser().getUsername(); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + // 根据用户名查询项目部信息 + List departId = mapper.getDepartId(username); + // 根据项目部id查询工程信息 + if (!CollectionUtils.isEmpty(departId)) { + List projectIdList = mapper.getProjectId(departId); + if (!CollectionUtils.isEmpty(projectIdList)) { + bean.setProjectIdList(projectIdList); + } + } + // 部门查询赋值 + extractedDept(bean); + } + return materialMachineMapper.getProjectList(bean); + } + + /** + * 获取班组下拉选 + * @param bean + * @return + */ + @Override + public List getTeamList(MaterialRetainedEquipmentInfo bean) { + String username = SecurityUtils.getLoginUser().getUsername(); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + // 根据用户名查询项目部信息 + List departId = mapper.getDepartId(username); + // 根据项目部id查询工程信息 + if (!CollectionUtils.isEmpty(departId)) { + List projectIdList = mapper.getProjectId(departId); + if (!CollectionUtils.isEmpty(projectIdList)) { + bean.setProjectIdList(projectIdList); + } + } + // 部门查询赋值 + extractedDept(bean); + } + return materialMachineMapper.getTeamList(bean); + } + + /** + * 获取分包单位下拉选 + * @param bean + * @return + */ + @Override + public List getSubUnitList(MaterialRetainedEquipmentInfo bean) { + String username = SecurityUtils.getLoginUser().getUsername(); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + // 根据用户名查询项目部信息 + List departId = mapper.getDepartId(username); + // 根据项目部id查询工程信息 + if (!CollectionUtils.isEmpty(departId)) { + List projectIdList = mapper.getProjectId(departId); + if (!CollectionUtils.isEmpty(projectIdList)) { + bean.setProjectIdList(projectIdList); + } + } + // 部门查询赋值 + extractedDept(bean); + } + return materialMachineMapper.getSubUnitList(bean); + } + /** * 检查用户是否具有特殊角色 * @param userRoles diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index ebf9d7fc..7d653b49 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -1183,7 +1183,8 @@ public class RepairServiceImpl implements RepairService { @Transactional(rollbackFor = Exception.class) public AjaxResult endRepairTask(@NotNull List taskList) { LoginUser loginUser = SecurityUtils.getLoginUser(); - + // 修试审核标志 + boolean isWSFlag = false; try { // 1.查询选择任务是否还有未完成维修的数据 for (RepairTask task : taskList) { @@ -1197,6 +1198,10 @@ public class RepairServiceImpl implements RepairService { repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum()); scrapNum = scrapNum.add(repairTaskDetails.getScrapNum()); taskCode = repairTaskDetails.getTaskCode(); + List list = repairMapper.getAuditDetailsById(repairTaskDetails); + if (CollectionUtils.isEmpty(list)) { + isWSFlag = true; + } } if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) { return AjaxResult.error("维修单号" + taskCode + "还未进行维修,请先维修后再提交审核!"); @@ -1217,22 +1222,24 @@ public class RepairServiceImpl implements RepairService { List repairTaskDetails = new ArrayList<>(); if (!CollectionUtils.isEmpty(detailsList)) { task.setCreateBy(loginUser.getUserid()); - agreementId = repairMapper.getAgreementId(task); - // 新增tm_task表数据、修饰审核任务、状态是待审核 - task.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId()); - task.setTaskStatus(RepairTaskStatusEnum.TASK_STATUS_TO_EXAM.getStatus()); - int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId()); - // 生成维修单号 - String code = genderWsTaskCode(thisMonthMaxOrder); - task.setRepairCode(code); - task.setMonthOrder(thisMonthMaxOrder + 1); - // 插入之前的维修任务id标记前置任务 - task.setPreTaskId(task.getTaskId()); - // 注意:此处将会生成新的 taskId (审核入库用的) - repairMapper.addTask(task); - // 新增协议任务表tm_task_agreement--关联修饰任务与协议 - task.setAgreementId(agreementId); - repairMapper.createAgreementTask(task); + if (isWSFlag) { + agreementId = repairMapper.getAgreementId(task); + // 新增tm_task表数据、修饰审核任务、状态是待审核 + task.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId()); + task.setTaskStatus(RepairTaskStatusEnum.TASK_STATUS_TO_EXAM.getStatus()); + int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR_AUDIT.getTaskTypeId()); + // 生成维修单号 + String code = genderWsTaskCode(thisMonthMaxOrder); + task.setRepairCode(code); + task.setMonthOrder(thisMonthMaxOrder + 1); + // 插入之前的维修任务id标记前置任务 + task.setPreTaskId(task.getTaskId()); + // 注意:此处将会生成新的 taskId (审核入库用的) + repairMapper.addTask(task); + // 新增协议任务表tm_task_agreement--关联修饰任务与协议 + task.setAgreementId(agreementId); + repairMapper.createAgreementTask(task); + } // 新增审计记录 for (RepairTaskDetails details : detailsList) { if (StringUtils.isNotBlank(details.getMaId())) { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/IwsTeamUserMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/IwsTeamUserMapper.xml index cd0a86f5..7c072a13 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/IwsTeamUserMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/IwsTeamUserMapper.xml @@ -45,6 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + GROUP BY bzgl_bz.bzmc + + + + + + + + + + \ No newline at end of file