zouyu
18 小时以前 288c8e2d24ee2db081ba818e6b42ea52eb9c4ca2
不合格处理调整&合格率统计调整
已修改5个文件
131 ■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin-ztns/src/main/resources/application-ztns.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin-ztns/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java
@@ -22,7 +22,7 @@
    private Long id;
    /**
     * 节点id
     * OA系统审批人id
     */
    private Long operateId;
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"));//审批人id
            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);
        // 原材料编号切割
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
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
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}"/>
    <!-- 日志输出格式 -->