| | |
| | | package com.zy.asrs.task.handler; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.exception.CoolException; |
| | |
| | | import com.zy.asrs.service.impl.OrderDetl1ServiceImpl; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.third.entity.ExdInstockTarget; |
| | | import com.zy.third.entity.ExdOutstockTarget; |
| | | import com.zy.third.entity.ExdvYanbu; |
| | | import com.zy.system.entity.User; |
| | | import com.zy.system.service.UserService; |
| | | import com.zy.third.entity.*; |
| | | import com.zy.third.mapper.ExdMaterialMapper; |
| | | import com.zy.third.service.ExdInstockTargetService; |
| | | import com.zy.third.service.ExdOutstockSourceService; |
| | | import com.zy.third.service.ExdOutstockTargetService; |
| | | import com.zy.third.service.ExdStockService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | private ExdMaterialMapper exdMaterialMapper; |
| | | @Autowired |
| | | private Order1Service order1Service; |
| | | @Autowired |
| | | private ExdOutstockSourceService exdOutstockSourceService; |
| | | @Autowired |
| | | private UserService userService; |
| | | @Autowired |
| | | private ExdStockService exdStockService; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(Order order) { |
| | |
| | | if (orderDetls.isEmpty()) { |
| | | return SUCCESS; |
| | | } |
| | | boolean boo=false; |
| | | // 入库完成上报 |
| | | if (docType.getPakin() == 1) { |
| | | ExdInstockTarget exdInstockTarge = null; |
| | |
| | | exdInstockTarge = new ExdInstockTarget(); |
| | | exdInstockTarge.setFinterid(orderDetl.getDeadWarn()); |
| | | exdInstockTarge.setFbillno(orderDetl.getOrderNo()); |
| | | exdInstockTarge.setFtrantype(order.getDocType().intValue()); |
| | | exdInstockTarge.setFdate(DateUtils.convert(order.getOrderTime())); |
| | | exdInstockTarge.setFrob(orderDetl.getInspect()); |
| | | exdInstockTarge.setFuserid(Integer.getInteger(orderDetl.getColor())); |
| | | Integer decType = order.getDocType().intValue(); |
| | | if(order.getDocType().intValue()==42){ |
| | | decType = 41; |
| | | }else if(order.getDocType().intValue()==25){ |
| | | decType = 24; |
| | | }else if(order.getDocType().intValue()==3){ |
| | | decType = 1; |
| | | } |
| | | exdInstockTarge.setFtrantype(decType); |
| | | exdInstockTarge.setFdate(order.getUpdateTime()); |
| | | Integer frob = 1; |
| | | if(order.getDocType().intValue()==21||order.getDocType().intValue()==24||order.getDocType().intValue()==2||order.getDocType().intValue()==3){ |
| | | frob = -1; |
| | | } |
| | | exdInstockTarge.setFrob(frob); |
| | | //操作用户 |
| | | User id = userService.selectOne(new EntityWrapper<User>().eq("id", orderDetl.getUpdateBy())); |
| | | exdInstockTarge.setFuserid(Integer.valueOf(id.getEmail())); |
| | | exdInstockTarge.setWritetime(new Date()); |
| | | exdInstockTarge.setWritor("WMS"); |
| | | exdInstockTarge.setStatus(0); |
| | | exdInstockTarge.setProdinkind(orderDetl.getItemNum()); |
| | | exdInstockTargetService.insert(exdInstockTarge); |
| | | } |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | }else { |
| | | // boo = true; |
| | | } |
| | | } else if (docType.getPakout() == 1) { |
| | | // 出库完成上报 |
| | |
| | | exdOutstockTarget.setFtrantype(order.getDocType().intValue()); |
| | | } |
| | | exdOutstockTarget.setFdate(DateUtils.convert(order.getOrderTime())); |
| | | exdOutstockTarget.setFrob(orderDetl.getInspect()); |
| | | exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor())); |
| | | exdOutstockTarget.setFrob(order.getDocType().intValue()==2? -1:1); |
| | | //操作用户 |
| | | User id = userService.selectOne(new EntityWrapper<User>().eq("id", orderDetl.getUpdateBy())); |
| | | exdOutstockTarget.setFuserid(Integer.valueOf(id.getEmail())); |
| | | exdOutstockTarget.setWritetime(new Date()); |
| | | exdOutstockTarget.setWritor("WMS"); |
| | | exdOutstockTarget.setStatus(0); |
| | | exdOutstockTarget.setProdinkind(orderDetl.getItemNum()); |
| | | exdOutstockTargetService.insert(exdOutstockTarget); |
| | | |
| | | } |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | }else { |
| | | boo = true; |
| | | } |
| | | } |
| | | //普通入出订单子单完成 |
| | | if (boo){ |
| | | Order1 orderNo = order1Service.selectOne(new EntityWrapper<Order1>().like("order_no", order.getOrderNo())); |
| | | orderNo.setSettle(6L); |
| | | order1Service.update(orderNo,new EntityWrapper<Order1>().eq("order_no",order.getOrderNo())); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | |
| | | return FAIL; |
| | | } |
| | | |
| | | |
| | | int i = 1; |
| | | for (OrderDetl1 orderDetl : orderDetls) { |
| | | |
| | | ExdvYanbu bacode = exdMaterialMapper.getBacode(orderDetl.getThreeCode()); |
| | | ExdvYanbu bacode = exdMaterialMapper.getBacode(orderDetl.getBatch()); |
| | | //获取主表明细 |
| | | OrderDetl orderDetl1 = orderDetlService.selectItem(orderDetl.getOrderNo(), orderDetl.getMatnr(), null); |
| | | OrderDetl orderDetl1 = orderDetlService.selectItem(orderDetl.getOrderNo().split("-")[0], orderDetl.getMatnr(), null); |
| | | //上报数量 |
| | | BigDecimal anfme = new BigDecimal(orderDetl1.getAnfme()); |
| | | BigDecimal Units = new BigDecimal((Cools.isEmpty(orderDetl1.getUnits()) ? 0.0 : orderDetl1.getUnits())); |
| | |
| | | //单号 = erp订单号+物料编号+上报次数 |
| | | exdOutstockTarget.setFbillno(order.getOrderNo()); |
| | | |
| | | //单据类型 |
| | | exdOutstockTarget.setFtrantype(21); |
| | | |
| | | //单据日期 |
| | | exdOutstockTarget.setFdate(order.getUpdateTime()); |
| | | //红蓝字 |
| | | exdOutstockTarget.setFrob(1); |
| | | //操作用户 |
| | | User id = userService.selectOne(new EntityWrapper<User>().eq("id", orderDetl.getCreateBy())); |
| | | exdOutstockTarget.setFuserid(Integer.valueOf(id.getEmail())); |
| | | |
| | | //部门ID |
| | | exdOutstockTarget.setFdeptid(7502); |
| | | //供应商/客户ID |
| | | exdOutstockTarget.setFsupplyid(0); |
| | | //制单用户ID |
| | | exdOutstockTarget.setFbillerid(Math.toIntExact(orderDetl.getUpdateBy())); |
| | | exdOutstockTarget.setFbillerid(Integer.valueOf(id.getEmail())); |
| | | //细表ID |
| | | Integer c = Integer.valueOf(order.getOrderNo().split("-")[1]); |
| | | exdOutstockTarget.setFentryid(c); |
| | | exdOutstockTarget.setFentryid(i++); |
| | | //物料ID |
| | | Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); |
| | | exdOutstockTarget.setFitemid(Integer.valueOf(mat.getUuid())); |
| | | //源单数量 |
| | | exdOutstockTarget.setFqtymust(count); |
| | | //出库数量 |
| | | exdOutstockTarget.setFqty(orderDetl.getQty()); |
| | | exdOutstockTarget.setFqty(bacode.getQty()); |
| | | //单价 |
| | | exdOutstockTarget.setFprice(0.0); |
| | | //批号 暂定 |
| | |
| | | //单位ID |
| | | exdOutstockTarget.setFunitid(0); |
| | | //源单号 |
| | | exdOutstockTarget.setFsourcebillno(orderDetl.getOrderNo()); |
| | | //源单细表ID 暂定 |
| | | exdOutstockTarget.setFsourceentryid(0); |
| | | //源单内码 暂定 |
| | | exdOutstockTarget.setFsourceinterid(0); |
| | | exdOutstockTarget.setFsourcebillno(orderDetl.getOrderNo().split("-")[0]); |
| | | ExdOutstockSource exdOutstockSource = exdOutstockSourceService.selectOne(new EntityWrapper<ExdOutstockSource>() |
| | | .eq("FBillNo", orderDetl.getOrderNo().split("-")[0]) |
| | | .eq("FItemID", mat.getUuid())); |
| | | //源单细表ID |
| | | exdOutstockTarget.setFsourceentryid(exdOutstockSource.getFentryid()); |
| | | //源单内码 |
| | | exdOutstockTarget.setFsourceinterid(exdOutstockSource.getFinterid()); |
| | | //源单单据类型 |
| | | exdOutstockTarget.setFsourcetrantype(0); |
| | | exdOutstockTarget.setFsourcetrantype(81); |
| | | //库位ID |
| | | exdOutstockTarget.setFdcspid(0); |
| | | //仓库ID 暂定 |
| | | exdOutstockTarget.setFdcstockid(0); |
| | | //仓库ID |
| | | Integer Fdcstockid = 19382; |
| | | if(!Cools.isEmpty(bacode.getProdinkind())){ |
| | | ExdStock fname = exdStockService.selectOne(new EntityWrapper<ExdStock>().eq("Fname", orderDetl.getBrand())); |
| | | Fdcstockid = Integer.valueOf(fname.getId()); |
| | | } |
| | | exdOutstockTarget.setFdcstockid(Fdcstockid); |
| | | //销售订单单号 暂定 |
| | | exdOutstockTarget.setForderbillno(orderDetl.getOrderNo()); |
| | | exdOutstockTarget.setForderbillno(exdOutstockSource.getForderbillno()); |
| | | //销售订单细表ID 暂定 |
| | | exdOutstockTarget.setForderentryid(0); |
| | | exdOutstockTarget.setForderentryid(exdOutstockSource.getForderentryid()); |
| | | //销售订单内码 暂定 |
| | | exdOutstockTarget.setForderinterid(0); |
| | | exdOutstockTarget.setForderinterid(exdOutstockSource.getForderinterid()); |
| | | //计划模式 |
| | | exdOutstockTarget.setFplanmode(0); |
| | | |
| | | //单据类型 |
| | | exdOutstockTarget.setFtrantype(21); |
| | | |
| | | //单据日期 |
| | | exdOutstockTarget.setFdate(DateUtils.convert(order.getOrderTime())); |
| | | //红蓝字 |
| | | exdOutstockTarget.setFrob(orderDetl.getBeBatch()); |
| | | //操作用户 |
| | | exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor())); |
| | | |
| | | exdOutstockTarget.setBarcode(orderDetl.getBatch()); |
| | | exdOutstockTarget.setGross(BigDecimal.valueOf(bacode.getGross())); |
| | |
| | | } |
| | | } |
| | | for (OrderDetl1 orderDetl : orderDetls) { |
| | | OrderDetl orderDetl1 = orderDetlService.selectItem(orderDetl.getOrderNo(), orderDetl.getMatnr(), null); |
| | | orderDetl1.setUnits(orderDetl.getAnfme() + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits())); |
| | | OrderDetl orderDetl1 = orderDetlService.selectItem(orderDetl.getOrderNo().split("-")[0], orderDetl.getMatnr(), null); |
| | | orderDetl1.setUnits(orderDetl.getAnfme() + (Cools.isEmpty(orderDetl1.getUnits()) ? 0.0 : orderDetl1.getUnits())); |
| | | orderDetl1.setUpdateTime(new Date()); |
| | | orderDetl1Service.updateById(orderDetl); |
| | | orderDetlService.updateById(orderDetl1); |
| | | } |
| | | return SUCCESS; |
| | | } |