维修管理,维修审核客户提出的问题整改

This commit is contained in:
hongchao 2025-07-10 15:05:31 +08:00
parent f951bb77d6
commit d8d56b2fb4
4 changed files with 60 additions and 9 deletions

View File

@ -145,4 +145,8 @@ public class RepairTask {
private String repairRemark;
private int manageType;
/** 用户ID */
@ApiModelProperty(value = "userId")
private Long userId;
}

View File

@ -60,7 +60,16 @@ public class RepairServiceImpl implements RepairService {
@Override
public List<RepairTask> getRepairTaskListNew(RepairTask bean) {
List<RepairTask> repairTaskList = mapper.getRepairTaskListNew(bean);
Set<String> roles = SecurityUtils.getLoginUser().getRoles();
List<RepairTask> 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<FileInfo> 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<FileInfo> fileList = partList.get(0).getFileList();
if (fileList != null) {

View File

@ -11,8 +11,8 @@
values (#{maId},#{typeId},#{repairNum},#{repairType},#{createBy},#{createTime});
</insert>
<insert id="addPartNew" keyColumn="id" keyProperty="id" useGeneratedKeys="true" >
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});
</insert>
<insert id="addPart">
@ -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
<if test="type != null and type != ''">
AND mt.type_name like concat('%',#{type},'%')
@ -278,6 +279,12 @@
<if test="typeName != null and typeName != ''">
AND mt2.type_name like concat('%',#{typeName},'%')
</if>
<if test="userId != null and userId != ''">
and mtr.user_id = #{userId}
</if>
<if test="companyId != null and companyId != ''">
and rd.company_id = #{companyId}
</if>
group by mt.type_id
order by mt.type_id
</select>
@ -467,10 +474,11 @@
<select id="getRepairPartListNew" resultType="com.bonus.sgzb.base.domain.RepairPartDetails">
select
rap.id as id,
rap.part_id as partId,
case when rap.part_id is not null then mpt.pa_name else rap.part_name end as partName,
part_num as partNum,
part_price as partPrice,
repair_content as repairContent,
part_name as partName,
repair_remark as repairRemark,
part_change as partChange,
part_change_num as partChangeNum,
@ -479,6 +487,7 @@
scrap_type as scrapType
from repair_apply_part rap
left join repair_apply_record rar on rap.parent_id = rar.id
left join ma_part_type mpt on rap.part_id = mpt.pa_id
where rar.id = #{id}
order by rap.create_time desc
</select>

View File

@ -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