| | |
| | | import com.zy.asrs.entity.param.OrderDomainParam; |
| | | import com.zy.asrs.entity.result.WrkTraceVo; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.web.BaseController; |
| | | import com.zy.nc.entity.NccCgCgdhdWms; |
| | | import com.zy.nc.entity.NccSaleDbddWms; |
| | | import com.zy.nc.entity.NccSaleXsfhmxWms; |
| | | import com.zy.nc.entity.NccScZkmxbWms; |
| | | import com.zy.nc.service.NccCgCgdhdWmsService; |
| | | import com.zy.nc.service.NccSaleDbddWmsService; |
| | | import com.zy.nc.service.NccSaleXsfhmxWmsService; |
| | | import com.zy.nc.service.NccScZkmxbWmsService; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private OrderPakoutService orderPakoutService; |
| | | @Autowired |
| | | private OrderDetlPakoutService orderDetlPakoutService; |
| | | @Autowired |
| | | private SnowflakeIdWorker snowflakeIdWorker; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | @Autowired |
| | | private WrkDetlService wrkDetlService; |
| | | @Autowired |
| | | private WrkDetlLogService wrkDetlLogService; |
| | | @Autowired |
| | | private WaitPakinService waitPakinService; |
| | | @Autowired |
| | |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private WrkMastLogService wrkMastLogService; |
| | | |
| | | @Autowired |
| | | private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService; |
| | | @Autowired |
| | | private NccCgCgdhdWmsService nccCgCgdhdWmsService; |
| | | @Autowired |
| | | private NccScZkmxbWmsService nccScZkmxbWmsService; |
| | | @Autowired |
| | | private NccSaleDbddWmsService nccSaleDbddWmsService; |
| | | |
| | | @RequestMapping(value = "/order/nav/list/auth") |
| | | @ManagerAuth |
| | |
| | | if (DetlDto.has(list, dto)) { |
| | | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), |
| | | orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()); |
| | | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); |
| | | item.setAnfme(MathUtils.add(item.getAnfme(), orderDetl.getAnfme())); |
| | | item.setStandby1(param.getDefNumber()); |
| | | if (!orderDetlService.updateById(item)) { |
| | | throw new CoolException("保存订单明细档失败"); |
| | |
| | | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(), |
| | | param.getItemId(), orderDetl.getStandby2(), orderDetl.getStandby3(), |
| | | orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()); |
| | | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); |
| | | item.setAnfme(MathUtils.add(item.getAnfme() , orderDetl.getAnfme())); |
| | | if (!orderDetlService.updateById(item)) { |
| | | throw new CoolException("保存订单明细档失败"); |
| | | } |
| | |
| | | totalQty = totalQty + orderDetl.getAnfme(); |
| | | wrkQty = wrkQty + orderDetl.getWorkQty(); |
| | | endQty = endQty + orderDetl.getQty(); |
| | | double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); |
| | | double issued = Optional.of(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty())).orElse(0.0D); |
| | | if (issued > 0.0) { |
| | | List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null); |
| | | for (LocDetl locDetl : locDetls) { |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @GetMapping("/order/logTransferDBDD/{orderNo}") |
| | | @Transactional |
| | | public R logTransferDBDD(@PathVariable("orderNo") String orderNo) { |
| | | Order orderSou = orderService.selectByNo(orderNo); |
| | | if (!orderSou.getSettle().equals(2L)) { |
| | | return R.error("订单状态不正确,请联系管理员"); |
| | | } |
| | | |
| | | List<OrderDetl> old = orderDetlService.selectByOrderId(orderSou.getId()); |
| | | if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no", orderNo))) { |
| | | throw new CoolException("重整出库订单【orderNo = " + orderNo + "】明细失败"); |
| | | } |
| | | List<WrkDetlLog> wrkDetls = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>() |
| | | .eq("order_no", orderNo)); |
| | | for (WrkDetlLog wrkDetlLog : wrkDetls) { |
| | | WrkDetl wrkDetl = new WrkDetl(); |
| | | wrkDetl.sync(wrkDetlLog); |
| | | |
| | | OrderDetl orderDetl = new OrderDetl(); |
| | | orderDetl.sync(wrkDetl); |
| | | orderDetl.setQty(wrkDetl.getAnfme()); |
| | | orderDetl.setOrderId(orderSou.getId()); |
| | | orderDetl.setOrderNo(orderSou.getOrderNo()); |
| | | orderDetl.setStatus(1); |
| | | orderDetl.setCreateTime(orderSou.getCreateTime()); |
| | | orderDetl.setCreateBy(orderSou.getCreateBy()); |
| | | orderDetl.setUpdateTime(orderSou.getUpdateTime()); |
| | | orderDetl.setUpdateBy(orderSou.getUpdateBy()); |
| | | orderDetl.setId(null); |
| | | //先按照批次匹配,再按照无批次号批次,因为销售发货,批次号可能带,有可能不携带,所以就会有问题;而且考虑到一条订单里如果相同物料,一条带批次,一条不带批次,情况 |
| | | for (OrderDetl xxx : old) { |
| | | if (xxx.beSimilar(wrkDetl)) { |
| | | orderDetl.setRemark(xxx.getRemark()); |
| | | } |
| | | } |
| | | if (Cools.isEmpty(orderDetl.getRemark())) { |
| | | for (OrderDetl xxx : old) { |
| | | if (xxx.beSimilarByWrkDetl(wrkDetl)) { |
| | | orderDetl.setRemark(xxx.getRemark()); |
| | | } |
| | | } |
| | | } |
| | | if (!orderDetlService.insert(orderDetl)) { |
| | | throw new CoolException("重整出库订单【orderNo = " + orderNo + "】明细失败"); |
| | | } |
| | | } |
| | | |
| | | // 修改订单状态 2.作业中 ===>> 4.待上报 |
| | | if (!orderService.updateSettle(orderSou.getId(), 4L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/order/restartSyncOrder") |
| | | @ManagerAuth(memo = "重新同步出库订单") |
| | | public R restartSyncOrder(@RequestBody List<Long> ids) { |
| | | if (ids.isEmpty()) { |
| | | return R.error(); |
| | | } |
| | | OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectById(ids.get(0)); |
| | | if (orderDetlPakout == null) { |
| | | return R.error(); |
| | | } |
| | | |
| | | String orderNoStr = orderDetlPakout.getOrderNo(); |
| | | String[] split = orderNoStr.split("-"); |
| | | String orderNo = split[0]; |
| | | |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().like("order_no", orderNo)); |
| | | if (!wrkDetls.isEmpty()) { |
| | | return R.error("订单已被执行,无法同步"); |
| | | } |
| | | |
| | | List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>().like("order_no", orderNo)); |
| | | if (!wrkDetlLogs.isEmpty()) { |
| | | return R.error("订单已被执行,无法同步"); |
| | | } |
| | | |
| | | List<OrderPakout> orderPakoutList = orderPakoutService.selectList(new EntityWrapper<OrderPakout>() |
| | | .like("order_no", orderNo)); |
| | | if(orderPakoutList.isEmpty()) { |
| | | return R.error("出库订单不存在"); |
| | | } |
| | | OrderPakout orderPakout = orderPakoutList.get(0); |
| | | if (orderPakout.getDocType$().equals("销售发货")) { |
| | | NccSaleXsfhmxWms nccSaleXsfhmxWms = new NccSaleXsfhmxWms(); |
| | | nccSaleXsfhmxWms.setWmsFlag(0); |
| | | nccSaleXsfhmxWmsService.update(nccSaleXsfhmxWms, new EntityWrapper<NccSaleXsfhmxWms>().eq("vbillcode", orderNo)); |
| | | } else if (orderPakout.getDocType$().equals("采购到货")) { |
| | | NccCgCgdhdWms nccCgCgdhdWms = new NccCgCgdhdWms(); |
| | | nccCgCgdhdWms.setWmsFlag(0); |
| | | nccCgCgdhdWmsService.update(nccCgCgdhdWms, new EntityWrapper<NccCgCgdhdWms>().eq("vbillcode", orderNo)); |
| | | } else if (orderPakout.getDocType$().equals("转库-出库")) { |
| | | NccScZkmxbWms nccScZkmxbWms = new NccScZkmxbWms(); |
| | | nccScZkmxbWms.setWmsFlag(0); |
| | | nccScZkmxbWmsService.update(nccScZkmxbWms, new EntityWrapper<NccScZkmxbWms>().eq("vbillcode", orderNo)); |
| | | } else if (orderPakout.getDocType$().equals("调拨出库")) { |
| | | NccSaleDbddWms nccSaleDbddWms = new NccSaleDbddWms(); |
| | | nccSaleDbddWms.setWmsFlag(0); |
| | | nccSaleDbddWmsService.update(nccSaleDbddWms, new EntityWrapper<NccSaleDbddWms>().eq("vbillcode", orderNo)); |
| | | } |
| | | |
| | | orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().like("order_no", orderNo)); |
| | | orderPakoutService.delete(new EntityWrapper<OrderPakout>().like("order_no", orderNo)); |
| | | |
| | | orderDetlService.delete(new EntityWrapper<OrderDetl>().like("order_no", orderNo)); |
| | | orderService.delete(new EntityWrapper<Order>().like("order_no", orderNo)); |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |