退料,领料,结算问题修复

This commit is contained in:
hongchao 2025-10-15 17:11:45 +08:00
parent fffbf0dcb5
commit e4b9634357
7 changed files with 103 additions and 147 deletions

View File

@ -439,6 +439,30 @@ public class ClzSltAgreementInfoController extends BaseController {
BeanUtil.copyProperties(agreementInfo, sltAgreementInfoLease, true); BeanUtil.copyProperties(agreementInfo, sltAgreementInfoLease, true);
List<MaterialSltAgreementInfo> oneOfListLease = clzSltAgreementInfoMapper.getLeaseList(sltAgreementInfoLease); List<MaterialSltAgreementInfo> oneOfListLease = clzSltAgreementInfoMapper.getLeaseList(sltAgreementInfoLease);
//设定班组实际出场时间
String date = null;
if(!oneOfListLease.isEmpty()){
//先判断是否在场
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(oneOfListLease.get(0));
if( exitTime!=null && !exitTime.isEmpty() ){
}else{
date = clzSltAgreementInfoMapper.getTeamOutTime(oneOfListLease.get(0));
}
if(date!=null && !date.isEmpty()){
oneOfListLease.get(0).setActualExitTime(date);
}else{
oneOfListLease.get(0).setActualExitTime("暂无");
}
actualTimeAndNames.add(oneOfListLease.get(0).getUnitName() + "(" + oneOfListLease.get(0).getActualExitTime()+")");
projectNames.add(oneOfListLease.get(0).getProjectName());
unitNames.add(oneOfListLease.get(0).getUnitName());
}
List<MaterialSltAgreementInfo> leaseList = new ArrayList<>(oneOfListLease); List<MaterialSltAgreementInfo> leaseList = new ArrayList<>(oneOfListLease);
@ -458,14 +482,6 @@ public class ClzSltAgreementInfoController extends BaseController {
bean.setLeaseDay(0L); bean.setLeaseDay(0L);
} }
String date = null ;
//先判断是否在场
String exitTime1= clzSltAgreementInfoMapper.getTeamSjOutTime(bean);
if( exitTime1!=null && !exitTime1.isEmpty() ){
}else{
date = clzSltAgreementInfoMapper.getTeamOutTime(bean);
}
// 物资已退还按照天数来计算费用 // 物资已退还按照天数来计算费用
Date materialReturnTime = bean.getEndTime(); Date materialReturnTime = bean.getEndTime();
@ -491,16 +507,16 @@ public class ClzSltAgreementInfoController extends BaseController {
bean.setOverDay(overdueDays-7); bean.setOverDay(overdueDays-7);
} }
if(teamExitTime!=null && !teamExitTime.isEmpty()){ if(date!=null && !date.isEmpty()){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate dateParm = LocalDate.parse(teamExitTime, formatter); LocalDate dateParm = LocalDate.parse(date, formatter);
LocalDate resultDate = dateParm.plusDays(7); LocalDate resultDate = dateParm.plusDays(7);
bean.setOverTime(resultDate+""); bean.setOverTime(resultDate+"");
} }
bean.setActualExitTime(teamExitTime); bean.setActualExitTime(date);
BigDecimal leasePrice = bean.getLeasePrice(); BigDecimal leasePrice = bean.getLeasePrice();
BigDecimal num = bean.getNum(); BigDecimal num = bean.getNum();
@ -547,27 +563,6 @@ public class ClzSltAgreementInfoController extends BaseController {
loseListAll.add(bean); loseListAll.add(bean);
listAll.add(bean); listAll.add(bean);
} }
//设定班组实际出场时间
if(!listAll.isEmpty()){
String date = null ;
//先判断是否在场
String exitTime = clzSltAgreementInfoMapper.getTeamSjOutTime(listAll.get(0));
if( exitTime!=null && !exitTime.isEmpty() ){
}else{
date = clzSltAgreementInfoMapper.getTeamOutTime(listAll.get(0));
}
if(date!=null && !date.isEmpty()){
listAll.get(0).setActualExitTime(date);
}else{
listAll.get(0).setActualExitTime("暂无");
}
projectNames.add(listAll.get(0).getProjectName());
unitNames.add(listAll.get(0).getUnitName());
actualTimeAndNames.add(listAll.get(0).getUnitName() + "(" + listAll.get(0).getActualExitTime()+")");
listAll = new ArrayList<>();
}
} }
} }

