Browse Source

状态支持多选

ecss-tx
han\hanst 3 weeks ago
parent
commit
659dcb3395
  1. 5
      src/main/java/com/xujie/sys/modules/sampletracking/data/ProofTrackingData.java
  2. 33
      src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java
  3. 8
      src/main/resources/mapper/sampletracking/SampleProofTrackingMapper.xml

5
src/main/java/com/xujie/sys/modules/sampletracking/data/ProofTrackingData.java

@ -139,6 +139,11 @@ public class ProofTrackingData extends QueryPage {
private String proofingNo; private String proofingNo;
private String proofingStatus; private String proofingStatus;
/**
* 查询专用打样状态多选不落库避免覆盖单条记录的 proofingStatus
*/
@TableField(exist = false)
private List<String> proofingStatusList;
@TableField(exist = false) @TableField(exist = false)
private String projectPartSyncFlag; private String projectPartSyncFlag;
@TableField(exist = false) @TableField(exist = false)

33
src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java

@ -81,6 +81,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic
@Override @Override
public PageUtils searchProofTracking(ProofTrackingData data) { public PageUtils searchProofTracking(ProofTrackingData data) {
normalizeSearchProofingStatusFilters(data);
long page = data.getPage() <= 0 ? 1 : data.getPage(); long page = data.getPage() <= 0 ? 1 : data.getPage();
long limit = data.getLimit() <= 0 ? 20 : data.getLimit(); long limit = data.getLimit() <= 0 ? 20 : data.getLimit();
IPage<ProofTrackingData> result = IPage<ProofTrackingData> result =
@ -107,6 +108,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic
if (data == null) { if (data == null) {
throw new RuntimeException("导出参数不能为空"); throw new RuntimeException("导出参数不能为空");
} }
normalizeSearchProofingStatusFilters(data);
if (isBlank(data.getSite())) { if (isBlank(data.getSite())) {
throw new RuntimeException("工厂不能为空"); throw new RuntimeException("工厂不能为空");
} }
@ -2759,6 +2761,37 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic
return "system"; return "system";
} }
private void normalizeSearchProofingStatusFilters(ProofTrackingData data) {
if (data == null) {
return;
}
if (!isBlank(data.getProofingStatus())) {
data.setProofingStatus(data.getProofingStatus().trim());
} else {
data.setProofingStatus(null);
}
List<String> sourceStatusList = data.getProofingStatusList();
if (sourceStatusList == null || sourceStatusList.isEmpty()) {
data.setProofingStatusList(null);
return;
}
List<String> normalizedStatusList = new ArrayList<>();
Set<String> usedStatusSet = new LinkedHashSet<>();
for (String oneStatus : sourceStatusList) {
if (isBlank(oneStatus)) {
continue;
}
String normalizedStatus = oneStatus.trim();
String statusKey = normalizedStatus.toLowerCase();
if (usedStatusSet.contains(statusKey)) {
continue;
}
usedStatusSet.add(statusKey);
normalizedStatusList.add(normalizedStatus);
}
data.setProofingStatusList(normalizedStatusList.isEmpty() ? null : normalizedStatusList);
}
private boolean isBlank(String value) { private boolean isBlank(String value) {
return value == null || value.trim().isEmpty(); return value == null || value.trim().isEmpty();
} }

8
src/main/resources/mapper/sampletracking/SampleProofTrackingMapper.xml

@ -109,7 +109,13 @@
<if test="query.proofingNo != null and query.proofingNo != ''"> <if test="query.proofingNo != null and query.proofingNo != ''">
and UPPER(t.proofing_no) like '%' + UPPER(#{query.proofingNo}) + '%' and UPPER(t.proofing_no) like '%' + UPPER(#{query.proofingNo}) + '%'
</if> </if>
<if test="query.proofingStatus != null and query.proofingStatus != ''">
<if test="query.proofingStatusList != null and query.proofingStatusList.size > 0">
and t.proofing_status in
<foreach collection="query.proofingStatusList" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<if test="(query.proofingStatusList == null or query.proofingStatusList.size == 0) and query.proofingStatus != null and query.proofingStatus != ''">
and t.proofing_status = #{query.proofingStatus} and t.proofing_status = #{query.proofingStatus}
</if> </if>
<if test="query.projectPartSyncFlag != null and query.projectPartSyncFlag != ''"> <if test="query.projectPartSyncFlag != null and query.projectPartSyncFlag != ''">

Loading…
Cancel
Save