检验下单的委托人如果制单人的委托单位与选择的委托单位不一致,则委托人必须要进行填写,如果一致那么委托人就默认是制单人+.检验设备第一次进来直接所有样品的这个项目全部使用该设备,第二次修改就只针对当前样品
已修改4个文件
174 ■■■■ 文件已修改
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsSampleMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -105,17 +105,25 @@
    @Override
    public List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) {
        Integer id;
        List<Integer> id;
        try {
            if (ObjectUtils.isEmpty(inspectionItemSubclass)) {
                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
//                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                id = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                        .select(StructureItemParameter::getId)).stream().map(StructureItemParameter::getId).collect(Collectors.toList());
            }else {
                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
//                        .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
//                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                id = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
                        .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                        .select(StructureItemParameter::getId)).stream().map(StructureItemParameter::getId).collect(Collectors.toList());
            }
        } catch (Exception e) {
            return null;
@@ -127,12 +135,14 @@
        for (Device device : devices) {
            String[] ids = device.getInsProductIds().split(",");
            for (String i : ids) {
                if (i.equals(id + "")) {
                if (ObjectUtils.isNotEmpty(i)) {
                    if (id.contains(Integer.parseInt(i))) {
                    devices2.add(device);
                    break;
                }
            }
        }
        }
        return devices2;
    }
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -487,7 +487,8 @@
                JSONObject jo = JSON.parseObject(JSON.toJSONString(v));
                InsProduct insProduct = new InsProduct();
                insProduct.setId(Integer.parseInt(k));
                List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()));
                List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
                        .eq(InsProductResult::getInsProductId, insProduct.getId()));
                InsProductResult result;
                if (CollectionUtils.isEmpty(results)) {
                    result = new InsProductResult();
@@ -576,6 +577,51 @@
                    result.setUpdateTime(LocalDateTime.now());
                    insProductResultMapper.updateById(result);
                }
                /*如果是第一次选择设备信息,且还有其余样品也有同一个经验项目,那么所有样品的该项目都用这个设备信息*/
                //先查询是否还有其余样品
                InsProduct product = insProductMapper.selectById(insProduct.getId());
                Integer insSampleId = product.getInsSampleId();
                List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSampleMapper.selectById(insSampleId).getInsOrderId()));
                if (insSamples.size() > 1) {
                    //存在其余样品,查询是否有同一种检验项目
                    for (InsSample sample : insSamples.stream().filter(insSample -> !insSample.getId().equals(insSampleId)).collect(Collectors.toList())) {
                        InsProduct product1 = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
                                .eq(InsProduct::getState, 1)
                                .eq(InsProduct::getInsSampleId, sample.getId())
                                .eq(InsProduct::getInspectionItem, product.getInspectionItem())
                                .eq(InsProduct::getInspectionItemEn, product.getInspectionItemEn())
                                .eq(InsProduct::getInspectionItemSubclass, product.getInspectionItemSubclass())
                                .eq(InsProduct::getInspectionItemSubclassEn, product.getInspectionItemSubclassEn())
                                .eq(InsProduct::getTemplateId, product.getTemplateId())
                                .eq(InsProduct::getStandardMethodListId, product.getStandardMethodListId())
                        );
                        if (ObjectUtils.isNotEmpty(product1)){
                            //如果存在项目,查询是否有表
                            InsProductResult productResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, product1.getId()));
                            if (ObjectUtils.isEmpty(productResult)){
                                //没有表新建表
                                productResult = new InsProductResult();
                                productResult.setInsProductId(product1.getId());
                                productResult.setEquipValue(result.getEquipValue());
                                productResult.setEquipName(result.getEquipValue());
                                productResult.setCreateUser(userId);
                                productResult.setUpdateUser(userId);
                                insProductResultMapper.insert(productResult);
                            }else if(ObjectUtils.isEmpty(productResult.getEquipValue())){
                                //有表判断是否有设备
                                productResult.setEquipValue(result.getEquipValue());
                                productResult.setEquipName(result.getEquipValue());
                                productResult.setUpdateUser(userId);
                                productResult.setUpdateTime(LocalDateTime.now());
                                insProductResultMapper.updateById(productResult);
                            }
                        }
                    }
                }
                insProduct.setUpdateUser(userId);
                insProductMapper.updateById(insProduct);
                insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId()));
