代码提交

This commit is contained in:
itcast 2025-11-25 19:08:17 +08:00
parent f6e70c3fb6
commit bc6a0b6195
11 changed files with 120 additions and 31 deletions

View File

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
/**
@ -59,9 +60,15 @@ public class BackCsDeviceDetails {
private BigDecimal num = BigDecimal.ZERO;
@ApiModelProperty(value = "使用到期日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date useTime;
@ApiModelProperty(value = "使用到期日期开始")
private LocalDate useStartTime;
@ApiModelProperty(value = "使用到期日期结束")
private LocalDate useEndTime;
@ApiModelProperty(value = "创建时间")
private Date createTime;

View File

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.Date;
/**
@ -43,6 +44,14 @@ public class BackCsDeviceInfo {
@ApiModelProperty(value = "使用到期日期")
private String useTime;
@ApiModelProperty(value = "使用到期日期开始")
private LocalDate useStartTime;
@ApiModelProperty(value = "使用到期日期结束")
private LocalDate useEndTime;
@ApiModelProperty(value = "领用单号")
private String code;

View File

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
/**
@ -59,8 +61,16 @@ public class CsDeviceDetails {
private BigDecimal num = BigDecimal.ZERO;
@ApiModelProperty(value = "使用到期日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date useTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate useTime;
@ApiModelProperty(value = "使用到期开始日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate useStartTime;
@ApiModelProperty(value = "使用到期结束日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate useEndTime;
@ApiModelProperty(value = "创建时间")
private Date createTime;

View File

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.Date;
/**
@ -43,6 +44,12 @@ public class CsDeviceInfo {
@ApiModelProperty(value = "使用到期日期")
private String useTime;
@ApiModelProperty(value = "使用到期日期开始")
private LocalDate useStartTime;
@ApiModelProperty(value = "使用到期日期结束")
private LocalDate useEndTime;
@ApiModelProperty(value = "领用单号")
private String code;

View File

@ -56,6 +56,8 @@ public class ToBeRepair {
*/
private String manageMode;
private String manageType;
/**
* 编码
*/

View File

