修试查询接口调试

This commit is contained in:
mashuai 2025-04-01 17:33:02 +08:00
parent c6eaf1deab
commit ac845e3c5c
8 changed files with 446 additions and 11 deletions

View File

@ -8,11 +8,9 @@ import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.material.back.domain.vo.BackApplyVo;
import com.bonus.material.repair.domain.*; import com.bonus.material.repair.domain.*;
import com.bonus.material.repair.domain.vo.OCRBean; import com.bonus.material.repair.domain.vo.*;
import com.bonus.material.repair.domain.vo.RepairDeviceSummaryVo;
import com.bonus.material.repair.domain.vo.RepairDeviceVO;
import com.bonus.material.repair.domain.vo.RepairInputDetailsVo;
import com.bonus.material.repair.service.RepairService; import com.bonus.material.repair.service.RepairService;
import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.domain.SysUser;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
@ -232,4 +230,44 @@ public class RepairController extends BaseController {
return js; return js;
} }
/**
* 查询修试查询-维修配件查询列表
* @param dto
* @return
*/
@ApiOperation(value = "查询修试查询-维修配件查询列表")
@GetMapping("/selectRepairPartList")
public AjaxResult selectRepairPartList(RepairPartVo dto) {
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<RepairPartVo> list = service.selectRepairPartList(dto);
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
}
/**
* 导出修试查询-维修配件查询列表
* @param response
* @param dto
*/
@PostMapping("/exportRepairPartList")
public void exportBackApplyList(HttpServletResponse response, RepairPartVo dto) {
List<RepairPartVo> list = service.selectRepairPartList(dto);
ExcelUtil<RepairPartVo> util = new ExcelUtil<RepairPartVo>(RepairPartVo.class);
util.exportExcel(response, list, "退维修配件查询数据");
}
/**
* 查询修试查询-维修配件查询二级列表
* @param dto
* @return
*/
@ApiOperation(value = "查询修试查询-维修配件查询二级列表")
@GetMapping("/selectSecondRepairPartList")
public AjaxResult selectSecondRepairPartList(RepairPartInfo dto) {
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<RepairPartInfo> list = service.selectSecondRepairPartList(dto);
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
}
} }

View File

@ -0,0 +1,49 @@
package com.bonus.material.repair.domain.vo;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 维修配件查询二级页面
* @Author ma_sh
* @create 2025/4/1 14:19
*/
@Data
public class RepairPartInfo {
private Long typeId;
private Long taskId;
private Long maId;
@ApiModelProperty(value="关键字")
private String keyWord;
@ApiModelProperty(value = "配件名称")
@Excel(name = "配件名称")
private String partName;
@ApiModelProperty(value = "规格型号")
@Excel(name = "规格型号")
private String partModelName;
@ApiModelProperty(value = "使用数量")
@Excel(name = "使用数量")
private BigDecimal partNum;
@ApiModelProperty(value = "单价")
@Excel(name = "单价(元)")
private BigDecimal partPrice;
@ApiModelProperty(value = "收费金额(元)")
@Excel(name = "收费金额(元)")
private BigDecimal partTotalPrice;
@ApiModelProperty(value = "不收费金额(元)")
@Excel(name = "不收费金额(元)")
private BigDecimal partNoTotalPrice;
}

View File

