package com.zy.asrs.task.handler;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.core.common.Cools;
|
import com.zy.asrs.entity.*;
|
import com.zy.asrs.service.*;
|
import com.zy.asrs.task.AbstractHandler;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.asrs.utils.VersionUtils;
|
import com.zy.ints.entity.IoComplete;
|
import com.zy.ints.entity.WaitMatin;
|
import com.zy.ints.entity.WaitMatout;
|
import com.zy.ints.service.IoCompleteService;
|
import com.zy.ints.service.WaitMatinService;
|
import com.zy.ints.service.WaitMatoutService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* Created by vincent on 2020/7/4
|
*/
|
@Service
|
public class WorkMastHandler extends AbstractHandler<String> {
|
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private WrkDetlService wrkDetlService;
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private LocDetlService locDetlService;
|
@Autowired
|
private WaitMatinService waitMatinService;
|
@Autowired
|
private WaitMatoutService waitMatoutService;
|
@Autowired
|
private IoCompleteService ioCompleteService;
|
@Autowired
|
private PltBarcodeService pltBarcodeService;
|
@Autowired
|
private MatCodeService matCodeService;
|
/**
|
* ERP接口是否启用
|
*/
|
@Value("${erp.enabled}")
|
private Boolean erpEnabled;
|
|
public ReturnT<String> start(WrkMast wrkMast) {
|
// 4.入库完成
|
if (wrkMast.getWrkSts() == 4) {
|
return doIn(wrkMast);
|
// 14.出库完成
|
} else if (wrkMast.getWrkSts() == 14) {
|
return doOut(wrkMast);
|
}
|
return SUCCESS;
|
}
|
|
private ReturnT<String> doIn(WrkMast wrkMast){
|
Date now = new Date();
|
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
|
try {
|
if (null == locMast) {
|
exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
switch (wrkMast.getIoType()) {
|
// 空板入库
|
case 10:
|
// 修改库位状态=D
|
if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) {
|
locMast.setFullPlt(wrkMast.getFullPlt());
|
locMast.setLocSts("D");
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("空板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
}
|
break;
|
// 全板入库
|
case 1:
|
// 清除所属库位之前的库存明细
|
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
|
if (!locDetls.isEmpty()) {
|
locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
|
}
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls.isEmpty()) {
|
exceptionHandle("全板入库 ===>> 工作明细档不存在;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
// 遍历工作明细,更新库存明细和入库通知档
|
for (WrkDetl wrkDetl : wrkDetls) {
|
LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("mat_no", wrkDetl.getMatNo()).eq("supplier", wrkDetl.getSupplier()));
|
if (null != locDetl) {
|
boolean res = locDetlService.updateAnfme(wrkDetl.getQty()+locDetl.getQty(), wrkMast.getLocNo(), wrkDetl.getMatNo(),wrkDetl.getSupplier());
|
|
|
if (!res) {
|
exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
} else {
|
WrkDetl wrk_no = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>()
|
.eq("wrk_no", wrkMast.getWrkNo()).eq("mat_no",wrkDetl.getMatNo()).eq("supplier",wrkDetl.getSupplier()));
|
|
MatCode matCode = matCodeService.selectOne(new EntityWrapper<MatCode>().eq("mat_no", wrkDetl.getMatNo()));
|
locDetl = new LocDetl();
|
|
locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
|
locDetl.setMemo(wrkMast.getMemo());
|
VersionUtils.setLocDetl(locDetl, wrkDetl); // 版本控制
|
locDetl.setModiTime(now);
|
locDetl.setAppeTime(now);
|
locDetl.setAllQty(wrk_no.getAllQty());
|
locDetl.setAllWeight(wrk_no.getAllWeight());
|
locDetl.setSource(wrk_no.getSource());
|
locDetl.setVendor(wrk_no.getVendor());
|
locDetl.setWeight(matCode.getWeight());
|
locDetl.setQtyBox(matCode.getStr6());
|
locDetl.setStr3(matCode.getStr3());
|
locDetl.setStr4(matCode.getStr4());
|
locDetl.setStr5(matCode.getStr5());
|
if (!Cools.isEmpty(wrk_no)){
|
locDetl.setMemo(wrk_no.getMemo());
|
locDetl.setSupplier(wrk_no.getSupplier());
|
}
|
if (!locDetlService.insert(locDetl)) {
|
exceptionHandle("全板入库 ===>> 添加库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
}
|
|
//更新组托数据状态为入库完成 IoStatus ====>> 2
|
Wrapper<PltBarcode> wrapper = new EntityWrapper<PltBarcode>().eq("barcode", wrkDetl.getZpallet())
|
.eq("bill_no", wrkDetl.getBillNo()).eq("seq_no", wrkDetl.getSeqNo()).eq("mat_no", wrkDetl.getMatNo());
|
PltBarcode pltBarcode = pltBarcodeService.selectOne(wrapper);
|
if(null != pltBarcode) {
|
pltBarcode.setIoStatus(2);//入库完成
|
boolean res = pltBarcodeService.update(pltBarcode, wrapper);
|
if(!res){
|
// exceptionHandle("全板入库 ===>> 更新组托数据失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
// 更新入库通知档 ioStatus ====>> 2
|
WaitMatin waitMatin = waitMatinService.selectOne(new EntityWrapper<WaitMatin>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(null != waitMatin && waitMatin.getInQty() >= waitMatin.getQty()){
|
waitMatin.setIoStatus(2);
|
waitMatin.setModiTime(now);
|
boolean res = waitMatinService.update(waitMatin, new EntityWrapper<WaitMatin>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(!res){
|
exceptionHandle("全板入库 ===>> 更新入库通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
//插入回报档 insert ====>> io_complete
|
if(erpEnabled && "Y".equals(wrkMast.getLinkMis())){
|
IoComplete ioComplete = new IoComplete();
|
ioComplete.setBillNo(wrkDetl.getBillNo());
|
ioComplete.setSeqNo(wrkDetl.getSeqNo());
|
ioComplete.setTaskType(1);//入库
|
ioComplete.setLocNo(wrkMast.getLocNo());
|
ioComplete.setZpallet(wrkMast.getBarcode());
|
ioComplete.setMatNo(wrkDetl.getMatNo());
|
ioComplete.setMatName(wrkDetl.getMatName());
|
ioComplete.setQty(wrkDetl.getQty());
|
ioComplete.setUpdStatus(0);//上报状态,待处理
|
ioComplete.setModiTime(now);
|
ioComplete.setAppeTime(now);
|
boolean res = ioCompleteService.insert(ioComplete);
|
if(!res){
|
exceptionHandle("全板入库 ===>> 插入回报通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
}
|
// 修改库位状态 S ====>> F
|
if (locMast.getLocSts().equals("S")) {
|
locMast.setFullPlt(wrkMast.getFullPlt());
|
locMast.setLocSts("F");
|
locMast.setBarcode(wrkMast.getBarcode());
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("全板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
}
|
break;
|
// 拣料入库
|
case 53:
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls53.isEmpty()) {
|
exceptionHandle("拣料入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
for (WrkDetl wrkDetl:wrkDetls53) {
|
// 修改库存明细数量,如果工作明细数量为0时,删除库存明细
|
LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("mat_no", wrkDetl.getMatNo()));
|
if (null != locDetl) {
|
if (!locDetlService.updateAnfme(locDetl.getQty() - wrkDetl.getQty(), locMast.getLocNo(), wrkDetl.getMatNo(),wrkDetl.getSupplier())) {
|
exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
|
// 更新出库通知档 ioStatus ====>> 2
|
WaitMatout waitMatout = waitMatoutService.selectOne(new EntityWrapper<WaitMatout>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(null != waitMatout && waitMatout.getOutQty() >= waitMatout.getQty()){
|
waitMatout.setIoStatus(2);
|
waitMatout.setModiTime(now);
|
boolean res = waitMatoutService.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(!res){
|
exceptionHandle("拣料出库 ===>> 更新出库通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
//插入回报档 insert ====>> io_complete
|
if(erpEnabled && "Y".equals(wrkMast.getLinkMis())){
|
IoComplete ioComplete = new IoComplete();
|
ioComplete.setBillNo(wrkDetl.getBillNo());
|
ioComplete.setSeqNo(wrkDetl.getSeqNo());
|
ioComplete.setTaskType(2);//出库
|
ioComplete.setLocNo(wrkMast.getLocNo());
|
ioComplete.setZpallet(wrkMast.getBarcode());
|
ioComplete.setMatNo(wrkDetl.getMatNo());
|
ioComplete.setMatName(wrkDetl.getMatName());
|
ioComplete.setQty(wrkDetl.getQty());
|
ioComplete.setUpdStatus(0);//上报状态,待处理
|
ioComplete.setModiTime(now);
|
ioComplete.setAppeTime(now);
|
boolean res = ioCompleteService.insert(ioComplete);
|
if(!res){
|
exceptionHandle("拣料出库 ===>> 插入回报通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
}
|
}
|
// 修改库位状态 Q ====>> F
|
if (locMast.getLocSts().equals("Q")) {
|
locMast.setFullPlt(wrkMast.getFullPlt());
|
locMast.setLocSts("F");
|
locMast.setBarcode(wrkMast.getBarcode());
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("拣料入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
}
|
break;
|
// 并板入库
|
case 54:
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls54.isEmpty()) {
|
exceptionHandle("并板入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
// 修改库存明细数量,如无库存,曾新增
|
for (WrkDetl wrkDetl:wrkDetls54) {
|
LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("mat_no", wrkDetl.getMatNo()));
|
if (null != locDetl) {
|
if (!locDetlService.updateAnfme(wrkDetl.getQty()+locDetl.getQty(), locMast.getLocNo(), wrkDetl.getMatNo(),wrkDetl.getSupplier())) {
|
exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matNo={1}]", wrkMast.getWrkNo(), wrkDetl.getMatNo());
|
}
|
} else {
|
locDetl = new LocDetl();
|
locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
|
VersionUtils.setLocDetl(locDetl, wrkDetl); // 版本控制
|
locDetl.setModiTime(now);
|
locDetl.setAppeTime(now);
|
if (!locDetlService.insert(locDetl)) {
|
exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matNo={1}]", wrkMast.getWrkNo(), wrkDetl.getMatNo());
|
}
|
}
|
|
// 更新入库通知档 ioStatus ====>> 2
|
WaitMatin waitMatin = waitMatinService.selectOne(new EntityWrapper<WaitMatin>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(null != waitMatin && waitMatin.getInQty() >= waitMatin.getQty()){
|
waitMatin.setIoStatus(2);
|
waitMatin.setModiTime(now);
|
boolean res = waitMatinService.update(waitMatin, new EntityWrapper<WaitMatin>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(!res){
|
exceptionHandle("并板入库 ===>> 更新入库通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
//插入回报档 insert ====>> io_complete
|
if(erpEnabled && "Y".equals(wrkMast.getLinkMis())){
|
IoComplete ioComplete = new IoComplete();
|
ioComplete.setBillNo(wrkDetl.getBillNo());
|
ioComplete.setSeqNo(wrkDetl.getSeqNo());
|
ioComplete.setTaskType(1);//入库
|
ioComplete.setLocNo(wrkMast.getLocNo());
|
ioComplete.setZpallet(wrkMast.getBarcode());
|
ioComplete.setMatNo(wrkDetl.getMatNo());
|
ioComplete.setMatName(wrkDetl.getMatName());
|
ioComplete.setQty(wrkDetl.getQty());
|
ioComplete.setUpdStatus(0);//上报状态,待处理
|
ioComplete.setModiTime(now);
|
ioComplete.setAppeTime(now);
|
boolean res = ioCompleteService.insert(ioComplete);
|
if(!res){
|
exceptionHandle("并板入库 ===>> 插入回报通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
}
|
// 修改库位状态 Q ====>> F
|
if (locMast.getLocSts().equals("Q")) {
|
locMast.setFullPlt(wrkMast.getFullPlt());
|
locMast.setLocSts("F");
|
locMast.setBarcode(wrkMast.getBarcode());
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("并板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
}
|
break;
|
// 盘点入库
|
case 57:
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls57.isEmpty()) {
|
exceptionHandle("盘点入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
// 修改库位状态 Q ====>> F
|
if (locMast.getLocSts().equals("Q")) {
|
locMast.setFullPlt(wrkMast.getFullPlt());
|
locMast.setLocSts("F");
|
locMast.setBarcode(wrkMast.getBarcode());
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("盘点入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
}
|
break;
|
// 库位移转
|
case 11:
|
// 默认目标库位是空板
|
String locSts = "D";
|
// 库位移转判断是否为空板移转
|
if (wrkMast.getEmptyMk().equals("N")) {
|
locSts = "F";
|
// 转移库存明细数据: 库存号 由工作档源库位变为目标库位
|
if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
|
exceptionHandle("库位移转 ===>> 转移库存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
|
}
|
}
|
// 修改源库位状态 ==> O
|
LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
|
String fullPlt = sourceLoc.getFullPlt();
|
if (null != sourceLoc) {
|
sourceLoc.setFullPlt("N");
|
sourceLoc.setBarcode("");
|
sourceLoc.setLocSts("O");
|
sourceLoc.setModiTime(now);
|
sourceLoc.setIoTime(now);
|
if (!locMastService.updateById(sourceLoc)) {
|
exceptionHandle("库位移转 ===>> 修改源库位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
}
|
}
|
// 修改目标库位状态 ==> .locSts
|
locMast.setFullPlt(fullPlt);
|
locMast.setLocSts(locSts);
|
locMast.setBarcode(wrkMast.getBarcode());
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("库位移转 ===>> 修改目标库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
break;
|
default:
|
break;
|
}
|
// 修改工作主档状态
|
wrkMast.setWrkSts(5L);
|
wrkMast.setModiTime(now);
|
if (!wrkMastService.updateById(wrkMast)) {
|
exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
private ReturnT<String> doOut(WrkMast wrkMast){
|
Date now = new Date();
|
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
|
try {
|
if (null == locMast) {
|
exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
}
|
switch (wrkMast.getIoType()) {
|
// 全板出库
|
case 101:
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls101.isEmpty()) {
|
exceptionHandle("全板出库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
for (WrkDetl wrkDetl : wrkDetls101) {
|
WaitMatout waitMatout = waitMatoutService.selectOne(new EntityWrapper<WaitMatout>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(null != waitMatout && waitMatout.getOutQty() >= waitMatout.getQty()){
|
waitMatout.setIoStatus(2);
|
waitMatout.setModiTime(now);
|
boolean res = waitMatoutService.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no",wrkDetl.getBillNo()).eq("seq_no",wrkDetl.getSeqNo()));
|
if(!res){
|
exceptionHandle("全板出库 ===>> 更新出库通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
|
//插入回报档 insert ====>> io_complete
|
if(erpEnabled && "Y".equals(wrkMast.getLinkMis())){
|
IoComplete ioComplete = new IoComplete();
|
ioComplete.setBillNo(wrkDetl.getBillNo());
|
ioComplete.setSeqNo(wrkDetl.getSeqNo());
|
ioComplete.setTaskType(2);//出库
|
ioComplete.setLocNo(wrkMast.getLocNo());
|
ioComplete.setZpallet(wrkMast.getBarcode());
|
ioComplete.setMatNo(wrkDetl.getMatNo());
|
ioComplete.setMatName(wrkDetl.getMatName());
|
ioComplete.setQty(wrkDetl.getQty());
|
ioComplete.setUpdStatus(0);//上报状态,待处理
|
ioComplete.setModiTime(now);
|
ioComplete.setAppeTime(now);
|
boolean res = ioCompleteService.insert(ioComplete);
|
if(!res){
|
exceptionHandle("全板出库 ===>> 插入回报通知档失败;[workNo={0}],[billNo={1}],[seqNo={2}]", wrkMast.getWrkNo(),wrkDetl.getBillNo(),wrkDetl.getSeqNo());
|
}
|
}
|
}
|
// 删除工作档源库位的库存明细
|
if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
|
exceptionHandle("全板出库 ===>> 删除库存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
}
|
// 修改源库位状态 R ===>> O
|
if (locMast.getLocSts().equals("R")) {
|
locMast.setFullPlt("N");
|
locMast.setLocSts("O");
|
locMast.setBarcode("");
|
locMast.setModiTime(now);
|
locMast.setIoTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("全板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
}
|
}
|
break;
|
// 空板出库
|
case 110:
|
// 修改库位状态 R ===>> O
|
if (locMast.getLocSts().equals("R")) {
|
locMast.setFullPlt("N");
|
locMast.setLocSts("O");
|
locMast.setBarcode("");
|
locMast.setModiTime(now);
|
locMast.setIoTime(now);
|
if (!locMastService.updateById(locMast)) {
|
exceptionHandle("空板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
}
|
}
|
break;
|
default:
|
break;
|
}
|
// 修改工作主档状态
|
wrkMast.setWrkSts(15L);
|
wrkMast.setModiTime(now);
|
if (!wrkMastService.updateById(wrkMast)) {
|
exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
}
|