package com.zy.nc.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.InventoryCheckOrder;
|
import com.zy.asrs.entity.InventoryCheckOrderDetl;
|
import com.zy.asrs.entity.Mat;
|
import com.zy.asrs.entity.param.OpenOrderPakinParam;
|
import com.zy.asrs.entity.param.OpenOrderPakoutParam;
|
import com.zy.asrs.service.InventoryCheckOrderDetlService;
|
import com.zy.asrs.service.InventoryCheckOrderService;
|
import com.zy.asrs.service.MatService;
|
import com.zy.asrs.service.OpenService;
|
import com.zy.asrs.task.AbstractHandler;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.common.model.DetlDto;
|
import com.zy.nc.entity.*;
|
import com.zy.nc.service.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
@Slf4j
|
public class PlanOrderHandler extends AbstractHandler<String> {
|
|
@Autowired
|
private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService;
|
|
@Autowired
|
private NccScZkmxbWmsService nccScZkmxbWmsService;
|
|
@Autowired
|
private NccCgCgdhdWmsService nccCgCgdhdWmsService;
|
|
@Autowired
|
private NccSaleDbddWmsService nccSaleDbddWmsService;
|
|
@Autowired
|
private NccCkPddWmsService nccCkPddWmsService;
|
|
@Autowired
|
private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
|
|
@Autowired
|
private InventoryCheckOrderService inventoryCheckOrderService;
|
|
@Autowired
|
private MatService matService;
|
|
@Autowired
|
private OpenService openService;
|
|
/**
|
* 发货
|
*
|
* @return
|
*/
|
public ReturnT<String> start1(List<NccSaleXsfhmxWms> wmsFlag) {
|
try {
|
OpenOrderPakoutParam param = new OpenOrderPakoutParam();
|
param.setOrderType("销售发货");
|
DetlDto detlDto;
|
List<DetlDto> orderDetails = new ArrayList<>();
|
long i = 1;
|
for (NccSaleXsfhmxWms nccSaleXsfhmxWms : wmsFlag) {
|
detlDto = new DetlDto();
|
detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
|
detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum().doubleValue());
|
detlDto.setLineNumber(i);
|
detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
|
orderDetails.add(detlDto);
|
log.info("NccSaleXsfhmxWms数据:{}", JSONObject.toJSON(nccSaleXsfhmxWms));
|
i++;
|
nccSaleXsfhmxWms.setWmsFlag(1);
|
param.setOrderNo(nccSaleXsfhmxWms.getVbillcode());
|
}
|
param.setOrderDetails(orderDetails);
|
openService.pakoutOrderCreate(param);
|
nccSaleXsfhmxWmsService.updateBatchById(wmsFlag);
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
/**
|
* 转库,包含产成品入库单
|
*
|
* @return
|
*/
|
public ReturnT<String> start2In(List<NccScZkmxbWms> wmsFlag) {
|
try {
|
OpenOrderPakinParam param = new OpenOrderPakinParam();
|
param.setOrderType("转库-入库");
|
DetlDto detlDto;
|
List<DetlDto> orderDetails = new ArrayList<>();
|
long i = 1;
|
for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
|
log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
|
detlDto = new DetlDto();
|
detlDto.setMatnr(nccScZkmxbWms.getWlbm());
|
detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
|
detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
|
detlDto.setLineNumber(i);
|
detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
|
orderDetails.add(detlDto);
|
i++;
|
nccScZkmxbWms.setWmsFlag(1);
|
param.setOrderNo(nccScZkmxbWms.getVbillcode());
|
}
|
param.setOrderDetails(orderDetails);
|
openService.pakinOrderCreate(param);
|
nccScZkmxbWmsService.updateBatchById(wmsFlag);
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
/**
|
* 转库,包含出库
|
*
|
* @return
|
*/
|
public ReturnT<String> start2Out(List<NccScZkmxbWms> wmsFlag) {
|
try {
|
OpenOrderPakoutParam param = new OpenOrderPakoutParam();
|
param.setOrderType("转库-出库");
|
DetlDto detlDto;
|
List<DetlDto> orderDetails = new ArrayList<>();
|
long i = 1;
|
for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
|
log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
|
detlDto = new DetlDto();
|
detlDto.setMatnr(nccScZkmxbWms.getWlbm());
|
detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
|
detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
|
detlDto.setLineNumber(i);
|
detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
|
orderDetails.add(detlDto);
|
i++;
|
nccScZkmxbWms.setWmsFlag(1);
|
param.setOrderNo(nccScZkmxbWms.getVbillcode());
|
}
|
param.setOrderDetails(orderDetails);
|
openService.pakoutOrderCreate(param);
|
nccScZkmxbWmsService.updateBatchById(wmsFlag);
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
/**
|
* 采购到货
|
*
|
* @return
|
*/
|
public ReturnT<String> start3(List<NccCgCgdhdWms> wmsFlag) {
|
try {
|
OpenOrderPakinParam param = new OpenOrderPakinParam();
|
param.setOrderType("采购到货");
|
DetlDto detlDto;
|
List<DetlDto> orderDetails = new ArrayList<>();
|
long i = 1;
|
for (NccCgCgdhdWms nccCgCgdhdWms : wmsFlag) {
|
log.info("nccCgCgdhdWms数据:{}", JSONObject.toJSON(nccCgCgdhdWms));
|
detlDto = new DetlDto();
|
detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
|
detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue());
|
detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
|
detlDto.setLineNumber(i);
|
detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
|
orderDetails.add(detlDto);
|
i++;
|
nccCgCgdhdWms.setWmsFlag(1);
|
param.setOrderNo(nccCgCgdhdWms.getVbillcode());
|
}
|
param.setOrderDetails(orderDetails);
|
openService.pakinOrderCreate(param);
|
nccCgCgdhdWmsService.updateBatchById(wmsFlag);
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
|
/**
|
* 盘点单
|
*
|
* @return
|
*/
|
public ReturnT<String> start4(List<NccCkPddWms> wmsFlag) {
|
try {
|
InventoryCheckOrder param = new InventoryCheckOrder();
|
InventoryCheckOrderDetl checkOrderDetl = null;
|
for (NccCkPddWms nccScZkmxbWms : wmsFlag) {
|
log.info("NccCkPddWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
|
Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm());
|
if (Cools.isEmpty(mat)) {
|
throw new CoolException(nccScZkmxbWms.getWlbm() + "编号商品检索失败,请先添加商品");
|
}
|
List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr()).eq("batch", nccScZkmxbWms.getVbatchcode()));
|
if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
|
//throw new CoolException(nccScZkmxbWms.getWlbm() + "盘点单的明细重复了");
|
}
|
checkOrderDetl = new InventoryCheckOrderDetl();
|
checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm());
|
checkOrderDetl.setMaktx(mat.getMaktx());
|
checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode());
|
checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue());
|
checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode());
|
inventoryCheckOrderDetlService.insert(checkOrderDetl);
|
nccScZkmxbWms.setWmsFlag(1);
|
param.setOrderNo(nccScZkmxbWms.getVbillcode());
|
param.setCreateBy(nccScZkmxbWms.getPdrmc());
|
|
}
|
param.setCreateTime(new Date());
|
param.setStatus("1");
|
inventoryCheckOrderService.insert(param);
|
nccCkPddWmsService.updateBatchById(wmsFlag);
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
|
/**
|
* 调拨单
|
*
|
* @return
|
*/
|
public ReturnT<String> start5(List<NccSaleDbddWms> wmsFlag) {
|
try {
|
OpenOrderPakoutParam param = new OpenOrderPakoutParam();
|
param.setOrderType("集团内部调拨");
|
DetlDto detlDto;
|
List<DetlDto> orderDetails = new ArrayList<>();
|
long i = 1;
|
for (NccSaleDbddWms nccCgCgdhdWms : wmsFlag) {
|
log.info("nccCgCgdhdWms数据:{}", JSONObject.toJSON(nccCgCgdhdWms));
|
detlDto = new DetlDto();
|
detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
|
detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
|
detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
|
detlDto.setLineNumber(i);
|
detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
|
orderDetails.add(detlDto);
|
i++;
|
nccCgCgdhdWms.setWmsFlag(1);
|
param.setOrderNo(nccCgCgdhdWms.getVbillcode());
|
}
|
param.setOrderDetails(orderDetails);
|
openService.pakoutOrderCreate(param);
|
nccSaleDbddWmsService.updateBatchById(wmsFlag);
|
} catch (Exception e) {
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
}
|