@ -0,0 +1,94 @@
package com.bonus.material.repair.domain.vo;
import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 修试查询-维修配件查询
* @Author ma_sh
* @create 2025/4/1 11:10
*/
@Data
public class RepairPartVo {
/** ID */
private Long id;
@ApiModelProperty(value = "维修单号")
@Excel(name = "维修单号")
private String repairCode;
@ApiModelProperty(value = "单位id")
private Long unitId;
@ApiModelProperty(value = "单位名称")
@Excel(name = "退料单位")
private String backUnitName;
@ApiModelProperty(value="工程id")
private Long proId;
@ApiModelProperty(value="工程名称")
@Excel(name = "工程名称")
private String backProName;
@ApiModelProperty(value = "类型名称")
@Excel(name = "类型名称")
private String typeName;
@ApiModelProperty(value = "规格型号")
@Excel(name = "规格型号")
private String typeModelName;
@ApiModelProperty(value = "设备编码")
@Excel(name = "设备编码")
private String maCode;
@ApiModelProperty(value = "维修数量")
@Excel(name = "维修数量")
private BigDecimal repairNum;
@ApiModelProperty(value = "计量单位")
@Excel(name = "单位")
private String unitName;
@ApiModelProperty(value = "配件名称")
@Excel(name = "配件名称")
private String partName;
@ApiModelProperty(value = "配件规格")
@Excel(name = "配件规格")
private String partModelName;
@ApiModelProperty(value = "使用数量")
@Excel(name = "使用数量")
private BigDecimal partNum;
@ApiModelProperty(value = "维修人员")
@Excel(name = "维修人员")
private String repairPerson;
@ApiModelProperty(value = "维修时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "维修时间", dateFormat = "yyyy-MM-dd", width = 20)
private Date repairTime;
@ApiModelProperty(value="开始时间")
private String startTime;
@ApiModelProperty(value="结束时间")
private String endTime;
@ApiModelProperty(value="关键字")
private String keyWord;
private Long typeId;
private Long taskId;
private Long maId;
}

View File

@ -3,6 +3,8 @@ package com.bonus.material.repair.mapper;
import com.bonus.material.repair.domain.*; import com.bonus.material.repair.domain.*;
import com.bonus.material.repair.domain.vo.RepairDeviceVO; import com.bonus.material.repair.domain.vo.RepairDeviceVO;
import com.bonus.material.repair.domain.vo.RepairInputDetailsVo; import com.bonus.material.repair.domain.vo.RepairInputDetailsVo;
import com.bonus.material.repair.domain.vo.RepairPartInfo;
import com.bonus.material.repair.domain.vo.RepairPartVo;
import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.domain.SysUser;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -240,4 +242,25 @@ public interface RepairMapper {
* @return * @return
*/ */
int updateStatus(RepairTaskDetails details); int updateStatus(RepairTaskDetails details);
/**
* 查询修试查询-维修配件查询列表
* @param dto
* @return
*/
List<RepairPartVo> selectRepairPartList(RepairPartVo dto);
/**
* 查询配件相关信息
* @param repairPartVo
* @return
*/
RepairPartVo selectRepairPartInfo(RepairPartVo repairPartVo);
/**
* 查询修试查询-维修配件查询二级列表
* @param dto
* @return
*/
List<RepairPartInfo> selectSecondRepairPartList(RepairPartInfo dto);
} }

View File

@ -6,9 +6,7 @@ import com.bonus.material.repair.domain.RepairApplyRecord;
import com.bonus.material.repair.domain.RepairPartDetails; import com.bonus.material.repair.domain.RepairPartDetails;
import com.bonus.material.repair.domain.RepairTask; import com.bonus.material.repair.domain.RepairTask;
import com.bonus.material.repair.domain.RepairTaskDetails; import com.bonus.material.repair.domain.RepairTaskDetails;
import com.bonus.material.repair.domain.vo.RepairDeviceSummaryVo; import com.bonus.material.repair.domain.vo.*;
import com.bonus.material.repair.domain.vo.RepairDeviceVO;
import com.bonus.material.repair.domain.vo.RepairInputDetailsVo;
import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.domain.SysUser;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -94,4 +92,18 @@ public interface RepairService {
* @return * @return
*/ */
List<RepairPartDetails> getDetailsList(RepairPartDetails bean); List<RepairPartDetails> getDetailsList(RepairPartDetails bean);
/**
* 查询修试查询-维修配件查询列表
* @param dto
* @return
*/
List<RepairPartVo> selectRepairPartList(RepairPartVo dto);
/**
* 查询修试查询-维修配件查询二级列表
* @param dto
* @return
*/
List<RepairPartInfo> selectSecondRepairPartList(RepairPartInfo dto);
} }

View File

