#
Junjie
2023-12-28 30fd349a0bdec5f88021161d20263c4bee5dba11
#
16个文件已添加
9个文件已删除
2 文件已重命名
2183 ■■■■■ 已修改文件
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/AdjDetl.java 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/MatCode.java 303 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/AdjDetlMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/MatCodeMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/AdjDetlService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MatCodeService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/AdjDetlServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MatCodeServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/cstmr.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/docType.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/item.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/order.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/orderDetl.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/orderDetlLog.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/orderLog.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/orderSettle.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/staDesc.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/resources/mapper/wms/AdjDetlMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/resources/mapper/wms/MatCodeMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/AdjDetlController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatCodeController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlLogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderLogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/adjDetl/adjDetl.js 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/matCode/matCode.js 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/adjDetl/adjDetl.html 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/matCode/matCode.html 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/AdjDetl.java
New file
@@ -0,0 +1,202 @@
package com.zy.asrs.common.wms.entity;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.zy.asrs.common.wms.service.LocMastService;
import com.zy.asrs.common.wms.service.MatCodeService;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.common.sys.entity.User;
import com.zy.asrs.common.sys.entity.Host;
import com.zy.asrs.common.sys.service.UserService;
import com.zy.asrs.common.sys.service.HostService;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("wms_adj_detl")
public class AdjDetl implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 序号
     */
    @ApiModelProperty(value= "序号")
    private Long adjId;
    /**
     * 库位号
     */
    @ApiModelProperty(value= "库位号")
    private String locNo;
    /**
     * 物料编号
     */
    @ApiModelProperty(value= "物料编号")
    private String matnr;
    @ApiModelProperty(value= "")
    private String batch;
    /**
     * 原箱数
     */
    @ApiModelProperty(value= "原箱数")
    private Double oriCtns;
    /**
     * 原数量
     */
    @ApiModelProperty(value= "原数量")
    private Double oriQty;
    /**
     * 原重量
     */
    @ApiModelProperty(value= "原重量")
    private Double oriWt;
    /**
     * 变更箱数
     */
    @ApiModelProperty(value= "变更箱数")
    private Double adjCtns;
    /**
     * 变更数量
     */
    @ApiModelProperty(value= "变更数量")
    private Double adjQty;
    /**
     * 变更重量
     */
    @ApiModelProperty(value= "变更重量")
    private Double adjWt;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    private Long modiUser;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date modiTime;
    /**
     * 创建者
     */
    @ApiModelProperty(value= "创建者")
    private Long appeUser;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date appeTime;
    public AdjDetl() {}
    public AdjDetl(String locNo,String matnr,String batch,Double oriCtns,Double oriQty,Double oriWt,Double adjCtns,Double adjQty,Double adjWt,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime) {
        this.locNo = locNo;
        this.matnr = matnr;
        this.batch = batch;
        this.oriCtns = oriCtns;
        this.oriQty = oriQty;
        this.oriWt = oriWt;
        this.adjCtns = adjCtns;
        this.adjQty = adjQty;
        this.adjWt = adjWt;
        this.memo = memo;
        this.modiUser = modiUser;
        this.modiTime = modiTime;
        this.appeUser = appeUser;
        this.appeTime = appeTime;
    }