@@ -669,15 +715,23 @@
                Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                        .eq(InsProduct::getInsSampleId, insSample.getId()));
                Long l1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                        .eq(InsProduct::getInsSampleId, insSample.getId()).isNotNull(InsProduct::getInsResult));
                        .eq(InsProduct::getInsSampleId, insSample.getId())
                        .and(wrapper -> wrapper
                                .isNull(InsProduct::getInsResult)
                                .or()
                                .eq(InsProduct::getInsResult, 2)
                        ));
                if (l == l1) {
                    insSample.setInsState(2);
                }
                insSampleMapper.updateById(insSample);
                /*校验一下result表*/
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()).orderByDesc(InsProductResult::getId));
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
                        .eq(InsProductResult::getInsProductId, insProduct.getId()));
                if (insProductResults.size() > 1) {
                    insProductResultMapper.deleteById(insProductResults.get(0));
                    for (int i = 1; i < insProductResults.size(); i++) {
                        insProductResultMapper.deleteById(insProductResults.get(i));
                    }
                }
            });
            return insContext.keySet().stream().findFirst().orElse(null);
@@ -691,8 +745,17 @@
                int orderId = insSampleMapper.selectById(sampleId).getInsOrderId();
                // 通过订单id查找所有样本id
                List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList());
                // 通过检查每一个样本id查到属于检验项结论 is null的数量
                Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, sampleIds).isNull(InsProduct::getInsResult).eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory()).eq(InsProduct::getState, 1));
                // 通过检查每一个样本id查到属于检验项结论 is null 或者 =2 的数量
                Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                        .in(InsProduct::getInsSampleId, sampleIds)
                        .and(wrapper -> wrapper
                                .isNull(InsProduct::getInsResult)
                                .or()
                                .eq(InsProduct::getInsResult, 2)
                        )
                        //.isNull(InsProduct::getInsResult)
                        .eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory())
                        .eq(InsProduct::getState, 1));
                if (count == 0) {
                    insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getInsOrderId, orderId)
@@ -915,8 +978,48 @@
                                        textRenderData.setText("√");
                                        break;
                                    case 0:
                                        resultCh.set(resultCh.get() + "、" + p.getInspectionItem() + (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass()));
                                        resultEn.set(resultEn.get() + "、" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn()));
                                        String current = resultCh.get();
                                        // 使用 Set 来保持唯一项
                                        Set<String> uniqueItems = new HashSet<>();
                                        if (!current.isEmpty()) {
                                            // 分割当前字符串并加入到 Set 中
                                            String[] items = current.split("、");
                                            for (String item : items) {
                                                if (!item.isEmpty()) {
                                                    uniqueItems.add(item);
                                                }
                                            }
                                        }
                                        // 处理新数据
                                        String newItem = p.getInspectionItem() +
                                                (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass());
                                        uniqueItems.add(newItem);
                                        // 连接唯一项并更新 AtomicReference
                                        String result = String.join("、", uniqueItems);
                                        resultCh.set(result);
                                        //resultCh.set(resultCh.get() + "、" + p.getInspectionItem() + (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass()));
                                        String current1 = resultEn.get();
                                        // 使用 Set 来保持唯一项
                                        Set<String> uniqueItems1 = new HashSet<>();
                                        if (!current1.isEmpty()) {
                                            // 分割当前字符串并加入到 Set 中
                                            String[] items = current1.split("、");
                                            for (String item : items) {
                                                if (!item.isEmpty()) {
                                                    uniqueItems1.add(item);
                                                }
                                            }
                                        }
                                        // 处理新数据
                                        String newItem1 = p.getInspectionItemEn() +
                                                ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn());
                                        uniqueItems1.add(newItem1);
                                        // 连接唯一项并更新 AtomicReference
                                        String result1 = String.join("、", uniqueItems1);
                                        resultEn.set(result1);
                                        //resultEn.set(resultEn.get() + "、" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn()));
                                        textRenderData.setText("×");
                                        break;
                                    default:
