自动化立体仓库 - WMS系统
LSH
2022-10-29 599a0ebb6711d123a481a1f9ebf373ab9fd67cfa
#异常库存合并
2个文件已修改
1个文件已添加
332 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocDetlController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java 282 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -14,6 +14,7 @@
import com.core.common.R;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.param.AbnormalLocDetlParam;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatService;
@@ -294,7 +295,8 @@
                       @RequestParam(required = false) String condition,
                       @RequestParam Map<String, Object> param) {
        List<LocDetl> result = new ArrayList<>();
//        List<LocDetl> result = new ArrayList<>();
        List<AbnormalLocDetlParam> result = new ArrayList<>();
//        excludeTrash(param);
        param.put("curr", curr);
        param.put("limit", limit);
@@ -303,9 +305,6 @@
        for (LocDetl locDetl : groupLocDetl.getRecords()) {
            Mat mat = matService.selectOne(new EntityWrapper<Mat>()
                    .eq("matnr", locDetl.getMatnr()));
            locDetl.setStoreMax(mat.getStoreMax());
            locDetl.setStoreMaxDate(mat.getStoreMaxDate());
            locDetl.setStoreMin(mat.getStoreMin());
            if (Cools.isEmpty(mat)
                    || Cools.isEmpty(mat.getStoreMax())
                    || Cools.isEmpty(mat.getStoreMaxDate())
@@ -316,21 +315,30 @@
            } else if (locDetl.getBatch().length() != 8) {
                continue;
            }
            AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam();
            abnormalLocDetlParam.setStoreMax(mat.getStoreMax());
            abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate());
            abnormalLocDetlParam.setStoreMin(mat.getStoreMin());
            abnormalLocDetlParam.setAnfme(locDetl.getAnfme());
            abnormalLocDetlParam.setMaktx(mat.getMaktx());
            abnormalLocDetlParam.setMatnr(mat.getMatnr());
            abnormalLocDetlParam.setSpecs(mat.getSpecs());
            abnormalLocDetlParam.setBatch(locDetl.getBatch());
            try {
                SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd");
                Date maxDate = simple.parse(locDetl.getBatch());
                long time = maxDate.getTime();
                Date now = new Date();
                long time1 = now.getTime();
                locDetl.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24)));
                abnormalLocDetlParam.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24)));
            } catch (ParseException e) {
                e.printStackTrace();
            }
            if (locDetl.getAnfme() > mat.getStoreMax()) {
                result.add(locDetl);
                result.add(abnormalLocDetlParam);
                continue;
            } else if (locDetl.getAnfme() < mat.getStoreMin()) {
                result.add(locDetl);
                result.add(abnormalLocDetlParam);
                continue;
            }
@@ -345,14 +353,14 @@
                maxDate = calendar.getTime();
                Date now = new Date();
                if (now.compareTo(maxDate) > 0) {
                    result.add(locDetl);
                    result.add(abnormalLocDetlParam);
                }
            } catch (Exception e) {
                continue;
            }
        }
        Page<LocDetl> locDetlPage = new Page<>();
        Page<AbnormalLocDetlParam> locDetlPage = new Page<>();
        locDetlPage.setRecords(paging(result, curr, limit));
        locDetlPage.setTotal(result.size());
        locDetlPage.setCurrent(curr);
