From 59cf6b97399bc8c9fe39926fa13aa39cbd827270 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期六, 21 十二月 2024 15:39:01 +0800 Subject: [PATCH] 出库提取界面加搜索条件,提取出来包装一个木箱明细全部出来 --- src/main/java/com/zy/asrs/task/handler/GhjtHandler.java | 533 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 479 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java index 278e8c1..b9cef6a 100644 --- a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java @@ -1,23 +1,30 @@ package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; -import com.zy.asrs.entity.Order; -import com.zy.asrs.entity.WrkMast; -import com.zy.asrs.mapper.OrderMapper; -import com.zy.asrs.mapper.WrkMastMapper; +import com.zy.asrs.entity.*; +import com.zy.asrs.mapper.*; import com.zy.asrs.service.ApiLogService; +import com.zy.asrs.service.WorkService; +import com.zy.asrs.service.WrkDetlService; +import com.zy.asrs.utils.Utils; import com.zy.common.constant.MesConstant; +import com.zy.common.model.StartupDto; +import com.zy.common.properties.SlaveProperties; +import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; +import com.zy.system.entity.Config; +import com.zy.system.mapper.ConfigMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @author pang.jiabao @@ -26,6 +33,7 @@ */ @Slf4j @Service +@Transactional public class GhjtHandler { @Resource @@ -37,32 +45,77 @@ @Resource private WrkMastMapper wrkMastMapper; - @Transactional + @Resource + private WrkDetlService wrkDetlService; + + @Resource + private OrderDetlMapper orderDetlMapper; + + @Resource + private LocDetlMapper locDetlMapper; + + @Resource + private LocMastMapper locMastMapper; + + @Resource + private WorkService workService; + + @Resource + private ConfigMapper configMapper; + + @Autowired + private SlaveProperties slaveProperties; + + @Resource + private CommonService commonService; + + // 鍫嗗灈鏈哄搴斾竴妤煎嚭搴撶珯鐐� + private static final int[] oneFloorOutSite = new int[]{0,3002,3003,3006,3008,3009,3012}; + + // 鍫嗗灈鏈哄搴斾竴妤煎叆搴撶珯鐐� + private static final int[] oneFloorInSite = new int[]{0,3001,3004,3005,3007,3010,3011}; + public void startCkrwPushGwcs(WrkMast wrkMast) { // 鑾峰彇璇锋眰澶� Map<String, Object> headers = new HashMap<>(); headers.put("Content-Type", "application/json;charset=UTF-8"); + // 涓嬪彂缁檊wcs瑕佽蛋鐨勮矾寰勬爣璇� + int descFlag = getDescToGwcs(wrkMast); + // 鏋勯�犺姹備綋 JSONObject jsonObject = new JSONObject(); jsonObject.put("workNo", wrkMast.getWrkNo()); - jsonObject.put("staNo", wrkMast.getStaNo()); - jsonObject.put("sourceStaNo", wrkMast.getSourceStaNo()); + jsonObject.put("staNo", wrkMast.getIoType() == 3 ? 3013 :wrkMast.getStaNo()); + jsonObject.put("barcode", wrkMast.getBarcode()); + jsonObject.put("sourceStaNo", wrkMast.getIoType() == 3 ? wrkMast.getStaNo() : wrkMast.getSourceStaNo()); + jsonObject.put("descFlag", descFlag); // 101鍑哄簱鏃剁敤锛�0鍙湁涓�鏉¤矾寰勶紝1鐞嗚揣璐存爣璺緞锛�2璐存爣鎵撳甫璺緞 String body = jsonObject.toJSONString(); boolean success = false; String response = ""; try { response = new HttpHandler.Builder() - .setUri(MesConstant.URL) - .setPath(MesConstant.PAKIN_URL) + .setUri(MesConstant.GWCS_IP_PORT) + .setPath(MesConstant.GWCS_DCKK_URL) .setHeaders(headers) .setJson(body) .build() .doPost(); if (!Cools.isEmpty(response)) { wrkMast.setWrkSts(2L); // 鏇存柊涓鸿澶囦笂璧� + if (wrkMast.getIoType() == 110) { // 绌烘墭鐩樺嚭搴撶洿鎺ュ畬鎴愪换鍔� + wrkMast.setWrkSts(14L); + } else if (wrkMast.getIoType() == 3) { + // 淇敼宸ヤ綔涓绘。鐘舵�� + wrkMast.setWrkSts(15L); + wrkMast.setModiTime(new Date()); + } else if(wrkMast.getIoType() == 12) { // 璺ㄥ贩閬撹浆绉� + wrkMast.setWrkSts(1L); // 鐘舵�佹敼涓�1.鐢熸垚鍏ュ簱id + wrkMast.setCrnNo(Arrays.binarySearch(oneFloorInSite,wrkMast.getStaNo()));// 鍫嗗灈鏈鸿浆鎹负鍏ュ簱鐨勫爢鍨涙満 + wrkMast.setModiTime(new Date()); + } wrkMastMapper.updateById(wrkMast); success = true; } else { @@ -89,54 +142,426 @@ } } - @Transactional - public void OutBoundCompleteReport(Order order) { + /** + * 鍏ㄦ澘鍑哄簱鍒�3077鎴�3106鐨勪换鍔★紝鍒ゆ柇鍑哄簱瑕佽蛋鐨勮矾寰� + * @param wrkMast 宸ヤ綔涓绘。 + * @return 1.鐩存帴鍑哄簱,鍙湁涓�鏉¤矾寰� 2.鐞嗚揣璐存爣鍑哄簱 3.璐存爣鎵撳甫鍑哄簱 4.璐存爣鍑哄簱 + */ + private int getDescToGwcs(WrkMast wrkMast) { + // todo 涓ゆ潯璺嚎鎬庝箞閫� + int flag = 1; + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + List<String> collect = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList()); - // 鑾峰彇璇锋眰澶� - Map<String, Object> headers = new HashMap<>(); - headers.put("Content-Type", "application/json;charset=UTF-8"); + if (wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 3077 || wrkMast.getStaNo() == 3106)) { + // 鏈夊嚑涓湪绠� + if (collect.size() == 1) { // 涓�绠� + if (wrkDetls.size() == 1) { // 涓�鍗峰幓璐存爣 + flag = 4; + } else { // 澶氬嵎鐩存帴鍑� - // 鏋勯�犺姹備綋 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("orderNo", order.getOrderNo()); - jsonObject.put("complete", 1); // 璁㈠崟瀹屾垚涓�1锛屽叾浠�... - String body = jsonObject.toJSONString(); + } + } else if(collect.size() == 2) { // 涓ょ鍘昏创鏍囨墦甯� - boolean success = false; - String response = ""; - try { - response = new HttpHandler.Builder() - .setUri(MesConstant.URL) - .setPath(MesConstant.PAKIN_URL) - .setHeaders(headers) - .setJson(body) - .build() - .doPost(); - if (!Cools.isEmpty(response)) { - order.setSettle(6L); - orderMapper.updateById(order); - success = true; - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response); - throw new CoolException("涓嬪彂鍑哄簱浠诲姟缁橤WCS(浠庡嚭搴撶爜澶村埌鍑哄簱鍙�)澶辫触"); + // 涓ょ鑲畾閮芥槸鍗曞嵎鎯呭喌 鍚屽瀷鍙�(鏈ㄧ鍨嬪彿-绠¤姱绫诲瀷-瀹炴祴瀹藉箙-鐢熺當鍘氬害-鍒嗗垏涓嬫枡鏃堕棿)鍘昏创鏍囷紝鎵撳甫锛屼笉鍚屽瀷鍙疯创鏍囧嚭搴� + WrkDetl wrkDetl1 = wrkDetls.get(0); + WrkDetl wrkDetl2 = wrkDetls.get(1); + if (wrkDetl1.getColor().equals(wrkDetl2.getColor())&& + wrkDetl1.getSku().equals(wrkDetl2.getSku())&& + wrkDetl1.getManu().equals(wrkDetl2.getManu())&& + wrkDetl1.getItemNum().equals(wrkDetl2.getItemNum())) { + flag = 3; + } else { + flag = 4; + } } - } catch (Exception e) { - log.error("鍑哄簱璁㈠崟瀹屾垚涓婃姤MES寮傚父锛屽伐浣滃彿锛歿}锛寋}", order.getOrderNo(), e.getMessage()); - } finally { - try { - // 淇濆瓨鎺ュ彛鏃ュ織 - apiLogService.save( - "鍑哄簱璁㈠崟瀹屾垚涓婃姤MES", - MesConstant.URL + MesConstant.PAKIN_URL, - null, - "127.0.0.1", - jsonObject.toJSONString(), - response, - success - ); - } catch (Exception e) { - log.error("鎺ュ彛鏃ュ織淇濆瓨寮傚父", e); + } else if (wrkMast.getIoType() == 103 && (wrkMast.getStaNo() == 3077 || wrkMast.getStaNo() == 3106)) { // 涓ょ鍑轰竴绠憋紝闇�妗佹灦鐞嗚揣 + // 閮借鍏堝幓鐞嗚揣 + flag = 2; + } + return flag; + } + + /** + * 鑷姩澶囪揣澶勭悊 + */ + public void autoStockUpHandler(List<String> list,int columnNum) { + + // 鏍规嵁鍖呰缁勫彿鑾峰彇鎵�鍦ㄥ簱浣� + List<LocDetl> locDetls = locDetlMapper.selectLocNoByGroupNo(list); + if (locDetls.isEmpty()) { + return; + } + // 鐩稿悓鍒欏悎骞讹紝涓�涓簱浣嶄袱涓寘瑁呯粍鍙� + Map<String,List<String>> map = new HashMap<>(); + for(LocDetl locDetl : locDetls) { + List<String> brand = map.get(locDetl.getLocNo()); + if (brand == null) { + map.put(locDetl.getLocNo(),new ArrayList<String>(){{add(locDetl.getBrand());}}); + } else { + brand.add(locDetl.getBrand()); + map.put(locDetl.getLocNo(),brand); } } + + // 閬嶅巻鍫嗗灈鏈哄苟涓斿垽鏂槸鍚﹀瓨鍦ㄤ换鍔� + for (int i = 1; i <= 6; i++) { + // 瑕佸璐х殑搴撲綅 + String sourceLocNo = null; + // 澶囪揣鐩爣搴撲綅 + String staLocNo = null; + Integer wrkCount = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i)); + if(wrkCount > 0) { +// log.warn("{}鍙峰爢鍨涙満宸插瓨鍦ㄤ换鍔�",i); + continue; + } + // 鏍规嵁鍫嗗灈鏈哄彿鏌ヨ鍒板搴旂殑娣卞簱浣嶅拰娴呭簱浣� 娣卞簱浣�4*n-3鍜�4*n 娴呭簱浣�4*n-2鍜�4*n-1 + int s1 = 4*i-3; + int s2 = 4*i; + int q1 = 4 * i - 2; + int q2 = 4 * i -1; + + // 鏍规嵁鍫嗗灈鏈哄彿鑾峰彇涓�涓祬搴撲綅 + for(String key : map.keySet()) { + int row = Integer.parseInt(key.substring(0, 2)); + if (row == q1 || row == q2) { + sourceLocNo = key; + break; + } + } + // 娴呭簱浣嶆病鏈夊垯鎵句竴涓繁搴撲綅 + if (sourceLocNo == null) { + for(String key : map.keySet()) { + int row = Integer.parseInt(key.substring(0, 2)); + if (row == s1 || row == s2) { + sourceLocNo = key; + break; + } + } + } + // 娌℃湁鎵惧埌婧愬簱浣� + if (sourceLocNo == null) { +// log.warn("娌℃湁鎵惧埌婧愬簱浣�,鍫嗗灈鏈猴細{}",i); + continue; + } + // 瀵绘壘涓�涓璐х殑鐩爣搴撲綅锛屽厛娣卞悗娴� + List<LocMast> locMasts1 = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", i).in("row1", s1, s2) + .le("bay1", columnNum).orderBy("lev1,bay1,row1")); + if (locMasts1.isEmpty()) { + // 娣卞簱浣嶄负绌轰簡锛屽彇娴呭簱浣� + List<LocMast> locMasts2 = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", i).in("row1", q1, q2) + .le("bay1", columnNum).orderBy("lev1,bay1,row1")); + if (!locMasts2.isEmpty()) { + staLocNo = locMasts2.get(0).getLocNo(); + } + } else { + staLocNo = locMasts1.get(0).getLocNo(); + } + + if(staLocNo == null) { + log.warn("{}鍙峰爢鍨涙満澶囪揣鍖烘弧浜�",i); + continue; + } + + // 澶囪揣鐨勬簮搴撲綅锛岀洰鏍囧簱浣嶉兘鑾峰彇鍒颁簡,鐢熸垚绉诲簱浠诲姟 + workService.locMove(sourceLocNo,staLocNo,29L); + + // 璁㈠崟鏄庣粏鏀规垚澶囪揣涓紝鍦ㄤ换鍔″畬鎴愭椂鍊欐敼鎴愬璐у畬鎴愶紝骞跺垽鏂暣涓鍗曟槸鍚﹀畬鎴� + orderDetlMapper.updateOrderDetlStatusByPackageNo(map.get(sourceLocNo), 1); + + // 绉婚櫎宸茬敓鎴愬璐у簱浣� + map.remove(sourceLocNo); + } + } + + public void autoMoveLoc(List<OrderDetl> orderDetlList) { + + // 鍒ゆ柇鏄惁宸茬粡鏈夋墽琛岀殑绉诲簱浠诲姟 + Integer count = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().in("io_type", 11, 12)); + if (count > 0) { + return; + } + + OrderDetl detl = null; // 瑕佺Щ搴撶殑鏄庣粏 + String staLoc = null; // 绉诲簱鐩爣搴撲綅 + + // 浠庡緟绉诲簱浣嶅垪琛ㄤ腑鍏堟祬鍚庢繁鑾峰彇涓�涓緟绉诲簱浣� + Optional<OrderDetl> any = orderDetlList.stream().filter(orderDetl -> Utils.isShallowLoc(slaveProperties,orderDetl.getSpecs())).findAny(); + + if (any.isPresent()){ + detl = any.get(); + } + // 鍓╀笅鐨勫簲璇ラ兘鏄繁搴撲綅锛岃幏鍙栫涓�涓� + if (detl == null) { + detl = orderDetlList.get(0); + // 瀵瑰簲娴呭簱浣嶆湁璐э紝鍦ㄥ爢鍨涙満鍑哄簱鐨勬椂鍊欎細妫�娴嬪埌锛屽湪閭i噷鐢熸垚绉诲簱浠诲姟 + } + + // 鑾峰彇澶囪揣鍖洪厤缃� + Config config = configMapper.selectConfigByCode("auto_stock_up"); + if (config == null) { + return; + } + // 澶囪揣鍙栨槸鍓嶅嚑鍒� + int bay1 = Integer.parseInt(config.getValue()); + // 鎸囧畾鐨勭洰鏍囧簱浣� + String model = detl.getModel(); + + // 鎸囧畾鐩爣搴撲綅 + if (!Cools.isEmpty(model)) { + // 鐩爣搴撲綅鏄繁搴撲綅 + if (Utils.isDeepLoc(slaveProperties,model)) { + // 鐩爣搴撲綅 + LocMast locMast2 = locMastMapper.selectById(model); + if (locMast2 == null || !locMast2.getLocSts().equals("O")) { + log.error("鎸囧畾鐨勭洰鏍囧簱浣嶃�恵}銆戠姸涓嶄负绌�", model); + return; + } + // 鑾峰彇鍒板搴旀祬搴撲綅 + String shallowLoc = Utils.getShallowLoc(slaveProperties, model); + LocMast locMast = locMastMapper.selectById(shallowLoc); + // 娴呭簱浣嶆湁璐� + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { + log.error("閫夋嫨鐨勬繁搴撲綅銆恵}銆戯紝浣嗘槸娴呭簱浣嶃�恵}銆戞湁璐�", model, locMast.getLocNo()); + return; + } + // 閬垮紑澶囪揣鍖� + if (Utils.getBay(model) <= bay1) { + log.error("鎸囧畾鐨勭洰鏍囧簱浣嶃�恵}銆戝湪澶囪揣鍖猴紝涓嶈兘杞Щ", model); + return; + } + } + // 娣卞簱浣嶆娴嬮�氳繃锛屾垨鑰呮槸娴呭簱浣� + staLoc = model; + } else if ( detl.getBeBatch() != null) { // 鎸囧畾鐩爣宸烽亾 + // 鐩爣宸烽亾 + Integer beBatch = detl.getBeBatch(); + // 浠庡贩閬撻噷闈㈠厛娣卞悗娴呭彇涓�涓┖搴撲綅锛屼笉瑕佸崰鐢ㄥ璐у尯 + List<LocMast> locMasts = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("crn_no", beBatch).eq("loc_sts", "O").gt("bay1", bay1)); + if (locMasts.isEmpty()) { + log.error("鎸囧畾宸烽亾銆恵}銆戞病鏈夎兘绉诲簱鐨勭┖搴撲綅浜�",beBatch); + return; + } + // 鍏堣繃婊ゅ嚭娣卞簱浣� + Optional<LocMast> a = locMasts.stream().filter(locMast -> Utils.isDeepLoc(slaveProperties,locMast.getLocNo())).findAny(); + if (a.isPresent()){ + staLoc = a.get().getLocNo(); + // 鑾峰彇鍒板搴旀祬搴撲綅 + String shallowLoc = Utils.getShallowLoc(slaveProperties, staLoc); + LocMast locMast = locMastMapper.selectById(shallowLoc); + // 娴呭簱浣嶆湁璐� + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { + log.error("鎸囧畾鐨勭洰鏍囧贩閬撴繁搴撲綅銆恵}銆戯紝浣嗘槸娴呭簱浣嶃�恵}銆戞湁璐�",staLoc,locMast.getLocNo()); + return; + } + } + // 娣卞簱浣嶆病鏈夊垯鍙栨祬搴撲綅 + if (staLoc == null) { + staLoc = locMasts.get(0).getLocNo(); + } + } else { + log.error("鐩爣搴撲綅鎴栫洰鏍囧贩閬撴湁璇細{}",detl); + return; + } + + // 鐢熸垚璺ㄥ贩閬撶Щ搴撲换鍔� + workService.autoLocMove(detl.getOrderNo(),detl.getSpecs(),staLoc,29L); + + // 鏇存柊鍗曟嵁鏄庣粏绉诲簱鐘舵�佷负绉诲簱涓� + detl.setDanger(1); + if (detl.getBeBatch() != null) { + detl.setModel(staLoc); // 琛ュ厖鐩爣搴撲綅 + } + orderDetlMapper.updateById(detl); + // 鏇存柊鍗曟嵁鐘舵�佷负2澶勭悊涓� + orderMapper.updatePendingSettleByOrderNo(detl.getOrderNo(),2L); + } + + /** + * 缁欐寚瀹氭鏋剁敓鎴愮悊璐т换鍔�,鎸夎鍒欏鎵惧埌鑳界悊璐х殑涓や釜搴撲綅 + * 1.鑳界悊璐х殑閮芥槸涓�绠变竴鍗风殑 + * 2.瑙勫垯锛氭湪绠卞瀷鍙风浉鍚�-绠¤姱绫诲瀷鐩稿悓-瀹炴祴瀹藉箙鐩稿悓-鐢熺當鍘氬害鐩稿悓-鍒嗗垏涓嬫枡鏃堕棿鐩歌繎 + */ + public void autoTallyGoods(int flag) { + + // 鑾峰彇澶囪揣鍖洪厤缃� + Config config = configMapper.selectConfigByCode("auto_stock_up"); + if (config == null) { + throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖洪厤缃敊璇紒锛侊紒"); + } + // 鍓嶅嚑鍒楁槸澶囪揣鍖� + int columnNum = Integer.parseInt(config.getValue()); + + // 瀵绘壘涓�绠变竴鍗风殑锛屾病鏈夌悊璐х殑锛屼笉鍦ㄥ璐у尯鐨勭墿鏂欐槑缁� + List<LocDetl> tallyGoosList = locDetlMapper.selectTallyGoosList(columnNum); + + // 杩囨护鎺夋湪绠辫鏍煎搴﹀ぇ浜�600鐨�(澶т簬600涓�涓墭鐩樺彧鑳芥斁涓�绠�) + tallyGoosList = tallyGoosList.stream().filter(locDetl -> { + String[] split = locDetl.getColor().split("\\*"); + if (split.length == 3) { + return Integer.parseInt(split[1]) <= 600; + } else { + return false; + } + }).collect(Collectors.toList()); + + // 瀵绘壘婊¤冻鐞嗚揣鏉′欢鐨勪袱涓湪绠� + LocDetl leftLocDetl = null; + LocDetl rightLocDetl = null; + for (int i = 0; i < tallyGoosList.size(); i++) { + leftLocDetl = tallyGoosList.get(i); + for (int j = i + 1; j < tallyGoosList.size(); j++) { + LocDetl tempLocDetl = tallyGoosList.get(j); + if (leftLocDetl.getColor().equals(tempLocDetl.getColor()) && leftLocDetl.getManu().equals(tempLocDetl.getManu()) && + leftLocDetl.getSku().equals(tempLocDetl.getSku()) && leftLocDetl.getItemNum().equals(tempLocDetl.getItemNum())) { + rightLocDetl = tempLocDetl; + break; + } + } + if (rightLocDetl != null) { + break; + } + } + + if (leftLocDetl == null || rightLocDetl == null) { +// log.warn("娌℃湁鎵惧埌涓や釜鑳界悊璐х殑鏈ㄧ"); + return; + } + + // 鎵惧埌鐨勪袱涓湪绠卞垰濂藉湪涓�涓墭鐩樹笂锛岀洿鎺ユ洿鏀圭悊璐х姸鎬佷负2 + if (leftLocDetl.getLocNo().equals(rightLocDetl.getLocNo())) { + locDetlMapper.updateLhStsByLocNo(leftLocDetl.getLocNo(), 2); + } else { + + // 鍒ゆ柇鏄幓鍝妗佹灦鐨勫摢涓珯鐐� t0缁勭洏鐐�,t1宸︽崲鐩樼偣,t2鍙虫崲鐩樼偣 + int t0 = 3046, t1 = 3045, t2 = 3044; + if (flag == 2) { + t0 = 3042; + t1 = 3041; + t2 = 3040; + } + + // 鐢熸垚绌洪棽鐞嗚揣浠诲姟 + WrkDetl wrkDetl1 = tallyGoodsGenerate(t1, leftLocDetl); + WrkDetl wrkDetl2 = tallyGoodsGenerate(t2, rightLocDetl); + + Date now = new Date(); + + // 瀵绘壘涓�涓┖搴撲綅 + StartupDto dto = commonService.getLocNo(1, t0, null, 0); + // 鐢熸垚缁勭洏鍏ュ簱浠诲姟 + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(dto.getWorkNo()); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�� + wrkMast.setIoType(1); // 鍏ュ嚭搴撶被鍨� + wrkMast.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 婧愮珯 + wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔� + wrkMast.setSourceLocNo(""); // 婧愬簱浣� + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setBarcode(""); // zwcs鎵ц鍏ュ簱鏃舵洿鏂版墭鐩樼爜 + wrkMast.setAppeUser(29L); // 鎿嶄綔浜哄憳 root + wrkMast.setAppeTime(now); + wrkMast.setModiUser(29L); + wrkMast.setModiTime(now); + if (wrkMastMapper.insert(wrkMast) != 1) { + throw new CoolException("绌洪棽鐞嗚揣缁勭洏淇濆瓨宸ヤ綔妗eけ璐ワ紝璇︽儏锛�" + wrkMast); + } + + // 鐢熸垚宸ヤ綔鏄庣粏 + wrkDetl1.setWrkNo(wrkMast.getWrkNo()); + wrkDetl1.setOrigin("宸�"); // 鍥哄畾鎷嗗埌宸﹁竟 + wrkDetl1.setDeadWarn(2); // 宸茬悊璐ф爣璇� + wrkDetl2.setWrkNo(wrkMast.getWrkNo()); + wrkDetl2.setOrigin("鍙�"); + wrkDetl2.setDeadWarn(2); + wrkDetlService.insert(wrkDetl1); // 鍏ュ簱瀹屾垚鏃舵洿鏂版墭鐩樼爜 + wrkDetlService.insert(wrkDetl2); + + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastMapper.selectById(dto.getLocNo()); + locMast.setLocSts("S"); + locMastMapper.updateById(locMast); // 鍏ュ簱瀹屾垚鏃舵洿鏂版墭鐩樼爜 + } + } + + /** + * 鐢熸垚绌洪棽鐞嗚揣鍒版崲鐩樻鏋剁殑浠诲姟 + * + * @param site 鎹㈢洏鐐� + * @param locDetl 搴撳瓨鏄庣粏 + */ + private WrkDetl tallyGoodsGenerate(int site, LocDetl locDetl) { + + // 鍒ゆ柇搴撲綅鐘舵�� + LocMast locMast = locMastMapper.selectById(locDetl.getLocNo()); + if (!locMast.getLocSts().equals("F")) { + throw new CoolException("鐞嗚揣搴撲綅鐘舵�佹湁璇紝涓嶄负F锛屽簱浣嶅彿锛�" + locMast.getLocNo()); + } + + Date now = new Date(); + + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(5); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(109); // 鍏ュ嚭搴撶姸鎬� 109.绌洪棽鐞嗚揣 + wrkMast.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceStaNo(oneFloorOutSite[locMast.getCrnNo()]); // 婧愮珯 + wrkMast.setStaNo(site); // 鐩爣绔� + wrkMast.setSourceLocNo(locDetl.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setSheetNo("0"); + wrkMast.setBarcode(locDetl.getZpallet()); + wrkMast.setAppeUser(29L); // 鎿嶄綔浜哄憳 root + wrkMast.setAppeTime(now); + wrkMast.setModiUser(29L); + wrkMast.setModiTime(now); + if (wrkMastMapper.insert(wrkMast) != 1) { + throw new CoolException("绌洪棽鐞嗚揣淇濆瓨宸ヤ綔妗eけ璐ワ紝璇︽儏锛�" + wrkMast); + } + + // 鐢熸垚宸ヤ綔鏄庣粏 + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(29L); + wrkDetl.setModiTime(now); + wrkDetl.setModiUser(29L); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("绌洪棽鐞嗚揣淇濆瓨宸ヤ綔妗f槑缁嗗け璐�,璇︽儏锛�" + wrkDetl); + } + + // 淇敼鍑哄簱鐘舵�� + locMast.setLocSts("R"); + locMast.setModiUser(29L); + locMast.setModiTime(now); + if (locMastMapper.updateById(locMast) != 1) { + throw new CoolException("绌洪棽鐞嗚揣棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMast.getLocNo()); + } + + // 鏇存柊搴撳瓨鏄庣粏涓虹悊璐т腑 + locDetlMapper.updateLhStsByLocNo(locDetl.getLocNo(), 1); + + return wrkDetl; + } + } -- Gitblit v1.9.1