自动化立体仓库 - WMS系统
lty
4 天以前 9d38f2354b3a7267a2486d937bb7d256fcb949c1
#增加生产日期,到期日期字段,增加库存明细超期库存检索
31个文件已修改
369 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvLocDetlController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvLocDetl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvWaitPakin.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvWrkDetl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/FullStoreParam.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StockOutParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/LocDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvLocDetl/locDetl.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetl/locDetl.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetlStatis/locDetlStatis.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderDetl/orderDetl.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/waitPakin/waitPakin.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/waitPakinLog/waitPakinLog.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvLocDetl/locDetl.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locDetl/locDetl.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
@@ -8,6 +8,7 @@
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.AgvLocDetl;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.service.AgvLocDetlService;
import com.zy.asrs.service.MatService;
@@ -20,6 +21,7 @@
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -40,14 +42,23 @@
                  @RequestParam(required = false)String orderByType,
                  @RequestParam(required = false)String condition,
                  @RequestParam Map<String, Object> param,
                  @RequestParam(required = false)Boolean unreason){
                  @RequestParam(required = false)Boolean unreason,
                  @RequestParam(required = false)Boolean expired){
        if (!Cools.isEmpty(unreason) && unreason) {
            return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>()
                    .where(" DATALENGTH( batch ) != 11 or\n" +
                            "            batch LIKE '%[a-z]%'")));
        }
        if (!Cools.isEmpty(expired) && expired) {
            return R.ok(agvLocDetlService.selectPage(
                    new Page<>(curr, limit),
                    new EntityWrapper<AgvLocDetl>()
                            .where("deadline < {0}", LocalDate.now())  // 新增的过期判断
            ));
        }
        param.remove("unreason");
        param.remove("expired");
        String row = "";
        EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
        if (param.get("row") != null) {
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.util.*;
@RestController
@@ -86,14 +87,23 @@
                  @RequestParam(required = false)String orderByType,
                  @RequestParam(required = false)String condition,
                  @RequestParam Map<String, Object> param,
                  @RequestParam(required = false)Boolean unreason){
                  @RequestParam(required = false)Boolean unreason,
                @RequestParam(required = false)Boolean expired){
        if (!Cools.isEmpty(unreason) && unreason) {
            return R.ok(locDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<LocDetl>()
                    .where(" DATALENGTH( batch ) != 11 or\n" +
                            "            batch LIKE '%[a-z]%'")));
            return R.ok(locDetlService.selectPage(
                    new Page<>(curr, limit),
                    new EntityWrapper<LocDetl>()
                            .where(" DATALENGTH(batch) != 11 OR batch LIKE '%[a-z]%'")));
        }
        if (!Cools.isEmpty(expired) && expired) {
            return R.ok(locDetlService.selectPage(
                    new Page<>(curr, limit),
                    new EntityWrapper<LocDetl>()
                            .where("deadline < {0}", LocalDate.now())  // 新增的过期判断
            ));
        }
        param.remove("unreason");
        param.remove("expired");
        String row = "";
        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
        if (param.get("row") != null) {
src/main/java/com/zy/asrs/entity/AgvLocDetl.java
@@ -12,6 +12,7 @@
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
@@ -160,6 +161,15 @@
    @TableField("stock_freeze")
    @ApiModelProperty(value= "库存冻结{1:正常,0:冻结}")
    private Integer stockFreeze;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date deadline;
    public String getLocNo$(){
        LocMastService service = SpringUtils.getBean(LocMastService.class);
@@ -262,5 +272,16 @@
        }
        return this.stockFreeze == 1 ? "正常" : "冻结";
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
}
src/main/java/com/zy/asrs/entity/AgvWaitPakin.java
@@ -150,7 +150,26 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    private Date deadline;
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
src/main/java/com/zy/asrs/entity/AgvWrkDetl.java
@@ -268,7 +268,12 @@
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    private Date deadline;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
            return "";
@@ -276,6 +281,19 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -12,6 +12,7 @@
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
@@ -157,6 +158,17 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date deadline;
    @TableField("stock_freeze")
    @ApiModelProperty(value= "库存冻结{1:正常,0:冻结}")
    private Integer stockFreeze;
