| | |
| | | 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.nc.entity.NccSaleXsckmx; |
| | | import com.zy.nc.mapper.NccSaleXsckmxMapper; |
| | | 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 NccSaleXsckmxMapper nccSaleXsckmxMapper; |
| | | private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService; |
| | | |
| | | public ReturnT<String> start() { |
| | | NccSaleXsckmx nccSaleXsckmx = nccSaleXsckmxMapper.selectById("1001A1100000000H9KKJ"); |
| | | log.info("shuju:{}", JSONObject.toJSON(nccSaleXsckmx)); |
| | | @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)); |
| | | detlDto.setStandby1(nccScZkmxbWms.getRkckbm()); |
| | | 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)); |
| | | detlDto.setStandby1(nccCgCgdhdWms.getCkbm()); |
| | | 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; |
| | | } |
| | | } |