zss
2025-01-13 476740c4330135b38be6a32f54dbe1bbcd32476a
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -311,6 +311,7 @@
    @Override
    public Object uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) {
        InsOrder insOrder = insOrderMapper.selectById(orderId);
        String urlString;
        String pathName;
        String path;
@@ -353,6 +354,8 @@
                dianLuUtils.readDianLuFile1(sampleId, insOrderFile);
            } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("电路试验") && split[split.length - 1].equals("csv") && filename.contains("驻波")) {
                dianLuUtils.readDianLuFile2(sampleId, insOrderFile);
            }else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("电路试验") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("无源器件")) {
                dianLuUtils.readDianLuFile3(sampleId, insOrderFile);
            }
        } catch (Exception e) {
            throw new ErrorException(e.getMessage());
@@ -1115,6 +1118,7 @@
        InsOrderUser insOrderUser = new InsOrderUser();
        insOrderUser.setInsOrderStateId(orderState.getId());
        insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId"));
        insOrderUser.setInsTime(orderState.getInsTime());
        insOrderUser.setSubmitTime(LocalDateTime.now());
        insOrderUser.setNum(orderState.getNum());
        insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null);
@@ -1188,13 +1192,21 @@
        insSampleUserMapper.insert(insSampleUser);
        /*生成电路试验的站点报告并上传到附件中*/
        if (submitPlanDto.getLaboratory().equals("电路试验")) {
//            wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
            //todo 电路站点报告 正式库部署放开
            try {
            if (!insOrder.getSampleType().equals("无源器件")) {
                wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
            } catch (Exception e) {
                throw new ErrorException("电路试验的站点报告生成有误,请联系开发人员调整!");
            }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("电路试验的站点报告生成有误,请联系开发人员调整!");
//            }
        }
        /*生成产量工时*/
        //校验如果这个人这个检测项目已经添加过了则不需要再新增
@@ -1264,6 +1276,81 @@
        return 1;
    }
    @Override
    public int cancelSubmitPlan(Integer orderStateId) {
        InsOrderState orderState = insOrderStateMapper.selectById(orderStateId);
        InsOrder insOrder = insOrderMapper.selectById(orderState.getInsOrderId());
        InsSample insSample = insSampleMapper.selectById(orderState.getInsSampleId());
        /*删除记录检验任务每次的备注信息*/
        insOrderUserMapper.delete(Wrappers.<InsOrderUser>lambdaQuery()
        .eq(InsOrderUser::getInsOrderStateId,orderState.getId())
        .eq(InsOrderUser::getNum,orderState.getNum()));
        //撤销提交
        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                .eq(InsOrderState::getInsOrderId, orderState.getInsOrderId())
                .eq(InsOrderState::getInsSampleId, orderState.getInsSampleId())
                .eq(InsOrderState::getLaboratory, orderState.getLaboratory())
                .set(InsOrderState::getInsState, 2));
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        //LIMS系统消息推送
        InformationNotification info = new InformationNotification();
        info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
        info.setMessageType("2");
        info.setTheme("复核撤销通知");
        info.setContent("您有一条检验任务待复核已撤销的消息,订单号是:" + insOrder.getEntrustCode() + ",样品名称为:" + insSample.getSample());
        info.setSenderId(userId);
        info.setConsigneeId(orderState.getVerifyUser());
        info.setViewStatus(false);
        info.setJumpPath("b1-inspect-order-plan");
        informationNotificationService.addInformationNotification(info);
        //删除复核人--检验单相关负责人
        insSampleUserMapper.delete(Wrappers.<InsSampleUser>lambdaQuery()
        .eq(InsSampleUser::getState,1)
        .eq(InsSampleUser::getSonLaboratory,orderState.getLaboratory())
        .eq(InsSampleUser::getUserId,orderState.getVerifyUser())
        .eq(InsSampleUser::getInsSampleId,orderState.getInsSampleId()));
        //删除生成的报告
        if (orderState.getLaboratory().equals("电路试验")) {
            List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                    .eq(InsOrderFile::getType, 2)
                    .like(InsOrderFile::getFileName,"电路参数.docx")
                    .eq(InsOrderFile::getInsOrderId, insOrder.getId())
                    .eq(InsOrderFile::getInsSampleId, orderState.getInsSampleId())
                    .eq(InsOrderFile::getSonLaboratory, orderState.getLaboratory()));
            for (InsOrderFile insOrderFile : insOrderFiles) {
                File file = new File(wordUrl + "/" + insOrderFile.getFileUrl());
                file.delete();
                insOrderFileMapper.deleteById(insOrderFile.getId());
            }
        }
        /*删除生成产量工时*/
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()));
        List<Integer> productIds = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
        auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                .eq(AuxiliaryOutputWorkingHours::getSample,insSample.getSampleCode())
                .in(AuxiliaryOutputWorkingHours::getInsProductId,productIds)
                .eq(AuxiliaryOutputWorkingHours::getNum,orderState.getNum()));
        //  todo 企业微信消息推送@zss
        HashMap<String, Object> map = new HashMap<>();
        String account = userMapper.selectById(orderState.getVerifyUser()).getAccount();
        map.put("touser", account);//接收消息成员的账号'ZT-031292'这种类型(如果有多个用'|'分隔)
        map.put("toparty", "");//接收部门id
        map.put("totag", "");//消息标签id
        map.put("msgtype", "text");//消息类型 text:文本
        map.put("agentid", 1000517);//应用id
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("content", "您有一条复核的消息已撤销,订单号是:" + insOrder.getEntrustCode() + ",样品名称为:" + insSample.getSample() +
                ",请前往LIMS系统查看。请点击<a href=\"https://ztwxlims.ztt.cn:7443/enter\">中天通信LIMS系统 </a>");
        map.put("text", hashMap);//消息内容
        map.put("safe", 0);//是否保密消息.0否
        map.put("enable_id_trans", 0);//是否开启id转译.0否
        map.put("enable_duplicate_check", 0);//是否开启重复消息检查.0否
        qywxApi.send(map);
        return 0;
    }
    public static String getWeek(String dayStr) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {