This commit is contained in:
hayu 2025-11-16 20:33:26 +08:00
parent a9f0ef277b
commit f5c75d7506
5 changed files with 174 additions and 27 deletions

View File

@ -50,6 +50,17 @@ public class RepairController extends BaseController {
return service.addRepairData(bean);
}
/**
* 修改维修申请
* @param bean
* @return
*/
@ApiOperation(value = "修改维修申请")
@PostMapping("/updateRepairData")
public AjaxResult updateRepairData(@RequestBody ToBeRepair bean) {
return service.updateRepairData(bean);
}
/**
* 查询维修列表
*/

View File

@ -107,4 +107,18 @@ public interface RepairMapper {
* @return
*/
int updateMaDevInfo(ToBeRepair toBeRepair);
/**
* 删除设备变更信息
* @param bean
* @return
*/
int deleteChangeDetailsByChangeId(ToBeRepair bean);
/**
* 获取设备信息
* @param toBeRepair
* @return
*/
ToBeRepair selectMaDevInfoByTypeIdAndCode(ToBeRepair toBeRepair);
}

View File

@ -50,4 +50,11 @@ public interface RepairService {
* @return
*/
AjaxResult auditData(ToBeRepair bean);
/**
* 修改维修数据
* @param bean
* @return
*/
AjaxResult updateRepairData(ToBeRepair bean);
}

View File

@ -1,6 +1,7 @@
package com.bonus.material.repair.service.impl;
import com.bonus.common.biz.domain.BmFileInfo;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
@ -94,6 +95,53 @@ public class RepairServiceImpl implements RepairService {
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult updateRepairData(ToBeRepair bean) {
try {
if (bean.getChangeId()==null){
throw new Exception("缺少任务ID");
}
if (bean.getToBeRepairList().size() <= 0) {
return AjaxResult.error("请添加维修数据");
}
String username = SecurityUtils.getLoginUser().getSysUser().getNickName();
//先删除详情中被驳回的数据
int re1 = mapper.deleteChangeDetailsByChangeId(bean);
if (re1 < 1) {
throw new Exception("删除设备详情失败");
}
for (ToBeRepair toBeRepair : bean.getToBeRepairList()) {
if (!StringHelper.isNullOrEmptyString(toBeRepair.getStatus()) && "通过".equals(toBeRepair.getStatus())){
//过滤掉通过的数据
continue;
}
toBeRepair.setChangeId(bean.getChangeId());
toBeRepair.setCreateUser(username);
if (!StringHelper.isNullOrEmptyString(toBeRepair.getIsScrap())) {
if (toBeRepair.getBmFileInfos()!=null && toBeRepair.getBmFileInfos().size() > 0) {
if ("0".equals(toBeRepair.getIsScrap())) {
toBeRepair.setRepairUrl(toBeRepair.getBmFileInfos().get(0).getFileUrl());
} else {
toBeRepair.setScrapUrl(toBeRepair.getBmFileInfos().get(0).getFileUrl());
}
}
} else {
throw new Exception("缺少合格状态数据");
}
int res = mapper.addRepairData(toBeRepair);
if (res <= 0) {
throw new Exception("添加设备详情失败");
}
}
return AjaxResult.success("修改成功");
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error("修改失败");
}
}
@Override
public List<ToBeRepair> getRepairList(ToBeRepair bean) {
try {
@ -101,37 +149,49 @@ public class RepairServiceImpl implements RepairService {
for (ToBeRepair toBeRepair : list) {
List<ToBeRepair> detailsList = mapper.getDetailsList(toBeRepair);
if (detailsList != null && !detailsList.isEmpty()) {
// 存在审核中
boolean hasZero = false;
// 是否全部驳回
boolean allTwo = true;
boolean has0 = false;
boolean has1 = false;
boolean has2 = false;
for (ToBeRepair detail : detailsList) {
String audit = detail.getAuditStatus();
if ("0".equals(audit)) {
hasZero = true;
has0 = true;
}
if (!"2".equals(audit)) {
allTwo = false;
if ("1".equals(audit)) {
has1 = true;
}
if ("2".equals(audit)) {
has2 = true;
}
}
// 规则判断
if (hasZero) {
// === 状态判断 ===
if (has0 && !has1 && !has2) {
// 1. 全部为 0
toBeRepair.setStatus("待审核");
} else if (!has0 && has1 && !has2) {
// 2. 全部为 1
toBeRepair.setStatus("全部通过");
} else if (!has0 && !has1 && has2) {
// 3. 全部为 2
toBeRepair.setStatus("全部驳回");
} else if (has0 && (has1 || has2)) {
// 4. 0 且有其他状态1 2
toBeRepair.setStatus("审核中");
} else if (allTwo) {
toBeRepair.setStatus("已驳回");
} else if (!has0 && has1 && has2) {
// 5. 0 1 且有 2
toBeRepair.setStatus("驳回待处理");
} else {
toBeRepair.setStatus("已审核");
toBeRepair.setStatus("");
}
}
}
// 状态过滤
String statusFilter = bean.getStatus();
if (statusFilter != null && !"".equals(statusFilter)) {
list = list.stream()
.filter(item -> statusFilter.equals(item.getStatus()))
.collect(Collectors.toList());
}
return list;
} catch (Exception e) {
e.printStackTrace();
@ -139,7 +199,6 @@ public class RepairServiceImpl implements RepairService {
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult deleteRepairList(ToBeRepair bean) {
@ -165,7 +224,19 @@ public class RepairServiceImpl implements RepairService {
@Override
public List<ToBeRepair> getRepairDetailsList(ToBeRepair bean) {
try {
return mapper.getRepairDetailsList(bean);
List<ToBeRepair> list = mapper.getRepairDetailsList(bean);
if (list.size()>0){
for (ToBeRepair toBeRepair : list){
if (!StringHelper.isNullOrEmptyString(toBeRepair.getUrl())){
List<BmFileInfo> bmFileInfos = new ArrayList<>();
BmFileInfo fileInfo = new BmFileInfo();
fileInfo.setFileUrl(toBeRepair.getUrl());
bmFileInfos.add(fileInfo);
toBeRepair.setBmFileInfos(bmFileInfos);
}
}
}
return list;
} catch (Exception e) {
e.printStackTrace();
return new ArrayList<>();
@ -182,6 +253,28 @@ public class RepairServiceImpl implements RepairService {
String username = SecurityUtils.getLoginUser().getSysUser().getNickName();
Long userId = SecurityUtils.getLoginUser().getUserid();
for (ToBeRepair toBeRepair : bean.getToBeRepairList()) {
//查询设备是否已经处理过
if ("编码管理".equals(toBeRepair.getManageMode())){
//1如果是编码管理查询状态是否为维修状态
if ("装备".equals(toBeRepair.getType())){
ToBeRepair bean1 = mapper.selectMaDevInfoByTypeIdAndCode(toBeRepair);
if (bean1==null || !"5".equals(bean1.getStatus())){
return AjaxResult.error(toBeRepair.getCode()+"编码设备已经处理过");
}
} else if ("工具".equals(toBeRepair.getType())){
ToBeRepair bean1 = mapper.selectByTypeIdAndCode(toBeRepair);
if (bean1==null || !"2".equals(bean1.getStatus())){
return AjaxResult.error(toBeRepair.getCode()+"编码设备已经处理过");
}
}
} else if ("数量管理".equals(toBeRepair.getManageMode())){
//2如果是数量管理查询剩余的维修数量是否够
//todo 目前数量管理的设备都是工具
ToBeRepair bean1 = mapper.selectByTypeIdAndCode(toBeRepair);
if (bean1==null || bean1.getRepairNum().compareTo(toBeRepair.getRepairNum())<0){
return AjaxResult.error(toBeRepair.getTypeModelName()+"剩余维修设备数量不足");
}
}
if (!StringHelper.isNullOrEmptyString(toBeRepair.getAuditStatus())){
toBeRepair.setCreateUser(username);
int res = mapper.auditData(toBeRepair);

View File

@ -116,6 +116,13 @@
where type_id = #{typeId} and code=#{code}
</update>
<update id="deleteChangeDetailsByChangeId">
update cs_device_change_details
set del_flag = '1'
where change_id = #{changeId}
and review_status = '2'
</update>
<select id="selectToBeRepairList" resultType="com.bonus.material.repair.domain.ToBeRepair">
SELECT
CONCAT(tl.id,'-','工具') as keyId,
@ -219,8 +226,10 @@
ORDER BY cdc.create_time DESC
</select>
<select id="getRepairDetailsList" resultType="com.bonus.material.repair.domain.ToBeRepair">
SELECT DISTINCT cdcd.id,
SELECT DISTINCT CONCAT(tl.id, '-', '工具') as keyId,
cdcd.id,
'工具' as type,
'2' as devType,
CONCAT(tt2.type_name, '/', tt3.type_name, '/', tt4.type_name) AS groupName,
tt4.type_name as typeName,
tt5.type_name as typeModelName,
@ -251,6 +260,7 @@
reason_url
END url
FROM cs_device_change_details cdcd
LEFT JOIN tool_ledger tl on tl.type_id = cdcd.dev_type_id
LEFT JOIN tool_type tt5 on tt5.type_id = cdcd.dev_type_id
LEFT JOIN tool_type tt4 on tt4.type_id = tt5.parent_id
LEFT JOIN tool_type tt3 on tt3.type_id = tt4.parent_id
@ -264,8 +274,10 @@
UNION
SELECT DISTINCT cdcd.id,
SELECT DISTINCT CONCAT(mdi.ma_id, '-', '装备') as keyId,
cdcd.id,
'装备' as type,
'1' as devType,
CONCAT(mt2.type_name, '/', mt3.type_name, '/', mt4.type_name) AS groupName,
mdi.device_name as typeName,
mdi.item_type_model as typeModelName,
@ -296,7 +308,7 @@
reason_url
END url
FROM cs_device_change_details cdcd
LEFT JOIN ma_dev_info mdi on mdi.type_id = cdcd.dev_type_id
LEFT JOIN ma_dev_info mdi on mdi.type_id = cdcd.dev_type_id and mdi.`code`=cdcd.dev_code
LEFT JOIN ma_type mt5 on mt5.type_id = mdi.type_id
LEFT JOIN ma_type mt4 on mt4.type_id = mt5.parent_id
LEFT JOIN ma_type mt3 on mt3.type_id = mt4.parent_id
@ -307,13 +319,11 @@
GROUP BY cdcd.id
</select>
<select id="getDetailsList" resultType="com.bonus.material.repair.domain.ToBeRepair">
SELECT
id,
review_status as auditStatus
FROM
cs_device_change_details
WHERE
change_id=#{id}
SELECT id,
review_status as auditStatus
FROM cs_device_change_details
WHERE change_id = #{id}
and del_flag = '0'
</select>
<select id="selectByTypeIdAndCode" resultType="com.bonus.material.repair.domain.ToBeRepair">
SELECT
@ -323,7 +333,9 @@
'编码管理'
WHEN 1 THEN
'数量管理'
END manageMode
END manageMode,
tl.repair_num as repairNum,
tl.status
FROM
tool_ledger tl
WHERE
@ -332,4 +344,14 @@
and tl.tool_code=#{code}
</if>
</select>
<select id="selectMaDevInfoByTypeIdAndCode" resultType="com.bonus.material.repair.domain.ToBeRepair">
SELECT
ma_id as id,
ma_status as `status`
FROM
ma_dev_info
WHERE
`code`=#{code}
and type_id=#{typeId}
</select>
</mapper>