//    AdjDetl adjDetl = new AdjDetl(
//            null,    // 库位号[非空]
//            null,    // 物料编号[非空]
//            null,    //
//            null,    // 原箱数
//            null,    // 原数量
//            null,    // 原重量
//            null,    // 变更箱数
//            null,    // 变更数量
//            null,    // 变更重量
//            null,    // 备注
//            null,    // 修改人员
//            null,    // 修改时间
//            null,    // 创建者
//            null    // 添加时间
//    );
    public String getLocNo$(){
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.getById(this.locNo);
        if (!Cools.isEmpty(locMast)){
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getMatnr$(){
        MatCodeService service = SpringUtils.getBean(MatCodeService.class);
        MatCode matCode = service.getById(this.matnr);
        if (!Cools.isEmpty(matCode)){
            return String.valueOf(matCode.getMatNo());
        }
        return null;
    }
    public String getModiUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.modiUser);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        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 getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/MatCode.java
New file
@@ -0,0 +1,303 @@
package com.zy.asrs.common.wms.entity;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.common.sys.entity.User;
import com.zy.asrs.common.sys.entity.Host;
import com.zy.asrs.common.sys.service.UserService;
import com.zy.asrs.common.sys.service.HostService;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("wms_mat_code")
public class MatCode implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 物料编码
     */
    @ApiModelProperty(value= "物料编码")
    @TableId(value = "mat_no", type = IdType.INPUT)
    private String matNo;
    /**
     * 条码
     */
    @ApiModelProperty(value= "条码")
    private String barcode;
    /**
     * 物料名称
     */
    @ApiModelProperty(value= "物料名称")
    private String matName;
    /**
     * 物料单位
     */
    @ApiModelProperty(value= "物料单位")
    private String str1;
    /**
     * 物料规格
     */
    @ApiModelProperty(value= "物料规格")
    private String str2;
    @ApiModelProperty(value= "")
    private String str3;
    @ApiModelProperty(value= "")
    private String str4;
    @ApiModelProperty(value= "")
    private String str5;
    @ApiModelProperty(value= "")
    private String str6;
    @ApiModelProperty(value= "")
    private String str7;
    @ApiModelProperty(value= "")
    private String str8;
    @ApiModelProperty(value= "")
    private String str9;
    @ApiModelProperty(value= "")
    private String str10;
    @ApiModelProperty(value= "")
    private String str11;
    @ApiModelProperty(value= "")
    private String str12;
    @ApiModelProperty(value= "")
    private String str13;
    @ApiModelProperty(value= "")
    private String str14;
    @ApiModelProperty(value= "")
    private String str15;
    @ApiModelProperty(value= "")
    private String str16;
    @ApiModelProperty(value= "")
    private String str17;
    @ApiModelProperty(value= "")
    private String str18;
    @ApiModelProperty(value= "")
    private String str19;
    @ApiModelProperty(value= "")
    private String str20;
    @ApiModelProperty(value= "")
    private String str21;
    @ApiModelProperty(value= "")
    private String str22;
    @ApiModelProperty(value= "")
    private String str23;
    @ApiModelProperty(value= "")
    private Double num1;
    @ApiModelProperty(value= "")
    private Double num2;
    @ApiModelProperty(value= "")
    private Double num3;
    @ApiModelProperty(value= "")
    private Double num4;
    @ApiModelProperty(value= "")
    private Double num5;
    @ApiModelProperty(value= "")
    private Double num6;
    @ApiModelProperty(value= "")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date date1;
    /**
     * 创建者
     */
    @ApiModelProperty(value= "创建者")
    private Long appeUser;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date appeTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    private Long modiUser;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date modiTime;
    @ApiModelProperty(value= "")
    private Short status;
    public MatCode() {}
    public MatCode(String matNo,String barcode,String matName,String str1,String str2,String str3,String str4,String str5,String str6,String str7,String str8,String str9,String str10,String str11,String str12,String str13,String str14,String str15,String str16,String str17,String str18,String str19,String str20,String str21,String str22,String str23,Double num1,Double num2,Double num3,Double num4,Double num5,Double num6,Date date1,Long appeUser,Date appeTime,Long modiUser,Date modiTime,Short status) {
        this.matNo = matNo;
        this.barcode = barcode;
        this.matName = matName;
        this.str1 = str1;
        this.str2 = str2;
        this.str3 = str3;
        this.str4 = str4;
        this.str5 = str5;
        this.str6 = str6;
        this.str7 = str7;
        this.str8 = str8;
        this.str9 = str9;
        this.str10 = str10;
        this.str11 = str11;
        this.str12 = str12;
        this.str13 = str13;
        this.str14 = str14;
        this.str15 = str15;
        this.str16 = str16;
        this.str17 = str17;
        this.str18 = str18;
        this.str19 = str19;
        this.str20 = str20;
        this.str21 = str21;
        this.str22 = str22;
        this.str23 = str23;
        this.num1 = num1;
        this.num2 = num2;
        this.num3 = num3;
        this.num4 = num4;
        this.num5 = num5;
        this.num6 = num6;
        this.date1 = date1;
        this.appeUser = appeUser;
        this.appeTime = appeTime;
        this.modiUser = modiUser;
        this.modiTime = modiTime;
        this.status = status;
    }
//    MatCode matCode = new MatCode(
//            null,    // 物料编码[非空]
//            null,    // 条码
//            null,    // 物料名称
//            null,    // 物料单位
//            null,    // 物料规格
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    //
//            null,    // 创建者
//            null,    // 添加时间
//            null,    // 修改人员
//            null,    // 修改时间
//            null    //
//    );
    public String getDate1$(){
        if (Cools.isEmpty(this.date1)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.date1);
    }
    public String getAppeUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.appeUser);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public String getModiUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.modiUser);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/AdjDetlMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.common.wms.mapper;