@@ -244,6 +256,18 @@
        }
        return null;
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -279,6 +279,18 @@
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date deadline;
    /**
     * 备注
     */
@@ -287,7 +299,7 @@
    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) {
    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,Date proddate, Date deadline) {
        this.orderId = orderId;
        this.orderNo = orderNo;
        this.anfme = anfme;
@@ -327,6 +339,8 @@
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
        this.proddate = proddate;
        this.deadline = deadline;
    }
    public String getOrderId$(){
@@ -432,6 +446,19 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
    public Double getEnableQty() {
        Double enableQty = null;
        if (null != this.anfme && this.qty != null) {
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -148,6 +148,12 @@
    @ApiModelProperty(value= "创建者")
    @TableField("appe_user")
    private Long appeUser;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    private Date deadline;
    @ApiModelProperty(value= "备注")
    private String memo;
@@ -215,7 +221,18 @@
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
    public void sync(Object source) {
        Synchro.Copy(source, this);
    }
src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -269,6 +269,13 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "生产日期")
    @TableField("proddate")
    private Date proddate;
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    private Date deadline;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
            return "";
@@ -287,7 +294,18 @@
                return String.valueOf(this.beBatch);
        }
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.proddate);
    }
    public String getDeadline$(){
        if (Cools.isEmpty(this.deadline)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd").format(this.deadline);
    }
    public String getSource$(){
        if (null == this.source){ return null; }
        switch (this.source){
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -1,7 +1,9 @@
package com.zy.asrs.entity.param;
import lombok.Data;
import org.springframework.dao.DataAccessException;
import java.util.Date;
import java.util.List;
/**
@@ -48,6 +50,14 @@
        // 规格
        private String specs;
        //生产日期
        private Date proddate;
        //到期日期
        private Date deadline;
    }
}
src/main/java/com/zy/asrs/entity/param/FullStoreParam.java
@@ -2,6 +2,7 @@
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -40,6 +41,12 @@
        //销售订单行号
        private String isoseq;
        //生产日期
        private Date proddate;
        //到期日期
        private Date deadline;
    }
}
src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -2,6 +2,7 @@
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -42,6 +43,8 @@
        //销售订单行号
        private String deadTime;
        private Date proddate;
        private Date deadline;
    }
}
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -136,7 +136,7 @@
                checkOrderQty(order,combMat);
            }
            DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode());
            DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode(),combMat.getProddate(),combMat.getDeadline());
            //同一托盘下相同物料信息和批号转为一个入库通知档
            if (DetlDto.has(detlDtos, detlDto)) {
                DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),null);
@@ -185,6 +185,8 @@
        waitPakin.setIoStatus("N");     // 入出状态
        waitPakin.setAnfme(detlDto.getAnfme());  // 数量
        waitPakin.setStatus("Y");    // 状态
        waitPakin.setProddate(detlDto.getProddate());
        waitPakin.setDeadline(detlDto.getDeadline());
        ////销售订单号
        waitPakin.setThreeCode(detlDto.getCsocode());
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -97,7 +97,7 @@
            wrkMast.setMk(isConveyor ? "Y" : "N");
            //生成工作档明细
            agvWaitPakinList.forEach(wp -> {
                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProddate(),wp.getDeadline());
            });
            //更新源站点信息
            updateAgvBasDevp(agvBasDevp,"R");
@@ -149,7 +149,9 @@
                            now,
                            userId,
                            locDto.getCsocode(),
                            locDto.getIsoseq());
                            locDto.getIsoseq(),
                            locDto.getProddate(),
                            locDto.getDeadline());
                }else {
                    List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
                    orderDtoList.forEach(orderDto -> {
@@ -163,7 +165,9 @@
                                now,
                                userId,
                                locDto.getCsocode(),
                                locDto.getIsoseq());
                                locDto.getIsoseq(),
                                locDto.getProddate(),
                                locDto.getDeadline());
                    });
                }
@@ -241,7 +245,7 @@
        List<TaskDto> taskDtos = new ArrayList<>();
        param.getLocDetls().forEach(locDetl -> {
            LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode());
            LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode(),locDetl.getProddate(),locDetl.getDeadline());
            TaskDto taskDto = new TaskDto(locDetl.getLocNo(),station,locDto);
            if(TaskDto.has(taskDtos,taskDto)){
                TaskDto.find(taskDtos,taskDto).getLocDtos().add(locDto);
@@ -273,7 +277,9 @@
                        now,
                        userId,
                        locDto.getCsocode(),
                        locDto.getIsoseq());
                        locDto.getIsoseq(),
                        locDto.getProddate(),
                        locDto.getDeadline());
            });
            updateAgvLocMast(agvLocMastService.selectById(wrkMast.getSourceLocNo()),"P");
            //更新目标站点状态
@@ -303,7 +309,7 @@
        //生成移库工作档
        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,false);
        //生成工作党明细
        createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime());
        createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime(),sourceLocDetl.getProddate(),sourceLocDetl.getDeadline());
        //修改目标库位状态
        updateAgvLocMast(targetLocMast,"S");
        //修改原库位状态
@@ -613,7 +619,7 @@
    /*
    生成工作档明细
     */
    private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){
    private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq, Date proddate,Date deadline){
        Mat mat = matService.selectByMatnr(matnr);
        if (Cools.isEmpty(mat)) {
            throw new CoolException(matnr + "商品维护失败");
@@ -630,7 +636,8 @@
        wrkDetl.setAppeTime(now);
        wrkDetl.setModiUser(userId);
        wrkDetl.setModiTime(now);
        wrkDetl.setProddate(proddate);
        wrkDetl.setDeadline(deadline);
        wrkDetl.setThreeCode(csocode);
        wrkDetl.setDeadTime(isoseq);
        if (!agvWrkDetlService.insert(wrkDetl)) {
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -142,7 +142,7 @@
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode());
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode(),elem.getProddate(),elem.getDeadline());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
                    assert one != null;
@@ -169,6 +169,8 @@
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                waitPakin.setProddate(detlDto.getProddate());
                waitPakin.setDeadline(detlDto.getDeadline());
                waitPakin.setThreeCode(detlDto.getCsocode());
                waitPakin.setDeadTime(detlDto.getIsoseq());
@@ -197,7 +199,7 @@
                    throw new CoolException("修改单据明细数量失败");
                }
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getCsocode(),elem.getIsoseq(),elem.getContainerCode());
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getCsocode(),elem.getIsoseq(),elem.getContainerCode(),elem.getProddate(),elem.getDeadline());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
                    assert one != null;
@@ -223,6 +225,8 @@
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                waitPakin.setProddate(detlDto.getProddate());
                waitPakin.setDeadline(detlDto.getDeadline());
                waitPakin.setThreeCode(detlDto.getCsocode());
                waitPakin.setDeadTime(detlDto.getIsoseq());
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -131,7 +131,7 @@
        // 生成工作档明细
        List<DetlDto> detlDtos = new ArrayList<>();
        param.getList().forEach(elem -> {
            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode());
            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode(),elem.getProddate(),elem.getDeadline());
            if (DetlDto.has(detlDtos, detlDto)) {
                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
                assert detlDto1 != null;
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -46,7 +46,8 @@
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiUser(userId);
            wrkDetl.setModiTime(now);
            wrkDetl.setProddate(dto.getProddate());
            wrkDetl.setDeadline(dto.getDeadline());
            wrkDetl.setThreeCode(dto.getCsocode());
            wrkDetl.setDeadTime(dto.getIsoseq());
            wrkDetl.setSuppCode(dto.getContainerCode());
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -92,6 +92,8 @@
                            locDetl.sync(wrkDetl);
                            locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setProddate(wrkDetl.getProddate());//生产日期
                            locDetl.setDeadline(wrkDetl.getDeadline());//到期日期
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
@@ -203,6 +205,8 @@
                            locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                            locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                            locDetl.setModiTime(now);
                            locDetl.setProddate(wrkDetl.getProddate());
                            locDetl.setDeadline(wrkDetl.getDeadline());
                            locDetl.setAppeTime(now);
                            if (!locDetlService.insert(locDetl)) {
                                exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
src/main/java/com/zy/common/model/DetlDto.java
@@ -4,6 +4,7 @@
import com.zy.asrs.entity.OrderDetl;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Set;
@@ -29,6 +30,12 @@
    //销售订单行号
    private String isoseq;
    //生产日期
    private Date proddate;
    //到期日期
    private Date deadline;
    public DetlDto() {
    }
@@ -56,6 +63,17 @@
        this.csocode = csocode;
        this.isoseq = isoseq;
        this.containerCode = containerCode;
    }
    public DetlDto(String matnr, String batch, Double anfme, String csocode, String isoseq, String containerCode, Date proddate, Date deadline) {
        this.matnr = matnr;
        this.batch = batch;
        this.anfme = anfme;
        this.csocode = csocode;
        this.isoseq = isoseq;
        this.containerCode = containerCode;
        this.proddate = proddate;
        this.deadline = deadline;
    }
    public DetlDto(String orderNo, String matnr, String batch, Double anfme, String csocode, String isoseq) {
@@ -113,6 +131,7 @@
        return null;
    }
    public static void main(String[] args) {
        boolean a = Cools.eq("a", null);
        System.out.println(a);
src/main/java/com/zy/common/model/LocDto.java
@@ -3,6 +3,7 @@
import com.core.common.Cools;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -44,6 +45,9 @@
    //料箱码
    private String containerCode;
    private Date proddate;
    private Date deadline;
    public LocDto() {
    }
@@ -57,6 +61,18 @@
        this.containerCode = containerCode;
    }
    public LocDto(String locNo, Double anfme, String matnr, String batch, String csocode, String isoseq, String containerCode,Date proddate, Date deadline) {
        this.locNo = locNo;
        this.anfme = anfme;
        this.matnr = matnr;
        this.batch = batch;
        this.csocode = csocode;
        this.isoseq = isoseq;
        this.containerCode = containerCode;
        this.proddate = proddate;
        this.deadline = deadline;
    }
    public LocDto(String locNo, String matnr, String batch, Double anfme) {
        this.locNo = locNo;
        this.matnr = matnr;
src/main/java/com/zy/common/web/WcsController.java
@@ -280,6 +280,8 @@
            WrkDetl wrkDetl = new WrkDetl();
            BeanUtils.copyProperties(waitPakin, wrkDetl);
            wrkDetl.setZpallet(barcode);
            wrkDetl.setProddate(waitPakin.getProddate());
            wrkDetl.setDeadline(waitPakin.getDeadline());
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setAppeTime(now);
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 8080
  port: 8081
  servlet:
    context-path: /@pom.build.finalName@
src/main/webapp/static/js/agvLocDetl/locDetl.js
@@ -57,6 +57,8 @@
    cols.push({field: 'modiUser$', align: 'center',title: '修改人员',hide: true}
        ,{field: 'modiTime$', align: 'center',title: '修改时间'}
        ,{field: 'stockFreeze', align: 'center',title: '库存冻结', templet: '#stockFreezeTpl'}
        ,{field: 'proddate$', align: 'center',title: '生产日期', hide:false}
        ,{field: 'deadline$', align: 'center',title: '到期日期', hide:false}
    )
    return cols;
}
@@ -79,7 +81,8 @@
        page: true,
        limit: 20,
        where:{
          unreason: false
            unreason: false,
            expired: false
        },
        limits: [20, 30, 50, 100, 200, 500],
        even: true,
@@ -478,6 +481,28 @@
        tableReload(false);
    });
    form.on('submit(expired)', function (data) {
        pageCurr = 1;
        tableIns.reload({
            where: {
                expired: true
            },
            page: {
                curr: pageCurr
            },
            done: function (res, curr, count) {
                if (res.code === 403) {
                    top.location.href = baseUrl+"/";
                }
                pageCurr=curr;
                limit(child);
            }
        });
    });
    //查看异常数据
    form.on('submit(unreason)', function (data) {
        pageCurr = 1;
@@ -539,7 +564,8 @@
function tableReload(child) {
    var searchData = {
        unreason: false
        unreason: false,
        expired: false
    };
    $.each($('#search-box [name]').serializeArray(), function() {
        searchData[this.name] = this.value;
src/main/webapp/static/js/common.js
@@ -246,6 +246,8 @@
    ,{field: 'dsDate', align: 'center',title: '启用日期', hide: true}
    ,{field: 'supp', align: 'center',title: '建档人', hide: true}
    ,{field: 'dInvCreateDatetime', align: 'center',title: '建档日期', hide: true}
    ,{field: 'proddate$', align: 'center',title: '生产日期', hide:false}
    ,{field: 'deadline$', align: 'center',title: '到期日期', hide:false}
    // ,{field: 'specs', align: 'center',title: '规格'}
    // ,{field: 'anfme', align: 'center',title: '数量'}
src/main/webapp/static/js/locDetl/locDetl.js
@@ -20,7 +20,8 @@
        ,{field: 'price', align: 'center',title: '进项税', hide: true}
        ,{field: 'units', align: 'center',title: '销项税', hide: true}
        ,{field: 'memo', align: 'center',title: '备注', hide: true}
        ,{field: 'proddate$', align: 'center',title: '生产日期', hide:false}
        ,{field: 'deadline$', align: 'center',title: '到期日期', hide:false}
    ];
    // cols.push.apply(cols, detlCols);
@@ -46,7 +47,8 @@
        page: true,
        limit: 20,
        where:{
          unreason: false
          unreason: false,
            expired: false
        },
        limits: [20, 30, 50, 100, 200, 500],
        even: true,
@@ -479,6 +481,28 @@
        });
    });
    form.on('submit(expired)', function (data) {
        pageCurr = 1;
        tableIns.reload({
            where: {
                expired: true
            },
            page: {
                curr: pageCurr
            },
            done: function (res, curr, count) {
                if (res.code === 403) {
                    top.location.href = baseUrl+"/";
                }
                pageCurr=curr;
                limit(child);
            }
        });
    });
    // 时间选择器
    layDate.render({
        elem: '#modiTime\\$',
@@ -512,7 +536,8 @@
function tableReload(child) {
    var searchData = {
        unreason: false
        unreason: false,
        expired: false
    };
    $.each($('#search-box [name]').serializeArray(), function() {
        searchData[this.name] = this.value;
src/main/webapp/static/js/locDetlStatis/locDetlStatis.js
@@ -10,6 +10,9 @@
    arrRemove(detlCols, "field", "threeCode");
    arrRemove(detlCols, "field", "deadTime");
    arrRemove(detlCols, "field", "batch");
    arrRemove(detlCols, "field", "proddate");
    arrRemove(detlCols, "field", "deadline");
    cols.push.apply(cols, detlCols);
    // cols.push({field: 'anfme', align: 'center',title: '数量', style: 'font-weight: bold'}
    // )
src/main/webapp/static/js/orderDetl/orderDetl.js
@@ -44,6 +44,8 @@
            ,{field: 'updateBy$', align: 'center',title: '修改人员'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
            ,{field: 'memo', align: 'center',title: '备注'}
            ,{field: 'proddate$', align: 'center',title: '生产日期', hide:false}
            ,{field: 'deadline$', align: 'center',title: '到期日期', hide:false}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
src/main/webapp/static/js/waitPakin/waitPakin.js
@@ -15,7 +15,9 @@
                return html;
            }}
        ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
        ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true})
        ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true}
    )
    return cols;
}
src/main/webapp/static/js/waitPakinLog/waitPakinLog.js
@@ -14,9 +14,7 @@
                if(row.ioStatus === 'Y'){html += " checked ";}
                html += ">";
                return html;
            }}
        ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
        ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true})
            }})
    return cols;
}
layui.use(['table','laydate', 'form'], function(){
src/main/webapp/views/agvLocDetl/locDetl.html
@@ -47,6 +47,7 @@
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">查看异常数据</button>
        <button id="expired" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="expired">查看超期数据</button>
    </div>
</div>
src/main/webapp/views/locDetl/locDetl.html
@@ -46,6 +46,8 @@
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">查看异常数据</button>
        <button id="expired" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="expired">查看超期数据</button>
    </div>
</div>