| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import zy.cloud.wms.common.model.BillDto; |
| | | import zy.cloud.wms.common.model.MatnrDto; |
| | | import zy.cloud.wms.common.model.OrderStoDto; |
| | | import zy.cloud.wms.common.service.MainService; |
| | |
| | | private CombService combService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private CustOrderService custOrderService; |
| | | @Autowired |
| | | private PakoutService pakoutService; |
| | | @Autowired |
| | |
| | | } |
| | | } |
| | | |
| | | // 上报给erp |
| | | List<BillDto> dtos = new ArrayList<>(); |
| | | for (MatnrDto dto : param.getMats()) { |
| | | BillDto billDto = new BillDto(); |
| | | billDto.setMatnr(dto.getMatnr()); |
| | | billDto.setQty(dto.getCount()); |
| | | dtos.add(billDto); |
| | | } |
| | | Integer docId = Optional.ofNullable(param.getDocType()).orElse(34); |
| | | String docNum = String.valueOf(snowflakeIdWorker.nextId()); |
| | | switch (docId) { |
| | | case 34: // 采购单 |
| | | docNum = "PU-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15); |
| | | break; |
| | | case 45: // 销售退货单 |
| | | docNum = "SR-" + String.valueOf(snowflakeIdWorker.nextId()).substring(0, 15); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!erpService.uploadBill(dtos, docId, docNum)) { |
| | | throw new CoolException("无法上报至erp"); |
| | | } |
| | | return R.ok("入库成功"); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | // 上报给erp |
| | | List<BillDto> dtos = new ArrayList<>(); |
| | | for (Comb comb : combs) { |
| | | BillDto billDto = new BillDto(); |
| | | billDto.setMatnr(comb.getMatnr()); |
| | | billDto.setQty(comb.getAnfme()); |
| | | dtos.add(billDto); |
| | | } |
| | | if (!erpService.uploadBill(dtos, param.getDocType(), docNum)) { |
| | | throw new CoolException("无法上报至erp"); |
| | | } |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | } |
| | | if (complete) { |
| | | // 修改单据状态 |
| | | if (!custOrderService.updateStatus(pakout.getDocNum(), 4)) { |
| | | if (!orderService.updateSettle(pakout.getDocNum(), 4L)) { |
| | | throw new CoolException("修改单据状态失败"); |
| | | } |
| | | } |
| | |
| | | @Transactional |
| | | public R cancelPakout(String wrkNo, Long userId) { |
| | | Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo)); |
| | | // if (null != pakout) { |
| | | // LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr()); |
| | | // if (locDetl == null) { |
| | | // LocDetl oldLocDetl = new LocDetl(); |
| | | // VersionUtils.setLocDetl(oldLocDetl, pakout); |
| | | // oldLocDetl.setCreateTime(new Date()); |
| | | // oldLocDetl.setCreateBy(userId); |
| | | // oldLocDetl.setUpdateTime(new Date()); |
| | | // oldLocDetl.setUpdateBy(userId); |
| | | // if (!locDetlService.insert(oldLocDetl)) { |
| | | // throw new CoolException("恢复库存明细失败"); |
| | | // } |
| | | // } else { |
| | | // if (!locDetlService.incrementStock(locDetl.getNodeId(), locDetl.getMatnr(), pakout.getAnfme())) { |
| | | // throw new CoolException("恢复库存明细失败"); |
| | | // } |
| | | // } |
| | | // } else { |
| | | // return R.error("拣货单已失效,取消失败!"); |
| | | // } |
| | | if (!pakoutService.delete(new EntityWrapper<Pakout>().eq("wrk_no", pakout.getWrkNo()))) { |
| | | throw new CoolException("删除拣货单失败"); |
| | | } |
| | | |
| | | // 取消销售订单 |
| | | List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", pakout.getDocNum())); |
| | | if (Cools.isEmpty(pakouts)){ |
| | | // 修改单据状态 |
| | | if (!custOrderService.updateStatus(pakout.getDocNum(), 3)) { |
| | | if (!orderService.updateSettle(pakout.getDocNum(), 3L)) { |
| | | throw new CoolException("修改单据状态失败"); |
| | | } |
| | | } |
| | |
| | | if (!checkService.updateById(check)) { |
| | | throw new CoolException("修改盘点记录状态失败"); |
| | | } |
| | | |
| | | // 上报给erp |
| | | List<BillDto> dtos = new ArrayList<>(); |
| | | BillDto billDto = new BillDto(); |
| | | billDto.setMatnr(check.getMatnr()); |
| | | billDto.setQty(Math.abs(check.getDiffQty())); |
| | | dtos.add(billDto); |
| | | if (!erpService.uploadBill(dtos, docId.intValue(), docNum)) { |
| | | throw new CoolException("无法上报至erp"); |
| | | } |
| | | |
| | | return R.ok(); |
| | | } |
| | | |