From 659e6c18a7298d6a43668f9d187989a65bb24ca0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 04 六月 2021 16:53:13 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 176 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index cd6121c..44cdceb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1,34 +1,48 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasAgv;
import com.zy.asrs.entity.MatCode;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.service.BasAgvService;
import com.zy.asrs.service.MatCodeService;
import com.zy.asrs.service.MobileService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.model.agv.AgvCommand;
+import com.zy.common.model.agv.AgvResult;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.IOException;
import java.util.Date;
/**
* 绉诲姩绔湇鍔℃牳蹇冪被
* Created by vincent on 2020/6/28
*/
+@Slf4j
@Service
public class MobileServiceImpl implements MobileService {
+ @Value("${agv.url}")
+ private String agvUrl;
@Autowired
private MatCodeService matCodeService;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private BasAgvService basAgvService;
@Override
@Transactional
@@ -66,6 +80,34 @@
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
}
}
+ // 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
+ if (!Cools.isEmpty(param.getAgvSite())) {
+ BasAgv idleAgv = basAgvService.selectIdleAgv();
+ AgvCommand command = new AgvCommand();
+ command.setAgvId(idleAgv.getAgvId());
+ command.setInterCode(basAgvService.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ command.setEndLoc("1088");
+ log.info(JSON.toJSONString(command));
+ String result;
+ try {
+ result = new HttpHandler.Builder()
+ .setUri(agvUrl + "/api/interfaceTask/SendTaskByThirdParty")
+ .setJson(JSON.toJSONString(command))
+ .build()
+ .doPost();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new CoolException("璁块棶AGV鎺ュ彛澶辫触");
+ }
+ AgvResult agvResult = JSON.parseObject(result, AgvResult.class);
+ log.info(JSON.toJSONString(agvResult));
+ if (!agvResult.getResult()) {
+ log.error("agv鍛戒护鍙戦�佸け璐agvId={}]锛岄敊璇俊鎭�={}", command.getAgvId(), agvResult.getExplain());
+ throw new CoolException("agv鍛戒护鍙戦�佸け璐agvId=" + command.getAgvId() + "]锛岄敊璇俊鎭�=" + agvResult.getExplain());
+ }
+ }
+
} else {
WaitPakin waitPakin = new WaitPakin();
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
@@ -95,7 +137,7 @@
// 鍏宠仈閫氱煡鍗曠粍鎵�
for (CombParam.CombMat combMat : param.getCombMats()) {
WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
- .eq("supplier", param.getBillNo())
+ .eq("supplier", combMat.getSupplier())
.eq("matnr", combMat.getMatNo())
.isNull("zpallet"));
if (one == null) {
@@ -115,24 +157,25 @@
waitPakin.setAppeTime(new Date());
waitPakin.setModiUser(userId);
waitPakin.setModiTime(new Date());
+ waitPakin.setSupplier(combMat.getSupplier());
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
}
// 鍑忓皯閫氱煡鍗曚笂璇ョ墿鏂欑粍鎵樻暟閲�
if (waitPakin.getAnfme() >= one.getAnfme()) {
waitPakinService.delete(new EntityWrapper<WaitPakin>()
- .eq("supplier", param.getBillNo())
+ .eq("supplier", combMat.getSupplier())
.eq("matnr", combMat.getMatNo())
.eq("mnemonic", param.getMnemonic())
.isNull("zpallet"));
} else {
Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
if ("".equals(param.getMnemonic())) {
- wrapper.eq("supplier", param.getBillNo())
+ wrapper.eq("supplier", combMat.getSupplier())
.eq("matnr", combMat.getMatNo())
.isNull("zpallet");
} else {
- wrapper.eq("supplier", param.getBillNo())
+ wrapper.eq("supplier", combMat.getSupplier())
.eq("matnr", combMat.getMatNo())
.eq("mnemonic", param.getMnemonic())
.isNull("zpallet");
@@ -147,10 +190,139 @@
}
+ // 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
+ if (!Cools.isEmpty(param.getCombMats()) && !Cools.isEmpty(param.getAgvSite())) {
+ BasAgv idleAgv = basAgvService.selectIdleAgv();
+ AgvCommand command = new AgvCommand();
+ command.setAgvId(idleAgv.getAgvId());
+ command.setInterCode(basAgvService.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ command.setEndLoc("1088");
+ log.info(JSON.toJSONString(command));
+ String result;
+ try {
+ result = new HttpHandler.Builder()
+ .setUri(agvUrl + "/api/interfaceTask/SendTaskByThirdParty")
+ .setJson(JSON.toJSONString(command))
+ .build()
+ .doPost();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new CoolException("璁块棶AGV鎺ュ彛澶辫触");
+ }
+ AgvResult agvResult = JSON.parseObject(result, AgvResult.class);
+ log.info(JSON.toJSONString(agvResult));
+ if (!agvResult.getResult()) {
+ log.error("agv鍛戒护鍙戦�佸け璐agvId={}]锛岄敊璇俊鎭�={}", command.getAgvId(), agvResult.getExplain());
+ throw new CoolException("agv鍛戒护鍙戦�佸け璐agvId=" + command.getAgvId() + "]锛岄敊璇俊鎭�=" + agvResult.getExplain());
+ }
+ }
}
}
+ @Override
+ @Transactional
+ public void combBatch(CombParam param, Long userId) {
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode()).eq("io_status", "N"));
+ if (count > 0) {
+ throw new CoolException("鏉$爜鏁版嵁宸插瓨鍦�");
+ }
+ // 鍏宠仈閫氱煡鍗曠粍鎵�
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
+ .eq("supplier", combMat.getSupplier())
+ .eq("matnr", combMat.getMatNo())
+ .isNull("zpallet"));
+ if (one == null) {
+ throw new CoolException("閫氱煡鍗曚笉瀛樺湪" + combMat.getMatNo() + "鏁版嵁锛�");
+ }
+ if (combMat.getCount() > one.getAnfme()) {
+ throw new CoolException(combMat.getMatNo() + "鐗╂枡鏁伴噺涓嶈冻锛�");
+ }
+ MatCode matCode = matCodeService.selectById(combMat.getMatNo());
+ if (Cools.isEmpty(matCode)) {
+ throw new CoolException("鐗╂枡鏁版嵁閿欒");
+ }
+ WaitPakin waitPakin = one.clone();
+ waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setAnfme(combMat.getCount()); // 鏁伴噺
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(new Date());
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(new Date());
+ waitPakin.setSupplier(combMat.getSupplier());
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
+ // 鍑忓皯閫氱煡鍗曚笂璇ョ墿鏂欑粍鎵樻暟閲�
+ if (waitPakin.getAnfme() >= one.getAnfme()) {
+ waitPakinService.delete(new EntityWrapper<WaitPakin>()
+ .eq("supplier", combMat.getSupplier())
+ .eq("matnr", combMat.getMatNo())
+ .eq("mnemonic", combMat.getMnemonic())
+ .isNull("zpallet"));
+ } else {
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
+ if ("".equals(param.getMnemonic())) {
+ wrapper.eq("supplier", combMat.getSupplier())
+ .eq("matnr", combMat.getMatNo())
+ .isNull("zpallet");
+ } else {
+ wrapper.eq("supplier", combMat.getSupplier())
+ .eq("matnr", combMat.getMatNo())
+ .eq("mnemonic", combMat.getMnemonic())
+ .isNull("zpallet");
+ }
+ WaitPakin pakin = new WaitPakin();
+ pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme());
+ pakin.setSupplier(combMat.getSupplier());
+ pakin.setMatnr(combMat.getMatNo());
+ pakin.setMnemonic(combMat.getMnemonic());
+ if (!waitPakinService.update(pakin, wrapper)) {
+ throw new CoolException("鏇存柊鏁版嵁澶辫触");
+ }
+
+ }
+
+ }
+ // 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
+ if (!Cools.isEmpty(param.getCombMats()) && !Cools.isEmpty(param.getAgvSite())) {
+ BasAgv idleAgv = basAgvService.selectIdleAgv();
+ AgvCommand command = new AgvCommand();
+ command.setAgvId(idleAgv.getAgvId());
+ command.setInterCode(basAgvService.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ command.setEndLoc("1088");
+ log.info(JSON.toJSONString(command));
+ String result;
+ try {
+ result = new HttpHandler.Builder()
+ .setUri(agvUrl + "/api/interfaceTask/SendTaskByThirdParty")
+ .setJson(JSON.toJSONString(command))
+ .build()
+ .doPost();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new CoolException("璁块棶AGV鎺ュ彛澶辫触");
+ }
+ AgvResult agvResult = JSON.parseObject(result, AgvResult.class);
+ log.info(JSON.toJSONString(agvResult));
+ if (!agvResult.getResult()) {
+ log.error("agv鍛戒护鍙戦�佸け璐agvId={}]锛岄敊璇俊鎭�={}", command.getAgvId(), agvResult.getExplain());
+ throw new CoolException("agv鍛戒护鍙戦�佸け璐agvId=" + command.getAgvId() + "]锛岄敊璇俊鎭�=" + agvResult.getExplain());
+ }
+ }
+
+
+ }
}
--
Gitblit v1.9.1