@ -15,10 +15,7 @@ import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.ma.domain.PartType; import com.bonus.material.ma.domain.PartType;
import com.bonus.material.ma.mapper.PartTypeMapper; import com.bonus.material.ma.mapper.PartTypeMapper;
import com.bonus.material.repair.domain.*; import com.bonus.material.repair.domain.*;
import com.bonus.material.repair.domain.vo.RepairDeviceSummaryVo; import com.bonus.material.repair.domain.vo.*;
import com.bonus.material.repair.domain.vo.RepairDeviceVO;
import com.bonus.material.repair.domain.vo.RepairInputDetailsVo;
import com.bonus.material.repair.domain.vo.RepairTicketVo;
import com.bonus.material.repair.mapper.RepairApplyDetailsMapper; import com.bonus.material.repair.mapper.RepairApplyDetailsMapper;
import com.bonus.material.repair.mapper.RepairAuditDetailsMapper; import com.bonus.material.repair.mapper.RepairAuditDetailsMapper;
import com.bonus.material.repair.mapper.RepairMapper; import com.bonus.material.repair.mapper.RepairMapper;
@ -1237,4 +1234,82 @@ public class RepairServiceImpl implements RepairService {
public List<RepairPartDetails> getDetailsList(RepairPartDetails bean) { public List<RepairPartDetails> getDetailsList(RepairPartDetails bean) {
return repairMapper.getDetailsList(bean); return repairMapper.getDetailsList(bean);
} }
/**
* 查询修试查询-维修配件查询列表
* @param dto
* @return
*/
@Override
public List<RepairPartVo> selectRepairPartList(RepairPartVo dto) {
// 查询维修配件列表
List<RepairPartVo> list = repairMapper.selectRepairPartList(dto);
if (!CollectionUtils.isEmpty(list)) {
for (RepairPartVo repairPartVo : list) {
// 查询配件相关信息
RepairPartVo info = repairMapper.selectRepairPartInfo(repairPartVo);
if (info != null) {
repairPartVo.setPartName(StringUtils.isNotBlank(info.getPartName()) ? info.getPartName() : null);
repairPartVo.setPartModelName(StringUtils.isNotBlank(info.getPartModelName()) ? info.getPartModelName() : null);
repairPartVo.setPartNum(info.getPartNum());
repairPartVo.setRepairPerson(StringUtils.isNotBlank(info.getRepairPerson()) ? info.getRepairPerson() : null);
}
}
// 如果关键字不为空根据关键字查询
if (!StringUtils.isBlank(dto.getKeyWord())) {
list = list.stream()
.filter(item -> containsBackKeyword(item, dto.getKeyWord()))
.collect(Collectors.toList());
}
}
return list;
}
/**
* 查询修试查询-维修配件查询二级列表
* @param dto
* @return
*/
@Override
public List<RepairPartInfo> selectSecondRepairPartList(RepairPartInfo dto) {
List<RepairPartInfo> list = repairMapper.selectSecondRepairPartList(dto);
if (!CollectionUtils.isEmpty(list)) {
// 如果关键字不为空根据关键字查询
if (!StringUtils.isBlank(dto.getKeyWord())) {
list = list.stream()
.filter(item -> containsRepairKeyword(item, dto.getKeyWord()))
.collect(Collectors.toList());
}
}
return list;
}
/**
* 判断维修配件查询二级列表是否包含关键字
* @param item
* @param keyWord
* @return
*/
private boolean containsRepairKeyword(RepairPartInfo item, String keyWord) {
return (item.getPartName() != null && item.getPartName().contains(keyWord)) ||
(item.getPartModelName() != null && item.getPartModelName().contains(keyWord));
}
/**
* 判断维修配件查询列表是否包含关键字
* @param item
* @param keyWord
* @return
*/
private boolean containsBackKeyword(RepairPartVo item, String keyWord) {
return (item.getTypeName() != null && item.getTypeName().contains(keyWord)) ||
(item.getTypeModelName() != null && item.getTypeModelName().contains(keyWord)) ||
(item.getRepairPerson() != null && item.getRepairPerson().contains(keyWord)) ||
(item.getBackUnitName() != null && item.getBackUnitName().contains(keyWord)) ||
(item.getBackProName() != null && item.getBackProName().contains(keyWord)) ||
(item.getPartName() != null && item.getPartName().contains(keyWord)) ||
(item.getPartModelName() != null && item.getPartModelName().contains(keyWord)) ||
(item.getRepairCode() != null && item.getRepairCode().contains(keyWord)) ||
(item.getMaCode() != null && item.getMaCode().contains(keyWord));
}
} }

View File

@ -878,6 +878,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="proId != null"> <if test="proId != null">
and bp.pro_id = #{proId} and bp.pro_id = #{proId}
</if> </if>
ORDER BY bcd.create_time DESC
</select> </select>
<select id="selectRepairCode" resultType="com.bonus.material.back.domain.BackApplyInfo"> <select id="selectRepairCode" resultType="com.bonus.material.back.domain.BackApplyInfo">
SELECT SELECT
@ -889,6 +890,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE WHERE
rad.`status` = '1' rad.`status` = '1'
AND ba.back_id = #{id} AND ba.back_id = #{id}
<if test="typeId != null">
and ba.type_id = #{typeId}
</if>
<if test="maId != null">
and ba.ma_id = #{maId}
</if>
</select> </select>
<select id="selectIdList" resultType="com.bonus.material.back.domain.vo.BackApplyInfoVo"> <select id="selectIdList" resultType="com.bonus.material.back.domain.vo.BackApplyInfoVo">
SELECT SELECT

View File

