zouyu
2026-02-03 c80a342eacd6b639c486eb47afdf04984d54183e
不合格管理:重新提交oa功能调整3
已添加1个文件
已修改10个文件
111 ■■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/dto/PushOADto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsSampleUserMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin-ztns/src/main/resources/application-druid.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin-ztns/src/main/resources/application-ztns.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/ContractType.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProperty.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/PushOADto.java
@@ -21,4 +21,10 @@
    @ApiModelProperty(value = "附件url")
    private String fileUrl;
    /**
     * IFS域
     */
    @ApiModelProperty(value = "IFS域")
    private String contract;
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java
@@ -15,6 +15,7 @@
import com.deepoove.poi.config.ConfigureBuilder;
import com.deepoove.poi.data.Pictures;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.enums.ContractType;
import com.ruoyi.common.utils.DateImageUtil;
import com.ruoyi.common.utils.api.IfsApiUtils;
import com.ruoyi.common.utils.QueryWrappers;
@@ -82,7 +83,7 @@
        jresult.put("data", new JSONArray());
        JSONObject jsonObject = new JSONObject();
        generateIfsStockQueryParams(jsonObject, ifsStockQueryDTO, ifsStockQueryDTO.getPage(), ifsStockQueryDTO.getLimit());
        Result result = ifsApiUtils.getIfsStock("ZTNS",jsonObject.toJSONString());
        Result result = ifsApiUtils.getIfsStock(ContractType.ZTNS.getValue(),jsonObject.toJSONString());
        if (result.getCode() == 200) {
            JSONObject data = (JSONObject) JSON.toJSON(result.getData());
            JSONArray array = new JSONArray();
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -1745,22 +1745,6 @@
    }
    /**
     * ä½¿ç”¨æ­£åˆ™è¡¨è¾¾å¼åŽ»é™¤å­—ç¬¦ä¸²æœ€åŽä¸€ä¸ª"-"及其后面的所有内容
     * @param str å¾…处理的字符串(允许为null)
     * @return å¤„理后的字符串,null返回null,无"-"返回原字符串
     */
    public static String removeLastHyphenAndContent(String str) {
        // ç©ºå€¼æ ¡éªŒï¼šé¿å…NullPointerException
        if (str == null || str.isEmpty()) {
            return str;
        }
        // æ­£åˆ™è¡¨è¾¾å¼ï¼šåŒ¹é…æœ€åŽä¸€ä¸ª"-"及其后面的所有内容
        String regex = "-[^-]*$";
        // æ›¿æ¢åŒ¹é…çš„内容为空字符串
        return str.replaceAll(regex, "");
    }
    /**
     * å°æŠ¥å‘Šç”Ÿæˆ
     *
     * @param orderId
@@ -1828,7 +1812,7 @@
            //查询检验单消息
            InsSampleUserVO insSampleUser = insSampleUserMapper.selectUserNameByOrderId(orderId);
            if (Objects.nonNull(insSampleUser)) {
                enterFactoryReport.setPartDesc(removeLastHyphenAndContent(insSampleUser.getModel()));
                enterFactoryReport.setPartDesc(insSampleUser.getModel());
                enterFactoryReport.setInspector(insSampleUser.getInspector());
                enterFactoryReport.setInspectDate(insSampleUser.getInspectDate());
            }
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -439,16 +439,16 @@
    @Override
    public Map<String, Object> getInsOrder(Integer id) {
        Map<String, Object> map = new HashMap<>();
        InsOrder insOrder = insOrderMapper.selectById(id);
        IfsOrderVO ifsOrderVO = insOrderMapper.selectOrderInfoById(id);
        List<SampleProductDto> list;
        // åˆ¤æ–­æ˜¯å¦æ˜¯è¿›åŽ‚æŠ¥å‘Šå…æ£€
        if (insOrder.getIsExemption().equals(1)) {
        if (ifsOrderVO.getIsExemption().equals(1)) {
            list = insSampleMapper.selectExemptionByOrderId(id);
        } else {
            list = insSampleMapper.selectSampleProductListByOrderId2(id);
        }
        Map<String, Object> map1 = insSampleMapper.selectInsOrder(id);
        map.put("insOrder", insOrder);
        map.put("insOrder", ifsOrderVO);
        map.put("sampleProduct", list);
        map.put("insOrderTemplate", map1);
        return map;
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -14,6 +14,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.enums.ContractType;
import com.ruoyi.common.oa.OAProcess;
import com.ruoyi.common.oa.OAProperty;
import com.ruoyi.common.oa.OAResult;
@@ -125,10 +126,6 @@
        //获取不合格处理记录
        UnqualifiedHandlerVO vo = baseMapper.findById(pushOADto.getHandlerId());
//        if (vo.getRequestId() != null) {
//            throw new ErrorException("该不合格处理已提交过OA");
//        }
        //提交oa相关字段赋值
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        Map<String, String> mainFields = new HashMap<>();
@@ -168,9 +165,13 @@
        boolean oa = false;
        try {
            log.info("发起不合格处理OA审核流程");
            String unqualifiedProcessId = oaProperty.getUnqualifiedProcessId();
            //根据IFS域获取对应的流程id
            if(StringUtils.isBlank(pushOADto.getContract())){
                throw new RuntimeException("IFS域【"+pushOADto.getContract()+"】不存在,OA流程提交失败");
            }
            String unqualifiedProcessId = StringUtils.equals(ContractType.ZTNS.getValue(),pushOADto.getContract())?oaProperty.getUnqualifiedProcessId():oaProperty.getUnqualifiedProcessIdByKJNS();
            OAResult oaResult = OAProcess.start(mainFields, requestName, unqualifiedProcessId,SecurityUtils.getUsername());
            log.info("不合格处理OA审核流程结束,返回结果->{}" + oaResult);
            log.info("{}不合格处理OA审核流程结束,返回结果->{}",unqualifiedProcessId,oaResult);
            oa = oaResult.success();
            if (oa) {
                String addWorkflowResult = oaResult.getAddWorkflowResult();
@@ -299,6 +300,7 @@
            //推送OA
            PushOADto pushOADto = new PushOADto();
            pushOADto.setHandlerId(unqualifiedHandlerDto.getId());
            pushOADto.setContract(unqualifiedHandlerDto.getContract());
            pushOA(pushOADto);
        }
        return true;
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -85,14 +85,15 @@
        SELECT
        DATE(io1.send_time) AS day,
        COUNT(*) AS total,
        SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
        SUM(CASE WHEN iiq.inspect_status = 1 or (iiq.inspect_status = 4 AND iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status = 2 or (iiq.inspect_status = 4 AND 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
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN ins_unqualified_handler iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
        FROM ins_sample
@@ -159,14 +160,15 @@
        SELECT
        MONTH(io1.send_time) AS month,
        COUNT(*) AS total,
        SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
        SUM(CASE WHEN iiq.inspect_status = 1 or (iiq.inspect_status = 4 AND iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status = 2 or (iiq.inspect_status = 4 AND 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
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN ins_unqualified_handler iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
        FROM ins_sample
@@ -202,17 +204,13 @@
        SELECT
        COUNT(*) AS sum,
        /* åˆæ ¼ */
        SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status = 1 or (iiq.inspect_status = 4 AND iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
        /* ä¸åˆæ ¼ */
        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified,
        ROUND(
        SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END)
        / COUNT(*) * 100,
        2
        ) AS passRate
        SUM(CASE WHEN iiq.inspect_status = 2 or (iiq.inspect_status = 4 AND 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 ins_unqualified_handler iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT
        is2.ins_order_id,
@@ -249,17 +247,16 @@
    <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO">
        SELECT
        iiq.supplier_name AS supplierName,
        COUNT(*) AS totalBatch,
        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unqualifiedBatch,
        COUNT(iiq.id) AS totalBatch,
        SUM(CASE WHEN iiq.inspect_status = 2 or (iiq.inspect_status = 4 AND iuh.id is not null) THEN 1 ELSE 0 END) AS unqualifiedBatch,
        ROUND(SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
        FROM ifs_inventory_quantity iiq
        INNER JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN ins_unqualified_handler iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT
        ins_order_id,
inspect-server/src/main/resources/mapper/InsSampleUserMapper.xml
@@ -5,9 +5,10 @@
        select
            group_concat(DISTINCT u.name separator ',') AS inspector,
            date_format(isu.create_time,'%Y-%m-%d') AS inspect_date,
            isa.model
            ip.model
        from ins_sample_user isu
            left join ins_sample isa on isu.ins_sample_id = isa.ins_order_id
            inner join ins_product ip on isa.id = ip.ins_sample_id
            left join user u on isu.user_id=u.id
        where isu.ins_sample_id=#{orderId} and isu.state=0
        group by isu.ins_sample_id
ruoyi-admin-ztns/src/main/resources/application-druid.yml
@@ -131,7 +131,8 @@
oa:
    oaHost:
    prodIp:
    unqualifiedProcessId:
    unqualifiedProcessId: 1
    unqualifiedProcessIdByKJNS: 2 #KJNS域OA流程id
# äººäº‹ç³»ç»Ÿ
personnel:
ruoyi-admin-ztns/src/main/resources/application-ztns.yml
@@ -132,7 +132,8 @@
oa:
  oaHost: http://192.168.0.49:8000/oa_workflowrequest.asmx?wsdl
  prodIp: http://192.168.21.53:7002/lims
  unqualifiedProcessId: 715114
  unqualifiedProcessId: 715114 #ZTNS域OA流程id
  unqualifiedProcessIdByKJNS: 861617 #KJNS域OA流程id
# ä¼ä¸šå¾®ä¿¡æŽ¨é€
wechat:
ruoyi-common/src/main/java/com/ruoyi/common/enums/ContractType.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.common.enums;
import lombok.Getter;
/**
 * IFS域
 */
@Getter
public enum ContractType {
    ZTNS("中天耐丝域","ZTNS"),
    KJNS("科技耐丝域","KJNS");
    ContractType(String name, String value) {
        this.name = name;
        this.value = value;
    }
    private final String name;
    private final String value;
}
ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProperty.java
@@ -23,9 +23,14 @@
    private String prodIp;
    /**
     * è£…备电缆:不合格审批oa的id
     * ä¸­å¤©è€ä¸ï¼šä¸åˆæ ¼å®¡æ‰¹oa的id
     */
    private String unqualifiedProcessId;
    /**
     * ä¸­å¤©ç§‘技:不合格审批oa的id
     */
    private String unqualifiedProcessIdByKJNS;
}