From 288c8e2d24ee2db081ba818e6b42ea52eb9c4ca2 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 01 七月 2026 11:14:43 +0800
Subject: [PATCH] 不合格处理调整&合格率统计调整
---
ruoyi-admin-ztns/src/main/resources/application-ztns.yml | 2
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml | 66 ++++++---------------
ruoyi-admin-ztns/src/main/resources/logback.xml | 2
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java | 59 ++++++++++++-------
inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java | 2
5 files changed, 59 insertions(+), 72 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java
index 54e3dc4..aa737b7 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java
@@ -22,7 +22,7 @@
private Long id;
/**
- * 鑺傜偣id
+ * OA绯荤粺瀹℃壒浜篿d
*/
private Long operateId;
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
index d8b2c19..e252218 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -191,6 +191,25 @@
return Result.success();
}
+ /**
+ * 杩斿洖绗竴涓笉涓虹┖鐨勫瓧绗︿覆
+ * @param values
+ * @return
+ */
+ public static String firstNotBlank(String... values) {
+ if (values == null) {
+ return null;
+ }
+
+ for (String value : values) {
+ if (StringUtils.isNotBlank(value)) {
+ return value;
+ }
+ }
+
+ return null;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void unqualifiedHandlerOACallback(Long oaWorkId, String checkResult, JSONObject response) {
@@ -218,30 +237,31 @@
for (Object workflowRequestLog : workflowRequestLogs) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(workflowRequestLog));
CommonOa oa = new CommonOa();
- oa.setApprover(jsonObject.getString("operatorName"));
- oa.setOperateId(jsonObject.getLong("operateId"));
- oa.setWorkflowId(oaWorkId);
- oa.setOperation(jsonObject.getString("operateType"));
- oa.setApprovalDate(jsonObject.getString("operateDate"));
- oa.setNodeName(jsonObject.getString("nodeName"));
- oa.setApprovalTime(jsonObject.getString("operateTime"));
//璁剧疆鍚勮妭鐐圭殑澶勭悊鎰忚
+ oa.setApprover(jsonObject.getString("operatorName"));//瀹℃壒浜�
+ oa.setOperateId(jsonObject.getLong("operateId"));//瀹℃壒浜篿d
+ oa.setWorkflowId(oaWorkId);//娴佺▼id
+ oa.setApprovalDate(jsonObject.getString("operateDate"));//瀹℃壒鏃ユ湡
+ oa.setNodeName(jsonObject.getString("nodeName"));//鑺傜偣鍚嶇О
+ oa.setApprovalTime(jsonObject.getString("operateTime"));//瀹℃壒鏃堕棿
if(StringUtils.isNotBlank(oa.getNodeName())){
+ String operateType = jsonObject.getString("operateType");//鑺傜偣鎿嶄綔
+ String approvalOpinion = jsonObject.getString("remark");//澶勭悊鎰忚鎻忚堪
+ oa.setOperation(operateType);
+ oa.setApprovalOpinion(approvalOpinion);
if(oa.getNodeName().contains("璐ㄩ噺")){
- oa.setOperation(clcsMap.get(response.getString("clcs1")));
- oa.setApprovalOpinion(response.getString("dbhgcpdclyqdealwiththenonconfo"));//1.瀵逛笉鍚堟牸浜у搧鐨勫鐞嗚姹�
+ oa.setOperation(firstNotBlank(clcsMap.get(response.getString("clcs1")),operateType));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("dbhgcpdclyqdealwiththenonconfo"),approvalOpinion));//1.瀵逛笉鍚堟牸浜у搧鐨勫鐞嗚姹�
}else if(oa.getNodeName().contains("宸ヨ壓")){
- oa.setApprovalOpinion(response.getString("gjyqimprovementrequirements"));//2.鏀硅繘瑕佹眰
+ oa.setApprovalOpinion(firstNotBlank(response.getString("gjyqimprovementrequirements"),approvalOpinion));//2.鏀硅繘瑕佹眰
}else if(oa.getNodeName().contains("鎶�鏈�")){
- oa.setOperation(clcsMap.get(response.getString("clcs2")));
- oa.setApprovalOpinion(response.getString("csyqactionrequirement"));//3.鎺柦瑕佹眰
+ oa.setOperation(firstNotBlank(clcsMap.get(response.getString("clcs2")),operateType));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("csyqactionrequirement"),approvalOpinion));//3.鎺柦瑕佹眰
}else if(oa.getNodeName().contains("鎬荤粡鐞�")){
- oa.setOperation(clcsMap.get(response.getString("clcs3")));
- oa.setApprovalOpinion(response.getString("zzclyqfinaltreatmentrequiremen"));//4.鏈�缁堝鐞嗚姹�
+ oa.setOperation(firstNotBlank(clcsMap.get(response.getString("clcs3")),operateType));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("zzclyqfinaltreatmentrequiremen"),approvalOpinion));//4.鏈�缁堝鐞嗚姹�
}else if(oa.getNodeName().contains("鏍哥畻")){
- oa.setApprovalOpinion(response.getString("spyqcompensationrequirement"));//5.绱㈣禂瑕佹眰
- }else{
- oa.setApprovalOpinion(jsonObject.getString("remark"));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("spyqcompensationrequirement"),approvalOpinion));//5.绱㈣禂瑕佹眰
}
}
@@ -276,11 +296,6 @@
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
- long count = this.count(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
- .in(InsUnqualifiedHandler::getInsOrderId, unqualifiedHandlerDto.getSelectOrderIds()));
- if (count > 0) {
- throw new ErrorException("瀛樺湪宸叉彁浜よ繃涓嶅悎鏍煎鐞嗙殑璁㈠崟");
- }
//鐢熸垚鍒嗙粍id
String groupId = insUnqualifiedHandlerNumberGenerator.generateNumberWithPrefix(6, "GROUP", InsUnqualifiedHandler::getGroupId);
// 鍘熸潗鏂欑紪鍙峰垏鍓�
diff --git a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
index dac3f18..d0b90ba 100644
--- a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
+++ b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -85,8 +85,8 @@
SELECT
DATE(io1.send_time) AS day,
COUNT(*) AS total,
- SUM(CASE WHEN iiq.inspect_status = 1 or (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
- SUM(CASE WHEN iiq.inspect_status = 2 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
+ SUM(CASE WHEN iiq.inspect_status = 1 and (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
+ SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
FROM ifs_inventory_quantity iiq
LEFT JOIN ins_order io1
ON io1.ifs_inventory_id = iiq.id
@@ -95,18 +95,11 @@
AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
LEFT JOIN (
SELECT
- iuh.id,
- coa.operation,
+ MAX(iuh.id) AS id,
iuh.inventory_quantity_id
FROM ins_unqualified_handler iuh
- LEFT JOIN (
- SELECT
- *,
- ROW_NUMBER() OVER (PARTITION BY workflow_id ORDER BY approval_date DESC,approval_time DESC, id DESC) AS rn
- FROM
- common_oa
- ) AS coa ON iuh.request_id = coa.workflow_id AND coa.rn = 1
- WHERE coa.operation !='閫�鍥�' AND coa.operation is not null
+ WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
+ GROUP BY iuh.inventory_quantity_id
) iuh ON iiq.id = iuh.inventory_quantity_id
LEFT JOIN (
SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
@@ -174,8 +167,8 @@
SELECT
MONTH(io1.send_time) AS month,
COUNT(*) AS total,
- SUM(CASE WHEN iiq.inspect_status = 1 or (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
- SUM(CASE WHEN iiq.inspect_status = 2 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
+ SUM(CASE WHEN iiq.inspect_status = 1 and (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
+ SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
FROM ifs_inventory_quantity iiq
LEFT JOIN ins_order io1
ON io1.ifs_inventory_id = iiq.id
@@ -184,18 +177,11 @@
AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
LEFT JOIN (
SELECT
- iuh.id,
- coa.operation,
+ MAX(iuh.id) AS id,
iuh.inventory_quantity_id
FROM ins_unqualified_handler iuh
- LEFT JOIN (
- SELECT
- *,
- ROW_NUMBER() OVER (PARTITION BY workflow_id ORDER BY approval_date DESC,approval_time DESC, id DESC) AS rn
- FROM
- common_oa
- ) AS coa ON iuh.request_id = coa.workflow_id AND coa.rn = 1
- WHERE coa.operation !='閫�鍥�' AND coa.operation is not null
+ WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
+ GROUP BY iuh.inventory_quantity_id
) iuh ON iiq.id = iuh.inventory_quantity_id
LEFT JOIN (
SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
@@ -232,26 +218,19 @@
SELECT
COUNT(*) AS sum,
/* 鍚堟牸 */
- SUM(CASE WHEN iiq.inspect_status = 1 or (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
+ SUM(CASE WHEN iiq.inspect_status = 1 and (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
/* 涓嶅悎鏍� */
- SUM(CASE WHEN iiq.inspect_status = 2 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
+ SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
FROM ifs_inventory_quantity iiq
INNER JOIN ins_order io1
ON io1.ifs_inventory_id = iiq.id
LEFT JOIN (
SELECT
- iuh.id,
- coa.operation,
+ MAX(iuh.id) AS id,
iuh.inventory_quantity_id
FROM ins_unqualified_handler iuh
- LEFT JOIN (
- SELECT
- *,
- ROW_NUMBER() OVER (PARTITION BY workflow_id ORDER BY approval_date DESC,approval_time DESC, id DESC) AS rn
- FROM
- common_oa
- ) AS coa ON iuh.request_id = coa.workflow_id AND coa.rn = 1
- WHERE coa.operation !='閫�鍥�' AND coa.operation is not null
+ WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
+ GROUP BY iuh.inventory_quantity_id
) iuh ON iiq.id = iuh.inventory_quantity_id
LEFT JOIN (
SELECT
@@ -290,7 +269,7 @@
SELECT
iiq.supplier_name AS supplierName,
COUNT(iiq.id) AS totalBatch,
- SUM(CASE WHEN iiq.inspect_status = 2 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unqualifiedBatch,
+ SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unqualifiedBatch,
ROUND(SUM(CASE WHEN iiq.inspect_status = 1 and iuh.id is null THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
FROM ifs_inventory_quantity iiq
INNER JOIN ins_order io1
@@ -300,18 +279,11 @@
AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
LEFT JOIN (
SELECT
- iuh.id,
- coa.operation,
+ MAX(iuh.id) AS id,
iuh.inventory_quantity_id
FROM ins_unqualified_handler iuh
- LEFT JOIN (
- SELECT
- *,
- ROW_NUMBER() OVER (PARTITION BY workflow_id ORDER BY approval_date DESC,approval_time DESC, id DESC) AS rn
- FROM
- common_oa
- ) AS coa ON iuh.request_id = coa.workflow_id AND coa.rn = 1
- WHERE coa.operation !='閫�鍥�' AND coa.operation is not null
+ WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
+ GROUP BY iuh.inventory_quantity_id
) iuh ON iiq.id = iuh.inventory_quantity_id
LEFT JOIN (
SELECT
diff --git a/ruoyi-admin-ztns/src/main/resources/application-ztns.yml b/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
index f167d4b..53fa09f 100644
--- a/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
+++ b/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
@@ -101,7 +101,7 @@
# 鏃ュ織閰嶇疆
logging:
- file-location: /center-lims-ztns/after
+ file-location: /center-lims-ztns/after/logs
level:
com.ruoyi: info
org.springframework: warn
diff --git a/ruoyi-admin-ztns/src/main/resources/logback.xml b/ruoyi-admin-ztns/src/main/resources/logback.xml
index dcefe7a..bb2f06b 100644
--- a/ruoyi-admin-ztns/src/main/resources/logback.xml
+++ b/ruoyi-admin-ztns/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 鏃ュ織瀛樻斁璺緞 -->
- <springProperty scope="context" name="logs" source="logging.file-location" default="/logs"/>
+ <springProperty scope="context" name="logs" source="logging.file-location" default="/ztns-logs"/>
<property name="log.path" value="${logs}"/>
<!-- 鏃ュ織杈撳嚭鏍煎紡 -->
--
Gitblit v1.9.3