@ -690,6 +690,143 @@
rad.ma_id, rad.type_id rad.ma_id, rad.type_id
</select> </select>
<select id="selectRepairPartList" resultType="com.bonus.material.repair.domain.vo.RepairPartVo">
SELECT
tt.`code` AS repairCode,
bu.unit_name AS backUnitName,
bp.pro_name AS backProName,
mt2.type_name AS typeName,
mt1.type_name AS typeModelName,
mm.ma_code AS maCode,
mt1.unit_name AS unitName,
rad.repair_num AS repairNum,
rad.task_id AS taskId,
rad.type_id AS typeId,
rad.ma_id AS maId,
rad.update_time AS repairTime
FROM
repair_apply_details rad
LEFT JOIN repair_audit_details rd ON rad.id = rd.repair_id
LEFT JOIN tm_task tt ON tt.task_id = rad.task_id
LEFT JOIN tm_task_agreement tta ON tta.task_id = tt.task_id
LEFT JOIN bm_agreement_info bagi ON bagi.agreement_id = tta.agreement_id
AND bagi.`status` = '1'
LEFT JOIN bm_project bp ON bp.pro_id = bagi.project_id
AND bp.del_flag = '0'
LEFT JOIN bm_unit bu ON bu.unit_id = bagi.unit_id
AND bu.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt1.type_id = rad.type_id
AND mt1.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt1.parent_id
AND mt2.del_flag = '0'
LEFT JOIN ma_machine mm ON rad.ma_id = mm.ma_id
WHERE
rd.`status` = '1'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[and DATE_FORMAT( rad.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
</if>
<if test="typeName != null and typeName != ''">
and mt2.type_name like CONCAT('%', #{typeName}, '%')
</if>
<if test="typeModelName != null and typeModelName != ''">
and mt1.type_name like CONCAT('%', #{typeModelName}, '%')
</if>
<if test="unitId != null">
and bu.unit_id = #{unitId}
</if>
<if test="proId != null">
and bp.pro_id = #{proId}
</if>
ORDER BY rad.update_time DESC
</select>
<select id="selectRepairPartInfo" resultType="com.bonus.material.repair.domain.vo.RepairPartVo">
SELECT
IFNULL( SUM( rar.part_num ), 0 ) AS partNum,
GROUP_CONCAT(
DISTINCT
CASE
WHEN rar.part_name IS NOT NULL OR rar.part_id IS NOT NULL
THEN CONCAT_WS(',', rar.part_name, CASE WHEN rar.part_id IS NOT NULL THEN mpt1.pa_name END)
ELSE NULL
END
) AS partName,
GROUP_CONCAT( DISTINCT rar.create_by ) AS repairPerson,
GROUP_CONCAT( DISTINCT CASE WHEN rar.part_id IS NOT NULL THEN mpt.pa_name END ) AS partModelName
FROM
repair_apply_record rar
LEFT JOIN ma_part_type mpt ON rar.part_id = mpt.pa_id
AND mpt.del_flag = '0'
LEFT JOIN ma_part_type mpt1 ON mpt.parent_id = mpt1.pa_id
AND mpt1.del_flag = '0'
WHERE
rar.`status` = '1'
AND rar.task_id = #{taskId}
<if test="typeId != null">
AND rar.type_id = #{typeId}
</if>
<if test="maId != null">
AND rar.ma_id = #{maId}
</if>
</select>
<select id="selectSecondRepairPartList" resultType="com.bonus.material.repair.domain.vo.RepairPartInfo">
SELECT
GROUP_CONCAT(
DISTINCT
CASE
WHEN rar.part_name IS NOT NULL OR rar.part_id IS NOT NULL
THEN CONCAT_WS(',', rar.part_name, CASE WHEN rar.part_id IS NOT NULL THEN mpt1.pa_name END)
ELSE NULL
END) AS partName,
GROUP_CONCAT( DISTINCT CASE WHEN rar.part_id IS NOT NULL THEN mpt.pa_name END ) AS partModelName,
IFNULL( SUM( rar.part_num ), 0 ) AS partNum,
CASE
WHEN rar.part_id IS NOT NULL THEN
rar.part_price
END AS partPrice,
SUM(
CASE
WHEN rar.part_type = 1
AND rar.part_id IS NOT NULL THEN
rar.part_num * rar.part_price
WHEN rar.part_type = 1
AND rar.part_id IS NULL THEN
rar.part_price ELSE 0
END
) AS partTotalPrice,
SUM(
CASE
WHEN rar.part_type = 0
AND rar.part_id IS NOT NULL THEN
rar.part_num * rar.part_price
WHEN rar.part_type = 0
AND rar.part_id IS NULL THEN
rar.part_price ELSE 0
END
) AS partNoTotalPrice
FROM
repair_apply_record rar
LEFT JOIN ma_part_type mpt ON rar.part_id = mpt.pa_id
AND mpt.del_flag = '0'
LEFT JOIN ma_part_type mpt1 ON mpt.parent_id = mpt1.pa_id
AND mpt1.del_flag = '0'
WHERE
rar.`status` = '1'
AND rar.task_id = #{taskId}
<if test="typeId != null">
AND rar.type_id = #{typeId}
</if>
<if test="maId != null">
AND rar.ma_id = #{maId}
</if>
GROUP BY
rar.part_id,
rar.part_name
HAVING
partName IS NOT NULL
</select>
<update id="updateRepairedAndScrapNum"> <update id="updateRepairedAndScrapNum">
update update
repair_apply_details repair_apply_details