From b633cb48b94c207468a2a5e4cb92baf3e43568b0 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期二, 23 七月 2024 18:16:33 +0800 Subject: [PATCH] 数采调整 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 133 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 105 insertions(+), 28 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 6bf6f97..8c51007 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -3,7 +3,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Console; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -22,10 +21,11 @@ import com.deepoove.poi.data.*; import com.deepoove.poi.data.style.*; import com.deepoove.poi.util.TableTools; -import com.deepoove.poi.xwpf.WidthScalePattern; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; -import com.yuanchu.mom.dto.*; +import com.yuanchu.mom.dto.ExcelDto; +import com.yuanchu.mom.dto.InsOrderPlanDTO; +import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; @@ -33,22 +33,18 @@ import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.utils.MatrixToImageWriter; import com.yuanchu.mom.utils.QueryWrappers; -import com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo; -import com.yuanchu.mom.vo.InsOrderPlanVO; -import com.yuanchu.mom.vo.ProductVo; -import com.yuanchu.mom.vo.SampleVo; +import com.yuanchu.mom.utils.RedisUtil; +import com.yuanchu.mom.vo.*; import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.*; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.io.*; -import java.math.BigInteger; import java.nio.file.Files; import java.nio.file.Paths; import java.text.SimpleDateFormat; @@ -131,17 +127,18 @@ @Resource private InsOrderFileMapper insOrderFileMapper; - @Override public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(InsOrderPlanVO.class)); - Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); - Integer userId = map1.get("userId"); - if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { + Integer userId = null; + if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId()) ) { + Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); + userId = map1.get("userId"); insOrderPlanDTO.setUserId(userId.longValue()); } - IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId); + String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId,sonLaboratory); map.put("body", insOrderPage); return map; } @@ -155,11 +152,13 @@ if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { insOrderPlanDTO.setUserId(userId.longValue()); } - IPage<InsOrderPlanTaskSwitchVo> insOrderPage = insSampleMapper.inspectionOrderDetailsTaskSwitching(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId); + String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + IPage<InsOrderPlanTaskSwitchVo> insOrderPage = insSampleMapper.inspectionOrderDetailsTaskSwitching(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId,sonLaboratory); map.put("body", insOrderPage); return map; } + //璁ら浠诲姟 @Override public boolean claimInsOrderPlan(InsOrderPlanDTO entity) { if (Objects.isNull(entity)) { @@ -167,7 +166,7 @@ } Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); - InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1); + InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1,entity.getSonLaboratory()); return insSampleUserMapper.insert(insSampleUser) > 0; } @@ -192,7 +191,7 @@ } @Override - public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory) { + public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) { List<InsProduct> insProducts = new ArrayList<>(); switch (type) { case 0: @@ -205,10 +204,37 @@ insProducts = insSampleMapper.getInsProduct3(id); break; } + // 鏁伴噰鏂板 + getDeviceMessage(insProducts, request); + Set<Integer> set = new HashSet<>(); Map<Integer, String> map2 = new HashMap<>(); if (BeanUtil.isEmpty(insProducts)) return null; getTemplateThing(set, map2, insProducts); + return insProducts; + } + + private List<InsProduct> getDeviceMessage(List<InsProduct> insProducts, HttpServletRequest request) { + String ipAddress = request.getRemoteAddr(); + // 闃叉鍥炵幆鍦板潃鍙樹负IPv6 + String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; + insProducts.forEach(i -> { + Map<String, Object> devices = baseMapper.getDeviceMessage(ip, i.getInspectionItem()); + if (ObjectUtils.isNotEmpty(devices)) { + InsProductResult insProductResult = i.getInsProductResult(); + List<Object> list = new ArrayList<>(); + Map<Object, Object> hashMap = new HashMap<>(); + hashMap.put("v", devices.get("device_name")); + list.add(hashMap); + insProductResult.setEquipName(JSON.toJSON(list).toString()); + List<Object> listValue = new ArrayList<>(); + Map<Object, Object> hashMapValue = new HashMap<>(); + hashMapValue.put("v", devices.get("management_number")); + listValue.add(hashMapValue); + insProductResult.setEquipName(JSON.toJSON(list).toString()); + insProductResult.setEquipValue(JSON.toJSON(listValue).toString()); + } + }); return insProducts; } @@ -217,7 +243,11 @@ List<String> collect = new ArrayList<>(); List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getSonLaboratory, laboratory).eq(InsProduct::getState, 1).eq(InsProduct::getInsResult, 0)); + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, ids) + .eq(InsProduct::getSonLaboratory, laboratory) + .eq(InsProduct::getState, 1) + .eq(InsProduct::getInsResult, 0)); if (insProducts.size() > 0) { collect = insProducts.stream().map(insProduct -> { return insProduct.getInspectionItem() + "-" + insProduct.getInspectionItemSubclass(); @@ -353,7 +383,8 @@ .eq(InsProduct::getInspectionItemSubclass, inspectionItemSubclass) .eq(InsProduct::getInsFiberId, fiber.getId())); for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); + InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getInsProductId, insProduct.getId())); ProductVo productVo = new ProductVo(); productVo.setCode(insFiber.getCode()); productVo.setColor(fiber.getColor()); @@ -361,12 +392,23 @@ if (ObjectUtils.isNotEmpty(insProductResult)) { insProduct.setInsProductResult(insProductResult); } + //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� + InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId,insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId,sampleId) + .eq(InsProduct::getInspectionItem, "1") + .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") + .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) + .eq(InsProduct::getInsFiberId, fiber.getId())).getId() )); + if (ObjectUtils.isNotEmpty(insProductResult1) &&!insProductResult1.getComValue().equals("[]")) { + insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); + } productVo.setInsProduct(insProduct); productVos.add(productVo); } } } - } else { + } + else { //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡 List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId())); for (InsFiber fiber : insFiberList) { @@ -383,6 +425,16 @@ productVo.setColor(fiber.getColor()); productVo.setBushColor(fiber.getBushColor()); insProduct.setInsProductResult(insProductResult); + //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� + InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId,insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId,sampleId) + .eq(InsProduct::getInspectionItem, "1") + .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") + .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) + .eq(InsProduct::getInsFiberId, fiber.getId())).getId() )); + if (ObjectUtils.isNotEmpty(insProductResult1) && !insProductResult1.getComValue().equals("[]")) { + insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); + } productVo.setInsProduct(insProduct); productVos.add(productVo); } @@ -392,7 +444,7 @@ productVos = productVos.stream().sorted(Comparator.comparing(productVo -> productVo.getInsProduct().getInspectionItemClass())).collect(Collectors.toList()); } else { - //鐢靛姏--鐑惊鐜� + //鐢靛姏--鐑惊鐜拰娓╁崌璇曢獙 List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, sampleId) .eq(InsProduct::getInspectionItem, inspectionItem)); @@ -408,6 +460,13 @@ } map.put("productVos", productVos); return map; + } + + @Override + public List<String> upPlanUser2(Integer orderId) { + List<Integer> sampleId = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); + List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, sampleId)).stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList()); + return sonLaboratory; } @@ -434,6 +493,8 @@ JSONObject insValue = JSON.parseObject(JSON.toJSONString(o)); Map<String, Object> map = new HashMap<>(); map.put("v", JSON.parseObject(JSON.toJSONString(insValue.get("v"))).get("v")); + map.put("r", JSON.toJSONString(insValue.get("r"))); + map.put("c", JSON.toJSONString(insValue.get("c"))); try { if ((insValue.get("u") == null || insValue.get("u").equals("")) && StrUtil.isNotEmpty(JSON.parseObject(JSON.toJSONString(insValue.get("v"))).get("v").toString())) { map.put("u", userId + ""); @@ -517,7 +578,7 @@ .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode())); if (count == 0 && ObjectUtils.isNotEmpty(insProduct.getManHour())) { - //娣诲姞姣忎釜浜虹殑浜ч噺宸ユ椂 + //娣诲姞姣忎釜浜虹殑浜ч噺宸ユ椂,瑕佸垽鏂綋鍓嶆椂闂存槸鍚︽槸杩欎釜浜虹殑鎺掔彮鏃堕棿,濡傛灉涓嶆槸鍒欐槸鍔犵彮 AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� @@ -580,12 +641,14 @@ }); } + //浜ゆ帴 @Override - public int upPlanUser(Integer userId, Integer orderId) { + public int upPlanUser(Integer userId, Integer orderId,String sonLaboratory) { InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(userId); insSampleUser.setInsSampleId(orderId); insSampleUser.setState(0); + insSampleUser.setSonLaboratory(sonLaboratory); return insSampleUserMapper.insert(insSampleUser); } @@ -3341,7 +3404,6 @@ map2.put(product.getTemplateId(), standardTemplateService.getStandTempThingById(product.getTemplateId()) + ""); thing = map2.get(product.getTemplateId()); } -// thing = map2.get(product.getTemplateId()); if (StrUtil.isNotEmpty(thing)) { JSONObject sheet = JSON.parseObject(JSON.toJSONString(JSON.parseArray(JSON.toJSONString(JSON.parseObject(thing).get("data"))).get(0))); JSONObject config = JSON.parseObject(JSON.toJSONString(sheet.get("config"))); @@ -3357,10 +3419,16 @@ } @Override - public int submitPlan(Integer orderId, String laboratory, Integer verifyUser) { + public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode) { List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getSonLaboratory, laboratory).eq(InsProduct::getState, 1).isNull(InsProduct::getInsResult).isNull(InsProduct::getInsFiberId).isNull(InsProduct::getInsFibersId)); + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, ids) + .eq(InsProduct::getSonLaboratory, laboratory) + .eq(InsProduct::getState, 1) + .isNull(InsProduct::getInsResult) + .isNull(InsProduct::getInsFiberId) + .isNull(InsProduct::getInsFibersId)); insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory)); if (insProducts.size() > 0) { String str = ""; @@ -3422,7 +3490,13 @@ info.setViewStatus(false); info.setJumpPath("b1-inspect-order-plan"); informationNotificationService.addInformationNotification(info); - upPlanUser(verifyUser, orderId); + //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� + InsSampleUser insSampleUser = new InsSampleUser(); + insSampleUser.setUserId(verifyUser); + insSampleUser.setInsSampleId(orderId); + insSampleUser.setState(0); + insSampleUser.setSonLaboratory(laboratory); + insSampleUserMapper.insert(insSampleUser); /*鏍¢獙涓�涓媟esult琛�*/ CompletableFuture.supplyAsync(() -> { List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); @@ -3434,6 +3508,9 @@ } return null; }); + // 鍒犻櫎鏁伴噰閲囬泦娆℃暟 + String key = "frequency" + ":" + entrustCode + ":" + sampleCode; + RedisUtil.del(key); return 1; } -- Gitblit v1.9.3