| | |
| | | import com.zy.asrs.entity.result.MobileAdjustResult; |
| | | import com.zy.asrs.mapper.ManLocDetlMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import com.zy.common.model.WrkDto; |
| | | import com.zy.common.utils.Synchro; |
| | |
| | | |
| | | @Resource |
| | | private StaDescService staDescService; |
| | | |
| | | @Autowired |
| | | private OrderDetlPakinService orderDetlPakinService; |
| | | |
| | | @RequestMapping("/pda/WarehouseOut/v1") |
| | | @ManagerAuth(memo = "并板途中拣料-参考念初") |
| | |
| | | Synchro.Copy(orderDetl, combMat); |
| | | combMat.setMatnr(orderDetl.getMatnr()); |
| | | combMat.setBatch(orderDetl.getBatch()); |
| | | combMat.setAnfme(orderDetl.getAnfme() - orderDetl.getWorkQty()); |
| | | combMat.setAnfme(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty())); |
| | | combMat.setMaktx(orderDetl.getMaktx()); |
| | | combMat.setSpecs(orderDetl.getSpecs()); |
| | | combMat.setEnableQty(orderDetl.getAnfme() - orderDetl.getWorkQty()); |
| | | combMat.setEnableQty(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty())); |
| | | combMats.add(combMat); |
| | | } |
| | | combParam.setCombMats(combMats); |
| | |
| | | Mat mat = matService.selectByMatnr(nccJcQilibcBarcodeflowWms.getWlbm()); |
| | | MatParam matParam = new MatParam(); |
| | | Synchro.Copy(mat, matParam); |
| | | OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>().eq("order_no", nccJcQilibcBarcodeflowWms.getZkdh()).eq("matnr", mat.getMatnr()).eq("batch", nccJcQilibcBarcodeflowWms.getVbatchcode())); |
| | | if (orderDetlPakin == null) { |
| | | throw new CoolException("未找到此单号"); |
| | | } |
| | | matParam.setStandby1(orderDetlPakin.getStandby1()); |
| | | matParam.setOrderNo(nccJcQilibcBarcodeflowWms.getZkdh()); |
| | | matParam.setBatch(nccJcQilibcBarcodeflowWms.getVbatchcode()); |
| | | matParam.setAnfme(nccJcQilibcBarcodeflowWms.getAsnnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getAsnnum().doubleValue()); |
| | | matParam.setWeight(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue()); |
| | | matParam.setAnfme2(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue()); |
| | | return R.ok().add(matParam); |
| | | } |
| | |
| | | import com.zy.asrs.entity.param.OrderDomainParam; |
| | | import com.zy.asrs.entity.result.WrkTraceVo; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | if (DetlDto.has(list, dto)) { |
| | | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), |
| | | orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()); |
| | | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); |
| | | item.setAnfme(MathUtils.add(item.getAnfme(), orderDetl.getAnfme())); |
| | | item.setStandby1(param.getDefNumber()); |
| | | if (!orderDetlService.updateById(item)) { |
| | | throw new CoolException("保存订单明细档失败"); |
| | |
| | | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(), |
| | | param.getItemId(), orderDetl.getStandby2(), orderDetl.getStandby3(), |
| | | orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()); |
| | | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); |
| | | item.setAnfme(MathUtils.add(item.getAnfme() , orderDetl.getAnfme())); |
| | | if (!orderDetlService.updateById(item)) { |
| | | throw new CoolException("保存订单明细档失败"); |
| | | } |
| | |
| | | totalQty = totalQty + orderDetl.getAnfme(); |
| | | wrkQty = wrkQty + orderDetl.getWorkQty(); |
| | | endQty = endQty + orderDetl.getQty(); |
| | | double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); |
| | | double issued = Optional.of(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty())).orElse(0.0D); |
| | | if (issued > 0.0) { |
| | | List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null); |
| | | for (LocDetl locDetl : locDetls) { |
| | |
| | | import com.zy.asrs.service.BasQualityTestingService; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.service.StoreTypeService; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import com.zy.common.utils.Synchro; |
| | | import com.zy.system.entity.User; |
| | | import com.zy.system.service.UserService; |
| | |
| | | } |
| | | |
| | | public Double getEnableQty() { |
| | | |
| | | if (null != this.anfme && this.workQty != null) { |
| | | return this.anfme - this.workQty; |
| | | return MathUtils.subtract(this.anfme, this.workQty); |
| | | } |
| | | // if (null != this.anfme && this.qty != null) { |
| | | // return this.anfme - this.qty; |
| | |
| | | // 物料数量 |
| | | private Double anfme; |
| | | |
| | | |
| | | // 物料辅数量 |
| | | private Double weight; |
| | | |
| | | // 物料数量 |
| | | private Double enableQty; |
| | | |
| | |
| | | package com.zy.asrs.entity.param; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | */ |
| | | @Data |
| | | public class MatParam implements Serializable { |
| | | |
| | | /** |
| | | * 备用1 |
| | | */ |
| | | @ApiModelProperty(value= "备用1") |
| | | private String standby1 = ""; |
| | | |
| | | /** |
| | | * 备用2 |
| | | */ |
| | | @ApiModelProperty(value= "备用2") |
| | | private String standby2 = ""; |
| | | |
| | | /** |
| | | * 备用3 |
| | | */ |
| | | @ApiModelProperty(value= "备用3") |
| | | private String standby3 = ""; |
| | | |
| | | /** |
| | | * 备用1 |
| | | */ |
| | | @ApiModelProperty(value= "备用1") |
| | | private String boxType1 = ""; |
| | | |
| | | /** |
| | | * 备用2 |
| | | */ |
| | | @ApiModelProperty(value= "备用2") |
| | | private String boxType2 = ""; |
| | | |
| | | /** |
| | | * 备用3 |
| | | */ |
| | | @ApiModelProperty(value= "备用3") |
| | | private String boxType3 = ""; |
| | | /** |
| | | * 商品编号 |
| | | */ |
| | |
| | | @Repository |
| | | public interface OrderDetlPakoutMapper extends BaseMapper<OrderDetlPakout> { |
| | | |
| | | OrderDetlPakout selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch, @Param("brand")String brand, |
| | | @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1, |
| | | @Param("boxType2")String boxType2, |
| | | @Param("boxType3")String boxType3); |
| | | OrderDetlPakout selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch, @Param("brand") String brand, |
| | | @Param("standby1") String standby1, @Param("standby2") String standby2, @Param("standby3") String standby3, @Param("boxType1") String boxType1, |
| | | @Param("boxType2") String boxType2, |
| | | @Param("boxType3") String boxType3); |
| | | |
| | | OrderDetlPakout selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch, |
| | | @Param("brand")String brand, @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1, |
| | | @Param("boxType2")String boxType2, |
| | | @Param("boxType3")String boxType3); |
| | | @Param("brand") String brand, @Param("standby1") String standby1, @Param("standby2") String standby2, @Param("standby3") String standby3, @Param("boxType1") String boxType1, |
| | | @Param("boxType2") String boxType2, |
| | | @Param("boxType3") String boxType3); |
| | | |
| | | List<OrderDetlPakout> selectWorkingDetls(Long orderId); |
| | | |
| | |
| | | |
| | | Integer getPakoutPageCount(Map<String, Object> map); |
| | | |
| | | int increase(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("brand")String brand, |
| | | @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1, |
| | | @Param("boxType2")String boxType2, |
| | | @Param("boxType3")String boxType3, @Param("qty")Double qty); |
| | | int increase(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch, @Param("brand") String brand, |
| | | @Param("standby1") String standby1, @Param("standby2") String standby2, @Param("standby3") String standby3, @Param("boxType1") String boxType1, |
| | | @Param("boxType2") String boxType2, |
| | | @Param("boxType3") String boxType3, @Param("qty") Double qty); |
| | | |
| | | int decrease(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("brand")String brand, |
| | | @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1, |
| | | @Param("boxType2")String boxType2, |
| | | @Param("boxType3")String boxType3, @Param("qty")Double qty); |
| | | int decrease(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("brand") String brand, |
| | | @Param("standby1") String standby1, @Param("standby2") String standby2, @Param("standby3") String standby3, @Param("boxType1") String boxType1, |
| | | @Param("boxType2") String boxType2, |
| | | @Param("boxType3") String boxType3, @Param("qty") Double qty); |
| | | |
| | | int modifyStatus(@Param("orderId") Long orderId, @Param("status")Integer status); |
| | | int modifyStatus(@Param("orderId") Long orderId, @Param("status") Integer status); |
| | | |
| | | int addToLogTable(OrderDetlPakout orderDetl); |
| | | |
| | | int increaseQtyByOrderNo(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("brand")String brand, |
| | | @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1, |
| | | @Param("boxType2")String boxType2, |
| | | @Param("boxType3")String boxType3, @Param("qty")Double qty); |
| | | int increaseQtyByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("brand") String brand, |
| | | @Param("standby1") String standby1, @Param("standby2") String standby2, @Param("standby3") String standby3, @Param("boxType1") String boxType1, |
| | | @Param("boxType2") String boxType2, |
| | | @Param("boxType3") String boxType3, @Param("qty") Double qty); |
| | | |
| | | int increaseQtyById(@Param("id")Long id, @Param("qty")Double qty); |
| | | int increaseQtyById(@Param("id") Long id, @Param("qty") Double qty); |
| | | |
| | | int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("brand")String brand, |
| | | @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3, @Param("boxType1")String boxType1, |
| | | @Param("boxType2")String boxType2, |
| | | @Param("boxType3")String boxType3, @Param("workQty")Double workQty); |
| | | int increaseWorkQty(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch, @Param("brand") String brand, |
| | | @Param("standby1") String standby1, @Param("standby2") String standby2, @Param("standby3") String standby3, @Param("boxType1") String boxType1, |
| | | @Param("boxType2") String boxType2, |
| | | @Param("boxType3") String boxType3, @Param("workQty") Double workQty); |
| | | |
| | | int increaseWorkQtyById(@Param("id") Long id, @Param("workQty") Double workQty); |
| | | } |
| | |
| | | boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double qty); |
| | | |
| | | boolean increaseQtyById(Long id, Double qty); |
| | | |
| | | /** |
| | | * 入出库任务生成时,更新单据表中作业数量 |
| | | * |
| | | * @param orderId |
| | | * @param matnr |
| | | * @param batch |
| | |
| | | * @return |
| | | */ |
| | | boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double workQty); |
| | | |
| | | boolean increaseWorkQtyById(Long id, Double workQty); |
| | | |
| | | } |
| | |
| | | import com.zy.asrs.mapper.LocMastMapper; |
| | | import com.zy.asrs.mapper.ManLocDetlMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.model.enums.WorkNoType; |
| | |
| | | ArrayList<PickMatParam> maps = new ArrayList<>(); |
| | | for (OrderDetl orderDetl : list) { |
| | | //剩余可用数量 |
| | | double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); |
| | | double count = MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty()); |
| | | if (count <= 0) { |
| | | continue; |
| | | } |
| | |
| | | param.getCombMats().forEach(elem -> { |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(), |
| | | elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme()); |
| | | detlDto.setWeight(elem.getWeight()); |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.findDto(detlDtos, detlDto); |
| | | assert one != null; |
| | |
| | | DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(), |
| | | elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme()); |
| | | detlDto.setOrderNo(elem.getOrderNo()); |
| | | detlDto.setWeight(elem.getWeight()); |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.findDto(detlDtos, detlDto); |
| | | assert one != null; |
| | |
| | | waitPakin.setStandby1(detlDto.getStandby1()); |
| | | waitPakin.setStandby2(detlDto.getStandby2()); |
| | | waitPakin.setStandby3(detlDto.getStandby3()); |
| | | waitPakin.setWeight(detlDto.getWeight()); |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | |
| | | } |
| | | |
| | | //可出库数量 = 订单数量 - 作业中数量 |
| | | Double outQty = orderDetl.getAnfme() - orderDetl.getWorkQty(); |
| | | Double outQty = MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty()); |
| | | if (outQty <= 0) { |
| | | break; |
| | | } |
| | |
| | | // 分类 |
| | | Long tagId; |
| | | // 一级分类 |
| | | if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) { |
| | | Tag priTag = tagService.selectOne(new EntityWrapper<Tag>().eq("name", matParam.getGroupCode())); |
| | | if (priTag == null) { |
| | | Tag top = tagService.getTop(); |
| | | NodeUtils nodeUtils = new NodeUtils(); |
| | | nodeUtils.executePath(top.getId()); |
| | | priTag = new Tag( |
| | | null, // 编号 |
| | | matParam.getGroupCode(), // 名称 |
| | | top.getId(), // 父级 |
| | | top.getName(), // 父级名称 |
| | | nodeUtils.path.toString(), // 关联路径 |
| | | nodeUtils.pathName.toString(), // 关联路径名 |
| | | 0, // 类型 |
| | | null, // 负责人 |
| | | null, // 图片 |
| | | null, // 简要描述 |
| | | null, // 数量 |
| | | 2, // 等级 |
| | | null, // 排序 |
| | | 1, // 状态 |
| | | now, // 添加时间 |
| | | null, // 添加人员 |
| | | now, // 修改时间 |
| | | null, // 修改人员 |
| | | null // 备注 |
| | | ); |
| | | if (tagMapper.insert(priTag) == 0) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } |
| | | // 二级分类 |
| | | Tag secTag = tagService.selectByName(matParam.getGroupName(), 3); |
| | | if (secTag == null) { |
| | | NodeUtils nodeUtils = new NodeUtils(); |
| | | nodeUtils.executePath(priTag.getId()); |
| | | secTag = new Tag( |
| | | null, // 编号 |
| | | matParam.getGroupName(), // 名称 |
| | | priTag.getId(), // 父级 |
| | | priTag.getName(), // 父级名称 |
| | | nodeUtils.path.toString(), // 关联路径 |
| | | nodeUtils.pathName.toString(), // 关联路径名 |
| | | 0, // 类型 |
| | | null, // 负责人 |
| | | null, // 图片 |
| | | null, // 简要描述 |
| | | null, // 数量 |
| | | 3, // 等级 |
| | | null, // 排序 |
| | | 1, // 状态 |
| | | now, // 添加时间 |
| | | null, // 添加人员 |
| | | now, // 修改时间 |
| | | null, // 修改人员 |
| | | null // 备注 |
| | | ); |
| | | if (tagMapper.insert(secTag) == 0) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } |
| | | tagId = secTag.getId(); |
| | | } else { |
| | | tagId = tagService.getTop().getId(); |
| | | } |
| | | // if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) { |
| | | // Tag priTag = tagService.selectOne(new EntityWrapper<Tag>().eq("name", matParam.getGroupCode())); |
| | | // if (priTag == null) { |
| | | // Tag top = tagService.getTop(); |
| | | // NodeUtils nodeUtils = new NodeUtils(); |
| | | // nodeUtils.executePath(top.getId()); |
| | | // priTag = new Tag( |
| | | // null, // 编号 |
| | | // matParam.getGroupCode(), // 名称 |
| | | // top.getId(), // 父级 |
| | | // top.getName(), // 父级名称 |
| | | // nodeUtils.path.toString(), // 关联路径 |
| | | // nodeUtils.pathName.toString(), // 关联路径名 |
| | | // 0, // 类型 |
| | | // null, // 负责人 |
| | | // null, // 图片 |
| | | // null, // 简要描述 |
| | | // null, // 数量 |
| | | // 2, // 等级 |
| | | // null, // 排序 |
| | | // 1, // 状态 |
| | | // now, // 添加时间 |
| | | // null, // 添加人员 |
| | | // now, // 修改时间 |
| | | // null, // 修改人员 |
| | | // null // 备注 |
| | | // ); |
| | | // if (tagMapper.insert(priTag) == 0) { |
| | | // throw new CoolException("服务器内部错误,请联系管理员"); |
| | | // } |
| | | // } |
| | | // // 二级分类 |
| | | // Tag secTag = tagService.selectByName(matParam.getGroupName(), 3); |
| | | // if (secTag == null) { |
| | | // NodeUtils nodeUtils = new NodeUtils(); |
| | | // nodeUtils.executePath(priTag.getId()); |
| | | // secTag = new Tag( |
| | | // null, // 编号 |
| | | // matParam.getGroupName(), // 名称 |
| | | // priTag.getId(), // 父级 |
| | | // priTag.getName(), // 父级名称 |
| | | // nodeUtils.path.toString(), // 关联路径 |
| | | // nodeUtils.pathName.toString(), // 关联路径名 |
| | | // 0, // 类型 |
| | | // null, // 负责人 |
| | | // null, // 图片 |
| | | // null, // 简要描述 |
| | | // null, // 数量 |
| | | // 3, // 等级 |
| | | // null, // 排序 |
| | | // 1, // 状态 |
| | | // now, // 添加时间 |
| | | // null, // 添加人员 |
| | | // now, // 修改时间 |
| | | // null, // 修改人员 |
| | | // null // 备注 |
| | | // ); |
| | | // if (tagMapper.insert(secTag) == 0) { |
| | | // throw new CoolException("服务器内部错误,请联系管理员"); |
| | | // } |
| | | // } |
| | | // tagId = secTag.getId(); |
| | | // } else { |
| | | // tagId = tagService.getTop().getId(); |
| | | // } |
| | | mat.sync(matParam); |
| | | |
| | | mat.setTagId(tagId); |
| | | mat.setTagId(Long.parseLong(matParam.getGroupCode())); |
| | | mat.setStatus(1); |
| | | mat.setCreateTime(now); |
| | | mat.setUpdateTime(now); |
| | |
| | | public boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double workQty) { |
| | | return this.baseMapper.increaseWorkQty(orderId, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3, workQty) > 0; |
| | | } |
| | | |
| | | /** |
| | | * 入出库任务生成时,更新单据表中作业数量 |
| | | * @param workQty |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean increaseWorkQtyById(Long id, Double workQty) { |
| | | return this.baseMapper.increaseWorkQtyById(id, workQty) > 0; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | whsTransBillBodyVO = new WhsTransBillBodyVO(); |
| | | whsTransBillBodyVO.setCstateid(nccScPcdaWms.getVcode()); |
| | | whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkBatchcode()); |
| | | |
| | | String remark = orderDetl.getRemark(); |
| | | //if (!Cools.isEmpty(remark)) { |
| | |
| | | generalout_b.setCotherwhid(rukucangku); |
| | | generalout_b.setCothercalbodyvid(storeType2.getDepartmentId()); |
| | | |
| | | generalout_b.setNshouldassistnum(orderDetl.getQty()); |
| | | //generalout_b.setNshouldassistnum(orderDetl.getQty()); |
| | | generalout_b.setNnum(orderDetl.getQty()); |
| | | generalout_b.setVbatchcode(orderDetl.getBatch()); |
| | | ic_purchasein_bs.add(generalout_b); |
| | | } |
| | |
| | | @Autowired |
| | | private InventoryCheckOrderDetlService checkOrderDetlService; |
| | | |
| | | @Resource |
| | | private OrderDetlPakoutService orderDetlPakoutService; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public String startupFullPutStore(FullStoreParam param, Long userId) { |
| | |
| | | continue; |
| | | } |
| | | // OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); |
| | | OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand() |
| | | OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand() |
| | | , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3()); |
| | | if (orderDetl == null) { |
| | | orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand() |
| | | if (orderDetlPakout == null) { |
| | | orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand() |
| | | , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3()); |
| | | |
| | | } |
| | | WrkDetl wrkDetl = new WrkDetl(); |
| | | wrkDetl.sync(orderDetl); |
| | | wrkDetl.sync(orderDetlPakout); |
| | | wrkDetl.setZpallet(wrkMast.getBarcode()); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setWrkNo(workNo); |
| | |
| | | wrkDetl.setAppeUser(userId); |
| | | wrkDetl.setModiTime(now); |
| | | wrkDetl.setModiUser(userId); |
| | | wrkDetl.setThreeCode(orderDetl.getId() + ""); |
| | | wrkDetl.setThreeCode(orderDetlPakout.getId() + ""); |
| | | if (!wrkDetlService.insert(wrkDetl)) { |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | |
| | | // throw new CoolException("修改订单明细数量失败"); |
| | | // } |
| | | // orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); |
| | | OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), |
| | | orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), |
| | | orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3() |
| | | , locDto.getAnfme()); |
| | | OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId); |
| | | orderDetlPakoutService.increaseWorkQtyById(orderDetlPakout.getId(), locDto.getAnfme()); |
| | | // OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), |
| | | // orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), |
| | | // orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3() |
| | | // ,locDto.getAnfme() ); |
| | | OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetlPakout.getOrderId(), 2L, userId); |
| | | } |
| | | // 修改库位状态: F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 |
| | | locMast = locMastService.selectById(taskDto.getLocNo()); |
| | |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import com.zy.common.model.DetlDto; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | continue; |
| | | } |
| | | orderDetl.setWorkQty(orderDetl.getQty()); |
| | | orderDetl.setAnfme(orderDetl.getAnfme() - orderDetl.getQty()); |
| | | orderDetl.setAnfme(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getQty())); |
| | | orderDetl.setQty(0D); |
| | | orderDetlService.updateById(orderDetl); |
| | | } |
| | |
| | | if (DetlDto.has(list, dto)) { |
| | | DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3()); |
| | | assert detlDto != null; |
| | | detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); |
| | | detlDto.setAnfme(MathUtils.add(detlDto.getAnfme(), detail.getAnfme())); |
| | | |
| | | OrderDetl orderDetl = OrderDetl.find(orderDetlList, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3()); |
| | | assert orderDetl != null; |
| | | orderDetl.setAnfme(orderDetl.getAnfme() + detail.getAnfme()); |
| | | orderDetl.setAnfme(MathUtils.add(orderDetl.getAnfme(), detail.getAnfme())); |
| | | } else { |
| | | list.add(dto); |
| | | orderDetlList.add(detail); |
| | |
| | | continue; |
| | | } |
| | | if (orderDetlSou.beSimilar(orderDetl)) { |
| | | double v = orderDetlSou.getAnfme() - orderDetlSou.getQty(); |
| | | double v = MathUtils.subtract(orderDetlSou.getAnfme(), orderDetlSou.getQty()); |
| | | if (v < orderDetl.getQty() || orderDetl.getQty().equals(v)) { |
| | | orderDetlSou.setQty(orderDetlSou.getAnfme()); |
| | | orderDetl.setQty(orderDetl.getQty() - v); |
| | |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.MathUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | // wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { |
| | | if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) { |
| | | |
| | | //if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) { |
| | | //if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) { |
| | | // exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | |
| | | if (orderDetl.getAnfme() <= wrkDetl.getAnfme()) { |
| | | orderDetlService.deleteById(orderDetl.getId()); |
| | | } else { |
| | | orderDetl.setAnfme(orderDetl.getAnfme() - wrkDetl.getAnfme()); |
| | | orderDetl.setAnfme(MathUtils.subtract(orderDetl.getAnfme(), wrkDetl.getAnfme())); |
| | | orderDetlService.updateById(orderDetl); |
| | | } |
| | | orderDetl2.setId(null); |
New file |
| | |
| | | package com.zy.asrs.utils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | |
| | | public class MathUtils { |
| | | |
| | | |
| | | // 默认除法运算精度 |
| | | private static final int DEFAULT_DIV_SCALE = 10; |
| | | |
| | | /** |
| | | * 精确加法 |
| | | */ |
| | | public static BigDecimal add(BigDecimal... values) { |
| | | BigDecimal result = BigDecimal.ZERO; |
| | | for (BigDecimal value : values) { |
| | | result = result.add(value); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 精确加法 |
| | | */ |
| | | public static Double add(Double... values) { |
| | | BigDecimal result = BigDecimal.ZERO; |
| | | for (Double value : values) { |
| | | result = result.add(BigDecimal.valueOf(value)); |
| | | } |
| | | return result.doubleValue(); |
| | | } |
| | | |
| | | /** |
| | | * 精确减法 |
| | | */ |
| | | public static BigDecimal subtract(BigDecimal a, BigDecimal b) { |
| | | return a.subtract(b); |
| | | } |
| | | |
| | | /** |
| | | * 精确减法 |
| | | */ |
| | | public static Double subtract(Double a, Double b) { |
| | | return BigDecimal.valueOf(a).subtract(BigDecimal.valueOf(b)).doubleValue(); |
| | | } |
| | | |
| | | /** |
| | | * 精确乘法 |
| | | */ |
| | | public static BigDecimal multiply(BigDecimal... values) { |
| | | BigDecimal result = BigDecimal.ONE; |
| | | for (BigDecimal value : values) { |
| | | result = result.multiply(value); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 精确除法,默认保留10位小数,四舍五入 |
| | | */ |
| | | public static BigDecimal divide(BigDecimal a, BigDecimal b) { |
| | | return a.divide(b, DEFAULT_DIV_SCALE, RoundingMode.HALF_UP); |
| | | } |
| | | |
| | | /** |
| | | * 精确除法,自定义精度和舍入模式 |
| | | */ |
| | | public static BigDecimal divide(BigDecimal a, BigDecimal b, int scale, RoundingMode mode) { |
| | | return a.divide(b, scale, mode); |
| | | } |
| | | |
| | | /** |
| | | * 比较大小:a > b 返回 1;a < b 返回 -1;相等返回 0 |
| | | */ |
| | | public static int compare(BigDecimal a, BigDecimal b) { |
| | | return a.compareTo(b); |
| | | } |
| | | |
| | | /** |
| | | * 转换为字符串输出,自动去除无效零 |
| | | */ |
| | | public static String toPlainString(BigDecimal value) { |
| | | return value.stripTrailingZeros().toPlainString(); |
| | | } |
| | | } |
| | | |
| | |
| | | @Transactional |
| | | public List<Order> selectComplete() { |
| | | List<OrderPakin> orderPakinList = orderPakinService.selectComplete(); |
| | | if (orderPakinList == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); |
| | | } |
| | | |
| | | @Transactional |
| | | public List<Order> selectComplete8() { |
| | | List<OrderPakin> orderPakinList = orderPakinService.selectComplete8(); |
| | | if (orderPakinList == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); |
| | | } |
| | | |
| | | @Transactional |
| | | public boolean addToLogTableOrder(Order order) { |
| | | OrderPakin orderPakin = OrderTransFormationUtil.transformationPakin(order); |
| | | if (orderPakin == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return orderPakinService.addToLogTable(orderPakin); |
| | | } |
| | | |
| | | @Transactional |
| | | public List<Order> selectOrderNoL(String orderNo) { |
| | | List<OrderPakin> orderPakinList = orderPakinService.selectorderNoL(orderNo); |
| | | if (orderPakinList == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); |
| | | } |
| | | |
| | | @Transactional |
| | | public Order selectOrderMoveStatus() { |
| | | OrderPakin orderPakin = orderPakinService.selectOrderMoveStatus(); |
| | | if (orderPakin == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderPakin(orderPakin); |
| | | } |
| | | |
| | | @Transactional |
| | | public Order selectOrderMoveStatusInitial() { |
| | | OrderPakin orderPakin = orderPakinService.selectOrderMoveStatusInitial(); |
| | | if (orderPakin == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderPakin(orderPakin); |
| | | } |
| | | |
| | | @Transactional |
| | | public OrderDetl selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) { |
| | | OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(orderId, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3); |
| | | if (orderDetlPakin == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderDetlPakin(orderDetlPakin); |
| | | } |
| | | |
| | | @Transactional |
| | | public OrderDetl selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) { |
| | | OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(orderNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3); |
| | | if (orderDetlPakin == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderDetlPakin(orderDetlPakin); |
| | | } |
| | | |
| | |
| | | public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) { |
| | | List<OrderDetlPakin> orderDetlPakins = OrderTransFormationUtil.transformationDetlListPakin(orderDetls); |
| | | OrderDetlPakin orderDetlPakin = orderDetlPakinService.findByLook(orderDetlPakins, orderId, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3); |
| | | if (orderDetlPakin == null) { |
| | | throw new CoolException("未找到该单据"); |
| | | } |
| | | return OrderTransFormationUtil.transformationOrderDetlPakin(orderDetlPakin); |
| | | } |
| | | |
| | |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | if (param.getBarcode().startsWith("11")) { |
| | | locTypeDto.setLocType2((short) 1); |
| | | }else if (param.getBarcode().startsWith("13")) { |
| | | } else if (param.getBarcode().startsWith("13")) { |
| | | locTypeDto.setLocType2((short) 2); |
| | | }else if (param.getBarcode().startsWith("16")) { |
| | | } else if (param.getBarcode().startsWith("16")) { |
| | | locTypeDto.setLocType2((short) 3); |
| | | }else { |
| | | } else { |
| | | return R.error("未知托盘码规则"); |
| | | } |
| | | |
| | |
| | | // dto.setStaNo(103); |
| | | // LocMast locMastxx = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O")); |
| | | // dto.setLocNo(locMastxx.getLocNo()); |
| | | // dto.setWorkNo(Integer.parseInt(Math.random() * 1000 + "")); |
| | | // dto.setWorkNo(Integer.parseInt((System.currentTimeMillis() + "").substring(10))); |
| | | |
| | | StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto); |
| | | if (dto == null) { |
| | |
| | | */ |
| | | private String wmsMemo; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String ckbm; |
| | | |
| | | @Override |
| | | public boolean equals(Object that) { |
| | | if (this == that) { |
| | |
| | | private String wlbm; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String vbatchcode; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String wlmc; |
| | |
| | | user.setUsername(nccJcRyWms.getRybm()); |
| | | user.setNickname(nccJcRyWms.getRymc()); |
| | | user.setMobile(nccJcRyWms.getRybm()); |
| | | user.setRoleId(12L); |
| | | user.setStatus(1); |
| | | userService.updateById(user); |
| | | } |
| | |
| | | matParam.setSpecs(vGetBdMaterial.get规格()); |
| | | matParam.setModel(vGetBdMaterial.get型号()); |
| | | matParam.setUnit(vGetBdMaterial.get主单位()); |
| | | matParam.setManu(vGetBdMaterial.get辅单位()); |
| | | matParam.setMemo(vGetBdMaterial.get备注()); |
| | | matParam.setName(vGetBdMaterial.get物料简称u8旧品名()); |
| | | matParam.setSku(vGetBdMaterial.get物料简称u8旧品名()); |
| | | matParam.setOrigin(vGetBdMaterial.get主辅换算比()); |
| | | matParam.setGroupCode(vGetBdMaterial.get存货分类编码()); |
| | | matParam.setGroupName(vGetBdMaterial.get存货分类名称()); |
| | | matParam.setGroupCode(priTag.getId() + ""); |
| | | matDetails.add(matParam); |
| | | } |
| | | if (!matDetails.isEmpty()) { |
| | |
| | | detlDto = new DetlDto(); |
| | | detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm()); |
| | | detlDto.setAnfme(nccSaleXsfhmxWms.getNnum().doubleValue()); |
| | | detlDto.setBatch(nccSaleXsfhmxWms.getVbatchcode()); |
| | | detlDto.setWeight(nccSaleXsfhmxWms.getNastnum().doubleValue()); |
| | | detlDto.setStandby1(nccSaleXsfhmxWms.getFhckbm()); |
| | | detlDto.setLineNumber(i); |
| | |
| | | param.setOrderDetails(orderDetails); |
| | | openService.pakoutOrderCreate(param); |
| | | nccSaleXsfhmxWmsService.updateBatchById(map.get(key)); |
| | | size++; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | private String cotherwhid; |
| | | |
| | | private String cothercalbodyvid; |
| | | |
| | | private Double nnum; |
| | | } |
| | |
| | | jdbc-url: jdbc:mysql://127.0.0.1:3306/wmsdata |
| | | username: root |
| | | password: root |
| | | # jdbc-url: jdbc:mysql://192.168.5.61:3306/wmsdata |
| | | # username: liku |
| | | # password: 123456 |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | |
| | | |
| | |
| | | <include refid="standbyAll"></include> |
| | | </update> |
| | | |
| | | <update id="increaseWorkQtyById"> |
| | | update man_order_detl_pakout |
| | | set work_qty = work_qty + #{workQty} |
| | | where 1=1 |
| | | and id = #{id} |
| | | </update> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | // ,{field: 'tagId$', align: 'center',title: '所属归类'} |
| | | ,{field: 'maktx', align: 'center',title: '商品名称(品名)', width: 200} |
| | | // ,{field: 'name', align: 'center',title: '别名'} |
| | | ,{field: 'sku', align: 'center',title: 'U8旧品名'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'model', align: 'center',title: '型号'} |
| | | ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '单位', hide: false} |
| | | ,{field: 'manu', align: 'center',title: '辅单位'} |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: '物料简称'} |
| | | ,{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: 'origin', align: 'center',title: '换算比例'} |
| | | ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true} |
| | | ,{field: 'itemNum', align: 'center',title: '品项数', hide: true} |
| | | ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true} |
| | |
| | | var detlCols = [ |
| | | {field: 'matnr', align: 'center',title: '商品编号(品号)', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '商品名称(品名)', sort:true} |
| | | ,{field: 'sku', align: 'center',title: 'U8旧品名'} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '批次'} |
| | | ,{field: 'anfme', align: 'center',title: '数量', hide: false} |
| | | ,{field: 'weight', align: 'center',title: '辅数量'} |
| | | ,{field: 'unit', align: 'center',title: '单位'} |
| | | ,{field: 'manu', align: 'center',title: '辅单位'} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false} |
| | | ,{field: 'specs', align: 'center',title: '规格', hide: false} |
| | | ,{field: 'model', align: 'center',title: '型号'} |
| | |
| | | ,{field: 'standby1$', align: 'center',title: '仓库'} |
| | | ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | | ,{field: 'brand', align: 'center',title: '品牌', hide: true} |
| | | ,{field: 'unit', align: 'center',title: '单位', hide: false} |
| | | ,{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} |
| | |
| | | {type: 'checkbox'}, |
| | | {field: 'locNo$', align: 'center',title: '库位号'} |
| | | ,{field: 'storeDate', 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: true} |
| | | ,{field: 'batch', align: 'center',title: '批号', width: 300, sort:true} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'matnr', align: 'center',title: '商品编号(品号)', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '商品名称(品名)', sort:true} |
| | | ,{field: 'sku', align: 'center',title: 'U8旧品名'} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '批次'} |
| | | ,{field: 'anfme', align: 'center',title: '数量', hide: false} |
| | | ,{field: 'weight', align: 'center',title: '辅数量'} |
| | | ,{field: 'unit', align: 'center',title: '单位'} |
| | | ,{field: 'manu', align: 'center',title: '辅单位'} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false} |
| | | ,{field: 'specs', align: 'center',title: '规格', hide: false} |
| | | ,{field: 'model', align: 'center',title: '型号'} |
| | | ,{field: 'standby1$', align: 'center',title: '仓库'} |
| | | ,{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: '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: '辅数量'} |
| | | ,{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: 'appeTime$', align: 'center',title: '入库时间'} |
| | | ,{field: 'frozen$', align: 'center',title: '冻结否', |
| | | templet: function(d) { |
| | | // 根据条件判断字体颜色 |
| | |
| | | {field: 'maktx', title: '商品名称', width: 160}, |
| | | {field: 'specs', title: '规格'}, |
| | | {field: 'batch', title: '批号'}, |
| | | {field: 'weight', title: '辅数量'}, |
| | | {field: 'anfme', title: '待完结数量'}, |
| | | {field: 'qty', title: '待上报数量', style: 'font-weight: bold'}, |
| | | {field: 'workQty', title: '已上报数量'}, |
| | |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', templet: '#orderNoTpl', width: 160} |
| | | ,{field: 'matnr', align: 'center',title: '商品编码', width: 160} |
| | | ,{field: 'maktx', align: 'center',title: '商品名称', width: 200} |
| | | ,{field: 'batch', align: 'center',title: '序列码'} |
| | | ,{field: 'batch', align: 'center',title: '批次'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | // ,{field: 'anfme', align: 'center',title: '数量'} |
| | | // ,{field: 'qty', align: 'center',title: '作业数量', style: 'font-weight: bold'} |
| | |
| | | ,{field: 'updateBy$', align: 'center',title: '修改人员'} |
| | | ,{field: 'updateTime$', align: 'center',title: '修改时间'} |
| | | ,{field: 'memo', align: 'center',title: '备注'} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120} |
| | | ]], |
| | | request: { |
| | |
| | | layer.open({ |
| | | type: 1, |
| | | title: false, |
| | | area: '820px', |
| | | area: '970px', |
| | | offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], |
| | | shade: .01, |
| | | shadeClose: true, |
| | |
| | | {field: 'matnr', title: '商品编码', width: 160}, |
| | | {field: 'maktx', title: '商品名称', width: 160}, |
| | | {field: 'batch', title: '批号'}, |
| | | {field: 'weight', title: '辅数量'}, |
| | | {field: 'anfme', title: '数量'}, |
| | | {field: 'workQty', title: '作业数量'}, |
| | | {field: 'qty', title: '完成数量', style: 'font-weight: bold'}, |
| | |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', templet: '#orderNoTpl', width: 160} |
| | | ,{field: 'matnr', align: 'center',title: '商品编码', width: 160} |
| | | ,{field: 'maktx', align: 'center',title: '商品名称', width: 200} |
| | | ,{field: 'batch', align: 'center',title: '序列码'} |
| | | ,{field: 'batch', align: 'center',title: '批次'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | // ,{field: 'anfme', align: 'center',title: '数量'} |
| | | // ,{field: 'qty', align: 'center',title: '作业数量', style: 'font-weight: bold'} |
| | |
| | | layer.open({ |
| | | type: 1, |
| | | title: false, |
| | | area: '820px', |
| | | area: '970px', |
| | | offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], |
| | | shade: .01, |
| | | shadeClose: true, |
| | |
| | | {field: 'matnr', title: '商品编码', width: 160}, |
| | | {field: 'maktx', title: '商品名称', width: 160}, |
| | | {field: 'batch', title: '批号'}, |
| | | {field: 'weight', title: '辅数量'}, |
| | | {field: 'anfme', title: '数量'}, |
| | | {field: 'workQty', title: '作业数量'}, |
| | | {field: 'qty', title: '完成数量', style: 'font-weight: bold'}, |
| | |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', templet: '#orderNoTpl', width: 160} |
| | | ,{field: 'matnr', align: 'center',title: '商品编码', width: 160} |
| | | ,{field: 'maktx', align: 'center',title: '商品名称', width: 200} |
| | | ,{field: 'batch', align: 'center',title: '序列码'} |
| | | ,{field: 'batch', align: 'center',title: '批次'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'weight$', align: 'center',title: '辅数量'} |
| | | // ,{field: 'anfme', align: 'center',title: '数量'} |
| | | // ,{field: 'qty', align: 'center',title: '作业数量', style: 'font-weight: bold'} |
| | | ,{field: 'enableQty', align: 'center',title: '待出数量', style: 'font-weight: bold'} |
| | |
| | | {field: 'title', title: '商品', merge: true, align: 'center', width: 350}, |
| | | {field: 'batch', title: '序列码', align: 'center'}, |
| | | {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'}, |
| | | {field: 'weight', title: '辅数量', align: 'center', width: 90, style: 'font-weight: bold'}, |
| | | {field: 'locNo', title: '货位', align: 'center', width: 100, templet: '#locNoTpl'}, |
| | | {field: 'frozen$', title: '明细', align: 'center', width: 90, templet: '#locFrozen'}, |
| | | {field: 'frozenLoc$', title: '库位', align: 'center', width: 90, templet: '#locFrozenLoc'}, |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">序列码:</label> |
| | | <label class="layui-form-label">批次:</label> |
| | | <div class="layui-input-inline"> |
| | | <input name="batch" class="layui-input" placeholder="序列码"/> |
| | | <input name="batch" class="layui-input" placeholder="批次"/> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">序列码:</label> |
| | | <label class="layui-form-label">批次:</label> |
| | | <div class="layui-input-inline"> |
| | | <input name="batch" class="layui-input" placeholder="序列码"/> |
| | | <input name="batch" class="layui-input" placeholder="批次"/> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |