diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/domain/RepairTask.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/domain/RepairTask.java index 83b2ff6..37db4fd 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/domain/RepairTask.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/domain/RepairTask.java @@ -145,4 +145,8 @@ public class RepairTask { private String repairRemark; private int manageType; + + /** 用户ID */ + @ApiModelProperty(value = "userId") + private Long userId; } diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/service/impl/RepairServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/service/impl/RepairServiceImpl.java index d050bcf..70f7f6a 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/service/impl/RepairServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/base/service/impl/RepairServiceImpl.java @@ -60,7 +60,16 @@ public class RepairServiceImpl implements RepairService { @Override public List getRepairTaskListNew(RepairTask bean) { - List repairTaskList = mapper.getRepairTaskListNew(bean); + Set roles = SecurityUtils.getLoginUser().getRoles(); + List repairTaskList = new ArrayList<>(); + if (roles.contains(STRING_ADMIN) || roles.contains("sysadmin")) { + repairTaskList = mapper.getRepairTaskListNew(bean); + }else{ + Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); + bean.setCompanyId(companyId); + bean.setUserId(SecurityUtils.getLoginUser().getUserid()); + repairTaskList = mapper.getRepairTaskListNew(bean); + } return repairTaskList; } @@ -398,6 +407,7 @@ public class RepairServiceImpl implements RepairService { RepairApplyRecord beanTempTwo = new RepairApplyRecord(); beanTempTwo.setTypeId(bean.getTypeId()); beanTempTwo.setParentId(Math.toIntExact(beanTemp.getId())); + beanTempTwo.setPartId(Math.toIntExact(partDetails.getPartId())); beanTempTwo.setPartPrice(partDetails.getPartCost()); beanTempTwo.setPartNum(partDetails.getPartNum()); beanTempTwo.setRepairContent(partDetails.getRepairContent()); @@ -478,6 +488,7 @@ public class RepairServiceImpl implements RepairService { beanTempTwo.setRepairContent(partList.get(0).getRepairContent()); beanTempTwo.setRepairRemark(partList.get(0).getRepairRemark()); beanTempTwo.setCreateBy(loginUser.getUserid()); + beanTempTwo.setRepairContent(partList.get(0).getRepairContent()); mapper.addPartNew(beanTempTwo); List fileList = partList.get(0).getFileList(); @@ -668,6 +679,7 @@ public class RepairServiceImpl implements RepairService { RepairApplyRecord beanTempTwo = new RepairApplyRecord(); beanTempTwo.setTypeId(bean.getTypeId()); beanTempTwo.setParentId(Math.toIntExact(beanTemp.getId())); + beanTempTwo.setPartId(Math.toIntExact(partDetails.getPartId())); beanTempTwo.setPartPrice(partDetails.getPartCost()); beanTempTwo.setPartNum(partDetails.getPartNum()); beanTempTwo.setRepairContent(partDetails.getRepairContent()); @@ -772,6 +784,7 @@ public class RepairServiceImpl implements RepairService { beanTempTwo.setRepairContent(partList.get(0).getRepairContent()); beanTempTwo.setCreateBy(loginUser.getUserid()); beanTempTwo.setRepairRemark(partList.get(0).getRepairRemark()); + mapper.addPartNew(beanTempTwo); List fileList = partList.get(0).getFileList(); if (fileList != null) { diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/base/RepairMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/base/RepairMapper.xml index 471b2f8..6f5fb1e 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/base/RepairMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/base/RepairMapper.xml @@ -11,8 +11,8 @@ values (#{maId},#{typeId},#{repairNum},#{repairType},#{createBy},#{createTime}); - insert into repair_apply_part (parent_id,type_id,create_by,create_time,repair_content,part_num,part_price,part_name,remark,repair_remark,part_change,part_change_num,scrap_reason,scrap_type,scrap_num) - values (#{parentId},#{typeId},#{createBy},now(),#{repairContent},#{partNum},#{partPrice},#{partName},#{remark},#{repairRemark},#{partChange},#{partChangeNum},#{scrapReason},#{scrapType},#{scrapNum}); + insert into repair_apply_part (parent_id,type_id,create_by,create_time,repair_content,part_id,part_num,part_price,part_name,remark,repair_remark,part_change,part_change_num,scrap_reason,scrap_type,scrap_num) + values (#{parentId},#{typeId},#{createBy},now(),#{repairContent},#{partId},#{partNum},#{partPrice},#{partName},#{remark},#{repairRemark},#{partChange},#{partChangeNum},#{scrapReason},#{scrapType},#{scrapNum}); @@ -271,6 +271,7 @@ repair_apply_details rd LEFT JOIN ma_type mt on rd.type_id = mt.type_id LEFT JOIN ma_type mt2 on mt.parent_id = mt2.type_id + LEFT JOIN ma_type_repair mtr on mtr.type_id = rd.type_id where 1=1 AND mt.type_name like concat('%',#{type},'%') @@ -278,6 +279,12 @@ AND mt2.type_name like concat('%',#{typeName},'%') + + and mtr.user_id = #{userId} + + + and rd.company_id = #{companyId} + group by mt.type_id order by mt.type_id @@ -467,10 +474,11 @@ diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/RepairAuditDetailsMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/RepairAuditDetailsMapper.xml index 4041faa..ad5e9f2 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/RepairAuditDetailsMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/RepairAuditDetailsMapper.xml @@ -605,19 +605,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" IFNULL(sum(rad.scrap_num), 0) as scrapNum, rad.status as taskStatus, DATE_FORMAT(rar.create_time, '%Y-%m-%d') as createTime, - rad.audit_remark as remark, +-- rad.audit_remark as remark, mt2.type_name as typeName, mt.type_name as type, su.nick_name as repairer, rar.repair_type as repairType, su1.nick_name as auditBy, - GROUP_CONCAT(DISTINCT rap.repair_remark SEPARATOR ',') as repairRemark, - GROUP_CONCAT(DISTINCT rpad.repair_remark SEPARATOR ',') as repairRemarkBefore + ( + SELECT GROUP_CONCAT(DISTINCT rap.repair_remark SEPARATOR ';') + FROM repair_apply_part rap + WHERE rap.parent_id = rar.id + ) as repairRemark, + -- 使用子查询获取 repairRemarkBefore + ( + SELECT GROUP_CONCAT(CONCAT(mt.type_name, ':', rpad.repair_remark) SEPARATOR ';') + FROM repair_apply_details rpad + LEFT JOIN ma_type mt ON rpad.type_id = mt.type_id + WHERE rpad.id = rad.repair_id + ) as repairRemarkBefore, + ( + SELECT GROUP_CONCAT( + CASE + -- 当 part_id 存在时,关联表获取 pa_name + WHEN rap.scrap_num > 0 THEN CONCAT('报废数量:',rap.scrap_reason) + WHEN rap.part_id IS NOT NULL THEN CONCAT(mpt.pa_name, ':','数量为',rap.part_num,' ', rap.repair_content) + -- 当 part_id 不存在但 part_name 存在时,直接使用 part_name + WHEN rap.part_name IS NOT NULL THEN CONCAT(rap.part_name, ':','数量为',rap.part_num,' ', rap.repair_content) + -- 两者都不存在时,不显示该记录 + ELSE NULL + END + SEPARATOR '; ' + ) + FROM repair_apply_part rap + LEFT JOIN ma_part_type mpt ON rap.part_id = mpt.pa_id + WHERE rap.parent_id = rar.id + ) as remark from repair_audit_details rad left join repair_apply_record rar on rad.parent_id = rar.id - left join repair_apply_details rpad on rad.repair_id = rpad.id - left join repair_apply_part rap on rar.id = rap.parent_id left join ma_machine mm on mm.ma_id = rad.ma_id left join ma_type mt on rar.type_id = mt.type_id left join sys_user su on rar.create_by = su.user_id