#
whycq
2022-08-08 2e71ee94af4962b9aaf83805bc912d9a8fe118fa
#
8个文件已修改
677 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/LocDetl.java 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetl.java 309 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/VersionUtils.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/LedThread.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkDetlMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -1,14 +1,13 @@
package com.zy.asrs.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.LocMastService;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -22,57 +21,119 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "库位号")
    @TableId(value = "loc_no", type = IdType.INPUT)
    @TableField("loc_no")
    private String locNo;
    @ApiModelProperty(value= "产品编码")
    @TableId(value = "mat_no", type = IdType.INPUT)
    @TableField("mat_no")
    private String matNo;
    @ApiModelProperty(value= "产品名称")
    @TableId(value = "mat_name")
    @TableField("mat_name")
    private String matName;
    @ApiModelProperty(value= "规格")
    private String specs;
    @ApiModelProperty(value= "尺寸")
    private String size;
    @ApiModelProperty(value= "颜色")
    private String color;
    @ApiModelProperty(value= "单重")
    private Double weight;
    @ApiModelProperty(value= "供应商")
    private String supplier;
    @ApiModelProperty(value= "仓库")
    private String warehouse;
    @ApiModelProperty(value= "品牌")
    private String brand;
    @ApiModelProperty(value= "数量")
    private Double qty;
    @ApiModelProperty(value= "单位")
    private String unit;
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
    @ApiModelProperty(value= "用户ID")
    private String bname;
    @ApiModelProperty(value= "数量")
    @ExcelProperty("数量")
    private Double anfme;
    @ApiModelProperty(value= "备注")
    private String memo;
    @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= "规格")
    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")
