zss
2 天以前 17cbd5b9f612f3d29f02f2722357ea334ede2b41
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -405,10 +405,11 @@
        InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getSampleCode, sampleCode)
                .eq(InsSample::getInsOrderId, insOrders.get(0).getId()));
        List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
        if (!collect.contains(sonLaboratory)) {
                .eq(InsProduct::getSonLaboratory,sonLaboratory)
                .eq(InsProduct::getInsSampleId, insSample.getId()));
        if (insProducts.size()<=0) {
            throw new ErrorException("该样品没有" + sonLaboratory + "站点的相关项目,请查看下单详情!");
        }
        //判断该订单是否站点任务有结束试验(只要任一任务结束试验都不能再次试验)
@@ -429,6 +430,11 @@
                orderState.setNum(orderState.getNum() + 1);//递增
                orderState.setCreateTime(LocalDateTime.now());
                insOrderStateMapper.updateById(orderState);
                //这里需要将原来的检验项目的状态重置为null(根据样品id和试验室来判断项目)
                insProducts.stream().forEach(insProduct -> {
                    insProduct.setInsResult(null);
                    insProductMapper.updateById(insProduct);
                });
            }
        } else {
            InsOrderState insOrderState = new InsOrderState();
@@ -473,6 +479,8 @@
        if (orderStates.getInsState()!=5) {
                throw new ErrorException("当前样品的站点任务并不是复核的结束试验,无需手动出库!");
        }
        orderStates.setIsOut(1);
        insOrderStateMapper.updateById(orderStates);//复核结束出库之后列表不显示
        warehouseService.outWarehouse(sampleCode, true, entrustCode);
        return 0;
    }
@@ -1182,6 +1190,11 @@
                            .set(InsOrderState::getVerifyUser, userId)
                            .set(InsOrderState::getNum, record.getNum() + 1)//次数加1
                            .set(InsOrderState::getCreateTime, LocalDateTime.now()));
                    //这里需要将原来的检验项目的状态重置为null(根据样品id和试验室来判断项目)
                    insProducts.stream().forEach(insProduct -> {
                        insProduct.setInsResult(null);
                       insProductMapper.updateById(insProduct);
                    });
                    break;
                case 1:
                    //继续试验:该样品该站点任务结束(可以再次扫码检验);
@@ -1226,6 +1239,10 @@
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        InsSample insSample = insSampleMapper.selectById(sampleId);
        InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getSonLaboratory, laboratory)
                .eq(InsProduct::getState, 1));
        /*type=0  再次试验; type=1 继续试验 ; type=2 结束试验*/
        // 查询根据 id 倒序排列的第一条记录
        InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
@@ -1246,6 +1263,11 @@
                            .set(InsOrderState::getVerifyUser, userId)
                            .set(InsOrderState::getNum, record.getNum() + 1)//次数加1
                            .set(InsOrderState::getCreateTime, LocalDateTime.now()));
                    //这里需要将原来的检验项目的状态重置为null(根据样品id和试验室来判断项目)
                    insProducts.stream().forEach(insProduct -> {
                        insProduct.setInsResult(null);
                        insProductMapper.updateById(insProduct);
                    });
                    break;
                case 1:
                    //继续试验:该样品该站点任务结束(可以再次扫码检验);
@@ -1288,6 +1310,7 @@
                                .eq(InsOrderState::getInsSampleId, sampleId)
                                .eq(InsOrderState::getLaboratory, laboratory)
                                .set(InsOrderState::getInsState, 5)
                                .set(InsOrderState::getIsOut,1)//复核结束出库之后列表不显示
                                .set(InsOrderState::getNum, record.getNum() - 1)//次数-1
                                .set(InsOrderState::getVerifyTell, tell)
                                .set(InsOrderState::getVerifyUser, userId));
@@ -1297,6 +1320,7 @@
                                .eq(InsOrderState::getInsSampleId, sampleId)
                                .eq(InsOrderState::getLaboratory, laboratory)
                                .set(InsOrderState::getInsState, 5)
                                .set(InsOrderState::getIsOut,1)//复核结束出库之后列表不显示
                                .set(InsOrderState::getVerifyTell, tell)
                                .set(InsOrderState::getVerifyUser, userId));
                    }
@@ -1422,11 +1446,13 @@
        info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
        info.setMessageType("2");
        info.setTheme("复核通知");
        info.setContent("您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode() + ",样品名称为:" + insSample.getSample());
        info.setContent("您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode()+"站点是:"+submitPlanDto.getLaboratory() + ",样品名称为:" + insSample.getSample());
        info.setSenderId(userId);
        info.setConsigneeId(submitPlanDto.getVerifyUser());
        info.setViewStatus(false);
        info.setJumpPath("b1-inspect-order-plan");
        info.setEntrustCode(insOrder.getEntrustCode());//委托编号
        info.setLaboratory(submitPlanDto.getLaboratory());//站点
        informationNotificationService.addInformationNotification(info);
        //复核人--检验单相关负责人
        InsSampleUser insSampleUser = new InsSampleUser();
@@ -1442,16 +1468,6 @@
            } else {
                wordUtils.generateWord2(submitPlanDto.getTerm(), orderState);
            }
            //todo 电路站点报告 正式库部署放开
//            try {
//                if (!insOrder.getSampleType().equals("无源器件")) {
//                    wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
//                }else {
//                    wordUtils.generateWord2(submitPlanDto.getTerm(), orderState);
//                }
//            } catch (Exception e) {
//                throw new ErrorException("电路试验的站点报告生成有误,请联系开发人员调整!");
//            }
        }
        /*生成产量工时*/
        //校验如果这个人这个检测项目已经添加过了则不需要再新增
@@ -1511,7 +1527,7 @@
        map.put("msgtype", "text");//消息类型 text:文本
        map.put("agentid", 1000517);//应用id
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("content", "您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode() + ",样品名称为:" + insSample.getSample() +
        hashMap.put("content", "您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode()+"站点是:"+submitPlanDto.getLaboratory() + ",样品名称为:"  + ",样品名称为:" + insSample.getSample() +
                ",请前往LIMS系统查看。请点击<a href=\"https://ztwxlims.ztt.cn:7443/enter\">中天通信LIMS系统 </a>");
        map.put("text", hashMap);//消息内容
        map.put("safe", 0);//是否保密消息.0否