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

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);
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);
@ -458,14 +482,6 @@ public class ClzSltAgreementInfoController extends BaseController {
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();
@ -491,16 +507,16 @@ public class ClzSltAgreementInfoController extends BaseController {
bean.setOverDay(overdueDays-7);
}
if(teamExitTime!=null && !teamExitTime.isEmpty()){
if(date!=null && !date.isEmpty()){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate dateParm = LocalDate.parse(teamExitTime, formatter);
LocalDate dateParm = LocalDate.parse(date, formatter);
LocalDate resultDate = dateParm.plusDays(7);
bean.setOverTime(resultDate+"");
}
bean.setActualExitTime(teamExitTime);
bean.setActualExitTime(date);
BigDecimal leasePrice = bean.getLeasePrice();
BigDecimal num = bean.getNum();
@ -547,27 +563,6 @@ public class ClzSltAgreementInfoController extends BaseController {
loseListAll.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);
List<ScrapApplyDetailsVO> list = repairAuditDetailsService.selectRepairQuestList(bean);
List<ScrapApplyDetailsVO> newList = new ArrayList<>();
list.forEach(item -> {
RepairAuditDetails repairAuditDetails = new RepairAuditDetails();
repairAuditDetails.setTaskId(item.getTaskId());
List<RepairAuditDetails> detailsList = repairAuditDetailsService.getRepairAuditList(repairAuditDetails);
detailsList.forEach(details -> {
ScrapApplyDetailsVO scrapApplyDetailsVO = new ScrapApplyDetailsVO();
BeanUtils.copyProperties(item, scrapApplyDetailsVO);
scrapApplyDetailsVO.setTypeName(details.getSpecificationType());
scrapApplyDetailsVO.setTypeName2(details.getMachineTypeName());
scrapApplyDetailsVO.setRepairNum2(details.getRepairNum());
scrapApplyDetailsVO.setRepairedNum(details.getRepairedNum());
scrapApplyDetailsVO.setScrapNum3(details.getScrapNum());
scrapApplyDetailsVO.setMaCode(details.getMaCode());
newList.add(scrapApplyDetailsVO);
});
});
// List<ScrapApplyDetailsVO> newList = new ArrayList<>();
// list.forEach(item -> {
// RepairAuditDetails repairAuditDetails = new RepairAuditDetails();
// repairAuditDetails.setTaskId(item.getTaskId());
// List<RepairAuditDetails> detailsList = repairAuditDetailsService.getRepairAuditList(repairAuditDetails);
// detailsList.forEach(details -> {
// ScrapApplyDetailsVO scrapApplyDetailsVO = new ScrapApplyDetailsVO();
// BeanUtils.copyProperties(item, scrapApplyDetailsVO);
// scrapApplyDetailsVO.setTypeName(details.getSpecificationType());
// scrapApplyDetailsVO.setTypeName2(details.getMachineTypeName());
// scrapApplyDetailsVO.setRepairNum2(details.getRepairNum());
// scrapApplyDetailsVO.setRepairedNum(details.getRepairedNum());
// scrapApplyDetailsVO.setScrapNum3(details.getScrapNum());
// scrapApplyDetailsVO.setMaCode(details.getMaCode());
// newList.add(scrapApplyDetailsVO);
// });
// });
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) {
List<RepairTask> list = new ArrayList<>();
try {
list = service.exportRepairTaskList(bean);
list = service.getRepairTaskList(bean);
} catch (Exception e) {
list = new ArrayList<>();
}

View File

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

View File

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

View File

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

View File

@ -331,36 +331,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-- 第一个查询(时间条件:小于 2025-08-20
SELECT DISTINCT
tk.task_id AS taskId,
tk.CODE AS scrapNum,
tt2.CODE AS repairTaskCode,
tk.task_status AS taskStatus,
bui.unit_name AS unitName,
bpl.pro_name AS projectName,
tk.CODE as auditCode,
tt3.`code` as backCode,
GROUP_CONCAT(DISTINCT mt1.type_name) AS typeName2,
rn.scrapNum AS scrapNum3,
rn.repairNum as repairNum2,
rn.repairedNum as repairedNum,
tk.task_status AS taskStatus,
rad.create_by AS createBy2,
rad.create_time AS auditTime,
rad.create_time AS createTime,
tk.CODE AS repairCode
su.nick_name AS createBy,
tk.create_time AS createTime,
tk.remark,
tk.CODE AS repairNum,
rad.audit_time as auditTime,
GROUP_CONCAT(DISTINCT mt4.type_id) AS firstId
FROM
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 (
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_agreement tta ON rad.repair_id = tta.task_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 mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN sys_user su ON su.user_id = tk.create_by
LEFT JOIN ma_type mt3 ON mt1.parent_id = mt3.type_id
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 mt3 ON mt1.parent_id = mt3.type_id AND mt3.del_flag = '0'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.del_flag = '0'
<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>
WHERE
tk.task_type = #{taskType} and tt2.CODE is not null
@ -405,56 +388,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
GROUP BY
tk.CODE
UNION
-- 第二个查询(时间条件:>= 2025-08-20
SELECT DISTINCT
tk.task_id AS taskId,
tk.CODE AS scrapNum,
tt.CODE AS repairTaskCode,
tk.task_status AS taskStatus,
bui.unit_name AS unitName,
bpl.pro_name AS projectName,
tk.CODE as auditCode,
baii.`code` as backCode,
GROUP_CONCAT(DISTINCT mt1.type_name) AS typeName2,
rn.scrapNum AS scrapNum3,
rn.repairNum as repairNum2,
rn.repairedNum as repairedNum,
tk.task_status AS taskStatus,
su.nick_name AS createBy2,
rad.audit_time AS auditTime,
rad.create_time AS createTime,
tk.CODE AS repairCode
su.nick_name AS createBy,
tk.create_time AS createTime,
tk.remark,
tk.CODE AS repairNum,
rad.audit_time as auditTime,
GROUP_CONCAT(DISTINCT mt4.type_id) AS firstId
FROM
tm_task tk
LEFT JOIN (
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 tt ON tk.pre_task_id = tt.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_project bpl ON bai.project_id = bpl.pro_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 mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN sys_user su ON su.user_id = tk.create_by
LEFT JOIN ma_type mt3 ON mt1.parent_id = mt3.type_id
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 mt3 ON mt1.parent_id = mt3.type_id AND mt3.del_flag = '0'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.del_flag = '0'
<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>
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'
<if test="backUnit != null and backUnit != ''">
AND bui.unit_id = #{backUnit}
@ -490,7 +458,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<otherwise>
ORDER BY
taskStatus,
auditTime DESC
createTime DESC
</otherwise>
</choose>
</select>