From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 01 八月 2025 13:27:59 +0800
Subject: [PATCH] yys 密码已重置

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java |  280 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 280 insertions(+), 0 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
new file mode 100644
index 0000000..d4c2a25
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -0,0 +1,280 @@
+package com.ruoyi.inspect.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.oa.OAProcess;
+import com.ruoyi.common.oa.OAProperty;
+import com.ruoyi.common.oa.OAResult;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.dto.PushOADto;
+import com.ruoyi.inspect.dto.UnqualifiedHandlerDto;
+import com.ruoyi.inspect.mapper.InsOrderMapper;
+import com.ruoyi.inspect.mapper.InsUnqualifiedHandlerMapper;
+import com.ruoyi.inspect.pojo.CommonOa;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsUnqualifiedHandler;
+import com.ruoyi.inspect.pojo.InsUnqualifiedHandlerFile;
+import com.ruoyi.inspect.service.CommonOaService;
+import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService;
+import com.ruoyi.inspect.service.InsUnqualifiedHandlerService;
+import com.ruoyi.inspect.vo.UnqualifiedHandlerVO;
+import com.ruoyi.system.mapper.UserMapper;
+import com.ruoyi.system.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 27233
+ * @description 閽堝琛ㄣ�恑ns_unqualified_handler(涓嶅悎鏍煎鐞嗚〃)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2024-07-31 13:38:14
+ */
+@Service
+@Slf4j
+public class InsUnqualifiedHandlerServiceImpl extends ServiceImpl<InsUnqualifiedHandlerMapper, InsUnqualifiedHandler>
+        implements InsUnqualifiedHandlerService {
+
+    @Resource
+    private CommonOaService commonOaService;
+    @Resource
+    private OAProperty oaProperty;
+    @Resource
+    private InsUnqualifiedHandlerFileService insUnqualifiedHandlerFileService;
+    @Resource
+    private InsOrderMapper insOrderMapper;
+
+
+    @Override
+    public IPage<UnqualifiedHandlerVO> pageList(Page page, UnqualifiedHandlerDto unqualifiedHandlerDto) {
+        return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto));
+    }
+
+    @Override
+    public Result pushOA(PushOADto pushOADto) {
+        //鑾峰彇涓嶅悎鏍煎鐞嗚褰�
+        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<>();
+        mainFields.put("bh", vo.getNo());//缂栧彿
+        mainFields.put("gysmc", vo.getSupplierName());//渚涘簲鍟嗗悕绉�
+        mainFields.put("wlmc", vo.getMaterialName());//鐗╂枡鍚嶇О
+        mainFields.put("scpc", vo.getProductionBatch());//鐢熶骇鎵规
+        mainFields.put("dhsl", vo.getCargoQuantity());//鍒拌揣鏁伴噺
+        mainFields.put("ggxh", vo.getSpecsModels());//瑙勬牸鍨嬪彿
+        mainFields.put("bjrq", vo.getInspectTime().format(formatter));//鎶ユ鏃ユ湡
+        mainFields.put("fkr", SecurityUtils.getUsername());//鍙嶉浜�
+        mainFields.put("fkrq", vo.getFeedbackTime().format(formatter));//鍙嶉鏃ユ湡
+        mainFields.put("fl", vo.getClassification());//鍒嗙被
+        mainFields.put("bhggs", vo.getOffGradeAscription());//涓嶅悎鏍煎綊灞�
+        mainFields.put("bhgqkms", vo.getUnqualifiedDesc());//涓嶅悎鏍兼儏鍐垫弿杩�
+
+        //鏌ヨ闄勪欢
+        List<InsUnqualifiedHandlerFile> handlerFiles = insUnqualifiedHandlerFileService.list(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
+                .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, vo.getHandlerId()));
+        if (CollectionUtils.isNotEmpty(handlerFiles)) {
+            StringBuilder fileUrl = new StringBuilder();
+            for (int i = 0; i < handlerFiles.size(); i++) {
+                String path = handlerFiles.get(i).getType().equals(1) ? "/lims/img/" : "/lims/word/";
+                if (i == handlerFiles.size() - 1) {
+                    fileUrl.append("<a href='" + oaProperty.getProdIp()).append(path + handlerFiles.get(i).getFileUrl()
+                            + "'target='_blank'>" + handlerFiles.get(i).getFileName() + "</a>");
+                } else {
+                    fileUrl.append("<a href='" + oaProperty.getProdIp()).append(path + handlerFiles.get(i).getFileUrl()
+                            + "'target='_blank'>" + handlerFiles.get(i).getFileName() + "</a>").append("<br/>");
+                }
+            }
+            mainFields.put("xlimsfj", fileUrl.toString());
+        }
+        //娴佺▼鏍囬
+        String requestName = vo.getHeadline();
+        //鍙戣捣OA
+        boolean oa = false;
+        try {
+            log.info("鍙戣捣涓嶅悎鏍煎鐞哋A瀹℃牳娴佺▼");
+            String unqualifiedProcessId = oaProperty.getUnqualifiedProcessId();
+            OAResult oaResult = OAProcess.start(mainFields, requestName, unqualifiedProcessId,SecurityUtils.getUsername());
+            log.info("涓嶅悎鏍煎鐞哋A瀹℃牳娴佺▼缁撴潫锛岃繑鍥炵粨鏋�->{}" + oaResult);
+            oa = oaResult.success();
+            if (oa) {
+                String addWorkflowResult = oaResult.getAddWorkflowResult();
+                baseMapper.update(null, new LambdaUpdateWrapper<InsUnqualifiedHandler>()
+                        .set(InsUnqualifiedHandler::getRequestId, addWorkflowResult)
+                        .set(InsUnqualifiedHandler::getOaState, 2)
+                        .eq(InsUnqualifiedHandler::getId, pushOADto.getHandlerId()));
+            } else {
+                return Result.fail("鎻愪氦oa澶辫触: " + oaResult.getErrorMsg());
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return Result.success();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void unqualifiedHandlerOACallback(Long oaWorkId, String checkResult, JSONArray objects) {
+        // 娌℃湁杩欎釜灏辩粨鏉�
+        Long count1 = baseMapper.selectCount(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
+                .eq(InsUnqualifiedHandler::getRequestId, Integer.valueOf(String.valueOf(oaWorkId))));
+        if (count1 == 0) {
+            return;
+        }
+
+        //oa鐘舵�侊細3閫氳繃 4椹冲洖
+        Integer oaState = "1".equals(checkResult) ? 3 : 4;
+        baseMapper.update(null, new LambdaUpdateWrapper<InsUnqualifiedHandler>()
+                .set(InsUnqualifiedHandler::getOaState, oaState)
+                .ge(InsUnqualifiedHandler::getRequestId, Integer.valueOf(String.valueOf(oaWorkId))));
+        //淇濆瓨oa瀹℃壒娴佺▼璁板綍
+        List<CommonOa> commonOaList = new ArrayList<>();
+        objects.forEach(l -> {
+            JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(l));
+            CommonOa oa = new CommonOa();
+            oa.setApprover(jsonObject.getString("operatorName"));
+            oa.setWorkflowId(oaWorkId);
+            oa.setOperation(jsonObject.getString("operateType"));
+            oa.setApprovalDate(jsonObject.getString("operateDate"));
+            oa.setApprovalOpinion(jsonObject.getString("remark"));
+            oa.setNodeName(jsonObject.getString("nodeName"));
+            oa.setApprovalTime(jsonObject.getString("operateTime"));
+
+            //鏌ヨ鍒ゆ柇涔嬪墠鏄惁娣诲姞杩�
+            long count = commonOaService.count(Wrappers.<CommonOa>lambdaQuery()
+                    .eq(CommonOa::getApprover, oa.getApprover())
+                    .eq(CommonOa::getWorkflowId, oa.getWorkflowId())
+                    .eq(CommonOa::getOperation, oa.getOperation())
+                    .eq(CommonOa::getApprovalDate, oa.getApprovalDate())
+                    .eq(CommonOa::getApprovalOpinion, oa.getApprovalOpinion())
+                    .eq(CommonOa::getNodeName, oa.getNodeName())
+                    .eq(CommonOa::getApprovalTime, oa.getApprovalTime())
+            );
+            // 娌℃湁閲嶅娣诲姞
+            if (count == 0) {
+                commonOaList.add(oa);
+            }
+        });
+        commonOaService.saveBatch(commonOaList);
+
+    }
+
+    /**
+     * 鏌ョ湅oa娴佺▼
+     * @param id
+     * @return
+     */
+    @Override
+    public List<CommonOa> getOaFlow(Integer id) {
+        return baseMapper.getOaFlow(id);
+    }
+
+    /**
+     * 鏂板涓嶅悎鏍煎鐞�
+     * @param unqualifiedHandlerDto
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean addUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
+        if (unqualifiedHandlerDto.getInventoryQuantityId() == null) {
+            throw new ErrorException("缂哄皯鍘熸潗鏂檌d");
+        }
+        long count = this.count(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
+                .eq(InsUnqualifiedHandler::getInsOrderId, unqualifiedHandlerDto.getInsOrderId()));
+        if (count > 0) {
+            throw new ErrorException("褰撳墠妫�楠屽崟宸叉彁浜よ繃涓嶅悎鏍�");
+        }
+        // 鍘熸潗鏂欑紪鍙峰垏鍓�
+        InsOrder order = insOrderMapper.selectOne(Wrappers.<InsOrder>lambdaQuery()
+                .eq(InsOrder::getId, unqualifiedHandlerDto.getInsOrderId())
+                .select(InsOrder::getEntrustCode));
+        unqualifiedHandlerDto.setNo(order.getEntrustCode());
+
+        this.save(unqualifiedHandlerDto);
+        if (CollectionUtils.isNotEmpty(unqualifiedHandlerDto.getUnqualifiedHandlerFiles())) {
+            for (InsUnqualifiedHandlerFile unqualifiedHandlerFile : unqualifiedHandlerDto.getUnqualifiedHandlerFiles()) {
+                unqualifiedHandlerFile.setUnqualifiedId(unqualifiedHandlerDto.getId());
+            }
+            insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles());
+        }
+
+        return true;
+    }
+
+    /**
+     * 缂栬緫涓嶅悎鏍煎鐞�
+     * @param unqualifiedHandlerDto
+     * @return
+     */
+    @Override
+    public boolean updateUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
+        // 鍒犻櫎闄勪欢, 閲嶆柊娣诲姞
+        insUnqualifiedHandlerFileService.remove(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
+                .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, unqualifiedHandlerDto.getId()));
+        if (CollectionUtils.isNotEmpty(unqualifiedHandlerDto.getUnqualifiedHandlerFiles())) {
+            for (InsUnqualifiedHandlerFile unqualifiedHandlerFile : unqualifiedHandlerDto.getUnqualifiedHandlerFiles()) {
+                unqualifiedHandlerFile.setUnqualifiedId(unqualifiedHandlerDto.getId());
+            }
+            insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles());
+        }
+
+        return this.updateById(unqualifiedHandlerDto);
+    }
+
+    /**
+     * 鏌ョ湅涓嶅悎鏍煎鐞嗙晫闈�
+     * @param id
+     * @return
+     */
+    @Override
+    public UnqualifiedHandlerDto getUnqualifiedHandler(Integer id) {
+        InsUnqualifiedHandler insUnqualifiedHandler = this.getById(id);
+        UnqualifiedHandlerDto unqualifiedHandlerDto = new UnqualifiedHandlerDto();
+        BeanUtil.copyProperties(insUnqualifiedHandler, unqualifiedHandlerDto);
+        // 鏌ョ湅闄勪欢
+        List<InsUnqualifiedHandlerFile> list = insUnqualifiedHandlerFileService.list(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
+                .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, unqualifiedHandlerDto.getId()));
+        unqualifiedHandlerDto.setUnqualifiedHandlerFiles(list);
+        return unqualifiedHandlerDto;
+    }
+
+    /**
+     * 鍒犻櫎涓嶅悎鏍�
+     * @param id
+     * @return
+     */
+    @Override
+    public boolean deleteUnqualifiedHandler(Integer id) {
+        insUnqualifiedHandlerFileService.remove(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
+                .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, id));
+        this.removeById(id);
+        return true;
+    }
+}
+
+
+
+

--
Gitblit v1.9.3