@@ -90,30 +151,8 @@
    @TableField("appe_time")
    private Date appeTime;
    @TableField("bill_no")
    private String billNo;
    @TableField("seq_no")
    private int seqNo;
    @TableField("bill_type")
    private int billType;
    @TableField("object_id")
    private String objectId;
    @TableField("object_name")
    private String objectName;
    @TableField("det_id")
    private int detId;
    @TableId(value = "Item_batch", type = IdType.INPUT)
    @TableField("Item_batch")
    private String itemBatch;
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "备注")
    private String memo;
    public String getLocNo$(){
        LocMastService service = SpringUtils.getBean(LocMastService.class);
@@ -122,6 +161,56 @@
            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$(){
@@ -140,7 +229,6 @@
        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);
@@ -156,4 +244,6 @@
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
}
src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -1,24 +1,19 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("asr_wrk_detl")
public class WrkDetl implements Serializable {
@@ -38,59 +33,11 @@
    @TableField("io_time")
    private Date ioTime;
    @ApiModelProperty(value= "产品编码")
    @TableId(value = "mat_no")
    @TableField("mat_no")
    private String matNo;
    @ApiModelProperty(value= "产品名称")
    @TableId(value = "mat_name")
    @TableField("mat_name")
    private String matName;
    @ApiModelProperty(value= "规格")
    private String specs;
    @ApiModelProperty(value= "尺寸")
    private String size;
    @ApiModelProperty(value= "颜色")
    private String color;
    @ApiModelProperty(value= "单重")
    private Double weight;
    /**
     * 单据编号
     */
    @ApiModelProperty(value= "单据编号")
    @TableField("bill_no")
    private String billNo;
    /**
     * 序号
     */
    @ApiModelProperty(value= "序号")
    @TableField("seq_no")
    private Integer seqNo;
    /**
     * 仓库号
     */
    @ApiModelProperty(value= "品牌")
    private String brand;
    /**
     * 数量
     */
    @ApiModelProperty(value= "数量")
    private Double qty;
    /**
     * 单位
     */
    @ApiModelProperty(value= "单位")
    private String unit;
    private Double anfme;
    /**
     * 托盘条码
@@ -99,16 +46,193 @@
    private String zpallet;
    /**
     * 用户ID
     * 物料
     */
    @ApiModelProperty(value= "用户ID")
    private String bname;
    @ApiModelProperty(value= "商品编号")
    private String matnr;
    /**
     * 备注
     * 物料描述
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "商品名称")
    private String maktx;
    /**
     * 批号
     */
    @ApiModelProperty(value= "批号")
    private String batch;
    /**
     * 单据编号
     */
    @ApiModelProperty(value= "单据编号")
    @TableField("order_no")
    private String orderNo;
    /**
     * 规格
     */
    @ApiModelProperty(value= "规格")
    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;
    /**
     * sku
     */
    @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;
    /**
     * 是否批次 1: 是  0: 否
     */
    @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;
    /**
     * 制购 1: 制造  2: 采购  3: 外协
     */
    @ApiModelProperty(value= "制购 1: 制造  2: 采购  3: 外协  ")
    private Integer source;
    /**
     * 要求检验 1: 是  0: 否
     */
    @ApiModelProperty(value= "要求检验 1: 是  0: 否  ")
    private Integer inspect;
    /**
     * 危险品 1: 是  0: 否
     */
    @ApiModelProperty(value= "危险品 1: 是  0: 否  ")
    private Integer danger;
    /**
     * 修改人员
@@ -138,21 +262,67 @@
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "库位号")
    @TableField(exist = false)
    private String locNo;
    @TableField("Item_batch")
    private String itemBatch;
    @TableField("order_no")
    private String orderNo;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    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$(){
@@ -187,4 +357,5 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -130,7 +130,7 @@
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.isLoading()
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990)
                        && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) {
//                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
@@ -1408,7 +1408,7 @@
                ledCommand.setStaNo(wrkMast.getStaNo());
                if (wrkMast.getIoType() != 110) {
                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatNo(), wrkDetl.getMatName(), wrkDetl.getQty())));
                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
                }
                commands.add(ledCommand);
            }
@@ -1499,7 +1499,7 @@
                }
            }
            // 获取led线程
            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId());
            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
            // led显示默认内容
            if (reset && !ledThread.isLedMk()) {
                ledThread.setLedMk(true);
@@ -1553,7 +1553,7 @@
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.setWrkNo(workNo);
                wrkDetl.setIoTime(now);
                wrkDetl.setQty(locDetl.getQty());
                wrkDetl.setAnfme(locDetl.getAnfme());
                VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
@@ -1670,7 +1670,7 @@
                    WrkDetl wrkDetl = new WrkDetl();
                    wrkDetl.setWrkNo(workNo);
                    wrkDetl.setIoTime(new Date());
                    wrkDetl.setQty(locDetl.getQty());
                    wrkDetl.setAnfme(locDetl.getAnfme());
                    VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制
                    wrkDetl.setAppeTime(new Date());
                    wrkDetl.setModiTime(new Date());
src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -28,11 +28,11 @@
    }
    public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) {
        wrkDetl.setMatNo(locDetl.getMatNo()); // 产品编号
        wrkDetl.setMatName(locDetl.getMatName()); // 产品描述
        wrkDetl.setMatnr(locDetl.getMatnr()); // 产品编号
        wrkDetl.setMaktx(locDetl.getMaktx()); // 产品描述
        wrkDetl.setSpecs(locDetl.getSpecs()); // 规格
        wrkDetl.setUnit(locDetl.getUnit()); // 单位
        wrkDetl.setSize(locDetl.getSize()); // 尺寸
//        wrkDetl.setSize(locDetl.getSize()); // 尺寸
        wrkDetl.setColor(locDetl.getColor()); // 颜色
        wrkDetl.setWeight(locDetl.getWeight()); // 单重
        wrkDetl.setZpallet(locDetl.getZpallet()); // 托盘条码
@@ -52,13 +52,13 @@
    }
    public static void setLocDetl(LocDetl locDetl, WrkDetl wrkDetl) {
        locDetl.setMatNo(wrkDetl.getMatNo()); // 产品编号
        locDetl.setMatName(wrkDetl.getMatName()); // 产品描述
        locDetl.setMatnr(wrkDetl.getMatnr()); // 产品编号
        locDetl.setMaktx(wrkDetl.getMaktx()); // 产品描述
        locDetl.setSpecs(wrkDetl.getSpecs()); // 规格
        locDetl.setUnit(wrkDetl.getUnit()); // 单位
        locDetl.setSize(wrkDetl.getSize()); // 尺寸
//        locDetl.setSize(wrkDetl.getSize()); // 尺寸
        locDetl.setColor(wrkDetl.getColor()); // 颜色
        locDetl.setQty(wrkDetl.getQty()); // 数量
        locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
        locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
    }
src/main/java/com/zy/core/thread/LedThread.java
@@ -40,7 +40,7 @@
    TextCaptionBxArea area;
    DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
    private Set<Integer> workNos = new HashSet<>();
    private boolean ledMk = true;
    private boolean ledMk = false;
    private boolean resetStatus = false;    // 复位状态
    public LedThread(Slave slave) {
@@ -114,7 +114,7 @@
        }
        // 设置字体
        page.setFont(new Font("宋体",Font.PLAIN,10));
        page.setFont(new Font("宋体",Font.PLAIN,12));
        // 设置文本颜色
        page.setForeground(Color.red);
        // 设置显示特技为快速打出
@@ -133,9 +133,9 @@
    }
    private void reset() throws Bx5GException {
//        if (!connect()) {
//            return;
//        }
        if (!connect()) {
            return;
        }
//        if (resetStatus) {
//            return;
//        }
@@ -146,20 +146,21 @@
        // 创建一个数据页
        TextBxPage page = new TextBxPage();
        List<String> list = null;
        try {
            String ledDefaultMsg = Parameter.get().getLedDefaultMsg();
            list = JSON.parseArray(ledDefaultMsg, String.class);
        } catch (Exception ignore) {
        }
        if (!Cools.isEmpty(list)) {
            for (String str : list) {
                page.newLine(str);
            }
        } else {
            page.newLine("自动化立体仓库");
            page.newLine("西格迈股份有限公司");
        }
//        List<String> list = null;
//        try {
//            String ledDefaultMsg = Parameter.get().getLedDefaultMsg();
//            list = JSON.parseArray(ledDefaultMsg, String.class);
//        } catch (Exception ignore) {
//        }
//        if (!Cools.isEmpty(list)) {
//            for (String str : list) {
//                page.newLine(str);
//            }
//        } else {
//            page.newLine("自动化立体仓库");
//            page.newLine("西格迈股份有限公司");
//        }
        page.newLine("");
        // 设置字体
        page.setFont(new Font("宋体",Font.PLAIN,13));
src/main/resources/application.yml
@@ -185,39 +185,39 @@
    ip: 10.10.10.201
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 110
    staArr: 102
  # LED2
  led[1]:
    id: 2
    ip: 10.10.10.202
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 117
    staArr: 103
  # LED3
  led[2]:
    id: 3
    ip: 10.10.10.203
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 124
    staArr: 202
  # LED4
  led[3]:
    id: 4
    ip: 10.10.10.204
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 131
    staArr: 203
  # LED5
  led[4]:
    id: 5
    ip: 10.10.10.205
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 136
    staArr: 303
  # LED6
  led[5]:
    id: 5
    ip: 10.10.10.206
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 136
    staArr: 305
src/main/resources/mapper/LocDetlMapper.xml
@@ -5,24 +5,45 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocDetl">
        <result column="loc_no" property="locNo" />
        <result column="mat_no" property="matNo" />
        <result column="mat_name" property="matName" />
        <result column="specs" property="specs" />
        <result column="size" property="size" />
        <result column="color" property="color" />
        <result column="weight" property="weight" />
        <result column="supplier" property="supplier" />
        <result column="warehouse" property="warehouse" />
        <result column="brand" property="brand" />
        <result column="qty" property="qty" />
        <result column="unit" property="unit" />
        <result column="zpallet" property="zpallet" />
        <result column="bname" property="bname" />
        <result column="memo" property="memo" />
        <result column="anfme" property="anfme" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="batch" property="batch" />
        <result column="order_no" property="orderNo" />
        <result column="specs" property="specs" />
        <result column="model" property="model" />
        <result column="color" property="color" />
        <result column="brand" property="brand" />
        <result column="unit" property="unit" />
        <result column="price" property="price" />
        <result column="sku" property="sku" />
        <result column="units" property="units" />
        <result column="barcode" property="barcode" />
        <result column="origin" property="origin" />
        <result column="manu" property="manu" />
        <result column="manu_date" property="manuDate" />
        <result column="item_num" property="itemNum" />
        <result column="safe_qty" property="safeQty" />
        <result column="weight" property="weight" />
        <result column="length" property="length" />
        <result column="volume" property="volume" />
        <result column="three_code" property="threeCode" />
        <result column="supp" property="supp" />
        <result column="supp_code" property="suppCode" />
        <result column="be_batch" property="beBatch" />
        <result column="dead_time" property="deadTime" />
        <result column="dead_warn" property="deadWarn" />
        <result column="source" property="source" />
        <result column="inspect" property="inspect" />
        <result column="danger" property="danger" />
        <result column="modi_user" property="modiUser" />
        <result column="modi_time" property="modiTime" />
        <result column="appe_user" property="appeUser" />
        <result column="appe_time" property="appeTime" />
        <result column="memo" property="memo" />
    </resultMap>
    <sql id="stockOutCondition">
@@ -30,10 +51,10 @@
            and a.loc_no like '%' + #{loc_no} + '%'
        </if>
        <if test="matNo!=null and matNo!='' ">
            and a.mat_no like '%' + #{matNo} + '%'
            and a.matnr like '%' + #{matNo} + '%'
        </if>
        <if test="matName!=null and matName!='' ">
            and a.mat_name like '%' + #{matName} + '%'
            and a.maktx like '%' + #{matName} + '%'
        </if>
        <if test="anfme!=null and anfme!='' ">
            and a.anfme like '%' + #{anfme} + '%'
src/main/resources/mapper/WrkDetlMapper.xml
@@ -6,8 +6,8 @@
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkDetl">
        <result column="wrk_no" property="wrkNo" />
        <result column="io_time" property="ioTime" />
        <result column="mat_no" property="matNo" />
        <result column="mat_name" property="matName" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="specs" property="specs" />
        <result column="size" property="size" />
        <result column="color" property="color" />
@@ -15,7 +15,7 @@
        <result column="bill_no" property="billNo" />
        <result column="seq_no" property="seqNo" />
        <result column="brand" property="brand" />
        <result column="qty" property="qty" />
        <result column="anfme" property="anfme" />
        <result column="unit" property="unit" />
        <result column="zpallet" property="zpallet" />
        <result column="bname" property="bname" />
@@ -27,7 +27,7 @@
    </resultMap>
    <select id="findByWorkNo" resultMap="BaseResultMap">
        select wrk_no, mat_no, mat_name, qty from asr_wrk_detl where 1=1 and wrk_no = #{workNo}
        select wrk_no, matnr, maktx, anfme from asr_wrk_detl where 1=1 and wrk_no = #{workNo}
    </select>
    <update id="updateIoTime">