From 2c99685a60ecc2da91364642b45a636d1af13b1f Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 07 八月 2020 16:53:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 121 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 8ccdcaa..d2dcedf 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1,35 +1,66 @@ package com.zy.asrs.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.exception.CoolException; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.WaitPakin; +import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.mapper.WaitPakinMapper; +import com.zy.asrs.mapper.WrkMastMapper; +import com.zy.asrs.service.LocMastService; +import com.zy.asrs.service.WrkDetlService; +import com.zy.common.model.StartupDto; +import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; +import com.zy.core.model.Task; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.DevpThread; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; /** * Created by vincent on 2020/8/6 */ +@Slf4j @Service("mainService") public class MainServiceImpl { @Autowired + private CommonService commonService; + @Autowired private SlaveProperties slaveProperties; + @Autowired + private WrkMastMapper wrkMastMapper; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private WaitPakinMapper waitPakinMapper; + @Autowired + private LocMastService locMastService; + @Autowired + private JdbcTemplate jdbcTemplate; /** - * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵��1 + * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2 */ @Transactional public void generateStoreWrkFile() { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鍏ュ簱鍙� - for (DevpSlave.InSta inSta : devp.getInSta()) { + for (DevpSlave.Sta inSta : devp.getInSta()) { // 鑾峰彇鏉$爜 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); String barcode = barcodeThread.getBarcode(); @@ -39,16 +70,101 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInreq1() && !staProtocol.isEmptyMk() && staProtocol.isInreq1() && staProtocol.getWorkNO() ==0 - && !Cools.isEmpty(barcode)) { - // 鐢熸垚宸ヤ綔妗� + && staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { + // 鍒ゆ柇閲嶅宸ヤ綔妗� + WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); + if (wrkMast != null) { + log.warn("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负1鐨勬暟鎹�,宸ヤ綔鍙�-{}", wrkMast.getWrkNo()); + continue; + } + // 鑾峰彇鍏ュ簱閫氱煡妗� + List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("barcode", barcode)); + // 宸ヤ綔鍙� + int workNo = commonService.getWorkNo(0); + // 妫�绱㈠簱浣� + List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); + StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos); + String locNo = startupDto.getLocNo(); + if (!waitPakins.isEmpty()) { + // 鎻掑叆宸ヤ綔鏄庣粏妗� + wrkDetlService.createWorkDetail(workNo, waitPakins, barcode); + } else { + log.warn("鏃犳鍏ュ簱鏉$爜鏁版嵁---{}", barcode); + continue; + } + + // 鎻掑叆宸ヤ綔涓绘。 + wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋 + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(10D); // 浼樺厛绾э細10 + wrkMast.setCrnNo(startupDto.getCrnNo()); + wrkMast.setSourceStaNo(startupDto.getSourceStaNo()); + wrkMast.setStaNo(startupDto.getStaNo()); + wrkMast.setLocNo(startupDto.getLocNo()); + wrkMast.setBarcode(barcode); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); +// wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(new Date()); + wrkMast.setModiTime(new Date()); + Integer insert = wrkMastMapper.insert(wrkMast); + if (insert == 0) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(startupDto.getLocNo()); + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(new Date()); + if (!locMastService.updateById(locMast)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + + // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 + barcodeThread.setBarcode(""); + staProtocol.setWorkNO(workNo); + staProtocol.setStaNo(startupDto.getStaNo()); + staProtocol.setPakMk(false); + staProtocol.setInreq1(false); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task<>(4, staProtocol)); + if (!result) { + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } } } - } } + + /** + * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 + */ + public void stnToCrnStnPick(){ + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鎷f枡鍏ュ簱鍙� + for (DevpSlave.Sta pickSta : devp.getPickSta()) { + // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); + + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInreq1() + && staProtocol.getWorkNO() > 0){ + + } + + } + + } + } + } -- Gitblit v1.9.1