src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/ManLocDetlService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/MobileService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ManLocDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/order/order.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -340,4 +340,22 @@ return R.ok("出库成功"); } //平库pda上架 @RequestMapping("/manDetl/in") public R manDetlAdd(@RequestBody JSONObject json){ if (json == null){ return R.error("传入数据为空"); } return mobileService.manDetlIn(json); } //平库pda下架 @RequestMapping("/manDetl/out") public R manDetlDelete(@RequestBody JSONObject json){ if (json == null){ return R.error("传入数据为空"); } return mobileService.manDetlOut(json); } } src/main/java/com/zy/asrs/controller/OpenController.java
@@ -172,24 +172,4 @@ System.out.println(JSON.toJSONString(param1)); } @RequestMapping("/manDetl/in") public R manDetlAdd(@RequestBody JSONObject json){ if (json == null){ return R.error("传入数据为空"); } return openService.manDetlIn(json); } @RequestMapping("/manDetl/out") public R manDetlDelete(@RequestBody JSONObject json){ if (json == null){ return R.error("传入数据为空"); } return openService.manDetlOut(json); } } src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
@@ -83,4 +83,10 @@ List<ManLocDetl> selectAllPage(Map<String, Object> condition); long selectAllPageSize(Map<String, Object> condition); ManLocDetl selectInventory(String LocNo, String Matnr, String batch); int deleteDatailed (String locNo, String matnr,String batch); int increase(Double anfme,String locNo, String matnr,String batch); } src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -62,4 +62,10 @@ Page<ManLocDetl> selectAllPage(Page<ManLocDetl> param); ManLocDetl selectInventory(String LocNo,String Matnr,String batch); int deleteDatailed (String locNo, String matnr,String batch); int increase(Double anfme,String locNo, String matnr,String batch); } src/main/java/com/zy/asrs/service/MobileService.java
@@ -1,6 +1,7 @@ package com.zy.asrs.service; import com.alibaba.fastjson.JSONObject; import com.core.common.R; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.OrderDetl; @@ -38,4 +39,8 @@ void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl, Double curOutQty, Integer ioType, Long userId, Date now); R manDetlIn(JSONObject json); R manDetlOut(JSONObject json); } src/main/java/com/zy/asrs/service/OpenService.java
@@ -46,8 +46,4 @@ void syncMat(MatSyncParam param); R getInOutDetl(); R manDetlIn(JSONObject json); R manDetlOut(JSONObject json); } src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -186,5 +186,20 @@ return param; } @Override public ManLocDetl selectInventory(String LocNo, String Matnr, String batch) { return baseMapper.selectInventory(LocNo,Matnr,batch); } @Override public int deleteDatailed(String locNo, String matnr, String batch) { return baseMapper.deleteDatailed(locNo,matnr,batch); } @Override public int increase(Double anfme,String locNo, String matnr, String batch) { return baseMapper.increase(anfme,locNo,matnr,batch); } } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1,6 +1,7 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -21,6 +22,7 @@ import com.zy.common.model.MesCombParam; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -58,9 +60,9 @@ @Autowired private OpenService openService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; private DocTypeService docTypeService; @Autowired private ApiLogService apiLogService; private ManPakOutService manPakOutService; @Autowired private BasCrnpService basCrnpService; @Autowired @@ -354,163 +356,6 @@ } // @Override // @Transactional // public void packComb(CombParam param, Long userId) { // if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { // throw new CoolException(BaseRes.PARAM); // } // // 判断是否有相同条码的数据 // if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). // eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { // throw new CoolException(param.getBarcode() + "数据正在进行入库"); // } // Date now = new Date(); // // boolean packDown = Parameter.get().getPackDown().equals("true"); // // // 无单组托 // if (Cools.isEmpty(param.getOrderNo())) { // // // 生成入库通知档 // List<DetlDto> detlDtos = new ArrayList<>(); // param.getCombMats().forEach(elem -> { // // 打包上线数据校验 // if (packDown) { // Pack pack = packService.selectByBarcode(elem.getMatnr()); // if (pack == null) { // throw new CoolException(elem.getMatnr() + "条码冗余,请检查!"); // } // if (pack.getSettle() != 1) { // throw new CoolException(elem.getMatnr() + "条码已下线,请检查!"); // } // } // Mat analyse = MatUtils.analyseMat(elem.getMatnr()); // // 条码、物料代码、序列号、数量 // DetlDto detlDto = new DetlDto(elem.getMatnr(), analyse.getMatnr(), analyse.getBarcode(), elem.getAnfme()); //// DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); // if (DetlDto.has(detlDtos, detlDto)) { // DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); // assert one != null; // one.setAnfme(one.getAnfme() + detlDto.getAnfme()); // } else { // detlDtos.add(detlDto); // } // }); // // if (packDown) { // MesCombParam mesCombParam = new MesCombParam(); // mesCombParam.setZpallet(param.getBarcode()); // mesCombParam.setPakinTime(DateUtils.convert(now)); // mesCombParam.setLgort("5008"); // mesCombParam.setPlantCode("5000"); // mesCombParam.setFromCode("5012-20"); // mesCombParam.setStationCode("JJQ-PFZPDB-XX"); // for (DetlDto detlDto : detlDtos) { // mesCombParam.getList().add(new MesCombParam.Detl(detlDto.getOrderNo(), detlDto.getAnfme())); // } // String response = ""; // boolean success = false; // try { // response = new HttpHandler.Builder() // .setUri(MesConstant.URL) // .setPath(MesConstant.PACK_DOWN_URL) // .setJson(JSON.toJSONString(mesCombParam)) // .build() // .doPost(); // JSONObject jsonObject = JSON.parseObject(response); // if (jsonObject.getInteger("code").equals(200)) { // success = true; // } else if (jsonObject.getInteger("code").equals(500)) { // log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(mesCombParam), response); // throw new CoolException(jsonObject.getString("msg")); // } else { // log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(mesCombParam), response); // throw new CoolException("上报mes系统失败"); // } // } catch (Exception e) { // log.error("fail", e); // throw new CoolException(e.getMessage()); // } finally { // try { // // 保存接口日志 // apiLogService.save( // "打包下线帮托上报", // MesConstant.URL + MesConstant.PACK_DOWN_URL, // null, // "127.0.0.1", // JSON.toJSONString(mesCombParam), // response, // success // ); // } catch (Exception e) { log.error("", e); } // } // // } // // // 生成入库单据 // String orderNo = "PACK" + snowflakeIdWorker.nextId(); // OpenOrderPakinParam openParam = new OpenOrderPakinParam(); // openParam.setOrderNo(orderNo); // openParam.setOrderTime(DateUtils.convert(now)); // openParam.setOrderType("打包入库单"); // openParam.setOrderDetails(detlDtos); // openService.pakinOrderCreate(openParam); // Order order = orderService.selectByNo(orderNo); // if (null == order) { // throw new CoolException("生成单据失败"); // } // if (!orderService.updateSettle(order.getId(), 2L, userId)) { // throw new CoolException("修改单据状态失败"); // } // // // 生成入库通知档 // for (DetlDto detlDto : detlDtos) { // // // 修改作业数量 ---------------------------------------- // // 订单明细数量校验 // OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), detlDto.getMatnr(), detlDto.getBatch()); // if (detlDto.getAnfme() > orderDetl.getEnableQty()) { // throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); // } // // 修改订单作业数量 // if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { // throw new CoolException("修改单据作业数量失败"); // } // // // 保存入库通知档 // Mat mat = matService.selectByMatnr(detlDto.getMatnr()); // if (Cools.isEmpty(mat)) { // throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); // } // WaitPakin waitPakin = new WaitPakin(); // waitPakin.sync(mat); // waitPakin.setOrderNo(orderNo); // waitPakin.setBatch(detlDto.getBatch()); // waitPakin.setZpallet(param.getBarcode()); // 托盘码 // waitPakin.setIoStatus("N"); // 入出状态 // waitPakin.setAnfme(detlDto.getAnfme()); // 数量 // waitPakin.setStatus("Y"); // 状态 // waitPakin.setAppeUser(userId); // waitPakin.setAppeTime(now); // waitPakin.setModiUser(userId); // waitPakin.setModiTime(now); // if (!waitPakinService.insert(waitPakin)) { // throw new CoolException("保存入库通知档失败"); // } // // 修改打包数据状态 // Pack pack = packService.selectByBarcode(detlDto.getOrderNo()); // pack.setSettle(2L); // pack.setUpdateTime(now); // pack.setUpdateBy(userId); // if (!packService.updateById(pack)) { // throw new CoolException("修改打包数据异常"); // } // } // // } // } @Override @Transactional public void pakoutByOrder(JSONObject param, Long userId) { @@ -648,4 +493,192 @@ throw new CoolException(locDetl.getLocNo() + "库位不是在库状态"); } } @Transactional @Override public R manDetlIn(JSONObject json) { Date date = new Date(); String jsonLocNo = (String) json.get("locNo"); Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); JSONArray combMats = json.getJSONArray("combMats"); for (int i = 0; i < combMats.size(); i++) { OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class); //查订单 Order order = orderService.selectOne(new EntityWrapper<Order>() .eq("order_no", jsonOrderDetl.getOrderNo())); if (Cools.isEmpty(node, order)) { return R.error("参数为空"); } //判断订单类型是否是入库 DocType docType=docTypeService.selectById(order.getDocType()); if(docType.getPakin()!=1 || docType.getStatus()!=1){ return R.error("该订单是出库订单,无法入库"); } OrderDetl orderDetl = orderDetlService.selectItem(jsonOrderDetl.getOrderNo(),jsonOrderDetl.getMatnr(),jsonOrderDetl.getBatch()); if (Cools.isEmpty(orderDetl)) { return R.error("单据明细有误,请检查"); } if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getWorkQty()) < 0) { return R.error("入库数量大于可入数量"); } //查询平库中是否有一样的物料号,有的话直接增加数量 ManLocDetl checkManLocDetl = manLocDetlService.selectInventory(jsonLocNo,orderDetl.getMatnr(),jsonOrderDetl.getBatch()); if (checkManLocDetl == null) { ManLocDetl manLocDetl = new ManLocDetl(); Synchro.Copy(orderDetl, manLocDetl); manLocDetl.setLocNo(node.getName()); manLocDetl.setNodeId(node.getId()); manLocDetl.setMatnr(orderDetl.getMatnr()); manLocDetl.setMaktx(jsonOrderDetl.getMaktx()); manLocDetl.setAnfme(jsonOrderDetl.getAnfme()); manLocDetl.setModiTime(date); manLocDetl.setCreateTime(date); manLocDetl.setBatch(jsonOrderDetl.getBatch()); if(!manLocDetlService.insert(manLocDetl)){ return R.error("修改平库物料失败!"); } } else { if(manLocDetlService.increase(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme(), jsonOrderDetl.getOrderNo(), jsonOrderDetl.getMaktx(), jsonOrderDetl.getBatch())<=0){ return R.error("修改平库物料失败!"); } } orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme()); orderDetl.setWorkQty(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme()); orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); //更新订单状态 List<OrderDetl> orderDetls=orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",order.getOrderNo())); order.setSettle(2L); boolean log=true; for (OrderDetl orderDetl1: orderDetls) { //工作中的数量小于总订单数时,订单状态改为2,作业中 if(orderDetl1.getQty() < orderDetl.getAnfme()){ log=false; } } if(log){ order.setSettle(4L); } if(!orderService.updateById(order)){ return R.error("更新订单状态失败"); } orderService.checkComplete(order.getOrderNo()); } return R.ok("上架完成"); } @Transactional @Override public R manDetlOut(JSONObject json) { Date date = new Date(); String jsonLocNo = (String) json.get("locNo"); Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); JSONArray combMats = json.getJSONArray("combMats"); for (int i = 0; i < combMats.size(); i++) { OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class); Order order = orderService.selectOne(new EntityWrapper<Order>() .eq("order_no", jsonOrderDetl.getOrderNo())); //判断订单类型是否是出库 DocType docType=docTypeService.selectById(order.getDocType()); if(docType.getPakout()!=1 || docType.getStatus()!=1){ return R.error("该订单是入库订单,无法出库"); } if (Cools.isEmpty(node, order)) { return R.error("参数为空"); } OrderDetl orderDetl = orderDetlService.selectItem(jsonOrderDetl.getOrderNo(),jsonOrderDetl.getMatnr(),jsonOrderDetl.getMaktx()); if (Cools.isEmpty(orderDetl)) { return R.error("单据明细有误,请检查"); } EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>(); manPakOutEntityWrapper.eq("loc_no",jsonLocNo); manPakOutEntityWrapper.eq("matnr",jsonOrderDetl.getMatnr()); ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper); //获取拣货单中的对应的订单 if(manPakOut.getCount() == null){ manPakOut.setCount(0); } // if (jsonOrderDetl.getAnfme() > manPakOut.getAnfme()) { //判断工作数量是否大于拣货单的数量 // return R.error("出库数量大于拣货单总数量"); // } if (jsonOrderDetl.getAnfme() > (manPakOut.getAnfme()-manPakOut.getCount())) { //判断工作数量是否大于拣货单剩余可出的数量 return R.error("出库数量大于拣货单剩余可出数量"); } if (orderDetl.getWorkQty() - orderDetl.getQty() <jsonOrderDetl.getAnfme() ){ return R.error("出库数量大于单据剩余可出数量"); } //查询平库中是否有一样的物料号 ManLocDetl checkManLocDetl = manLocDetlService.selectInventory(jsonLocNo,orderDetl.getMatnr(),orderDetl.getBatch()); if (checkManLocDetl == null) { return R.error("该库位没有出库的物料信息"); } if (jsonOrderDetl.getAnfme() > checkManLocDetl.getAnfme()) { return R.error("出库数量大于可出数量"); } Double finalQty = checkManLocDetl.getAnfme() - jsonOrderDetl.getAnfme(); if (finalQty < 0){ // if(manLocDetlService.deleteDatailed(jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch())<=0) { return R.error("数量有误!"); // } }else { if(manLocDetlService.increase(finalQty, jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch())<=0){ return R.error("修改平库物料失败!"); } } orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme()); orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); //更新订单状态 List<OrderDetl> orderDetls=orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",order.getOrderNo())); order.setSettle(2L); boolean log=true; for (OrderDetl orderDetl1: orderDetls) { //工作中的数量小于总订单数时,订单状态改为2,作业中 if(orderDetl1.getQty() < orderDetl.getAnfme()){ log=false; } } if(log){ order.setSettle(4L); } if(!orderService.updateById(order)){ return R.error("更新订单状态失败"); } if(manPakOut.getCount() == null){ manPakOut.setCount(0); } manPakOut.setCount(manPakOut.getCount()+jsonOrderDetl.getAnfme().intValue()); if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){ return R.error("更新拣货单完成数目失败"); } if (manPakOut.getAnfme().intValue() == manPakOut.getCount()){ manPakOut.setStatus(1); if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){ return R.error("更新拣货单状态失败"); } } EntityWrapper<ManLocDetl> manLocDetlEntityWrapper = new EntityWrapper<>(); manLocDetlEntityWrapper.eq("loc_no",manPakOut.getLocNo()); manLocDetlEntityWrapper.eq("matnr",manPakOut.getMatnr()); if (checkManLocDetl.getAnfme().intValue() == manPakOut.getCount()){ if(!manLocDetlService.delete(manLocDetlEntityWrapper)){ return R.error("删除平库库存失败"); } }else{ checkManLocDetl.setStatus(1); if(!manLocDetlService.update(checkManLocDetl,manLocDetlEntityWrapper)){ return R.error("更新平库库存状态失败"); } } } return R.ok("下架完成"); } } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -157,52 +157,6 @@ } } // @Override // @Transactional // public List<OpenOrderCompeteResult> pakinOrderComplete(OpenOrderCompleteParam param) { // List<OpenOrderCompeteResult> results = new ArrayList<>(); // if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // // 指定订单 // Order order = orderService.selectByNo(param.getOrderNo()); // if (null != order) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // if (order.getSettle() == 4L) { // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // } else { // // 所有订单 // List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); // for (Order order : orders) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // return results; // } @Override @Transactional public void pakoutOrderCreate(OpenOrderPakoutParam param) { @@ -293,51 +247,6 @@ } } } // @Override // public List<OpenOrderCompeteResult> pakoutOrderComplete(OpenOrderCompleteParam param) { // List<OpenOrderCompeteResult> results = new ArrayList<>(); // if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // // 指定订单 // Order order = orderService.selectByNo(param.getOrderNo()); // if (null != order) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // if (order.getSettle() == 4L) { // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // } else { // // 所有订单 // List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); // for (Order order : orders) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // return results; // } @Override @Transactional @@ -576,124 +485,6 @@ public R getInOutDetl() { List<InOutCountDto> top100 = wrkMastService.selectTop100(); return R.ok().add(top100); } @Transactional @Override public R manDetlIn(JSONObject json) { Date date = new Date(); String jsonLocNo = (String) json.get("locNo"); Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); String jsonOrderNo = (String) json.get("orderNo"); Order order = orderService.selectOne(new EntityWrapper<Order>() .eq("order_no", jsonOrderNo)); if (Cools.isEmpty(node, order)) { return R.error("参数为空"); } JSONArray combMats = json.getJSONArray("combMats"); for (int i = 0; i < combMats.size(); i++) { OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class); OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() .eq("order_no", jsonOrderNo)); if (Cools.isEmpty(orderDetl)) { return R.error("单据明细有误,请检查"); } if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getQty()) < 0) { return R.error("入库数量大于可入数量"); } ManLocDetl checkManLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) .eq("matnr", orderDetl.getMatnr())); if (checkManLocDetl == null) { ManLocDetl manLocDetl = new ManLocDetl(); Synchro.Copy(orderDetl, manLocDetl); manLocDetl.setLocNo(node.getName()); manLocDetl.setNodeId(node.getId()); manLocDetl.setMatnr(orderDetl.getMatnr()); manLocDetl.setMaktx(orderDetl.getMaktx()); manLocDetl.setAnfme(orderDetl.getAnfme()); manLocDetl.setModiTime(date); manLocDetl.setCreateTime(date); manLocDetlService.insert(manLocDetl); } else { checkManLocDetl.setAnfme(checkManLocDetl.getAnfme() + orderDetl.getAnfme()); checkManLocDetl.setModiTime(date); manLocDetlService.update(checkManLocDetl, new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) .eq("matnr", orderDetl.getMatnr())); } orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme()); orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); } orderService.checkComplete(order.getOrderNo()); return R.ok("上架完成"); } @Transactional @Override public R manDetlOut(JSONObject json) { Date date = new Date(); String jsonLocNo = (String) json.get("locNo"); Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); String jsonOrderNo = (String) json.get("orderNo"); Order order = orderService.selectOne(new EntityWrapper<Order>() .eq("order_no", jsonOrderNo)); if (Cools.isEmpty(node, order)) { return R.error("参数为空"); } JSONArray combMats = json.getJSONArray("combMats"); for (int i = 0; i < combMats.size(); i++) { OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class); OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() .eq("order_no", jsonOrderNo)); if (Cools.isEmpty(orderDetl)) { return R.error("单据明细有误,请检查"); } EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>(); manPakOutEntityWrapper.eq("loc_no",jsonLocNo); manPakOutEntityWrapper.eq("matnr",jsonOrderDetl.getMatnr()); ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper); //获取拣货单中的对应的订单 if (jsonOrderDetl.getAnfme() > (manPakOut.getAnfme()-manPakOut.getCount())) { //判断工作数量是否大于拣货单剩余可出的数量 return R.error("出库数量大于拣货单剩余可出数量"); } ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) .eq("matnr", orderDetl.getMatnr())); if (manLocDetl == null) { return R.error("该库位没有出库的物料信息"); } if (jsonOrderDetl.getAnfme() > manLocDetl.getAnfme()) { return R.error("出库数量大于可出数量"); } Double finalQty = manLocDetl.getAnfme() - jsonOrderDetl.getAnfme(); if (finalQty <= 0){ manLocDetlService.delete(new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) .eq("matnr", orderDetl.getMatnr())); }else { manLocDetl.setAnfme(finalQty); manLocDetl.setModiTime(date); manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) .eq("matnr", orderDetl.getMatnr())); } orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme()); orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); orderService.checkComplete(order.getOrderNo()); } return R.ok("下架完成"); } } src/main/resources/mapper/ManLocDetlMapper.xml
@@ -325,4 +325,49 @@ where node_id = #{nodeId} ; </update> <select id="selectInventory" resultMap="BaseResultMap"> select top 1 * from man_loc_detl where loc_no=#{LocNo} and 1=1 and matnr=#{Matnr} <choose> <when test="batch != null and batch != ''"> and batch = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> </choose> </select> <delete id="deleteDatailed"> delete from man_loc_detl where loc_no = #{locNo} and matnr = #{matnr} <choose> <when test="batch != null and batch != ''"> and batch = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> </choose> </delete> <update id="increase"> update man_loc_detl set anfme= #{anfme} , modi_time = getdate() where 1=1 and loc_no = #{locNo} and matnr = #{matnr} <choose> <when test="batch != null and batch!='' "> and maktx = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> </choose> </update> </mapper> src/main/webapp/static/js/order/order.js
@@ -193,7 +193,7 @@ {field: 'maktx', title: '商品名称', width: 160}, {field: 'batch', title: '批号'}, {field: 'anfme', title: '数量'}, // {field: 'workQty', title: '作业数量'}, {field: 'workQty', title: '作业数量'}, {field: 'qty', title: '完成数量', style: 'font-weight: bold'}, // {field: 'unit', title: '单位'}, // {