@@ -985,7 +1088,7 @@
                                textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "");
                            }
                        } else {
                            textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "");
                            textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "∑" + jo1.get("mc"));
                        }
                        if (jo1.get("mc") != null) {
                            textRenderData.setText(textRenderData.getText() + "∑" + jo1.get("mc"));
@@ -3569,9 +3672,12 @@
        CompletableFuture.supplyAsync(() -> {
            List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
            for (Integer ip : ips) {
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, ip).orderByDesc(InsProductResult::getId));
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
                        .eq(InsProductResult::getInsProductId, ip));
                if (insProductResults.size() > 1) {
                    insProductResultMapper.deleteById(insProductResults.get(0));
                    for (int i = 1; i < insProductResults.size(); i++) {
                        insProductResultMapper.deleteById(insProductResults.get(i));
                    }
                }
            }
            return null;
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -154,6 +154,18 @@
    @Transactional(rollbackFor = Exception.class)
    public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing) {
        insOrder.setState(0);
        //判断选择的委托单位与制单人的委托单位是否一致
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        String company = userMapper.selectById(userId).getCompany();
        if (!company.equals(insOrder.getCompanyId()+"")) {
            //如果不一致那么委托人字段必填
            if (ObjectUtils.isEmpty(insOrder.getPrepareUser())){
                throw new ErrorException("委托人不能为空");
            }
        }else {
            //如果一致,那么制单人就是委托人
            insOrder.setPrepareUser(insOrder.getCustom());
        }
        //客户代号
        Custom custom = customMapper.selectById(insOrder.getCompanyId());
        String code = custom.getCode2();
@@ -289,12 +301,12 @@
    private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, Boolean is) {
        InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId());
        String name = insSampleMapper.selMethodById(sampleId);
        for (InsProduct product : productList) {
            if (product.getState() == 1 && !product.getInspectionItem().equals("光纤接头损耗")) {
                //判断光缆的温度循环项目添加
                if (insOrder.getSampleType().equals("光缆") && product.getInspectionItem().equals("温度循环") && type != 0) {
                    //判断选择的标准方法是委托要求还是其他标准方法
                    String name = insSampleMapper.selMethodById(sampleId);
                    if (!name.equals("委托要求")) {
                        //判断标准方法的温度循环的要求描述是否有填写
                        if (ObjectUtils.isEmpty(product.getTell()) || product.getTell().equals("")) {
@@ -509,7 +521,14 @@
            if (StringUtils.isEmpty(code)) {
                code = "";
            }
            String code2 = customMapper.selectById(insOrder.getCompanyId()).getCode2();
            Custom custom = customMapper.selectById(insOrder.getCompanyId());
            String code2 = custom.getCode2();
            if (!custom.getCompany().equals(insOrder.getCompany())){
                Custom one = customMapper.selectOne(Wrappers.<Custom>lambdaQuery().eq(Custom::getCompany, insOrder.getCompany()));
                insOrder.setCompanyId(one.getId());
                code2=one.getCode2();
            }
            //String code2 = customMapper.selectById(insOrder.getCompanyId()).getCode2();
            insOrder.setEntrustCode(giveCode.giveCode2("JCZX/" + code + "-" + code2 + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM"));
        }
        return insOrderMapper.updateById(insOrder);
inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -390,6 +390,7 @@
    <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3">
        select isa.id,
        sample_code,
        isa.sample,
        entrust_code,
        is_leave,
        isa.model,