| | |
| | | import com.zy.asrs.service.AgvBasDevpService; |
| | | import com.zy.asrs.service.AgvMobileService; |
| | | import com.zy.asrs.service.AgvWorkService; |
| | | import com.zy.asrs.service.OrderDetlService; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | private AgvBasDevpService agvBasDevpService; |
| | | @Autowired |
| | | private AgvWorkService workService; |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | |
| | | |
| | | /* |
| | |
| | | combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getQty()); |
| | | combMat.setMaktx(orderDetl.getMaktx()); |
| | | combMat.setSpecs(orderDetl.getSpecs()); |
| | | combMat.setCsocode(orderDetl.getColor()); |
| | | combMat.setIsoseq(orderDetl.getOrigin()); |
| | | combMats.add(combMat); |
| | | } |
| | | combParam.setCombMats(combMats); |
| | |
| | | if (issued <= 0.0D) { continue; } |
| | | |
| | | //先找AGV的库存,如果返回的issued大于0,则去四项库找 |
| | | issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued); |
| | | issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); |
| | | |
| | | //从四项库的库存里面找, |
| | | issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued); |
| | | issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); |
| | | |
| | | if (issued > 0) { |
| | | LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); |
| | |
| | | continue; |
| | | } |
| | | //先找AGV的库存,如果返回的issued大于0,则去四项库找 |
| | | issued = agvLocDetlService.queryStockAndSetLocDto(vo.getMatnr(),vo.getBatch(),JSON.toJSONString(vo.getOrderDtos()),locDtoList,issued); |
| | | issued = agvLocDetlService.queryStockAndSetLocDto(vo.getMatnr(),vo.getBatch(),JSON.toJSONString(vo.getOrderDtos()),locDtoList,issued, vo.getCsocode(), vo.getIsoseq()); |
| | | //从四项库的库存里面找, |
| | | issued = locDetlService.queryStockAndSetLocDto(vo.getMatnr(),vo.getBatch(),JSON.toJSONString(vo.getOrderDtos()),locDtoList,issued); |
| | | issued = locDetlService.queryStockAndSetLocDto(vo.getMatnr(),vo.getBatch(),JSON.toJSONString(vo.getOrderDtos()),locDtoList,issued, vo.getCsocode(), vo.getIsoseq()); |
| | | |
| | | if (issued > 0) { |
| | | LocDto locDto = new LocDto(null, vo.getMatnr(), vo.getMaktx(), vo.getBatch(), JSON.toJSONString(vo.getOrderDtos()), issued); |
| | |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | |
| | | //待出库数量 |
| | | private Double amount; |
| | | |
| | | public Double getAmount() { |
| | | return anfme - qty; |
| | | } |
| | | |
| | | public OrderDetl() {} |
| | | |
| | | public OrderDetl(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { |
| | |
| | | @Data |
| | | public static class CombMat { |
| | | |
| | | //料想码 |
| | | private String containerCode; |
| | | |
| | | //销售订单号 |
| | | private String csocode; |
| | | |
| | | //销售订单行号 |
| | | private String isoseq; |
| | | |
| | | // 物料编号 |
| | | private String matnr; |
| | | |
| | |
| | | // 物料编号 |
| | | private String matnr; |
| | | |
| | | //料想码 |
| | | private String containerCode; |
| | | |
| | | // 序列码 |
| | | private String batch; |
| | | |
| | | // 物料数量 |
| | | private Double anfme; |
| | | |
| | | //销售订单号 |
| | | private String csocode; |
| | | |
| | | //销售订单行号 |
| | | private String isoseq; |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | // 数量 |
| | | private Double count; |
| | | |
| | | // |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | public void addLocDetlInfo(String locNo, int taskCode); |
| | | |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued); |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq); |
| | | |
| | | public void updateStock(String sourceLoc, String targetLoc); |
| | | |
| | |
| | | |
| | | List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos); |
| | | |
| | | double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued); |
| | | double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq); |
| | | |
| | | Double queryStockAnfme(String matnr, String batch); |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued) { |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) { |
| | | //根据物料号和批次找到对应的库存,并且按照修改时间排序 |
| | | Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time"); |
| | | if(Cools.isEmpty(batch)){ |
| | | wrapper.isNull("batch"); |
| | | }else { |
| | | wrapper.eq("batch",batch); |
| | | } |
| | | |
| | | wapperSetCondition(wrapper,"batch",batch); |
| | | wapperSetCondition(wrapper,"three_code",csocode); |
| | | wapperSetCondition(wrapper,"dead_time",isoseq); |
| | | |
| | | // if(Cools.isEmpty(batch)){ |
| | | // wrapper.isNull("batch"); |
| | | // }else { |
| | | // wrapper.eq("batch",batch); |
| | | // } |
| | | // if(!Cools.isEmpty(csocode)){ |
| | | // wrapper.eq("three_code",csocode); |
| | | // } |
| | | // if(Cools.isEmpty(isoseq)){ |
| | | // wrapper.eq("dead_time",isoseq); |
| | | // } |
| | | List<AgvLocDetl> agvLocDetls = this.selectList(wrapper); |
| | | |
| | | for (AgvLocDetl agvLocDetl: agvLocDetls) { |
| | |
| | | |
| | | return agvStaNos; |
| | | } |
| | | |
| | | private void wapperSetCondition(Wrapper wrapper,String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | | } |
| | | } |
| | |
| | | checkOrderQty(order,combMat); |
| | | } |
| | | |
| | | DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme()); |
| | | DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq()); |
| | | //同一托盘下相同物料信息和批号转为一个入库通知档 |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),null); |
| | | assert one != null; |
| | | one.setAnfme(one.getAnfme() + detlDto.getAnfme()); |
| | | } else { |
| | |
| | | waitPakin.setIoStatus("N"); // 入出状态 |
| | | waitPakin.setAnfme(detlDto.getAnfme()); // 数量 |
| | | waitPakin.setStatus("Y"); // 状态 |
| | | |
| | | ////销售订单号 |
| | | waitPakin.setThreeCode(detlDto.getCsocode()); |
| | | //销售订单行号 |
| | | waitPakin.setDeadTime(detlDto.getIsoseq()); |
| | | |
| | | |
| | | waitPakin.setAppeUser(userId); |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | |
| | | //生成工作档明细 |
| | | //createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId); |
| | | agvWaitPakinList.forEach(wp -> { |
| | | createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getZpallet(),now,userId); |
| | | createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getZpallet(),now,userId,wp.getThreeCode(),wp.getDeadTime()); |
| | | }); |
| | | //更新源站点信息 |
| | | updateAgvBasDevp(agvBasDevp,"R"); |
| | |
| | | String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); |
| | | String batch = taskDto.getLocDtos().get(0).getBatch(); |
| | | |
| | | String csocode = agvLocDetl.getThreeCode(); |
| | | String isoseq = agvLocDetl.getDeadTime(); |
| | | |
| | | //判断是否全板出库 |
| | | int ioType = isPakOut(sourceLocNo,anfme) ? 101 : 103; |
| | | //生成工作档 |
| | | AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,barcode,now,userId); |
| | | //生成工作档明细 |
| | | createWrkDetlReWrite(mantr,wrkMast.getWrkNo(),orderNo,batch,anfme,barcode,now,userId); |
| | | createWrkDetlReWrite(mantr,wrkMast.getWrkNo(),orderNo,batch,anfme,barcode,now,userId,csocode,isoseq); |
| | | //修改订单信息 |
| | | modifyOrderDetl(taskDto.getLocDtos().get(0), userId); |
| | | //更新源站点信息 |
| | |
| | | //生成工作党 |
| | | AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getZpallet(), now, userId); |
| | | //生成工作明细档 |
| | | createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId); |
| | | createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); |
| | | //修改库位信息 |
| | | updateAgvLocMast(agvLocMast,"P"); |
| | | //修改站点信息 |
| | |
| | | //生成移库工作档 |
| | | AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getZpallet(), now, userId); |
| | | //生成工作党明细 |
| | | createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId); |
| | | createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime()); |
| | | //修改目标库位状态 |
| | | updateAgvLocMast(targetLocMast,"S"); |
| | | //修改原库位状态 |
| | |
| | | /* |
| | | 生成工作档明细 |
| | | */ |
| | | private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId){ |
| | | private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){ |
| | | Mat mat = matService.selectByMatnr(matnr); |
| | | if (Cools.isEmpty(mat)) { |
| | | throw new CoolException(matnr + "商品维护失败"); |
| | |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setModiUser(userId); |
| | | wrkDetl.setModiTime(now); |
| | | |
| | | wrkDetl.setThreeCode(csocode); |
| | | wrkDetl.setDeadTime(isoseq); |
| | | if (!agvWrkDetlService.insert(wrkDetl)) { |
| | | throw new CoolException("保存工作明细失败"); |
| | | } |
| | |
| | | } |
| | | |
| | | //出库 |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued) { |
| | | public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) { |
| | | Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", matnr).orderBy("modi_time"); |
| | | if(Cools.isEmpty(batch)){ |
| | | wrapper.isNull("batch"); |
| | | }else { |
| | | wrapper.eq("batch",batch); |
| | | } |
| | | wapperSetCondition(wrapper,"batch",batch); |
| | | wapperSetCondition(wrapper,"three_code",csocode); |
| | | wapperSetCondition(wrapper,"dead_time",isoseq); |
| | | // if(Cools.isEmpty(batch)){ |
| | | // wrapper.isNull("batch"); |
| | | // }else { |
| | | // wrapper.eq("batch",batch); |
| | | // } |
| | | |
| | | List<LocDetl> locDetlList = this.selectList(wrapper); |
| | | for (LocDetl locDetl : locDetlList) { |
| | |
| | | public int updateStockFreeze(String matnr, String locNo, Integer stockFreeze) { |
| | | return this.baseMapper.updateStockFreeze(matnr, locNo, stockFreeze); |
| | | } |
| | | |
| | | private void wapperSetCondition(Wrapper wrapper,String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | | } |
| | | } |
| | |
| | | // 生成入库通知档 |
| | | List<DetlDto> detlDtos = new ArrayList<>(); |
| | | param.getCombMats().forEach(elem -> { |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq()); |
| | | detlDto.setContainerCode(elem.getContainerCode()); |
| | | |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); |
| | | assert one != null; |
| | | one.setAnfme(one.getAnfme() + detlDto.getAnfme()); |
| | | } else { |
| | |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | |
| | | waitPakin.setThreeCode(detlDto.getCsocode()); |
| | | waitPakin.setDeadTime(detlDto.getIsoseq()); |
| | | waitPakin.setSuppCode(detlDto.getCsocode()); |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | |
| | | throw new CoolException("修改单据明细数量失败"); |
| | | } |
| | | |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getCsocode(),elem.getIsoseq()); |
| | | detlDto.setContainerCode(elem.getContainerCode()); |
| | | |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); |
| | | assert one != null; |
| | | one.setAnfme(one.getAnfme() + detlDto.getAnfme()); |
| | | } else { |
| | |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | |
| | | waitPakin.setThreeCode(detlDto.getCsocode()); |
| | | waitPakin.setDeadTime(detlDto.getIsoseq()); |
| | | waitPakin.setSuppCode(detlDto.getCsocode()); |
| | | |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | |
| | | } |
| | | Mat analyse = MatUtils.analyseMat(elem.getMatnr()); |
| | | // 条码、物料代码、序列号、数量 |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), analyse.getMatnr(), analyse.getBarcode(), elem.getAnfme()); |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), analyse.getMatnr(), analyse.getBarcode(), elem.getAnfme(),elem.getCsocode(),elem.getIsoseq()); |
| | | // DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); |
| | | detlDto.setContainerCode(elem.getContainerCode()); |
| | | |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); |
| | | assert one != null; |
| | | one.setAnfme(one.getAnfme() + detlDto.getAnfme()); |
| | | } else { |
| | |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | |
| | | waitPakin.setThreeCode(detlDto.getCsocode()); |
| | | waitPakin.setDeadTime(detlDto.getIsoseq()); |
| | | waitPakin.setSuppCode(detlDto.getContainerCode()); |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | |
| | | for (DetlDto detail : orderDetails) { |
| | | DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); |
| | | if (DetlDto.has(list, dto)) { |
| | | DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); |
| | | DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null); |
| | | assert detlDto != null; |
| | | detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); |
| | | } else { |
| | |
| | | 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())); |
| | | //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); |
| | | } |
| | | if (order.getSettle() == 4L) { |
| | | // 修改订单状态 4.完成 ===>> 6.已上报 |
| | |
| | | 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())); |
| | | //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); |
| | | } |
| | | // 修改订单状态 4.完成 ===>> 6.已上报 |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | |
| | | for (DetlDto detail : orderDetails) { |
| | | DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); |
| | | if (DetlDto.has(list, dto)) { |
| | | DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); |
| | | DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null); |
| | | assert detlDto != null; |
| | | detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); |
| | | } else { |
| | |
| | | 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())); |
| | | //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); |
| | | } |
| | | if (order.getSettle() == 4L) { |
| | | // 修改订单状态 4.完成 ===>> 6.已上报 |
| | |
| | | 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())); |
| | | //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); |
| | | } |
| | | // 修改订单状态 4.完成 ===>> 6.已上报 |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | |
| | | List<DetlDto> detlDtos = new ArrayList<>(); |
| | | param.getCombMats().forEach(elem -> { |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); |
| | | detlDto.setContainerCode(elem.getContainerCode()); |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); |
| | | DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); |
| | | assert one != null; |
| | | one.setAnfme(one.getAnfme() + detlDto.getAnfme()); |
| | | } else { |
| | |
| | | // 生成工作档明细 |
| | | List<DetlDto> detlDtos = new ArrayList<>(); |
| | | param.getList().forEach(elem -> { |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq()); |
| | | detlDto.setContainerCode(elem.getContainerCode()); |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); |
| | | DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); |
| | | assert detlDto1 != null; |
| | | detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme()); |
| | | } else { |
| | |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setModiUser(userId); |
| | | wrkDetl.setModiTime(now); |
| | | |
| | | wrkDetl.setThreeCode(dto.getCsocode()); |
| | | wrkDetl.setDeadTime(dto.getIsoseq()); |
| | | wrkDetl.setSuppCode(dto.getContainerCode()); |
| | | if (!this.insert(wrkDetl)) { |
| | | throw new CoolException("保存工作明细失败"); |
| | | } |
| | |
| | | agvWrkMastService.deleteById(wrkNo); |
| | | //删除AGV工作明细档 |
| | | agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); |
| | | //类型为出库时 |
| | | //类型为入库时 |
| | | if(agvWrkMast.getIoType() == 1){ |
| | | //更新目标库位明细 |
| | | agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo); |
| | |
| | | |
| | | private String orderNo; |
| | | |
| | | //料想码 |
| | | private String containerCode; |
| | | |
| | | private String matnr; |
| | | |
| | | private String batch; |
| | | |
| | | private Double anfme; |
| | | |
| | | //销售订单号 |
| | | private String csocode; |
| | | |
| | | //销售订单行号 |
| | | private String isoseq; |
| | | |
| | | public DetlDto() { |
| | | } |
| | |
| | | this.anfme = anfme; |
| | | } |
| | | |
| | | public DetlDto(String orderNo, String matnr, String batch, Double anfme) { |
| | | public DetlDto(String matnr, String batch, Double anfme, String csocode, String isoseq) { |
| | | this.matnr = matnr; |
| | | this.batch = batch; |
| | | this.anfme = anfme; |
| | | this.csocode = csocode; |
| | | this.isoseq = isoseq; |
| | | } |
| | | |
| | | public DetlDto(String orderNo, String matnr, String batch, Double anfme, String csocode, String isoseq) { |
| | | this.orderNo = orderNo; |
| | | this.matnr = matnr; |
| | | this.batch = batch; |
| | | this.anfme = anfme; |
| | | this.csocode = csocode; |
| | | this.isoseq = isoseq; |
| | | } |
| | | |
| | | public static boolean hasList(Set<DetlDto> detlDtos, OrderDetl orderDetl) { |
| | |
| | | |
| | | public static boolean has(List<DetlDto> detlDtos, DetlDto detlDto) { |
| | | for (DetlDto dto : detlDtos) { |
| | | if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) { |
| | | if (dto.getMatnr().equals(detlDto.getMatnr()) |
| | | && Cools.eq(dto.getContainerCode(), detlDto.getContainerCode()) |
| | | && Cools.eq(dto.getBatch(), detlDto.getBatch()) |
| | | && Cools.eq(dto.getCsocode(),detlDto.getCsocode()) |
| | | && Cools.eq(dto.getIsoseq(),detlDto.getIsoseq())) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch) { |
| | | public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch, String csocode, String isoseq, String containerCode) { |
| | | if (Cools.isEmpty(matnr)) { |
| | | return null; |
| | | } |
| | | for (DetlDto detlDto : detlDtos) { |
| | | if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) { |
| | | if (matnr.equals(detlDto.getMatnr()) |
| | | && Cools.eq(containerCode, detlDto.getContainerCode()) |
| | | && Cools.eq(batch, detlDto.getBatch()) |
| | | && Cools.eq(csocode,detlDto.getCsocode()) |
| | | && Cools.eq(isoseq,detlDto.getIsoseq())) { |
| | | return detlDto; |
| | | } |
| | | } |
| | |
| | | |
| | | private String specs; |
| | | |
| | | //销售订单号 |
| | | private String csocode; |
| | | |
| | | //销售订单行号 |
| | | private String isoseq; |
| | | |
| | | //料想码 |
| | | private String containerCode; |
| | | |
| | | public LocDto() { |
| | | } |
| | | |
| | |
| | | |
| | | private Double anfme; |
| | | |
| | | //销售订单号 |
| | | private String csocode; |
| | | |
| | | //销售订单行号 |
| | | private String isoseq; |
| | | |
| | | private List<OrderDto> orderDtos = new ArrayList<>(); |
| | | |
| | | public OrderMergeVo(String matnr, String batch, Double anfme) { |
| | |
| | | // 汇总不考虑序列码 |
| | | List<DetlDto> detlDtos = new ArrayList<>(); |
| | | for (LocDto locDto : this.getLocDtos()) { |
| | | DetlDto dto = new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme()); |
| | | DetlDto dto = new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme(), locDto.getCsocode(), locDto.getIsoseq()); |
| | | dto.setContainerCode(locDto.getContainerCode()); |
| | | if (DetlDto.has(detlDtos, dto)) { |
| | | DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), dto.getBatch()); |
| | | DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),dto.getContainerCode()); |
| | | assert detlDto != null; |
| | | detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme()); |
| | | } else { |
| | |
| | | function getCol() { |
| | | var cols = [ |
| | | {field: 'locNo', align: 'center',title: '库位号'}, |
| | | {field: 'matnr', align: 'center',title: '物料号', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '物料名称', sort:true} |
| | | {field: 'matnr', align: 'center',title: '存货编码', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '存货名称', sort:true} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码'} |
| | | ,{field: 'threeCode', align: 'center',title: '销售订单号'} |
| | | ,{field: 'dead_time', align: 'center',title: '销售订单行号'} |
| | | ,{field: 'specs', align: 'center',title: '规格型号', hide: false} |
| | | ,{field: 'model', align: 'center',title: '通用型号', hide: false} |
| | | |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'model', align: 'center',title: '通用型号', hide: true} |
| | | ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '单位', hide: true} |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | ,{field: 'units', align: 'center',title: '包数', hide: true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | ,{field: 'origin', align: 'center',title: '物料状态', hide: true} |
| | | ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | ,{field: 'manuDate', align: 'center',title: '单据时间', hide: true} |
| | | ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | | ,{field: 'weight', align: 'center',title: '单箱净重', hide: true} |
| | | ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} |
| | | ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} |
| | | ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} |
| | | ,{field: 'supp', align: 'center',title: '供应商', hide: true} |
| | | ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} |
| | | ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} |
| | | ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} |
| | | ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} |
| | | ,{field: 'source$', align: 'center',title: '制购', hide: true} |
| | | ,{field: 'check$', align: 'center',title: '要求检验', hide: true} |
| | | ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '存货分类编码', hide: true} |
| | | ,{field: 'color', align: 'center',title: '存货分类名称', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '计量单位', hide: true} |
| | | ,{field: 'price', align: 'center',title: '进项税', hide: true} |
| | | ,{field: 'units', align: 'center',title: '销项税', hide: true} |
| | | ,{field: 'dsDate', align: 'center',title: '启用日期', hide: true} |
| | | ,{field: 'supp', align: 'center',title: '建档人', hide: true} |
| | | ,{field: 'dInvCreateDatetime', align: 'center',title: '建档日期', hide: true} |
| | | |
| | | // ,{field: 'specs', align: 'center',title: '规格'} |
| | | // ,{field: 'model', align: 'center',title: '通用型号', hide: true} |
| | | // ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | // ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | // ,{field: 'unit', align: 'center',title: '单位', hide: true} |
| | | // ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | // ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | // ,{field: 'units', align: 'center',title: '包数', hide: true} |
| | | // ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | // ,{field: 'origin', align: 'center',title: '物料状态', hide: true} |
| | | // ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | // ,{field: 'manuDate', align: 'center',title: '单据时间', hide: true} |
| | | // ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | // ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | | // ,{field: 'weight', align: 'center',title: '单箱净重', hide: true} |
| | | // ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} |
| | | // ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} |
| | | // ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} |
| | | // ,{field: 'supp', align: 'center',title: '供应商', hide: true} |
| | | // ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} |
| | | // ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} |
| | | // ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} |
| | | // ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} |
| | | // ,{field: 'source$', align: 'center',title: '制购', hide: true} |
| | | // ,{field: 'check$', align: 'center',title: '要求检验', hide: true} |
| | | // ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | |
| | | ]; |
| | | |
| | |
| | | var detlCols = [ |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: true} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false} |
| | | ,{field: 'matnr', align: 'center',title: '物料号',hide: true} |
| | | ,{field: 'matnr', align: 'center',title: '物料号'} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: false} |
| | | ,{field: 'maktx', align: 'center',title: '物料名称'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'name', align: 'center',title: '移动类型', hide: true} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'model', align: 'center',title: '通用型号', hide: true} |
| | | ,{field: 'manuDate', align: 'center',title: '单据时间', hide: true} |
| | | ,{field: 'weight', align: 'center',title: '重量', hide: true} |
| | | ,{field: 'units', align: 'center',title: '支数', hide: true} |
| | | ,{field: 'origin', align: 'center',title: '物料状态', hide: true} |
| | | ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '单位', hide: true} |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | | ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} |
| | | ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} |
| | | ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} |
| | | ,{field: 'supp', align: 'center',title: '供应商', hide: true} |
| | | ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} |
| | | ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} |
| | | ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} |
| | | ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} |
| | | ,{field: 'source$', align: 'center',title: '制购', hide: true} |
| | | ,{field: 'check$', align: 'center',title: '要求检验', hide: true} |
| | | ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码',hide: true} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码'} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true} |
| | | ,{field: 'maktx', align: 'center',title: '存货名称'} |
| | | ,{field: 'threeCode', align: 'center',title: '销售订单号'} |
| | | ,{field: 'dead_time', align: 'center',title: '销售订单行号'} |
| | | ,{field: 'specs', align: 'center',title: '规格型号', hide: false} |
| | | ,{field: 'model', align: 'center',title: '通用型号', hide: false} |
| | | |
| | | ,{field: 'brand', align: 'center',title: '存货分类编码', hide: true} |
| | | ,{field: 'color', align: 'center',title: '存货分类名称', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '计量单位', hide: true} |
| | | ,{field: 'price', align: 'center',title: '进项税', hide: true} |
| | | ,{field: 'units', align: 'center',title: '销项税', hide: true} |
| | | ,{field: 'dsDate', align: 'center',title: '启用日期', hide: true} |
| | | ,{field: 'supp', align: 'center',title: '建档人', hide: true} |
| | | ,{field: 'dInvCreateDatetime', align: 'center',title: '建档日期', hide: true} |
| | | |
| | | // ,{field: 'specs', align: 'center',title: '规格'} |
| | | // ,{field: 'anfme', align: 'center',title: '数量'} |
| | | // ,{field: 'name', align: 'center',title: '移动类型', hide: true} |
| | | // ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | // ,{field: 'model', align: 'center',title: '通用型号', hide: true} |
| | | // ,{field: 'manuDate', align: 'center',title: '单据时间', hide: true} |
| | | // ,{field: 'weight', align: 'center',title: '重量', hide: true} |
| | | // ,{field: 'units', align: 'center',title: '支数', hide: true} |
| | | // ,{field: 'origin', align: 'center',title: '物料状态', hide: true} |
| | | // ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | // ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | // ,{field: 'unit', align: 'center',title: '单位', hide: true} |
| | | // ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | // ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | // ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | // ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | // ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | // ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | | // ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} |
| | | // ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} |
| | | // ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} |
| | | // ,{field: 'supp', align: 'center',title: '供应商', hide: true} |
| | | // ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} |
| | | // ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} |
| | | // ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} |
| | | // ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} |
| | | // ,{field: 'source$', align: 'center',title: '制购', hide: true} |
| | | // ,{field: 'check$', align: 'center',title: '要求检验', hide: true} |
| | | // ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | ] |
| | | |
| | | function getQueryVariable(variable) |
| | |
| | | var tableData; |
| | | function getCol() { |
| | | var cols = [ |
| | | {field: 'locNo$', align: 'center',title: '库位号'}, |
| | | {field: 'matnr', align: 'center',title: '物料号', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '物料名称', sort:true} |
| | | {field: 'locNo$', align: 'center',title: '库位号'} |
| | | ,{field: 'matnr', align: 'center',title: '料箱码', sort:true} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '存货名称', sort:true} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true} |
| | | ,{field: 'batch', align: 'center',title: '序列码', sort:true} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'units', align: 'center',title: '销售订单号', hide: true} |
| | | ,{field: 'units', align: 'center',title: '销售订单行号', hide: true} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码'} |
| | | |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'specs', align: 'center',title: '规格型号', hide: true} |
| | | ,{field: 'model', align: 'center',title: '通用型号', hide: true} |
| | | ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '单位', hide: true} |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | ,{field: 'units', align: 'center',title: '包数', hide: true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | ,{field: 'origin', align: 'center',title: '物料状态', hide: true} |
| | | ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | ,{field: 'manuDate', align: 'center',title: '单据时间', hide: true} |
| | | ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | | ,{field: 'weight', align: 'center',title: '单箱净重', hide: true} |
| | | ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} |
| | | ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} |
| | | ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} |
| | | ,{field: 'supp', align: 'center',title: '供应商', hide: true} |
| | | ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} |
| | | ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} |
| | | ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} |
| | | ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} |
| | | ,{field: 'source$', align: 'center',title: '制购', hide: true} |
| | | ,{field: 'check$', align: 'center',title: '要求检验', hide: true} |
| | | ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '存货分类编码', hide: true} |
| | | ,{field: 'color', align: 'center',title: '存货分类名称', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '计量单位', hide: true} |
| | | ,{field: 'price', align: 'center',title: '进项税', hide: true} |
| | | ,{field: 'units', align: 'center',title: '销项税', hide: true} |
| | | //,{field: 'dsDate', align: 'center',title: '启用日期', hide: true} |
| | | //,{field: 'supp', align: 'center',title: '建档人', hide: true} |
| | | //,{field: 'dInvCreateDatetime', align: 'center',title: '建档日期', hide: true} |
| | | //,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true} |
| | | //,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true} |
| | | ,{field: 'memo', align: 'center',title: '备注', hide: true} |
| | | |
| | | // ,{field: 'specs', align: 'center',title: '规格'} |
| | | // ,{field: 'model', align: 'center',title: '通用型号', hide: true} |
| | | // ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | // ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | // ,{field: 'unit', align: 'center',title: '单位', hide: true} |
| | | // ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | // ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | // ,{field: 'units', align: 'center',title: '包数', hide: true} |
| | | // ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | // ,{field: 'origin', align: 'center',title: '物料状态', hide: true} |
| | | // ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | // ,{field: 'manuDate', align: 'center',title: '单据时间', hide: true} |
| | | // ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | // ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | | // ,{field: 'weight', align: 'center',title: '单箱净重', hide: true} |
| | | // ,{field: 'length', align: 'center',title: '单箱毛重', hide: true} |
| | | // ,{field: 'volume', align: 'center',title: '单箱体积', hide: true} |
| | | // ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} |
| | | // ,{field: 'supp', align: 'center',title: '供应商', hide: true} |
| | | // ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} |
| | | // ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true} |
| | | // ,{field: 'deadTime', align: 'center',title: '保质期', hide: true} |
| | | // ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true} |
| | | // ,{field: 'source$', align: 'center',title: '制购', hide: true} |
| | | // ,{field: 'check$', align: 'center',title: '要求检验', hide: true} |
| | | // ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | |
| | | ]; |
| | | |