This commit is contained in:
hayu 2025-11-15 16:28:22 +08:00
parent dc454ecac1
commit 5f67ecde62
6 changed files with 237 additions and 0 deletions

View File

@ -0,0 +1,40 @@
package com.bonus.material.repair.controller;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.repair.domain.ToBeRepair;
import com.bonus.material.repair.service.RepairService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 维修管理
* @param
* @author hay
* @return
*/
@RestController
@RequestMapping("/repair")
@Api(value = "维修管理", tags = "维修管理")
public class RepairController extends BaseController {
@Resource
private RepairService service;
/**
* 获取待修工具和装备列表
*/
@ApiOperation(value = "获取待修工具和装备列表")
@GetMapping("/getToBeRepairList")
public AjaxResult list(ToBeRepair bean)
{
List<ToBeRepair> list = service.getToBeRepairList(bean);
return AjaxResult.success(list);
}
}

View File

@ -0,0 +1,59 @@
package com.bonus.material.repair.domain;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author hay
*/
@Data
public class ToBeRepair {
private Long id;
/**
* 用作key
*/
private String keyId;
/**
* 类型工具装备
*/
private String type;
/**
* 类目
*/
private String groupName;
/**
* 名称
*/
private String typeName;
/**
* 规格型号
*/
private String typeModelName;
/**
* 管理类型:数量管理编码管理
*/
private String manageMode;
/**
* 编码
*/
private String code;
/**
* 待修数量
*/
private BigDecimal tobeRepairNum;
/**
* 维修数量
*/
private BigDecimal repairNum;
}

View File

@ -0,0 +1,15 @@
package com.bonus.material.repair.mapper;
import com.bonus.material.repair.domain.ToBeRepair;
import java.util.List;
public interface RepairMapper {
/**
* 获取待修工具和装备列表
* @param bean
* @return
*/
List<ToBeRepair> selectToBeRepairList(ToBeRepair bean);
}

View File

@ -0,0 +1,17 @@
package com.bonus.material.repair.service;
import com.bonus.material.repair.domain.ToBeRepair;
import java.util.List;
/**
* @author hay
*/
public interface RepairService {
/**
* 获取待修工具和装备列表
* @param bean
* @return
*/
List<ToBeRepair> getToBeRepairList(ToBeRepair bean);
}

View File

@ -0,0 +1,32 @@
package com.bonus.material.repair.service.impl;
import com.bonus.material.repair.domain.ToBeRepair;
import com.bonus.material.repair.mapper.RepairMapper;
import com.bonus.material.repair.service.RepairService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author hay
*/
@Service
public class RepairServiceImpl implements RepairService {
@Resource
private RepairMapper mapper;
@Override
public List<ToBeRepair> getToBeRepairList(ToBeRepair bean) {
try {
return mapper.selectToBeRepairList(bean);
} catch (Exception e) {
e.printStackTrace();
return new ArrayList<>();
}
}
}

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.bonus.material.repair.mapper.RepairMapper">
<select id="selectToBeRepairList" resultType="com.bonus.material.repair.domain.ToBeRepair">
SELECT
CONCAT(tl.id,'-','工具') as keyId,
tl.id,
'工具' AS type,
CONCAT(tt2.type_name, '/', tt3.type_name, '/', tt4.type_name) AS groupName,
tt4.type_name as typeName,
tt5.type_name as typeModelName,
CASE tl.manage_mode
WHEN 0 THEN
'编码管理'
ELSE
'数量管理'
END manageMode,
tl.tool_code as `code`,
CASE tl.manage_mode
WHEN 0 THEN
IFNULL(tl.total_num, 0)
ELSE
IFNULL(tl.repair_num, 0)
END tobeRepairNum
FROM tool_ledger tl
LEFT JOIN tool_type tt5 on tt5.type_id = tl.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
LEFT JOIN tool_type tt2 on tt2.type_id = tt3.parent_id
WHERE ((tl.manage_mode = '1' AND tl.repair_num IS NOT NULL AND tl.repair_num > 0)
OR (tl.manage_mode = '0' AND tl.`status` = '2'))
<if test="typeName != null and typeName!=''">
AND tt4.type_name like concat('%',#{typeName},'%')
</if>
<if test="typeModelName != null and typeModelName!=''">
AND tt5.type_name like concat('%',#{typeModelName},'%')
</if>
<if test="code != null and code!=''">
AND tl.tool_code like concat('%',#{code},'%')
</if>
UNION
SELECT
CONCAT(mdi.ma_id,'-','设备') as keyId,
mdi.ma_id as id,
'设备' as type,
CONCAT(mt2.type_name, '/', mt3.type_name, '/', mt4.type_name) AS groupName,
mdi.device_name as typeName,
mdi.item_type_model as typeModelName,
'编码管理' as manageMode,
mdi.`code` as `code`,
mdi.device_count as tobeRepairNum
FROM ma_dev_info mdi
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
LEFT JOIN ma_type mt2 on mt2.type_id = mt3.parent_id
WHERE mdi.ma_status = '5'
<if test="typeName != null and typeName!=''">
AND mdi.device_name like concat('%',#{typeName},'%')
</if>
<if test="typeModelName != null and typeModelName!=''">
AND mdi.item_type_model like concat('%',#{typeModelName},'%')
</if>
<if test="code != null and code!=''">
AND mdi.`code` like concat('%',#{code},'%')
</if>
</select>
</mapper>