View File

@ -97,25 +97,25 @@ public class RepairAuditDetailsController extends BaseController {
} }
repairAuditDetailsService.queryTimeCope(bean); repairAuditDetailsService.queryTimeCope(bean);
List<ScrapApplyDetailsVO> list = repairAuditDetailsService.selectRepairQuestList(bean); List<ScrapApplyDetailsVO> list = repairAuditDetailsService.selectRepairQuestList(bean);
List<ScrapApplyDetailsVO> newList = new ArrayList<>(); // List<ScrapApplyDetailsVO> newList = new ArrayList<>();
list.forEach(item -> { // list.forEach(item -> {
RepairAuditDetails repairAuditDetails = new RepairAuditDetails(); // RepairAuditDetails repairAuditDetails = new RepairAuditDetails();
repairAuditDetails.setTaskId(item.getTaskId()); // repairAuditDetails.setTaskId(item.getTaskId());
List<RepairAuditDetails> detailsList = repairAuditDetailsService.getRepairAuditList(repairAuditDetails); // List<RepairAuditDetails> detailsList = repairAuditDetailsService.getRepairAuditList(repairAuditDetails);
detailsList.forEach(details -> { // detailsList.forEach(details -> {
ScrapApplyDetailsVO scrapApplyDetailsVO = new ScrapApplyDetailsVO(); // ScrapApplyDetailsVO scrapApplyDetailsVO = new ScrapApplyDetailsVO();
BeanUtils.copyProperties(item, scrapApplyDetailsVO); // BeanUtils.copyProperties(item, scrapApplyDetailsVO);
scrapApplyDetailsVO.setTypeName(details.getSpecificationType()); // scrapApplyDetailsVO.setTypeName(details.getSpecificationType());
scrapApplyDetailsVO.setTypeName2(details.getMachineTypeName()); // scrapApplyDetailsVO.setTypeName2(details.getMachineTypeName());
scrapApplyDetailsVO.setRepairNum2(details.getRepairNum()); // scrapApplyDetailsVO.setRepairNum2(details.getRepairNum());
scrapApplyDetailsVO.setRepairedNum(details.getRepairedNum()); // scrapApplyDetailsVO.setRepairedNum(details.getRepairedNum());
scrapApplyDetailsVO.setScrapNum3(details.getScrapNum()); // scrapApplyDetailsVO.setScrapNum3(details.getScrapNum());
scrapApplyDetailsVO.setMaCode(details.getMaCode()); // scrapApplyDetailsVO.setMaCode(details.getMaCode());
newList.add(scrapApplyDetailsVO); // newList.add(scrapApplyDetailsVO);
}); // });
}); // });
ExcelUtil<ScrapApplyDetailsVO> util = new ExcelUtil<>(ScrapApplyDetailsVO.class); ExcelUtil<ScrapApplyDetailsVO> util = new ExcelUtil<>(ScrapApplyDetailsVO.class);
util.exportExcel(response, newList, "修试审核任务列表", "修试审核数据一览表(导出时间:" + DateUtils.getTime() + ""); util.exportExcel(response, list, "修试审核任务列表", "修试审核数据一览表(导出时间:" + DateUtils.getTime() + "");
} }
/** /**

View File

@ -251,7 +251,7 @@ public class RepairController extends BaseController {
public void export(HttpServletResponse response, RepairTask bean) { public void export(HttpServletResponse response, RepairTask bean) {
List<RepairTask> list = new ArrayList<>(); List<RepairTask> list = new ArrayList<>();
try { try {
list = service.exportRepairTaskList(bean); list = service.getRepairTaskList(bean);
} catch (Exception e) { } catch (Exception e) {
list = new ArrayList<>(); list = new ArrayList<>();
} }

View File

@ -78,37 +78,37 @@ public class RepairTask {
* 规格型号 * 规格型号
*/ */
@ApiModelProperty(value = "规格型号") @ApiModelProperty(value = "规格型号")
@Excel(name = "规格型号",sort = 6) // @Excel(name = "规格型号",sort = 6)
private String typeName; private String typeName;
@ApiModelProperty(value = "退料数量") @ApiModelProperty(value = "退料数量")
@Excel(name = "退料数量",sort = 7) // @Excel(name = "退料数量",sort = 7)
private BigDecimal returnNum; private BigDecimal returnNum;
/** /**
* 维修总量 * 维修总量
*/ */
@ApiModelProperty(value = "维修总量") @ApiModelProperty(value = "维修总量")
@Excel(name = "维修数量",sort = 8) // @Excel(name = "维修数量",sort = 8)
private BigDecimal repairNum; private BigDecimal repairNum;
/** /**
* 维修报废数量 * 维修报废数量
*/ */
@ApiModelProperty(value = "报废数量") @ApiModelProperty(value = "报废数量")
@Excel(name = "报废数量",sort = 9) // @Excel(name = "报废数量",sort = 9)
private BigDecimal scrapNum; private BigDecimal scrapNum;
@ApiModelProperty(value = "待维修数量") @ApiModelProperty(value = "待维修数量")
@Excel(name = "待维修数量",sort = 10) // @Excel(name = "待维修数量",sort = 10)
private BigDecimal beRepairedNum; private BigDecimal beRepairedNum;
/** /**
* 任务创建人 * 任务创建人
*/ */
@ApiModelProperty(value = "任务创建人") @ApiModelProperty(value = "任务创建人")
@Excel(name = "任务创建人",sort = 11) @Excel(name = "创建人",sort = 6)
private String createName; private String createName;
/** /**
* 任务创建时间 * 任务创建时间
*/ */
@ApiModelProperty(value = "任务创建时间") @ApiModelProperty(value = "任务创建时间")
@Excel(name = "任务创建时间",sort = 12) @Excel(name = "创建时间",sort = 7)
private String createTime; private String createTime;
/** /**
* 任务创建人 * 任务创建人
@ -141,6 +141,7 @@ public class RepairTask {
private Long agreementId; private Long agreementId;
@ApiModelProperty(value = "维修状态编码CODE") @ApiModelProperty(value = "维修状态编码CODE")
@Excel(name = "维修状态",sort = 8,readConverterExp = "0=定损进行中,1=维修完成,2=驳回至退料,4=维修进行中")
private String repairStatusCode; private String repairStatusCode;

View File

@ -26,6 +26,7 @@ public class ScrapApplyDetailsVO {
private String scrapNum; private String scrapNum;
@ApiModelProperty(value = "维修任务单号") @ApiModelProperty(value = "维修任务单号")
@Excel(name = "任务单号",sort = 4)
private String repairTaskCode; private String repairTaskCode;
@ApiModelProperty(value = "序号") @ApiModelProperty(value = "序号")
@ -44,67 +45,67 @@ public class ScrapApplyDetailsVO {
@Excel(name = "退料工程",sort = 2) @Excel(name = "退料工程",sort = 2)
private String projectName; private String projectName;
@Excel(name = "退料单号",sort = 3) // @Excel(name = "退料单号",sort = 3)
private String backCode; private String backCode;
@Excel(name = "维修审核单号",sort = 4) // @Excel(name = "维修审核单号",sort = 4)
private String auditCode; private String auditCode;
@ApiModelProperty(value = "机具编号") // @ApiModelProperty(value = "机具编号")
@Excel(name = "设备编码",sort = 5) // @Excel(name = "设备编码",sort = 5)
private String maCode; private String maCode;
@Excel(name = "物资类型",sort = 6) // @Excel(name = "物资类型",sort = 6)
private String typeName2; private String typeName2;
/** /**
* 规格型号 * 规格型号
*/ */
@Excel(name = "规格型号",sort = 7) // @Excel(name = "规格型号",sort = 7)
private String typeName; private String typeName;
@Excel(name = "退料数量",sort = 8, cellType = Excel.ColumnType.NUMERIC) // @Excel(name = "退料数量",sort = 8, cellType = Excel.ColumnType.NUMERIC)
private BigDecimal repairNum2; private BigDecimal repairNum2;
@Excel(name = "合格数量",sort = 9, cellType = Excel.ColumnType.NUMERIC) // @Excel(name = "合格数量",sort = 9, cellType = Excel.ColumnType.NUMERIC)
private BigDecimal repairedNum; private BigDecimal repairedNum;
@Excel(name = "报废数量",sort = 10, cellType = Excel.ColumnType.NUMERIC) // @Excel(name = "报废数量",sort = 10, cellType = Excel.ColumnType.NUMERIC)
private BigDecimal scrapNum3; private BigDecimal scrapNum3;
@Excel(name = "维修人",sort = 11) // @Excel(name = "维修人",sort = 11)
private String createBy2; private String createBy2;
@Excel(name = "审核时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 12) // @Excel(name = "审核时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 12)
private String auditTime; private String auditTime;
/** /**
* 维修班组名称 * 维修班组名称
*/ */
// @Excel(name = "维修班组",sort = 6) // @Excel(name = "维修班组",sort = 6)
//@ApiModelProperty(value = "维修班组") @ApiModelProperty(value = "维修班组")
private String teamName; private String teamName;
/** /**
* 任务创建人 * 任务创建人
*/ */
// @Excel(name = "提交人",sort = 7) @Excel(name = "提交人",sort = 6)
private String createBy; private String createBy;
/** /**
* 机具类型 * 机具类型
*/ */
// @Excel(name = "物资类型",sort = 5) @Excel(name = "物资类型",sort = 5)
private String itemType; private String itemType;
/** /**
* 创建时间 * 创建时间
*/ */
// @Excel(name = "提交时间",sort = 8) @Excel(name = "提交时间",sort = 7)
private String createTime; private String createTime;
/** /**
* 维修单号 * 维修单号
*/ */
// @Excel(name = "维修审核单号",sort = 3) @Excel(name = "维修审核单号",sort = 3)
private String repairNum; private String repairNum;
/** /**
* 审核状态 * 审核状态
*/ */
// @Excel(name = "状态",sort = 9,readConverterExp = "10=维修审核进行中,11=维修审核完成,12=维修审核被驳回") @Excel(name = "状态",sort = 8,readConverterExp = "10=维修审核进行中,11=维修审核完成,12=维修审核被驳回")
private Integer taskStatus; private Integer taskStatus;
/** /**

View File

@ -149,7 +149,6 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
if (!hasSpecialRole) { if (!hasSpecialRole) {
repairAuditDetails.setUserId(userId == 0 ? null : userId); repairAuditDetails.setUserId(userId == 0 ? null : userId);
} }
long time1 = System.currentTimeMillis();
// 获取所有需要查询的 taskId过滤空的 // 获取所有需要查询的 taskId过滤空的
List<ScrapApplyDetailsVO> repairQuestList = repairAuditDetailsMapper.selectRepairQuestList(repairAuditDetails); List<ScrapApplyDetailsVO> repairQuestList = repairAuditDetailsMapper.selectRepairQuestList(repairAuditDetails);
// 通过流过滤掉空对象 并转换为 List集合 // 通过流过滤掉空对象 并转换为 List集合
@ -161,9 +160,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
.collect(Collectors.toList()); .collect(Collectors.toList());
// 批量查询 typeName // 批量查询 typeName
long time2 = System.currentTimeMillis();
List<KeyValueVO> keyValueList = repairAuditDetailsMapper.selectTypeNamesByTaskIds(taskIds); List<KeyValueVO> keyValueList = repairAuditDetailsMapper.selectTypeNamesByTaskIds(taskIds);
long time3 = System.currentTimeMillis();
// 设置 itemType // 设置 itemType
if (CollectionUtil.isNotEmpty(keyValueList)) { if (CollectionUtil.isNotEmpty(keyValueList)) {
Map<String, String> keyValueMap = keyValueList.stream() Map<String, String> keyValueMap = keyValueList.stream()
@ -179,7 +176,6 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
} }
} }
} }
long time4 = System.currentTimeMillis();
if (CollectionUtil.isNotEmpty(repairQuestList)) { if (CollectionUtil.isNotEmpty(repairQuestList)) {
String keyWord = repairAuditDetails.getKeyWord(); String keyWord = repairAuditDetails.getKeyWord();
// 如果关键字不为空进行过滤 // 如果关键字不为空进行过滤
@ -189,11 +185,6 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
} }
long time5 = System.currentTimeMillis();
System.err.println("time2-time1: " + (time2 - time1));
System.err.println("time3-time2: " + (time3 - time2));
System.err.println("time4-time3: " + (time4 - time3));
System.err.println("time5-time4: " + (time5 - time4));
return repairQuestList; return repairQuestList;
} catch (Exception e) { } catch (Exception e) {
// 异常处理 // 异常处理

View File

@ -331,36 +331,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-- 第一个查询(时间条件:小于 2025-08-20 -- 第一个查询(时间条件:小于 2025-08-20
SELECT DISTINCT SELECT DISTINCT
tk.task_id AS taskId, tk.task_id AS taskId,
tk.CODE AS scrapNum,
tt2.CODE AS repairTaskCode,
tk.task_status AS taskStatus,
bui.unit_name AS unitName, bui.unit_name AS unitName,
bpl.pro_name AS projectName, bpl.pro_name AS projectName,
tk.CODE as auditCode, su.nick_name AS createBy,
tt3.`code` as backCode, tk.create_time AS createTime,
GROUP_CONCAT(DISTINCT mt1.type_name) AS typeName2, tk.remark,
rn.scrapNum AS scrapNum3, tk.CODE AS repairNum,
rn.repairNum as repairNum2, rad.audit_time as auditTime,
rn.repairedNum as repairedNum, GROUP_CONCAT(DISTINCT mt4.type_id) AS firstId
tk.task_status AS taskStatus,
rad.create_by AS createBy2,
rad.create_time AS auditTime,
rad.create_time AS createTime,
tk.CODE AS repairCode
FROM FROM
tm_task tk tm_task tk
LEFT JOIN tm_task tt ON tk.pre_task_id = tt.task_id
LEFT JOIN repair_audit_details rad ON tk.task_id = rad.task_id LEFT JOIN repair_audit_details rad ON tk.task_id = rad.task_id
LEFT JOIN (
SELECT
rad.task_id,
SUM(rad.scrap_num) AS scrapNum,
SUM(rad.repair_num) as repairNum,
SUM(rad.repaired_num) as repairedNum
from repair_audit_details rad
<if test="userId != null">
JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId}
</if>
GROUP BY rad.task_id
) rn on rn.task_id = tk.task_id
LEFT JOIN repair_apply_details raad on raad.task_id = rad.repair_id
LEFT JOIN tm_task tt3 on tt3.task_id = raad.back_id
LEFT JOIN tm_task tt2 ON tt2.task_id = rad.repair_id LEFT JOIN tm_task tt2 ON tt2.task_id = rad.repair_id
LEFT JOIN tm_task_agreement tta ON rad.repair_id = tta.task_id LEFT JOIN tm_task_agreement tta ON rad.repair_id = tta.task_id
LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
@ -369,12 +354,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt ON rad.type_id = mt.type_id LEFT JOIN ma_type mt ON rad.type_id = mt.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN sys_user su ON su.user_id = tk.create_by LEFT JOIN sys_user su ON su.user_id = tk.create_by
LEFT JOIN ma_type mt3 ON mt1.parent_id = mt3.type_id LEFT JOIN ma_type mt3 ON mt1.parent_id = mt3.type_id AND mt3.del_flag = '0'
AND mt3.del_flag = '0' LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.del_flag = '0'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id
AND mt4.del_flag = '0'
<if test="userId != null"> <if test="userId != null">
JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId} JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId}
</if> </if>
WHERE WHERE
tk.task_type = #{taskType} and tt2.CODE is not null tk.task_type = #{taskType} and tt2.CODE is not null
@ -405,56 +388,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
GROUP BY GROUP BY
tk.CODE tk.CODE
UNION UNION
-- 第二个查询(时间条件:>= 2025-08-20 -- 第二个查询(时间条件:>= 2025-08-20
SELECT DISTINCT SELECT DISTINCT
tk.task_id AS taskId, tk.task_id AS taskId,
tk.CODE AS scrapNum,
tt.CODE AS repairTaskCode,
tk.task_status AS taskStatus,
bui.unit_name AS unitName, bui.unit_name AS unitName,
bpl.pro_name AS projectName, bpl.pro_name AS projectName,
tk.CODE as auditCode, su.nick_name AS createBy,
baii.`code` as backCode, tk.create_time AS createTime,
GROUP_CONCAT(DISTINCT mt1.type_name) AS typeName2, tk.remark,
rn.scrapNum AS scrapNum3, tk.CODE AS repairNum,
rn.repairNum as repairNum2, rad.audit_time as auditTime,
rn.repairedNum as repairedNum, GROUP_CONCAT(DISTINCT mt4.type_id) AS firstId
tk.task_status AS taskStatus,
su.nick_name AS createBy2,
rad.audit_time AS auditTime,
rad.create_time AS createTime,
tk.CODE AS repairCode
FROM FROM
tm_task tk tm_task tk
LEFT JOIN ( LEFT JOIN tm_task tt ON tk.pre_task_id = tt.task_id
SELECT
rad.task_id,
SUM(rad.scrap_num) AS scrapNum,
SUM(rad.repair_num) as repairNum,
SUM(rad.repaired_num) as repairedNum,
rad.audit_time
from repair_audit_details rad
<if test="userId != null">
JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId}
</if>
GROUP BY rad.task_id
) rn on rn.task_id = tk.task_id
LEFT JOIN repair_audit_details rad ON tk.task_id = rad.task_id
LEFT JOIN back_apply_info baii on baii.id = rad.back_id
LEFT JOIN tm_task_agreement tta ON tk.task_id = tta.task_id LEFT JOIN tm_task_agreement tta ON tk.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
LEFT JOIN bm_project bpl ON bai.project_id = bpl.pro_id LEFT JOIN bm_project bpl ON bai.project_id = bpl.pro_id
LEFT JOIN bm_unit bui ON bai.unit_id = bui.unit_id LEFT JOIN bm_unit bui ON bai.unit_id = bui.unit_id
LEFT JOIN repair_audit_details rad ON tk.task_id = rad.task_id
LEFT JOIN ma_type mt ON rad.type_id = mt.type_id LEFT JOIN ma_type mt ON rad.type_id = mt.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN sys_user su ON su.user_id = tk.create_by LEFT JOIN sys_user su ON su.user_id = tk.create_by
LEFT JOIN ma_type mt3 ON mt1.parent_id = mt3.type_id LEFT JOIN ma_type mt3 ON mt1.parent_id = mt3.type_id AND mt3.del_flag = '0'
AND mt3.del_flag = '0' LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.del_flag = '0'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id
AND mt4.del_flag = '0'
<if test="userId != null"> <if test="userId != null">
JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId} JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id AND mtr.user_id = #{userId}
</if> </if>
WHERE WHERE
tk.task_type = #{taskType} tk.task_type = #{taskType} and tt.CODE is not null
AND tk.create_time &gt;= '2025-08-20 00:00:00' AND tk.create_time &gt;= '2025-08-20 00:00:00'
<if test="backUnit != null and backUnit != ''"> <if test="backUnit != null and backUnit != ''">
AND bui.unit_id = #{backUnit} AND bui.unit_id = #{backUnit}
@ -490,7 +458,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<otherwise> <otherwise>
ORDER BY ORDER BY
taskStatus, taskStatus,
auditTime DESC createTime DESC
</otherwise> </otherwise>
</choose> </choose>
</select> </select>