package com.zy.asrs.task.handler;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
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 lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* Created by vincent on 2020/7/4
|
*/
|
@Slf4j
|
@Service
|
@Transactional
|
public class WorkMastHandler extends AbstractHandler<String> {
|
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private WrkDetlService wrkDetlService;
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private LocDetlService locDetlService;
|
@Autowired
|
private WaitPakinService waitPakinService;
|
@Autowired
|
private OrderDetlService orderDetlService;
|
@Autowired
|
private WorkService workService;
|
|
// private static final Map<Integer,Integer> sourceSite = new HashMap<>();
|
// static {
|
// sourceSite.put(1041,1040);sourceSite.put(1042,1040);
|
// sourceSite.put(2011,2010);sourceSite.put(2012,2010);
|
// sourceSite.put(2001,2000);sourceSite.put(2002,2000);
|
// sourceSite.put(3011,3010);sourceSite.put(3010,1040);
|
// }
|
|
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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("工作档[workNo=" + wrkMast.getWrkNo() + "]库位号错误[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
assert locMast != null;
|
switch (wrkMast.getIoType()) {
|
// 空板入库
|
case 10:
|
// 修改库位状态=D
|
if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) {
|
if (!Cools.isEmpty(wrkMast.getBarcode())) {
|
locMast.setBarcode(wrkMast.getBarcode());
|
}
|
locMast.setLocSts("D");
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
locMast.setFullPlt(wrkMast.getFullPlt());
|
if (!locMastService.updateById(locMast)) {
|
// exceptionHandle("空板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("空板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + 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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板入库 ===>> 工作明细档不存在; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
// 遍历工作明细,更新库存明细和入库通知档
|
for (WrkDetl wrkDetl : wrkDetls) {
|
|
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (null != locDetl) {
|
Double anfme = locDetl.getAnfme() + wrkDetl.getAnfme();
|
if (!locDetlService.updateAnfme(anfme, wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
|
// exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
} else {
|
locDetl = new LocDetl();
|
locDetl.sync(wrkDetl);
|
locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
|
locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
|
locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
|
locDetl.setModiTime(now);
|
locDetl.setAppeTime(now);
|
if (!locDetlService.insert(locDetl)) {
|
// exceptionHandle("全板入库 ===>> 添加库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板入库 ===>> 添加库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
|
// 更新订单完成数量
|
OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (orderDetl == null) {
|
orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
|
}
|
try {
|
if (!Cools.isEmpty(orderDetl)) {
|
if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
|
orderDetl.getBatch(), wrkDetl.getAnfme())) {
|
// exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
|
// wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
} catch (Exception ignore) {
|
}
|
|
}
|
// 修改库位状态 S ====>> F
|
if (locMast.getLocSts().equals("S")) {
|
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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
} else {
|
exceptionHandle("库位状态不为入库预约状态;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
break;
|
// 拣料入库
|
case 53:
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls53.isEmpty()) {
|
// exceptionHandle("拣料入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("拣料入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
for (WrkDetl wrkDetl : wrkDetls53) {
|
|
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (null != locDetl) {
|
if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
|
// exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
|
// 更新订单完成数量
|
OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (orderDetl == null) {
|
orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
|
}
|
try {
|
if (!Cools.isEmpty(orderDetl)) {
|
if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
|
orderDetl.getBatch(), wrkDetl.getAnfme())) {
|
// exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
|
// wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
} catch (Exception ignore) {
|
}
|
|
}
|
// 修改库位状态 Q ====>> F
|
if (locMast.getLocSts().equals("Q")) {
|
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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("拣料入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + 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());
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
// return FAIL.setMsg("并板入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
} else {
|
// 修改库存明细数量,如无库存,曾新增
|
for (WrkDetl wrkDetl : wrkDetls54) {
|
|
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (null != locDetl) {
|
Double anfme = locDetl.getAnfme() + wrkDetl.getAnfme();
|
if (!locDetlService.updateAnfme(anfme, locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
|
// exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("并板入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
} else {
|
locDetl = new LocDetl();
|
locDetl.sync(wrkDetl);
|
locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
|
locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
|
locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
|
locDetl.setModiTime(now);
|
locDetl.setAppeTime(now);
|
if (!locDetlService.insert(locDetl)) {
|
// exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("并板入库 ===>> 新增库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
|
// 更新订单完成数量
|
OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (orderDetl == null) {
|
orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
|
}
|
try {
|
if (!Cools.isEmpty(orderDetl)) {
|
if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
|
orderDetl.getBatch(), wrkDetl.getAnfme())) {
|
// exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
|
// wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("并板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
} catch (Exception ignore) {
|
}
|
}
|
|
}
|
}
|
|
// 修改库位状态 Q ====>> F
|
if (locMast.getLocSts().equals("Q")) {
|
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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("并板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
} else {
|
exceptionHandle("库位状态不为入库预约状态;[workNo={0}]", wrkMast.getWrkNo());
|
}
|
break;
|
// 盘点入库
|
case 57:
|
// 根据工作号,查询工作明细档
|
List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkDetls57.isEmpty()) {
|
// exceptionHandle("盘点入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("盘点入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
// 修改库位状态 Q ====>> F
|
if (locMast.getLocSts().equals("Q")) {
|
locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D");
|
locMast.setBarcode(wrkMast.getBarcode());
|
locMast.setIoTime(now);
|
locMast.setModiTime(now);
|
if (!locMastService.updateById(locMast)) {
|
// exceptionHandle("盘点入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("盘点入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + 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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("库位移转 ===>> 转移库存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
// 修改源库位状态 ==> O
|
LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
|
if (null != sourceLoc) {
|
sourceLoc.setBarcode("");
|
sourceLoc.setLocSts("O");
|
sourceLoc.setModiTime(now);
|
sourceLoc.setIoTime(now);
|
if (!locMastService.updateById(sourceLoc)) {
|
// exceptionHandle("库位移转 ===>> 修改源库位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("库位移转 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
}
|
// 修改目标库位状态 ==> .locSts
|
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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("库位移转 ===>> 修改目标库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
break;
|
default:
|
break;
|
}
|
|
// 更新入库站点的入库暂存数
|
// int sourceStaNo = wrkMast.getSourceStaNo() == null ? 0 : wrkMast.getSourceStaNo();
|
// if (sourceSite.get(sourceStaNo) != null) {
|
// BasDevpMapper basDevpMapper = SpringUtils.getBean(BasDevpMapper.class);
|
// BasDevp basDevp = basDevpMapper.selectById(sourceSite.get(sourceStaNo));
|
// basDevp.setInQty(basDevp.getInQty() -1);
|
// basDevpMapper.updateById(basDevp);
|
// }
|
|
// 修改工作主档状态
|
wrkMast.setWrkSts(5L);
|
wrkMast.setModiTime(now);
|
if (!wrkMastService.updateById(wrkMast)) {
|
// exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("更新入库完成状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
} catch (Exception e) {
|
log.error("fail", 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());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("工作档库位号错误; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
|
}
|
assert locMast != null;
|
switch (wrkMast.getIoType()) {
|
// 全板出库
|
case 101:
|
List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
|
if (wrkMast.getStaNo() == 1135) {
|
//那需要生成一条四项库的入库任务
|
workService.toSxk(wrkMast, wrkDetls101, (short) 1);
|
} else if (wrkMast.getStaNo() == 1031) {
|
//那需要生成一条四项库的入库任务
|
workService.toCrn(wrkMast, wrkDetls101, (short) 1);
|
} else {
|
// 出库确认信号位
|
// if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
|
// return SUCCESS;
|
// }
|
// 根据工作号,查询工作明细档
|
if (wrkDetls101.isEmpty()) {
|
// exceptionHandle("全板出库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板出库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
|
}
|
for (WrkDetl wrkDetl : wrkDetls101) {
|
// 更新订单完成数量
|
OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
|
if (orderDetl == null) {
|
orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
|
}
|
try {
|
if (!Cools.isEmpty(orderDetl)) {
|
if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
|
orderDetl.getBatch(), wrkDetl.getAnfme())) {
|
// exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
|
// wrkMast.getWrkNo(), wrkMast.getLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
|
}
|
}
|
} catch (Exception ignore) {
|
}
|
}
|
// 删除工作档源库位的库存明细
|
if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
|
// exceptionHandle("全板出库 ===>> 删除库存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板出库 ===>> 删除库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
|
}
|
// 修改源库位状态 R ===>> O
|
if (locMast.getLocSts().equals("R")) {
|
locMast.setLocSts("O");
|
locMast.setBarcode("");
|
locMast.setModiTime(now);
|
locMast.setIoTime(now);
|
if (!locMastService.updateById(locMast)) {
|
// exceptionHandle("全板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("全板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
|
}
|
}
|
}
|
break;
|
// 空板出库
|
case 110:
|
// 修改库位状态 R ===>> O
|
if (locMast.getLocSts().equals("R")) {
|
locMast.setLocSts("O");
|
locMast.setBarcode("");
|
locMast.setModiTime(now);
|
locMast.setIoTime(now);
|
if (!locMastService.updateById(locMast)) {
|
// exceptionHandle("空板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("空板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
|
}
|
}
|
break;
|
default:
|
break;
|
}
|
// 修改工作主档状态
|
wrkMast.setWrkSts(15L);
|
wrkMast.setModiTime(now);
|
if (!wrkMastService.updateById(wrkMast)) {
|
// exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg("更新出库完成状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
|
}
|
} catch (Exception e) {
|
log.error("fail", e);
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
}
|