zss
2024-08-26 8bf55e1ac0ac6eb6c97a025f0c03b78e208f668e
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -86,6 +86,8 @@
    private ShiftTimeMapper shiftTimeMapper;
    @Resource
    private PerformanceShiftMapper performanceShiftMapper;
    @Resource
    private WarehouseHistoryMapper warehouseHistoryMapper;
    @Value("${wordUrl}")
    private String wordUrl;
@@ -193,6 +195,25 @@
    public boolean claimInsOrderPlan(InsOrderPlanDTO entity) {
        if (Objects.isNull(entity)) {
            return false;
        }
        /*认领需要判断该样品是否在库*/
        //查询样品id
        List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, entity.getInsSampleId())).stream().map(InsSample::getId).collect(Collectors.toList());
        for (Integer samId : sampleIds) {
            //入库次数
            Long inCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery()
                    .eq(WarehouseHistory::getState, 1)
                    .eq(WarehouseHistory::getInsSampleId, samId));
            //出库次数
            Long outCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery()
                    .eq(WarehouseHistory::getState, 2)
                    .eq(WarehouseHistory::getInsSampleId, samId));
            if (inCount > 0 && inCount > outCount) {
                //入库
            } else {
                throw new ErrorException("所选的样品库存不足,请检查入库和出库记录!");
            }
        }
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null);
        Integer userId = map1.get("userId");
@@ -850,7 +871,10 @@
        //这里的insSamples是订单下的所有样品包括("/")
        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
        for (InsSample insSample : samples) {
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()).eq(InsProduct::getState, 1));
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, insSample.getId())
                    .eq(InsProduct::getSonLaboratory, laboratory)
                    .eq(InsProduct::getState, 1));
            List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
            if (results.contains(0)) {
                insSample.setInsResult(0);
@@ -880,7 +904,7 @@
        /*type=0  再次试验; type=1 继续试验 ; type=2 结束试验*/
        switch (type) {
            case 0:
                /*再次试验:系统自动在此站台再次创建一次检验任务;*/
                /*再次试验:该单子退回到检验状态(排序改成当前的最后);*/
                //更新原来的检验任务
                // 查询根据 id 倒序排列的第一条记录
                InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
@@ -895,14 +919,9 @@
                            .set(InsOrderState::getInsTime, now)
                            .set(InsOrderState::getInsState, 4)
                            .set(InsOrderState::getVerifyTell, tell)
                            .set(InsOrderState::getVerifyUser, userId));
                            .set(InsOrderState::getVerifyUser, userId)
                            .set(InsOrderState::getCreateTime, LocalDateTime.now()));
                }
                //新建检验任务
               /* InsOrderState orderState = new InsOrderState();
                orderState.setInsOrderId(orderId);
                orderState.setLaboratory(laboratory);
                orderState.setInsState(0);
                insOrderStateMapper.insert(orderState);*/
                break;
            case 1:
                //继续试验:则继续将检验任务转接至下一站点;
@@ -921,7 +940,9 @@
                        .in(InsProduct::getInsSampleId, ids)
                        .eq(InsProduct::getState, 1));
                List<Integer> list = new ArrayList<>();
                list.add(4);list.add(5);list.add(6);
                list.add(4);
                list.add(5);
                list.add(6);
                List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                        .eq(InsOrderState::getInsOrderId, orderId)
                        .in(InsOrderState::getInsState, list));
@@ -1229,10 +1250,12 @@
                            cells.add(cellRenderData);
                        } else {
                            //第七列
                            if (a.getInsProduct().get(i - 2).getInsResult() == 0) {
                                textRenderData.setText("×");
                            if (ObjectUtils.isEmpty(a.getInsProduct().get(i - 2).getInsResult())) {
                                textRenderData.setText("-");
                            } else if (a.getInsProduct().get(i - 2).getInsResult() == 1) {
                                textRenderData.setText("√");
                            } else if (a.getInsProduct().get(i - 2).getInsResult() == 0) {
                                textRenderData.setText("×");
                            } else {
                                textRenderData.setText("-");
                            }
@@ -1377,7 +1400,6 @@
        if (ObjectUtils.isEmpty(signatureUrl) || signatureUrl.equals("")) {
            throw new ErrorException("找不到检验人的签名");
        }
        //Custom custom = customMapper.selectById(user.get("company"));
        Custom custom = customMapper.selectById(insOrder.getCompanyId());
        if (!resultCh.get().equals("")) {
            resultCh.set("依据委托要求," + resultCh.get().replaceFirst("、", "") + "等所检项目不符合要求,其余所检项目均符合要求。");
@@ -1672,10 +1694,10 @@
        insSampleUser.setState(1);
        insSampleUser.setSonLaboratory(laboratory);
        insSampleUserMapper.insert(insSampleUser);
        /*如果是C类订单且是下发到质量部,则直接复核通过*/
        /*如果是C类订单且是下发到质量部,则直接复核通过(结束试验)*/
        InsOrder insOrder = insOrderMapper.selectById(orderId);
        if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("质量部")) {
            verifyPlan(orderId, laboratory, 1, null);
            verifyPlan(orderId, laboratory, 2, null);
        }
        /*校验一下result表*/
        CompletableFuture.supplyAsync(() -> {