From 25e2f9601aed6d23923f3200ef248036b7787e7c Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期二, 29 四月 2025 10:51:31 +0800 Subject: [PATCH] 产品合格校验手动excel导入 --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 222 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 193 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 35514a2..df5f418 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -1,5 +1,6 @@ package com.zy.asrs.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -14,9 +15,7 @@ import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.entity.result.ZphjcdgzVo; import com.zy.asrs.entity.result.ZphjcdwcVo; -import com.zy.asrs.mapper.LocDetlMapper; -import com.zy.asrs.mapper.MatMapper; -import com.zy.asrs.mapper.TagMapper; +import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.common.constant.MesConstant; @@ -106,6 +105,12 @@ @Resource private ConfigMapper configMapper; + + @Resource + private OrderMapper orderMapper; + + @Resource + private BasCrnpMapper basCrnpMapper; @Override @Transactional @@ -1020,29 +1025,27 @@ @Override @Transactional - public void prodCheck(List<ProdCheckParam> param) { + public R prodCheck(List<ProdCheckParam> param) { if (param.isEmpty()) { - throw new CoolException("璇锋眰鍙傛暟涓嶈兘涓虹┖"); + return R.parse("璇锋眰鍙傛暟涓嶈兘涓虹┖"); } for (ProdCheckParam checkParam : param) { // 鏇存柊搴撳瓨鏄庣粏鏄惁鍚堟牸 - LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("model", checkParam.getRollNo())); // 鏇存柊鍟嗗搧琛ㄦ槸鍚﹀悎鏍� - Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); - if (locDetl == null || mat == null) { +// Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("model", checkParam.getRollNo())); + if (locDetl == null) { // || mat == null throw new CoolException("鏇存柊鏄惁鍚堟牸鐗╂枡涓嶅瓨鍦細" + checkParam); } locDetl.setThreeCode(checkParam.getQualified()); - mat.setThreeCode(checkParam.getQualified()); +// mat.setThreeCode(checkParam.getQualified()); - locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); - matService.update(mat,(new EntityWrapper<Mat>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo()))); + locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("model", checkParam.getRollNo())); +// matService.update(mat, (new EntityWrapper<Mat>().eq("model", checkParam.getRollNo()))); } + + return R.ok("鏇存柊鎴愬姛"); } @Override @@ -1243,6 +1246,7 @@ // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); + wrkMast.setWhsType(iotype == 1 && param.getPalletizingNo() == 2051 ? 1 : 0); // 杩斾慨鍏ュ簱鏍囪 wrkMast.setIoTime(new Date()); wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 @@ -1305,14 +1309,14 @@ } // 鐗╂枡琛ㄥ浠戒竴浠� - Mat mat = new Mat(); - mat.sync(wrkDetl); - mat.setTagId(6L); - mat.setCreateTime(now); - mat.setUpdateTime(now); - if (!matService.insert(mat)) { - throw new CoolException("澶囦唤鐗╂枡琛ㄥけ璐�"); - } +// Mat mat = new Mat(); +// mat.sync(wrkDetl); +// mat.setTagId(6L); +// mat.setCreateTime(now); +// mat.setUpdateTime(now); +// if (!matService.insert(mat)) { +// throw new CoolException("澶囦唤鐗╂枡琛ㄥけ璐�"); +// } }); } @@ -1372,6 +1376,9 @@ } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); + if (docType == null) { + return R.parse("鍗曟嵁绫诲瀷涓嶅瓨鍦紝璇锋鏌ワ細" + param.getOrderType()); + } Date now = new Date(); // 鍗曟嵁涓绘。 @@ -1483,7 +1490,97 @@ wrkMastService.updateById(wrkMast); } + // 鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍 + ckjgsbPushMes(wrkMast,wrkDetls); + return "鍑哄簱缁撴灉涓婃姤鎴愬姛"; + } + + private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { + GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto(); + gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode()); + gwmsGenerateInventoryDto.setPalletizingNo(wrkMast.getStaNo()); + List<GwmsGenerateInventoryDto.MatList> matLists = new ArrayList<>(); + for (WrkDetl wrkDetl:wrkDetls) { + boolean flag = true; + for (GwmsGenerateInventoryDto.MatList matList : matLists) { + if (matList.getPackageGroupNo().equals(wrkDetl.getBrand())) { + matList.getRolls().add(new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(), + wrkDetl.getUnit(),wrkDetl.getMaktx(),wrkDetl.getLength(), + Integer.parseInt(wrkDetl.getSpecs()),wrkDetl.getWeight(),wrkDetl.getVolume(), + wrkDetl.getManuDate())); + flag = false; + break; + } + } + if (flag) { + GwmsGenerateInventoryDto.MatList matList = new GwmsGenerateInventoryDto.MatList(); + matList.setBoxPos(wrkDetl.getOrigin()); + matList.setPackageGroupNo(wrkDetl.getBrand()); + matList.setOutOrIn("out"); + matList.setStockType(wrkMast.getStaNo() == 2041 ? "杩斾慨鍑哄簱" : "鎴愬搧鍑哄簱"); + matList.setBoxType(wrkDetl.getColor()); + matList.setRollType(wrkDetl.getManu()); + matList.setWideInWidth(wrkDetl.getSku()); + matList.setThickness(wrkDetl.getItemNum()); + List<GwmsGenerateInventoryDto.Rolls> rollsList = new ArrayList<>(); + GwmsGenerateInventoryDto.Rolls roll = new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(), + wrkDetl.getUnit(),wrkDetl.getMaktx(),wrkDetl.getLength(), + Integer.parseInt(wrkDetl.getSpecs()),wrkDetl.getWeight(),wrkDetl.getVolume(), + wrkDetl.getManuDate()); + rollsList.add(roll); + matList.setRolls(rollsList); + matLists.add(matList); + } + } + gwmsGenerateInventoryDto.setMatList(matLists); + + + + boolean success = false; + // 鑾峰彇璇锋眰澶� + Map<String,Object> headers = new HashMap<>(); + headers.put("Content-Type","application/json;charset=UTF-8"); + + // 鏋勯�犺姹備綋 + String body = JSON.toJSONString(gwmsGenerateInventoryDto); + String response = ""; + try { + response = new HttpHandler.Builder() + .setUri(MesConstant.MES_CC_IP_PORT) + .setPath(MesConstant.MES_CC_FXRK_URL) + .setHeaders(headers) + .setJson(body) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + JSONObject jsonObject1 = JSONObject.parseObject(response); + int code = (int) jsonObject1.get("code"); + boolean state = jsonObject1.getBoolean("state"); + if (code == 200 && state) { + success = true; + } + } else { + log.error("鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL, body, response); + } + } catch (Exception e) { + log.error("鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍寮傚父锛歿}", e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍", + MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } } @Autowired @@ -1694,14 +1791,14 @@ wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級 wrkMast.setSourceStaNo(param.getSourceStaNo()); wrkMast.setStaNo(oneFloorIn[wrkMast.getCrnNo()]); + // 婧愬簱浣� + LocMast staLocMast = locMastService.selectById(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅=婧愬簱浣� wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣嶆竻闄� wrkMast.setSourceLocNo(""); wrkMast.setModiTime(new Date()); - // 鏇存柊搴撲綅鐘舵�� - LocMast staLocMast = locMastService.selectById(wrkMast.getSourceLocNo()); // 鏇存柊鏂板簱浣嶇姸鎬� Q staLocMast.setLocSts("Q"); staLocMast.setModiTime(new Date()); @@ -1726,7 +1823,7 @@ @Override public R kxlhCdwc(KxlhcdwcParam param) { - if (Cools.isEmpty(param.getWorkNo(),param.getSourceStaNo(),param.getSite())) { + if (Cools.isEmpty(param.getWorkNo(),param.getSourceStaNo(),param.getSite(),param.getBarcode())) { return R.parse("鍙傛暟涓嶈兘涓虹┖锛岃妫�鏌ュ叆鍙�"); } WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo()); @@ -1831,7 +1928,7 @@ zphjcdwcVo.setWorkNo(wrkMast1.getWrkNo()); zphjcdwcVo.setStaNo(wrkMast1.getStaNo()); zphjcdwcVo.setSourceStaNo(site); - zphjcdwcVo.setBarcode(site == 3046 ? "T1046" : "T1042"); + zphjcdwcVo.setBarcode(param.getBarcode()); zphjcdwcVos.add(zphjcdwcVo); } @@ -1865,6 +1962,73 @@ return R.parse("浜俊鍙风伅鏉$爜寮傚父锛�" + barcode); } + } + + @Override + public R getUnfulfilledOrders() { + // 鑾峰彇鏈畬鎴愯鍗曠粺璁′俊鎭� + List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(""); + return R.ok(unfulfilledOrders); + } + + @Override + public R getCrnLaneWayInfo() { + List<CrnLaneWayInfoDto> crnLaneWayInfo = basCrnpMapper.getCrnLaneWayInfo(); + return R.ok(crnLaneWayInfo); + } + + @Override + public R getOutLocInfoByBarcode(String barcode) { + + // 鏍规嵁鎵樼洏鐮佽幏鍙栦换鍔′富妗� + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); + // 鏍规嵁浠诲姟涓绘。鑾峰彇宸ヤ綔妗f槑缁� + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + // 鎻愬彇鍖呰缁勫彿 + List<String> brandList = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList()); + OutLocInfoDto outLocInfoDto = new OutLocInfoDto(); + outLocInfoDto.setWrkNo(wrkMast.getWrkNo()); + List<OutLocInfoDto.Material> materialList = new ArrayList<>(); + for (String brand : brandList) { + // 涓�涓湪绠� + OutLocInfoDto.Material material = new OutLocInfoDto.Material(); + material.setPackageGroupNo(brand); // 鍖呰缁勫彿 + // 鎸夊寘瑁呯粍鍙疯繃婊� + List<WrkDetl> wrkDetls1 = wrkDetls.stream().filter(wrkDetl -> Objects.equals(wrkDetl.getBrand(), brand)).collect(Collectors.toList()); + // 鍗蜂俊鎭� + List<OutLocInfoDto.Material.MaterialDetail> materialDetailList = new ArrayList<>(); + for (WrkDetl wrkDetl : wrkDetls1) { + OutLocInfoDto.Material.MaterialDetail materialDetail = new OutLocInfoDto.Material.MaterialDetail(); + materialDetail.setRollNo(wrkDetl.getModel()); + materialDetail.setBoxNo(wrkDetl.getUnit()); + materialDetail.setSpecs(wrkDetl.getMatnr()); + material.setBoxPos(wrkDetl.getOrigin()); // 鎵樼洏涓婃湪绠变綅缃� + materialDetailList.add(materialDetail); + } + // 璁㈠崟淇℃伅 + WrkDetl wrkDetl = wrkDetls1.get(0); + if (wrkDetl != null && wrkDetl.getOrderNo() != null) { + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo())); + if (order != null) { + material.setOrderNo(order.getOrderNo()); + material.setMemo(order.getMemo()); + material.setCustomerName(order.getCstmrName()); + List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(order.getOrderNo()); + if (unfulfilledOrders.size() == 1) { + OrderStatisticsDto orderStatisticsDto = unfulfilledOrders.get(0); + material.setSum(orderStatisticsDto.getSum()); + material.setToShipQuantity(orderStatisticsDto.getToShipQuantity()); + material.setWorkQuantity(orderStatisticsDto.getWorkQuantity()); + } + } + } + + material.setMaterialDetailList(materialDetailList); + materialList.add(material); + } + outLocInfoDto.setMaterialList(materialList); + + return R.ok(outLocInfoDto); } /** @@ -1934,7 +2098,7 @@ try { response = new HttpHandler.Builder() .setUri(MesConstant.GWCS_IP_PORT) - .setPath(MesConstant.GWCS_IP_PORT) + .setPath(MesConstant.GWCS_FPKW_URL) .setHeaders(headers) .setJson(body) .build() @@ -1942,7 +2106,7 @@ if (!Cools.isEmpty(response)) { success = true; } else { - log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.GWCS_IP_PORT + MesConstant.GWCS_IP_PORT, body, response); + log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL, body, response); } } catch (Exception e) { log.error(message + "寮傚父锛歿}", e); -- Gitblit v1.9.1