diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/RepairTaskStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/RepairTaskStatusEnum.java index 4a9f55b1..911848d8 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/RepairTaskStatusEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/RepairTaskStatusEnum.java @@ -11,7 +11,7 @@ import lombok.Getter; @Getter public enum RepairTaskStatusEnum { - TASK_STATUS_PROCESSING(0, "维修管理--进行中"), + TASK_STATUS_PROCESSING(0, "定损--进行中"), TASK_STATUS_COMPLETE(1, "维修管理--已完成"), TASK_STATUS_REJECT(2, "维修管理--驳回退料"), TASK_STATUS_AUDIT_REJECT(3, "维修管理--修饰审核驳回"), @@ -19,7 +19,7 @@ public enum RepairTaskStatusEnum { TASK_STATUS_REVIEW(11, "修饰审核--审核完成"), TASK_STATUS_NO_REVIEW(12, "修饰审核--审核不通过"), SCRAP_UNDER_REVIEW(6, "报废审核--待审核"), - TASK_LOSS_ASSESSMENT_COMPLETE(4, "定损完成"); + TASK_LOSS_ASSESSMENT_COMPLETE(4, "维修--进行中"); private final Integer status; private final String statusName; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java index 35594d97..cf72bdd2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java @@ -64,8 +64,34 @@ public class LossAssessmentServiceImpl implements LossAssessmentService { @Override public List getLossAssessmentList(RepairTask bean) { try { + Long userId = SecurityUtils.getLoginUser().getUserid(); + // 首先根据用户名去ma_type_manage表查询是否存在绑定物资信息 + List typeIdList = backApplyInfoMapper.selectTypeIdList(userId); + if (CollectionUtils.isEmpty(typeIdList)) { + bean.setUserId(userId == 0 ? null : userId); + } List list = mapper.getLossAssessmentList(bean); if (CollectionUtil.isNotEmpty(list)) { + if (CollectionUtil.isNotEmpty(typeIdList)) { + // 使用流过滤符合条件的元素 + list = list.stream() + .filter(item -> { + String firstIdStr = item.getFirstId(); + if (firstIdStr == null) { + return false; + } + // 将逗号分隔的字符串转为集合 + Set firstIds = Arrays.stream(firstIdStr.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .map(Long::parseLong) + .collect(Collectors.toSet()); + + // 判断两个集合是否有交集 + return firstIds.stream().anyMatch(typeIdList::contains); + }) + .collect(Collectors.toList()); + } String keyWord = bean.getKeyWord(); // 如果关键字不为空,进行过滤 if (!StringUtils.isBlank(keyWord)) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/PartTypeController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/PartTypeController.java index 675a966b..f3c318e2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/PartTypeController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/PartTypeController.java @@ -58,6 +58,16 @@ public class PartTypeController extends BaseController return partTypeService.selectPartTypeList(partType); } + /** + * 根据配件配置管理,以及领用配件数量,查询配件列表 + */ + @ApiOperation(value = "查询配件列表") + @GetMapping("/partList") + public AjaxResult partList(PartType partType) + { + return partTypeService.selectPartTypeListNew(partType); + } + /** * 根据左列表类型id查询右表格 * diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/PartTypeMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/PartTypeMapper.java index 059923c1..2c850c29 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/PartTypeMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/PartTypeMapper.java @@ -125,4 +125,11 @@ public interface PartTypeMapper * @return */ PartType getUserName(PartType partType); + + /** + * 根据配件配置管理,以及领用配件数量,查询配件列表 + * @param partType + * @return + */ + List selectPartTypeListNew(PartType partType); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IPartTypeService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IPartTypeService.java index 860d8bcf..d2ab0705 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IPartTypeService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/IPartTypeService.java @@ -92,4 +92,11 @@ public interface IPartTypeService * @return */ List getMyTypeAndBindUsers(List maTypeVos); + + /** + * 根据配件配置管理,以及领用配件数量,查询配件列表 + * @param partType + * @return + */ + AjaxResult selectPartTypeListNew(PartType partType); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/PartTypeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/PartTypeServiceImpl.java index e8eb1255..76e308ed 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/PartTypeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/PartTypeServiceImpl.java @@ -109,6 +109,23 @@ public class PartTypeServiceImpl implements IPartTypeService return AjaxResult.success(groupList); } + @Override + public AjaxResult selectPartTypeListNew(PartType partType) { + List list = new ArrayList<>(); + try { + String userId = SecurityUtils.getLoginUser().getUserid().toString(); + partType.setUserId(Long.valueOf(userId)); + list = partTypeMapper.selectPartTypeListNew(partType); + if (CollectionUtils.isNotEmpty(list)){ + TreeBuild treeBuild = new TreeBuild(list); + list = treeBuild.buildTree(); + } + } catch (Exception e) { + log.error("配件类型树-查询失败", e); + } + return AjaxResult.success(list); + } + /** * 新增配件类型管理 * @@ -273,4 +290,5 @@ public class PartTypeServiceImpl implements IPartTypeService } return maTypeVos; } + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPart.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPart.java index d50d0f2b..985e1057 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPart.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPart.java @@ -14,6 +14,9 @@ import java.util.List; @Data @ApiModel(value="维修配件") public class RepairPart { + + private Long id; + /** * 任务ID */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java index f8e501df..bfbca895 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java @@ -189,4 +189,9 @@ public class RepairTask { @ApiModelProperty(value = "一级类型id") private String firstId; + + /** + * 数据状态 3-修饰后入库驳回 + */ + private String dataStatus; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java index bbf499e1..3c8fce8c 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java @@ -334,4 +334,25 @@ public interface RepairMapper { * @return */ int deleteRepairById(Long id); + + /** + * 查询配件数量 + * @param partId + * @return + */ + int getPartNum(Long partId); + + /** + * 获取配件列表 + * @param partId + * @return + */ + List getPartList(Long partId); + + /** + * 修改配件数量 + * @param currentPart + * @return + */ + int updatePartNum(RepairPart currentPart); } 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 dafd668b..94fa5203 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 @@ -878,10 +878,28 @@ public class RepairServiceImpl implements RepairService { .setPartId(Optional.ofNullable(partDetails.getPartId()).orElse(0L)); // 添加【维修记录表】 repairMapper.addRecord(repairApplyRecord); - // 扣减个人库配件库存数量 - int res = repairMapper.updateStorageNum(partDetails); - if (0 == res) { - throw new ServiceException("个人配件库存不足"); + + //1、查询该附件的库存数量 + int partNum = repairMapper.getPartNum(partDetails.getPartId()); + if (partNum >= partDetails.getPartNum()) { + //2、查询所有该配件数据,数据根据数量递减,扣除数量 + List list = repairMapper.getPartList(partDetails.getPartId()); + Integer partNums = partDetails.getPartNum(); + for (int i = 0; i < list.size() && partNums > 0; i++) { + RepairPart currentPart = list.get(i); + if (currentPart.getPartNum() >= partNums) { + // 当前记录数量足够,直接减去全部需要的数量 + currentPart.setPartNum(currentPart.getPartNum() - partNums); + partNums = 0; + } else { + // 当前记录数量不足,全部减去,并继续下一条记录 + partNums -= currentPart.getPartNum(); + } + // 更新数据库中的配件数量 + repairMapper.updatePartNum(currentPart); + } + } else { + throw new ServiceException("配件库存不足"); } } else { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml index a3211f38..b335e358 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml @@ -284,7 +284,8 @@ 0 ELSE 1 - END `status` + END `status`, + rd.`status` as dataStatus FROM repair_apply_details rd LEFT JOIN ma_type mt on rd.type_id = mt.type_id @@ -297,6 +298,9 @@ LEFT JOIN bm_project bpi ON bai2.project_id = bpi.pro_id and bpi.del_flag = '0' left join sys_user su on rd.create_by = su.user_id left join sys_user su2 on su2.user_id = rd.repairer + + JOIN ma_type_repair mtr ON mtr.type_id = rd.type_id AND mtr.user_id = #{userId} + where rd.is_ds=1 diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/PartTypeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/PartTypeMapper.xml index 60269956..80104b84 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/PartTypeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/PartTypeMapper.xml @@ -280,4 +280,94 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE mp.type_id = #{id} + \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml index 26324b06..64c6ce07 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml @@ -424,7 +424,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{rejectNum}, - 0, + 3, #{createBy}, diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index a49dc254..f334ca71 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -1005,6 +1005,22 @@ WHERE id = #{id} + + update @@ -1049,4 +1065,12 @@ where id = #{id} + + update + pa_person_storage + set + part_num = part_num - #{partNum} + where + id=#{id} +