|  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONArray; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.zy.asrs.common.wms.entity.OrderDetl; | 
|---|
|  |  |  | import com.zy.asrs.common.wms.service.OrderDetlService; | 
|---|
|  |  |  | import com.zy.asrs.common.wms.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.common.wms.service.*; | 
|---|
|  |  |  | import com.zy.asrs.framework.annotations.ManagerAuth; | 
|---|
|  |  |  | import com.zy.asrs.framework.common.Cools; | 
|---|
|  |  |  | import com.zy.asrs.framework.common.R; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private OrderDetlService orderDetlService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WaitPakinService waitPakinService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private OrderService orderService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkMastService wrkMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DocTypeService docTypeService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkDetlService wrkDetlService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WorkService workService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocDetlService locDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderDetl/forOrderNo/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok(orderDetlService.page(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderDetl/forOrderNo/auth/v1") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R forOrderNoV1(@RequestParam String orderNo,@RequestParam String locNo,@RequestParam String batch,@RequestParam String matnr) { | 
|---|
|  |  |  | LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>() | 
|---|
|  |  |  | .eq(LocDetl::getLocNo, locNo) | 
|---|
|  |  |  | .eq(LocDetl::getHostId, getHostId()) | 
|---|
|  |  |  | .eq(LocDetl::getMatnr, matnr); | 
|---|
|  |  |  | List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper); | 
|---|
|  |  |  | if (Cools.isEmpty(detls)){ | 
|---|
|  |  |  | return R.error("未查询到库存数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (detls.size()>1){ | 
|---|
|  |  |  | return R.error("库存数据大于1条,为保证数据准确性,请用正常流程出库!!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>() | 
|---|
|  |  |  | .eq(OrderDetl::getMatnr, matnr) | 
|---|
|  |  |  | .eq(OrderDetl::getHostId, getHostId()) | 
|---|
|  |  |  | .like(OrderDetl::getOrderNo, orderNo) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (Cools.isEmpty(orderDetlList)){ | 
|---|
|  |  |  | return R.error("未查询到此订单此物料数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (orderDetlList.size()>1){ | 
|---|
|  |  |  | return R.error("此订单此物料数据数据大于1条,为保证数据准确性,请用正常流程出库!!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(OrderDetl orderDetl:orderDetlList){ | 
|---|
|  |  |  | double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); | 
|---|
|  |  |  | orderDetl.setAnfme(count); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(orderDetlList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderDetl/add/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | orderDetlService.save(orderDetl); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @RequestMapping(value = "/order/cancel/wrk/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R cancelWrk(String orderId) { | 
|---|
|  |  |  | Order order = orderService.getById(orderId); | 
|---|
|  |  |  | DocType docType = docTypeService.getById(order.getDocType()); | 
|---|
|  |  |  | if (null != docType && docType.getPakin() == 1) { | 
|---|
|  |  |  | List<WaitPakin> waitPakinList = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getOrderNo, order.getOrderNo())); | 
|---|
|  |  |  | if (!Cools.isEmpty(waitPakinList)){ | 
|---|
|  |  |  | for (WaitPakin entity : waitPakinList){ | 
|---|
|  |  |  | List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("barcode", entity.getZpallet())); | 
|---|
|  |  |  | if(!Cools.isEmpty(wrkMasts) || wrkMasts.size() > 0){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | waitPakinService.removeById(entity.getId()); | 
|---|
|  |  |  | //订单关联,修改订单作业数量 | 
|---|
|  |  |  | if (!Cools.isEmpty(entity.getOrderNo())) { | 
|---|
|  |  |  | if (!orderDetlService.decrease(entity.getOrderNo(),entity.getHostId(), entity.getMatnr(), entity.getBatch(), entity.getAnfme())) { | 
|---|
|  |  |  | return R.error("订单数据回滚失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (null != docType && docType.getPakout() == 1) { | 
|---|
|  |  |  | List<WrkDetl> wrkDetlList = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getOrderNo, order.getOrderNo())); | 
|---|
|  |  |  | if (!Cools.isEmpty(wrkDetlList)){ | 
|---|
|  |  |  | List<Integer> wrkNoList = new ArrayList<>(); | 
|---|
|  |  |  | for (WrkDetl wrkDetl:wrkDetlList){ | 
|---|
|  |  |  | if (!wrkNoList.contains(wrkDetl.getWrkNo())){ | 
|---|
|  |  |  | wrkNoList.add(wrkDetl.getWrkNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (Integer wrkNo:wrkNoList){ | 
|---|
|  |  |  | List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("wrk_no", wrkNo)); | 
|---|
|  |  |  | if (wrkMasts.size()==1){ | 
|---|
|  |  |  | if (wrkMasts.get(0).getWrkSts()==101){ | 
|---|
|  |  |  | workService.cancelWrkMast(wrkNo.toString(), getUserId(), getHostId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderDetl/update/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|