import com.zy.asrs.common.wms.entity.AdjDetl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface AdjDetlMapper extends BaseMapper<AdjDetl> {
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/MatCodeMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.common.wms.mapper;
import com.zy.asrs.common.wms.entity.MatCode;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface MatCodeMapper extends BaseMapper<MatCode> {
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/AdjDetlService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.common.wms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.common.wms.entity.AdjDetl;
public interface AdjDetlService extends IService<AdjDetl> {
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MatCodeService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.common.wms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.common.wms.entity.MatCode;
public interface MatCodeService extends IService<MatCode> {
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/AdjDetlServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.common.wms.service.impl;
import com.zy.asrs.common.wms.mapper.AdjDetlMapper;
import com.zy.asrs.common.wms.entity.AdjDetl;
import com.zy.asrs.common.wms.service.AdjDetlService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("adjDetlService")
public class AdjDetlServiceImpl extends ServiceImpl<AdjDetlMapper, AdjDetl> implements AdjDetlService {
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MatCodeServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.common.wms.service.impl;
import com.zy.asrs.common.wms.mapper.MatCodeMapper;
import com.zy.asrs.common.wms.entity.MatCode;
import com.zy.asrs.common.wms.service.MatCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("matCodeService")
public class MatCodeServiceImpl extends ServiceImpl<MatCodeMapper, MatCode> implements MatCodeService {
}
zy-asrs-common/src/main/java/cstmr.sql
File was deleted
zy-asrs-common/src/main/java/docType.sql
File was deleted
zy-asrs-common/src/main/java/item.sql
File was deleted
zy-asrs-common/src/main/java/order.sql
File was deleted
zy-asrs-common/src/main/java/orderDetl.sql
File was deleted
zy-asrs-common/src/main/java/orderDetlLog.sql
File was deleted
zy-asrs-common/src/main/java/orderLog.sql
File was deleted
zy-asrs-common/src/main/java/orderSettle.sql
File was deleted
zy-asrs-common/src/main/java/staDesc.sql
File was deleted
zy-asrs-common/src/main/resources/mapper/wms/AdjDetlMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.common.wms.mapper.AdjDetlMapper">
</mapper>
zy-asrs-common/src/main/resources/mapper/wms/MatCodeMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.common.wms.mapper.MatCodeMapper">
</mapper>
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/AdjDetlController.java
New file
@@ -0,0 +1,106 @@
package com.zy.asrs.wms.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.wms.entity.AdjDetl;
import com.zy.asrs.common.wms.service.AdjDetlService;
import com.zy.asrs.framework.annotations.ManagerAuth;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.domain.KeyValueVo;
import com.zy.asrs.framework.common.DateUtils;
import com.zy.asrs.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
public class AdjDetlController extends BaseController {
    @Autowired
    private AdjDetlService adjDetlService;
    @RequestMapping(value = "/adjDetl/{id}/auth")
    @ManagerAuth
    public R get(@PathVariable("id") String id) {
        return R.ok(adjDetlService.getById(String.valueOf(id)));
    }
    @RequestMapping(value = "/adjDetl/page/auth")
    @ManagerAuth
    public R page(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String condition,
                  @RequestParam(required = false) String timeRange,
                  @RequestParam Map<String, Object> param) {
        LambdaQueryWrapper<AdjDetl> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(AdjDetl::getAdjId, condition);
        }
        if (!Cools.isEmpty(timeRange)) {
            String[] range = timeRange.split(RANGE_TIME_LINK);
            wrapper.ge(AdjDetl::getAppeTime, DateUtils.convert(range[0]));
            wrapper.le(AdjDetl::getAppeTime, DateUtils.convert(range[1]));
        }
        return R.ok(adjDetlService.page(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/adjDetl/add/auth")
    @ManagerAuth
    public R add(AdjDetl adjDetl) {
        adjDetlService.save(adjDetl);
        return R.ok();
    }
    @RequestMapping(value = "/adjDetl/update/auth")
    @ManagerAuth
    public R update(AdjDetl adjDetl){
        if (Cools.isEmpty(adjDetl) || null==adjDetl.getAdjId()){
            return R.error();
        }
        adjDetlService.updateById(adjDetl);
        return R.ok();
    }
    @RequestMapping(value = "/adjDetl/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            adjDetlService.removeById(id);
        }
        return R.ok();
    }
    @RequestMapping(value = "/adjDetlQuery/auth")
    @ManagerAuth
    public R query(String condition) {
        LambdaQueryWrapper<AdjDetl> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(AdjDetl::getAdjId, condition);
        Page<AdjDetl> page = adjDetlService.page(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (AdjDetl adjDetl : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", adjDetl.getAdjId());
            map.put("value", adjDetl.getAdjId());
            result.add(map);
        }
        return R.ok(result);
    }
    @RequestMapping("/adjDetl/all/get/kv")
    @ManagerAuth
    public R getDataKV(@RequestParam(required = false) String condition) {
        List<KeyValueVo> vos = new ArrayList<>();
        LambdaQueryWrapper<AdjDetl> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(AdjDetl::getAdjId, condition);
        }
        adjDetlService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(String.valueOf(item.getAdjId()), item.getAdjId())));
        return R.ok().add(vos);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatCodeController.java
New file
@@ -0,0 +1,106 @@
package com.zy.asrs.wms.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.wms.entity.MatCode;
import com.zy.asrs.common.wms.service.MatCodeService;
import com.zy.asrs.framework.annotations.ManagerAuth;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.domain.KeyValueVo;
import com.zy.asrs.framework.common.DateUtils;
import com.zy.asrs.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
public class MatCodeController extends BaseController {
    @Autowired
    private MatCodeService matCodeService;
    @RequestMapping(value = "/matCode/{id}/auth")
    @ManagerAuth
    public R get(@PathVariable("id") String id) {
        return R.ok(matCodeService.getById(String.valueOf(id)));
    }
    @RequestMapping(value = "/matCode/page/auth")
    @ManagerAuth
    public R page(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String condition,
                  @RequestParam(required = false) String timeRange,
                  @RequestParam Map<String, Object> param) {
        LambdaQueryWrapper<MatCode> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(MatCode::getMatNo, condition);
        }
        if (!Cools.isEmpty(timeRange)) {
            String[] range = timeRange.split(RANGE_TIME_LINK);
            wrapper.ge(MatCode::getAppeTime, DateUtils.convert(range[0]));
            wrapper.le(MatCode::getAppeTime, DateUtils.convert(range[1]));
        }
        return R.ok(matCodeService.page(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/matCode/add/auth")
    @ManagerAuth
    public R add(MatCode matCode) {
        matCodeService.save(matCode);
        return R.ok();
    }
    @RequestMapping(value = "/matCode/update/auth")
    @ManagerAuth
    public R update(MatCode matCode){
        if (Cools.isEmpty(matCode) || null==matCode.getMatNo()){
            return R.error();
        }
        matCodeService.updateById(matCode);
        return R.ok();
    }
    @RequestMapping(value = "/matCode/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            matCodeService.removeById(id);
        }
        return R.ok();
    }
    @RequestMapping(value = "/matCodeQuery/auth")
    @ManagerAuth
    public R query(String condition) {
        LambdaQueryWrapper<MatCode> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(MatCode::getMatNo, condition);
        Page<MatCode> page = matCodeService.page(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (MatCode matCode : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", matCode.getMatNo());
            map.put("value", matCode.getMatNo());
            result.add(map);
        }
        return R.ok(result);
    }
    @RequestMapping("/matCode/all/get/kv")
    @ManagerAuth
    public R getDataKV(@RequestParam(required = false) String condition) {
        List<KeyValueVo> vos = new ArrayList<>();
        LambdaQueryWrapper<MatCode> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(MatCode::getMatNo, condition);
        }
        matCodeService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(String.valueOf(item.getMatNo()), Long.parseLong(item.getMatNo()))));
        return R.ok().add(vos);
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlLogController.java
File was renamed from zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderDetlLogController.java
@@ -1,4 +1,4 @@
package com.zy.asrs.common.wms.controller;
package com.zy.asrs.wms.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderLogController.java
File was renamed from zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/OrderLogController.java
@@ -1,4 +1,4 @@
package com.zy.asrs.common.wms.controller;
package com.zy.asrs.wms.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
zy-asrs-wms/src/main/webapp/static/js/adjDetl/adjDetl.js
New file
@@ -0,0 +1,361 @@
var pageCurr;
var pageCount = 0;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin', 'xmSelect'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    var xmSelect = layui.xmSelect;
    // 数据渲染
    tableIns = table.render({
        elem: '#adjDetl',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/adjDetl/page/auth',
        page: true,
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
        toolbar: '#toolbar',
        cellMinWidth: 50,
        height: 'full-120',
        cols: [[
            {type: 'checkbox'}
            ,{field: 'adjId', align: 'center',title: '序号'}
            ,{field: 'locNo$', align: 'center',title: '库位号'}
            ,{field: 'matnr$', align: 'center',title: '物料编号'}
            ,{field: 'batch', align: 'center',title: ''}
            ,{field: 'oriCtns', align: 'center',title: '原箱数'}
            ,{field: 'oriQty', align: 'center',title: '原数量'}
            ,{field: 'oriWt', align: 'center',title: '原重量'}
            ,{field: 'adjCtns', align: 'center',title: '变更箱数'}
            ,{field: 'adjQty', align: 'center',title: '变更数量'}
            ,{field: 'adjWt', align: 'center',title: '变更重量'}
            ,{field: 'memo', align: 'center',title: '备注'}
            ,{field: 'modiUser$', align: 'center',title: '修改人员'}
            ,{field: 'modiTime$', align: 'center',title: '修改时间'}
            ,{field: 'appeUser', align: 'center',title: '创建者'}
            ,{field: 'appeTime$', align: 'center',title: '添加时间'}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
        request: {
            pageName: 'curr',
            pageSize: 'limit'
        },
        parseData: function (res) {
            return {
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
            }
        },
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;pageCount=count;
            limit();
        }
    });
    // 监听排序事件
    table.on('sort(adjDetl)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        searchData['orderByField'] = obj.field;
        searchData['orderByType'] = obj.type;
        tableIns.reload({
            where: searchData,
            page: {curr: 1}
        });
    });
    // 监听头工具栏事件
    table.on('toolbar(adjDetl)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                showEditModel();
                break;
            case 'deleteData':
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               del(checkStatus.map(function (d) {
                   return d.adjId;
               }));
               break;
            case 'exportData':
                admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                    obj.config.cols[0].map(function (col) {
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                            titles.push(col.title);
                            fields.push(col.field);
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                        exportData[this.name] = this.value;
                    });
                    var param = {
                        'adjDetl': exportData,
                        'fields': fields
                    };
                    $.ajax({
                        url: baseUrl+"/adjDetl/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll();
                            if (res.code === 200) {
                                table.exportFile(titles,res.data,'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    });
                });
                break;
        }
    });
    // 监听行工具事件
    table.on('tool(adjDetl)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
                showEditModel(data);
                break;
            case "del":
                del([data.adjId]);
                break;
        }
    });
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                form.val('detail', mData);
                layDateRender(mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/adjDetl/"+(mData?'update':'add')+"/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            layer.close(loadIndex);
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload();
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                    return false;
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
        });
    }
    /* 删除 */
    function del(ids) {
        layer.confirm('确定要删除选中数据吗?', {
            skin: 'layui-layer-admin',
            shade: .1
        }, function (i) {
            layer.close(i);
            var loadIndex = layer.load(2);
            $.ajax({
                url: baseUrl+"/adjDetl/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {ids: ids},
                method: 'POST',
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.code === 200){
                        layer.msg(res.msg, {icon: 1});
                        tableReload();
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            })
        });
    }
    // 搜索
    form.on('submit(search)', function (data) {
        pageCurr = 1;
        tableReload(true);
    });
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
        tableReload(true);
    });
    // 时间选择器
    function layDateRender(data) {
        setTimeout(function () {
            layDate.render({
                elem: '.layui-laydate-range'
                ,type: 'datetime'
                ,range: true
            });
            layDate.render({
                elem: '#modiTime\\$',
                type: 'datetime',
                value: data!==undefined?data['modiTime$']:null
            });
            layDate.render({
                elem: '#appeTime\\$',
                type: 'datetime',
                value: data!==undefined?data['appeTime$']:null
            });
        }, 100);
    }
    layDateRender();
    window.loadLocMastSel = function () {
        return xmSelect.render({
            el: '#locMastXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/locMast/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
    window.loadMatCodeSel = function () {
        return xmSelect.render({
            el: '#matCodeXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/matCode/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
    window.loadUserSel = function () {
        return xmSelect.render({
            el: '#userXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/user/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(search) {
    if (pageCount === 0 || search) {
        let searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        tableIns.reload({
            where: searchData,
            page: {curr: pageCurr}
        });
    } else {
        $(".layui-laypage-btn")[0].click();
    }
}
zy-asrs-wms/src/main/webapp/static/js/matCode/matCode.js
New file
@@ -0,0 +1,361 @@
var pageCurr;
var pageCount = 0;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin', 'xmSelect'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    var xmSelect = layui.xmSelect;
    // 数据渲染
    tableIns = table.render({
        elem: '#matCode',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/matCode/page/auth',
        page: true,
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
        toolbar: '#toolbar',
        cellMinWidth: 50,
        height: 'full-120',
        cols: [[
            {type: 'checkbox'}
            ,{field: 'matNo', align: 'center',title: '物料编码'}
            ,{field: 'barcode', align: 'center',title: '条码'}
            ,{field: 'matName', align: 'center',title: '物料名称'}
            ,{field: 'str1', align: 'center',title: '物料单位'}
            ,{field: 'str2', align: 'center',title: '物料规格'}
            ,{field: 'str3', align: 'center',title: ''}
            ,{field: 'str4', align: 'center',title: ''}
            ,{field: 'str5', align: 'center',title: ''}
            ,{field: 'str6', align: 'center',title: ''}
            ,{field: 'str7', align: 'center',title: ''}
            ,{field: 'str8', align: 'center',title: ''}
            ,{field: 'str9', align: 'center',title: ''}
            ,{field: 'str10', align: 'center',title: ''}
            ,{field: 'str11', align: 'center',title: ''}
            ,{field: 'str12', align: 'center',title: ''}
            ,{field: 'str13', align: 'center',title: ''}
            ,{field: 'str14', align: 'center',title: ''}
            ,{field: 'str15', align: 'center',title: ''}
            ,{field: 'str16', align: 'center',title: ''}
            ,{field: 'str17', align: 'center',title: ''}
            ,{field: 'str18', align: 'center',title: ''}
            ,{field: 'str19', align: 'center',title: ''}
            ,{field: 'str20', align: 'center',title: ''}
            ,{field: 'str21', align: 'center',title: ''}
            ,{field: 'str22', align: 'center',title: ''}
            ,{field: 'str23', align: 'center',title: ''}
            ,{field: 'num1', align: 'center',title: ''}
            ,{field: 'num2', align: 'center',title: ''}
            ,{field: 'num3', align: 'center',title: ''}
            ,{field: 'num4', align: 'center',title: ''}
            ,{field: 'num5', align: 'center',title: ''}
            ,{field: 'num6', align: 'center',title: ''}
            ,{field: 'date1$', align: 'center',title: ''}
            ,{field: 'appeUser$', align: 'center',title: '创建者'}
            ,{field: 'appeTime$', align: 'center',title: '添加时间'}
            ,{field: 'modiUser$', align: 'center',title: '修改人员'}
            ,{field: 'modiTime$', align: 'center',title: '修改时间'}
            ,{field: 'status', align: 'center',title: ''}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
        request: {
            pageName: 'curr',
            pageSize: 'limit'
        },
        parseData: function (res) {
            return {
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
            }
        },
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;pageCount=count;
            limit();
        }
    });
    // 监听排序事件
    table.on('sort(matCode)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        searchData['orderByField'] = obj.field;
        searchData['orderByType'] = obj.type;
        tableIns.reload({
            where: searchData,
            page: {curr: 1}
        });
    });
    // 监听头工具栏事件
    table.on('toolbar(matCode)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                showEditModel();
                break;
            case 'deleteData':
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               del(checkStatus.map(function (d) {
                   return d.matNo;
               }));
               break;
            case 'exportData':
                admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                    obj.config.cols[0].map(function (col) {
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                            titles.push(col.title);
                            fields.push(col.field);
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                        exportData[this.name] = this.value;
                    });
                    var param = {
                        'matCode': exportData,
                        'fields': fields
                    };
                    $.ajax({
                        url: baseUrl+"/matCode/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll();
                            if (res.code === 200) {
                                table.exportFile(titles,res.data,'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    });
                });
                break;
        }
    });
    // 监听行工具事件
    table.on('tool(matCode)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
                showEditModel(data);
                break;
            case "del":
                del([data.matNo]);
                break;
        }
    });
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                form.val('detail', mData);
                layDateRender(mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/matCode/"+(mData?'update':'add')+"/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            layer.close(loadIndex);
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload();
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                    return false;
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
        });
    }
    /* 删除 */
    function del(ids) {
        layer.confirm('确定要删除选中数据吗?', {
            skin: 'layui-layer-admin',
            shade: .1
        }, function (i) {
            layer.close(i);
            var loadIndex = layer.load(2);
            $.ajax({
                url: baseUrl+"/matCode/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {ids: ids},
                method: 'POST',
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.code === 200){
                        layer.msg(res.msg, {icon: 1});
                        tableReload();
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            })
        });
    }
    // 搜索
    form.on('submit(search)', function (data) {
        pageCurr = 1;
        tableReload(true);
    });
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
        tableReload(true);
    });
    // 时间选择器
    function layDateRender(data) {
        setTimeout(function () {
            layDate.render({
                elem: '.layui-laydate-range'
                ,type: 'datetime'
                ,range: true
            });
            layDate.render({
                elem: '#date1\\$',
                type: 'datetime',
                value: data!==undefined?data['date1$']:null
            });
            layDate.render({
                elem: '#appeTime\\$',
                type: 'datetime',
                value: data!==undefined?data['appeTime$']:null
            });
            layDate.render({
                elem: '#modiTime\\$',
                type: 'datetime',
                value: data!==undefined?data['modiTime$']:null
            });
        }, 100);
    }
    layDateRender();
    window.loadUserSel = function () {
        return xmSelect.render({
            el: '#userXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/user/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
    window.loadUserSel = function () {
        return xmSelect.render({
            el: '#userXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/user/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(search) {
    if (pageCount === 0 || search) {
        let searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        tableIns.reload({
            where: searchData,
            page: {curr: pageCurr}
        });
    } else {
        $(".layui-laypage-btn")[0].click();
    }
}
zy-asrs-wms/src/main/webapp/views/adjDetl/adjDetl.html
New file
@@ -0,0 +1,183 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
</head>
<body>
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <div class="layui-form toolbar" id="search-box">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline" style="width: 300px">
                        <div class="layui-input-inline">
                            <input class="layui-input layui-laydate-range" name="timeRange" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
                        <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                            <i class="layui-icon">&#xe615;</i>搜索
                        </button>
                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
                            <i class="layui-icon">&#xe666;</i>重置
                        </button>
                    </div>
                </div>
            </div>
            <table class="layui-hide" id="adjDetl" lay-filter="adjDetl"></table>
        </div>
    </div>
</div>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button>
    </div>
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/adjDetl/adjDetl.js" charset="utf-8"></script>
</body>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
    <div id="detail" lay-filter="detail" class="layui-form admin-form model-form">
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md12">
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">库位号: </label>
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="locNo" placeholder="请输入库位号" lay-vertype="tips" lay-verify="required" style="display: none">
                        <input id="locNo$" name="locNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入库位号" onfocus=this.blur()>
                        <div class="cool-auto-complete-window">
                            <input class="cool-auto-complete-window-input" data-key="locMastQueryBylocNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="locMastQueryBylocNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">物料编号: </label>
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="matnr" placeholder="请输入物料编号" lay-vertype="tips" lay-verify="required" style="display: none">
                        <input id="matnr$" name="matnr$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入物料编号" onfocus=this.blur()>
                        <div class="cool-auto-complete-window">
                            <input class="cool-auto-complete-window-input" data-key="matCodeQueryBymatnr" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="matCodeQueryBymatnrSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="batch" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">原箱数: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="oriCtns" placeholder="请输入原箱数">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">原数量: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="oriQty" placeholder="请输入原数量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">原重量: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="oriWt" placeholder="请输入原重量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">变更箱数: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="adjCtns" placeholder="请输入变更箱数">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">变更数量: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="adjQty" placeholder="请输入变更数量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">变更重量: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="adjWt" placeholder="请输入变更重量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">备注: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="memo" placeholder="请输入备注">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">修改人员: </label>
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="modiUser" placeholder="请输入修改人员" style="display: none">
                        <input id="modiUser$" name="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入修改人员" onfocus=this.blur()>
                        <div class="cool-auto-complete-window">
                            <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">修改时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="modiTime" id="modiTime$" placeholder="请输入修改时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">创建者: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="appeUser" placeholder="请输入创建者">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">添加时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="appeTime" id="appeTime$" placeholder="请输入添加时间">
                    </div>
                </div>
             </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">
            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button>
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
        </div>
    </div>
</script>
</html>
zy-asrs-wms/src/main/webapp/views/matCode/matCode.html
New file
@@ -0,0 +1,321 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
</head>
<body>
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <div class="layui-form toolbar" id="search-box">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline" style="width: 300px">
                        <div class="layui-input-inline">
                            <input class="layui-input layui-laydate-range" name="timeRange" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
                        <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                            <i class="layui-icon">&#xe615;</i>搜索
                        </button>
                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
                            <i class="layui-icon">&#xe666;</i>重置
                        </button>
                    </div>
                </div>
            </div>
            <table class="layui-hide" id="matCode" lay-filter="matCode"></table>
        </div>
    </div>
</div>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button>
    </div>
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/matCode/matCode.js" charset="utf-8"></script>
</body>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
    <div id="detail" lay-filter="detail" class="layui-form admin-form model-form">
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md12">
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">物料编码: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="matNo" placeholder="请输入物料编码" lay-vertype="tips" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">条码: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="barcode" placeholder="请输入条码">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">物料名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="matName" placeholder="请输入物料名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">物料单位: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str1" placeholder="请输入物料单位">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">物料规格: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str2" placeholder="请输入物料规格">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str3" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str4" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str5" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str6" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str7" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str8" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str9" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str10" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str11" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str12" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str13" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str14" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str15" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str16" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str17" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str18" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str19" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str20" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str21" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str22" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="str23" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="num1" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="num2" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="num3" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="num4" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="num5" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="num6" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="date1" id="date1$" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">创建者: </label>
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="appeUser" placeholder="请输入创建者" style="display: none">
                        <input id="appeUser$" name="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入创建者" onfocus=this.blur()>
                        <div class="cool-auto-complete-window">
                            <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">添加时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="appeTime" id="appeTime$" placeholder="请输入添加时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">修改人员: </label>
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="modiUser" placeholder="请输入修改人员" style="display: none">
                        <input id="modiUser$" name="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入修改人员" onfocus=this.blur()>
                        <div class="cool-auto-complete-window">
                            <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">修改时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="modiTime" id="modiTime$" placeholder="请输入修改时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="status" placeholder="请输入">
                    </div>
                </div>
             </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">
            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button>
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
        </div>
    </div>
</script>
</html>