1.增加牌号作为唯一物料条件 (当前牌号 批号 包号可以筛选出唯一物料)
2.增加移库接口
3.订单出库可替换物料
4.页面ui完善
| | |
| | | JSONArray jsonArray = JSONArray.parseArray(json.getJSONArray("pla").toJSONString()); |
| | | for (Object o : jsonArray){ |
| | | JSONObject jsonObject = (JSONObject)o; |
| | | String brand = json.get("brand").toString(); |
| | | String brand = jsonObject.get("brand").toString(); |
| | | String batch = jsonObject.get("batch").toString(); |
| | | Integer packageNo = Integer.parseInt(jsonObject.get("packageNo").toString()); |
| | | if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){ |
| | |
| | | String orderDetlId = json.get("orderDetlId").toString(); |
| | | String wrkNo = json.get("wrkNo").toString(); |
| | | Double anfme = Double.parseDouble(json.get("anfme").toString()); |
| | | boolean isReplace = Cools.eq(json.get("replace").toString(),"y"); |
| | | |
| | | if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){ |
| | | return R.error("有参数为空,无法入库"); |
| | | } |
| | | |
| | | mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme); |
| | | mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme,isReplace); |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | String batch = json.get("batch").toString(); |
| | | Integer packageNo = Integer.parseInt(json.get("packageNo").toString()); |
| | | String orderNo = json.get("orderNo").toString(); |
| | | String orderDetlId = json.get("orderDetlId").toString(); |
| | | String plaQtyId = json.get("orderDetlId").toString(); |
| | | String wrkNo = json.get("wrkNo").toString(); |
| | | Double anfme = Double.parseDouble(json.get("anfme").toString()); |
| | | boolean isReplace = !Cools.isEmpty(json.get("replace")) && Cools.eq(json.get("replace").toString(),"y"); |
| | | |
| | | if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){ |
| | | return R.error("有参数为空,无法入库"); |
| | | } |
| | | |
| | | mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme); |
| | | mobileService.plaPakout(brand,locNo,batch,packageNo,orderNo,plaQtyId,wrkNo,anfme,isReplace); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /* |
| | | 无订单拣货出库 |
| | | */ |
| | | @RequestMapping("/plaDetl/packout/noOrder/v1") |
| | | //@ManagerAuth(memo="pla手动出库") |
| | | public R plaPackOutWithoutOrder(@RequestBody List<PlaParam> params){ |
| | | |
| | | for (PlaParam param : params){ |
| | | mobileService.plaPackOutWithoutOrder(param.getBrand(),param.getBatch(),param.getPackageNo(),param.getAnfme()); |
| | | } |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
New file |
| | |
| | | package com.zy.asrs.entity.param; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class PlaParam { |
| | | private String brand; |
| | | private String batch; |
| | | private Integer packageNo; |
| | | private Double anfme; |
| | | } |
| | |
| | | |
| | | void plaPakin(String brand,String locNo, String batch, Integer packageNo, User user); |
| | | |
| | | void plaPakout(String brand,String locNo, String batch, Integer packageNo, String orderNo, String orderDetlId, String wrkNo,Double anfme); |
| | | void plaPakout(String brand,String locNo, String batch, Integer packageNo, String orderNo, String plaQtyId, String wrkNo,Double anfme, boolean isReplace); |
| | | |
| | | void plaPackOutWithoutOrder(String brand, String batch, Integer packageNo, Double anfme ); |
| | | /* |
| | | 获取拣货单信息 |
| | | */ |
| | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void plaPakout(String brand, String locNo, String batch, Integer packageNo, String orderNo, String orderDetlId, String wrkNo, Double anfme) { |
| | | public void plaPakout(String brand, String locNo, String batch, Integer packageNo, String orderNo, String plaQtyId, String wrkNo, Double anfme, boolean isReplace) { |
| | | Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo,brand); |
| | | |
| | | ManPakOut manPakOut = manPakOutService.selectById(wrkNo); |
| | | |
| | | PlaQty plaQty = plaQtyService.selectById(orderDetlId); |
| | | PlaQty plaQty = plaQtyService.selectById(plaQtyId); |
| | | |
| | | //物料替换 |
| | | if(isReplace){ |
| | | replacePla(pla,manPakOut,plaQty); |
| | | }else { |
| | | if(!Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_2) || |
| | | !Cools.eq(pla.getBatch(),manPakOut.getBatch()) || |
| | | !Cools.eq(pla.getPackageNo()+"",manPakOut.getBarcode()) || |
| | | !Cools.eq(pla.getBrand(),manPakOut.getMaktx()) ){ |
| | | throw new CoolException("物料不一致,无法出库" + "批号:" + pla.getBatch() + ",包号:" + pla.getPackageNo() + ",牌号:" + pla.getBrand()); |
| | | } |
| | | } |
| | | |
| | | //更新拣货单信息 |
| | | if(manPakOut.getCount() + anfme > manPakOut.getAnfme()){ |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void plaPackOutWithoutOrder(String brand, String batch, Integer packageNo, Double anfme) { |
| | | Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo,brand); |
| | | if(Cools.isEmpty(pla)){ |
| | | throw new CoolException("当前物料明细不存在"); |
| | | } |
| | | if (!pla.getStatus().equals(GlobleParameter.PLA_STATUS_1) && !pla.getStatus().equals(GlobleParameter.PLA_STATUS_3)){ |
| | | throw new CoolException("当前物料状态无法出库"); |
| | | } |
| | | if(anfme > pla.getWeightAnfme()){ |
| | | throw new CoolException("当前物料剩余库存不足"); |
| | | } |
| | | |
| | | |
| | | pla.setWeightAnfme(pla.getWeightAnfme() - anfme); |
| | | if(pla.getWeightAnfme() > 0){ |
| | | pla.setStatus(GlobleParameter.PLA_STATUS_3); |
| | | }else { |
| | | pla.setStatus(GlobleParameter.PLA_STATUS_4); |
| | | } |
| | | |
| | | plaService.updateById(pla); |
| | | |
| | | SaasUtils.insertLog(1,pla.getLocNo(),pla.getBrand(),anfme,null,null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop()); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public List<ManPakOut> getManPakoutByOrderNo(String orderNo) { |
| | | return manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num",orderNo).eq("status",0)); |
| | | } |
| | | |
| | | public void replacePla(Pla plaNew, ManPakOut manPakOut, PlaQty plaQty){ |
| | | //还原旧物料状态 |
| | | Pla plaOld = plaService.selectByBatchAndPackageNo(manPakOut.getBatch(), Integer.parseInt(manPakOut.getBarcode()), manPakOut.getMaktx()); |
| | | |
| | | plaOld.setStatus(GlobleParameter.PLA_STATUS_1); |
| | | plaOld.setQtyAnfme(0.0); |
| | | |
| | | plaService.updateById(plaOld); |
| | | |
| | | //更新plaQty信息 |
| | | plaQty.setBatch(plaNew.getBatch()); |
| | | plaQty.setBrand(plaNew.getBrand()); |
| | | plaQty.setPackageNo(plaNew.getPackageNo()); |
| | | |
| | | plaQtyService.updateById(plaQty); |
| | | |
| | | //更新拣货单信息 |
| | | manPakOut.setMaktx(plaNew.getBrand()); |
| | | manPakOut.setBatch(plaNew.getBatch()); |
| | | manPakOut.setBarcode(plaNew.getPackageNo() + ""); |
| | | |
| | | manPakOutService.updateById(manPakOut); |
| | | |
| | | } |
| | | } |
| | |
| | | var className = templateDom.attr("class"); |
| | | |
| | | if (className === 'template-barcode') { |
| | | json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"); |
| | | json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"+json.data[i].maktx); |
| | | } else { |
| | | json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"); |
| | | json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"+json.data[i].maktx); |
| | | } |
| | | } |
| | | var tpl = templateDom.html(); |
| | |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/plaQty/list/auth', |
| | | where: { |
| | | brand: data.brand, |
| | | batch: data.batch, |
| | | package_no: data.packageNo |
| | | }, |
| | |
| | | type: 1, |
| | | title: "数量修改", |
| | | content: $('#editDialog').html(), |
| | | area: '700px', |
| | | area: ['700px', top.detailHeight], |
| | | success: function (layero, dIndex) { |
| | | // 明细表格 |
| | | tableIns = table.render({ |
| | |
| | | data: dataList, |
| | | limit: 100, |
| | | even: true, |
| | | height: '400px', |
| | | cellMinWidth: 50, |
| | | cols: [[ |
| | | {field: 'batch', title: '批号', width: 160}, |