@ -19,10 +19,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@ -140,27 +137,47 @@ public class RepairServiceImpl implements RepairService {
has2 = true;
}
}
// === 状态判断 ===
// === 状态判断 (已更新为数字编码) ===
if (has0 && !has1 && !has2) {
// 1. 全部为 0
toBeRepair.setStatus("待审核");
// 1. 全部为 0 -> 待审核
toBeRepair.setStatus("1");
} else if (!has0 && has1 && !has2) {
// 2. 全部为 1
toBeRepair.setStatus("全部通过");
// 2. 全部为 1 -> 全部通过
toBeRepair.setStatus("2");
} else if (!has0 && !has1 && has2) {
// 3. 全部为 2
toBeRepair.setStatus("全部驳回");
// 3. 全部为 2 -> 全部驳回
toBeRepair.setStatus("3");
} else if (has0 && (has1 || has2)) {
// 4. 0 且有其他状态1 2
toBeRepair.setStatus("审核中");
// 4. 0 且有其他状态 -> 审核中
toBeRepair.setStatus("4");
} else if (!has0 && has1 && has2) {
// 5. 0 1 且有 2
toBeRepair.setStatus("驳回待处理");
// 5. 0 1 且有 2 -> 驳回待处理
toBeRepair.setStatus("5");
} else {
toBeRepair.setStatus("");
}
}
}
// 创建一个 Map 来直接指定每个状态码的排序权重
Map<String, Integer> statusSortOrder = new HashMap<>();
statusSortOrder.put("4", 0); // 审核中权重最高
statusSortOrder.put("5", 2); // 驳回待处理
statusSortOrder.put("3", 3); // 全部驳回
statusSortOrder.put("1", 1); // 待审核
statusSortOrder.put("2", 4); // 全部通过权重最低
// 对于未定义的状态如空字符串给一个最大的权重让它排在最后
final int DEFAULT_ORDER = 99;
// 使用 Stream API 进行排序
list = list.stream()
.sorted(Comparator
.comparingInt((ToBeRepair repair) -> statusSortOrder.getOrDefault(repair.getStatus(), DEFAULT_ORDER))
.thenComparing(Comparator.comparing(ToBeRepair::getCreateTime).reversed()))
.collect(Collectors.toList());
// 状态过滤
String statusFilter = bean.getStatus();
if (statusFilter != null && !"".equals(statusFilter)) {
@ -168,6 +185,7 @@ public class RepairServiceImpl implements RepairService {
.filter(item -> statusFilter.equals(item.getStatus()))
.collect(Collectors.toList());
}
return list;
} catch (Exception e) {
e.printStackTrace();

View File

@ -60,6 +60,8 @@ public class ToBeScrap {
*/
private String manageMode;
private String manageType;
/**
* 设备编码
*/

View File

@ -7,18 +7,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="addChangeInfoNew" keyProperty="id" useGeneratedKeys="true">
insert into cs_device_change(change_status, type, lease_type, pro_code, pro_name,
pro_type, voltage_level, use_unit, pro_province, pro_city,
pro_county, create_time, create_user, del_flag, change_unit, code, use_time,review_status)
pro_county, create_time, create_user, del_flag, change_unit, code, use_time,use_start_time,use_end_time,review_status)
values ( #{changeStatus}, #{type}, #{leaseType}, #{proCode}, #{proName}, #{proType},
#{voltageLevel}, #{useUnit}, #{proProvince}, #{proCity}, #{proCounty},
now(), #{createBy}, 0, #{changeUnit}, #{code}, #{useTime}, #{taskStatus})
now(), #{createBy}, 0, #{changeUnit}, #{code}, #{useTime}, #{useStartTime},#{useEndTime},#{taskStatus})
</insert>
<insert id="addDetails">
insert into cs_device_change_details(change_id, dev_code, dev_type_id, dev_type, num, use_time,
insert into cs_device_change_details(change_id, dev_code, dev_type_id, dev_type, num, use_time,use_start_time,use_end_time,
create_user, create_time, update_user, update_time, del_flag, is_repair, real_num)
values
<foreach collection="list" item="item" separator=",">
(#{item.changeId},#{item.devCode},#{item.typeId},#{item.devType},#{item.num},#{item.useTime},
(#{item.changeId},#{item.devCode},#{item.typeId},#{item.devType},#{item.num},#{item.useTime},#{item.useStartTime},#{item.useEndTime},
#{item.createBy}, #{item.createTime},#{item.updateBy}, #{item.updateTime}, 0, #{item.isRepair}, #{item.realNum})
</foreach>
</insert>
@ -53,6 +53,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="useTime != null">
use_time = #{useTime},
</if>
<if test="useStartTime != null">
use_start_time = #{useStartTime},
</if>
<if test="useEndTime != null">
use_end_time = #{useEndTime},
</if>
<if test="updateBy != null and updateBy != ''">
update_user = #{updateBy},
</if>
@ -200,10 +206,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN tool_type tt3 ON tt2.parent_id = tt3.type_id
LEFT JOIN tool_type tt4 ON tt3.parent_id = tt4.type_id
<where>
tl.manage_mode = '0' AND cdc.del_flag = '0'
cdc.del_flag = '0'
<if test="devType!=null and devType!=''">
AND cdc.dev_type = #{devType}
</if>
<if test="manageType!=null and manageType!=''">
AND tl.manage_mode = #{manageType}
</if>
<if test="typeName!=null and typeName!=''">
AND tt1.type_name like concat('%',#{typeName},'%')
@ -243,10 +252,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN tool_type tt3 ON tt2.parent_id = tt3.type_id
LEFT JOIN tool_type tt4 ON tt3.parent_id = tt4.type_id
<where>
tl.manage_mode = '1' AND cdc.del_flag = '0'
cdc.del_flag = '0'
<if test="devType!=null and devType!=''">
AND cdc.dev_type = #{devType}
</if>
<if test="manageType!=null and manageType!=''">
AND tl.manage_mode = #{manageType}
</if>
<if test="typeName!=null and typeName!=''">
AND tt1.type_name like concat('%',#{typeName},'%')
@ -292,6 +304,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pro_city as proCity,
pro_county as proCounty,
use_time as useTime,
use_start_time as useStartTime,
use_end_time as useEndTime,
code as code
from cs_device_change
where id = #{id}
@ -304,6 +318,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
dev_type_id AS typeId,
num AS num,
use_time AS useTime,
use_start_time as useStartTime,
use_end_time as useEndTime,
IFNULL(real_num, 0) AS realNum,
is_repair AS isRepair
FROM cs_device_change_details
@ -386,6 +402,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
cd.pro_city AS proCity,
cd.pro_county AS proCounty,
cd.use_time AS useTime,
cd.use_start_time as useStartTime,
cd.use_end_time as useEndTime,
cd.CODE AS CODE,
cd.review_status AS taskStatus,
cd.create_user AS createBy,

View File

@ -382,6 +382,9 @@
<if test="companyId!=null">
AND tl.company_id = #{companyId}
</if>
<if test="manageType!=null">
AND tl.manage_mode = #{manageType}
</if>
<if test='devType == "1"'>
AND 1=0
</if>
@ -445,6 +448,8 @@
dev_type_id AS typeId,
num AS num,
use_time AS useTime,
use_start_time AS useStartTime,
use_end_time AS useEndTime,
IFNULL(real_num, 0) AS realNum,
is_finished AS isFinished
FROM cs_device_change_details
@ -767,11 +772,11 @@
</insert>
<insert id="addDetails">
insert into cs_device_change_details(change_id, dev_code, dev_type_id, dev_type, num, use_time,
insert into cs_device_change_details(change_id, dev_code, dev_type_id, dev_type, num, use_time,use_start_time,use_end_time,
create_user, create_time, update_user, update_time, del_flag)
values
<foreach collection="list" item="item" separator=",">
(#{item.changeId},#{item.devCode},#{item.typeId},#{item.devType},#{item.num},#{item.useTime},
(#{item.changeId},#{item.devCode},#{item.typeId},#{item.devType},#{item.num},#{item.useTime},#{item.useStartTime},#{item.useEndTime},
#{item.createBy}, #{item.createTime},#{item.updateBy}, #{item.updateTime}, 0)
</foreach>
</insert>
@ -806,6 +811,12 @@
<if test="useTime != null">
use_time = #{useTime},
</if>
<if test="useStartTime != null">
use_start_time = #{useStartTime},
</if>
<if test="useEndTime != null">
use_end_time = #{useEndTime},
</if>
<if test="updateBy != null and updateBy != ''">
update_user = #{updateBy},
</if>

View File

@ -139,7 +139,6 @@
ELSE
'数量管理'
END manageMode,
tl.tool_code as `code`,
CASE tl.manage_mode
WHEN 0 THEN
@ -154,6 +153,9 @@
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="manageType != null and manageType!=''">
AND tl.manage_mode = #{manageType}
</if>
<if test="typeName != null and typeName!=''">
AND tt4.type_name like concat('%',#{typeName},'%')
</if>

View File

@ -30,8 +30,11 @@
<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 test="devCode != null and devCode!=''">
AND tl.tool_code like concat('%',#{devCode},'%')
</if>
<if test="manageType != null and manageType!=''">
AND tl.manage_mode = #{manageType}
</if>
<if test='devType == "1"'>
AND 1=0
@ -64,8 +67,8 @@
<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 test="devCode != null and devCode!=''">
AND mdi.`code` like concat('%',#{devCode},'%')
</if>
<if test='devType == "2"'>
AND 1=0