@@ -360,8 +368,8 @@
        return R.ok(locDetlPage);
    }
    private List<LocDetl> paging(List<LocDetl> result, Integer curr, Integer limit) {
        List<LocDetl> pageRecord = new ArrayList<LocDetl>();
    private List<AbnormalLocDetlParam> paging(List<AbnormalLocDetlParam> result, Integer curr, Integer limit) {
        List<AbnormalLocDetlParam> pageRecord = new ArrayList<AbnormalLocDetlParam>();
        int minIndex = (curr - 1) * limit;
        int maxIndex = (curr * limit) - 1;
        if (result.size() < maxIndex) {
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -158,26 +158,6 @@
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * 库存预警数量上限
     */
    private Double storeMax;
    /**
     * 库存预警数量下限
     */
    private Double storeMin;
    /**
     * 库龄预警上限
     */
    private Integer storeMaxDate;
    /**
     * 实际在库天数
     */
    private Integer nowTime;
    public String getLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java
New file
@@ -0,0 +1,282 @@
package com.zy.asrs.entity.param;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotations.TableField;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.LocMastService;
import com.zy.common.utils.Synchro;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
public class AbnormalLocDetlParam {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "库位号")
    @TableField("loc_no")
    private String locNo;
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    @ApiModelProperty(value = "数量")
    @ExcelProperty("数量")
    private Double anfme;
    @ApiModelProperty(value = "商品编号")
    @ExcelProperty("商品编号")
    private String matnr;
    @ApiModelProperty(value = "商品名称")
    @ExcelProperty("商品名称")
    private String maktx;
    @ApiModelProperty(value = "序列码")
    @ExcelProperty("序列码")
    private String batch;
    @ApiModelProperty(value = "单据编号")
    @ExcelProperty("单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value = "c")
    @ExcelProperty("规格")
    private String specs;
    @ApiModelProperty(value = "型号")
    private String model;
    @ApiModelProperty(value = "颜色")
    private String color;
    @ApiModelProperty(value = "品牌")
    private String brand;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value = "单价")
    private Double price;
    @ApiModelProperty(value = "sku")
    private String sku;
    @ApiModelProperty(value = "单位量")
    private Double units;
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value = "产地")
    private String origin;
    @ApiModelProperty(value = "厂家")
    private String manu;
    @ApiModelProperty(value = "生产日期")
    @TableField("manu_date")
    private String manuDate;
    @ApiModelProperty(value = "品项数")
    @TableField("item_num")
    private String itemNum;
    @ApiModelProperty(value = "安全库存量")
    @TableField("safe_qty")
    private Double safeQty;
    @ApiModelProperty(value = "重量")
    private Double weight;
    @ApiModelProperty(value = "长度")
    private Double length;
    @ApiModelProperty(value = "体积")
    private Double volume;
    @ApiModelProperty(value = "三方编码")
    @TableField("three_code")
    private String threeCode;
    @ApiModelProperty(value = "供应商")
    private String supp;
    @ApiModelProperty(value = "供应商编码")
    @TableField("supp_code")
    private String suppCode;
    @ApiModelProperty(value = "是否批次 1: 是  0: 否  ")
    @TableField("be_batch")
    private Integer beBatch;
    @ApiModelProperty(value = "保质期")
    @TableField("dead_time")
    private String deadTime;
    @ApiModelProperty(value = "预警天数")
    @TableField("dead_warn")
    private Integer deadWarn;
    @ApiModelProperty(value = "制购 1: 制造  2: 采购  3: 外协  ")
    private Integer source;
    @ApiModelProperty(value = "要求检验 1: 是  0: 否  ")
    private Integer inspect;
    @ApiModelProperty(value = "危险品 1: 是  0: 否  ")
    private Integer danger;
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * 库存预警数量上限
     */
    private Double storeMax;
    /**
     * 库存预警数量下限
     */
    private Double storeMin;
    /**
     * 库龄预警上限
     */
    private Integer storeMaxDate;
    /**
     * 实际在库天数
     */
    private Integer nowTime;
    public String getLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.locNo);
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getBeBatch$() {
        if (null == this.beBatch) {
            return null;
        }
        switch (this.beBatch) {
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.beBatch);
        }
    }
    public String getSource$() {
        if (null == this.source) {
            return null;
        }
        switch (this.source) {
            case 1:
                return "制造";
            case 2:
                return "采购";
            case 3:
                return "外协";
            default:
                return String.valueOf(this.source);
        }
    }
    public String getInspect$() {
        if (null == this.inspect) {
            return null;
        }
        switch (this.inspect) {
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.inspect);
        }
    }
    public String getDanger$() {
        if (null == this.danger) {
            return null;
        }
        switch (this.danger) {
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.danger);
        }
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void sync(Object source) {
        Synchro.Copy(source, this);
    }
}