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