自动化立体仓库 - WMS系统
zhangc
2024-12-05 55129aa7f1f5910e88f7c615502c27a18e427815
优化界面显示
9个文件已修改
442 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/WrkMastDetlLogController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Order.java 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvWrkDetlLog/wrkDetlLog.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/wrkMastDetlLog/wrkMastDetlLog.js 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkDetlLog/wrkDetlLog.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/wrkMastDetlLog/wrkMastDetlLog.html 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WrkMastDetlLogController.java
@@ -1,22 +1,24 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import com.zy.asrs.entity.WrkMastDetlLog;
import com.zy.asrs.service.WrkMastDetlLogService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.WrkMastDetlLog;
import com.zy.asrs.service.WrkMastDetlLogService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
public class WrkMastDetlLogController extends BaseController {
@@ -32,25 +34,49 @@
    @RequestMapping(value = "/wrkMastDetlLog/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam(required = false)String condition,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam(required = false) String condition,
                  @RequestParam Map<String, Object> param) {
        EntityWrapper<WrkMastDetlLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        allLike(WrkMastDetlLog.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }
        wrapper.orderBy("io_time", false);
        return R.ok(wrkMastDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
        Page<WrkMastDetlLog> wrkMastDetlLogPage = wrkMastDetlLogService.selectPage(new Page<>(curr, limit), wrapper);
        List<WrkMastDetlLog> records = wrkMastDetlLogPage.getRecords();
        HashMap<String, Double> count = new HashMap<>();
        for (WrkMastDetlLog record : records) {
            String ioType = record.getIoType$();
            if (!Cools.isEmpty(ioType) && !"null".equalsIgnoreCase(ioType)) {
                if (!"53.拣料再入库".equalsIgnoreCase(ioType)) {
                    if ("103.拣料出库".equalsIgnoreCase(ioType)) {
                        ioType = "101.出库";
                    }
                    String[] split = ioType.split("\\.");
                    Double l = count.get(ioType);
                    if (l == null) {
                        count.put(split[1], record.getAnfme());
                    } else {
                        count.put(split[1], l + record.getAnfme());
                    }
                }
            }
        }
        R ok = R.ok(wrkMastDetlLogPage);
        ok.put("count", count);
        return ok;
    }
    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String val = String.valueOf(entry.getValue());
            if (val.contains(RANGE_TIME_LINK)){
            if (val.contains(RANGE_TIME_LINK)) {
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -72,10 +98,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/wrkMastDetlLog/update/auth")
    @ManagerAuth
    public R update(WrkMastDetlLog wrkMastDetlLog){
        if (Cools.isEmpty(wrkMastDetlLog)){
    @RequestMapping(value = "/wrkMastDetlLog/update/auth")
    @ManagerAuth
    public R update(WrkMastDetlLog wrkMastDetlLog) {
        if (Cools.isEmpty(wrkMastDetlLog)) {
            return R.error();
        }
        wrkMastDetlLogService.updateById(wrkMastDetlLog);
@@ -84,8 +110,8 @@
    @RequestMapping(value = "/wrkMastDetlLog/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
    public R delete(@RequestParam(value = "ids[]") Long[] ids) {
        for (Long id : ids) {
            wrkMastDetlLogService.deleteById(id);
        }
        return R.ok();
@@ -93,7 +119,7 @@
    @RequestMapping(value = "/wrkMastDetlLog/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        EntityWrapper<WrkMastDetlLog> wrapper = new EntityWrapper<>();
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMastDetlLog"));
@@ -110,7 +136,7 @@
        wrapper.like("id", condition);
        Page<WrkMastDetlLog> page = wrkMastDetlLogService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (WrkMastDetlLog wrkMastDetlLog : page.getRecords()){
        for (WrkMastDetlLog wrkMastDetlLog : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", wrkMastDetlLog.getWrkNo());
            map.put("value", wrkMastDetlLog.getWrkNo());
@@ -123,7 +149,7 @@
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
        Wrapper<WrkMastDetlLog> wrapper = new EntityWrapper<WrkMastDetlLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
        if (null != wrkMastDetlLogService.selectOne(wrapper)){
        if (null != wrkMastDetlLogService.selectOne(wrapper)) {
            return R.parse(BaseRes.REPEAT).add(getComment(WrkMastDetlLog.class, String.valueOf(param.get("key"))));
        }
        return R.ok();
src/main/java/com/zy/asrs/entity/Order.java
@@ -27,248 +27,248 @@
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 编号
     */
    @ApiModelProperty(value= "编号")
    @ApiModelProperty(value = "编号")
    private String uuid;
    /**
     * 订单编号
     */
    @ApiModelProperty(value= "订单编号")
    @ApiModelProperty(value = "订单编号")
    @TableField("order_no")
    private String orderNo;
    /**
     * 单据日期
     */
    @ApiModelProperty(value= "单据日期")
    @ApiModelProperty(value = "单据日期")
    @TableField("order_time")
    private String orderTime;
    /**
     * 单据类型
     */
    @ApiModelProperty(value= "单据类型")
    @ApiModelProperty(value = "单据类型")
    @TableField("doc_type")
    private Long docType;
    /**
     * 项目编号
     */
    @ApiModelProperty(value= "项目编号")
    @ApiModelProperty(value = "项目编号")
    @TableField("item_id")
    private Long itemId;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("item_name")
    private String itemName;
    /**
     * 调拨项目编号
     */
    @ApiModelProperty(value= "调拨项目编号")
    @ApiModelProperty(value = "调拨项目编号")
    @TableField("allot_item_id")
    private Long allotItemId;
    /**
     * 初始票据号
     */
    @ApiModelProperty(value= "初始票据号")
    @ApiModelProperty(value = "初始票据号")
    @TableField("def_number")
    private String defNumber;
    /**
     * 票据号
     */
    @ApiModelProperty(value= "票据号")
    @ApiModelProperty(value = "票据号")
    private String number;
    /**
     * 客户编号
     */
    @ApiModelProperty(value= "客户编号")
    @ApiModelProperty(value = "客户编号")
    private Long cstmr;
    /**
     * 客户
     */
    @ApiModelProperty(value= "客户")
    @ApiModelProperty(value = "客户")
    @TableField("cstmr_name")
    private String cstmrName;
    /**
     * 联系方式
     */
    @ApiModelProperty(value= "联系方式")
    @ApiModelProperty(value = "联系方式")
    private String tel;
    /**
     * 操作人员
     */
    @ApiModelProperty(value= "操作人员")
    @ApiModelProperty(value = "操作人员")
    @TableField("oper_memb")
    private String operMemb;
    /**
     * 合计金额
     */
    @ApiModelProperty(value= "合计金额")
    @ApiModelProperty(value = "合计金额")
    @TableField("total_fee")
    private Double totalFee;
    /**
     * 优惠率
     */
    @ApiModelProperty(value= "优惠率")
    @ApiModelProperty(value = "优惠率")
    private Double discount;
    /**
     * 优惠金额
     */
    @ApiModelProperty(value= "优惠金额")
    @ApiModelProperty(value = "优惠金额")
    @TableField("discount_fee")
    private Double discountFee;
    /**
     * 销售或采购费用合计
     */
    @ApiModelProperty(value= "销售或采购费用合计")
    @ApiModelProperty(value = "销售或采购费用合计")
    @TableField("other_fee")
    private Double otherFee;
    /**
     * 实付金额
     */
    @ApiModelProperty(value= "实付金额")
    @ApiModelProperty(value = "实付金额")
    @TableField("act_fee")
    private Double actFee;
    /**
     * 付款类型 1: 现金  2: 记账
     */
    @ApiModelProperty(value= "付款类型 1: 现金  2: 记账  ")
    @ApiModelProperty(value = "付款类型 1: 现金  2: 记账  ")
    @TableField("pay_type")
    private Integer payType;
    /**
     * 业务员
     */
    @ApiModelProperty(value= "业务员")
    @ApiModelProperty(value = "业务员")
    private String salesman;
    /**
     * setMemo
     */
    @ApiModelProperty(value= "结算天数")
    @ApiModelProperty(value = "结算天数")
    @TableField("account_day")
    private Integer accountDay;
    /**
     * 邮费支付类型 1: 在线支付  2: 货到付款
     */
    @ApiModelProperty(value= "邮费支付类型 1: 在线支付  2: 货到付款  ")
    @ApiModelProperty(value = "邮费支付类型 1: 在线支付  2: 货到付款  ")
    @TableField("post_fee_type")
    private Integer postFeeType;
    /**
     * 邮费
     */
    @ApiModelProperty(value= "邮费")
    @ApiModelProperty(value = "邮费")
    @TableField("post_fee")
    private Double postFee;
    /**
     * 付款时间
     */
    @ApiModelProperty(value= "付款时间")
    @ApiModelProperty(value = "付款时间")
    @TableField("pay_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    /**
     * 发货时间
     */
    @ApiModelProperty(value= "发货时间")
    @ApiModelProperty(value = "发货时间")
    @TableField("send_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;
    /**
     * 物流名称
     */
    @ApiModelProperty(value= "物流名称")
    @ApiModelProperty(value = "物流名称")
    @TableField("ship_name")
    private String shipName;
    /**
     * 物流单号
     */
    @ApiModelProperty(value= "物流单号")
    @ApiModelProperty(value = "物流单号")
    @TableField("ship_code")
    private String shipCode;
    /**
     * 订单状态
     */
    @ApiModelProperty(value= "订单状态")
    @ApiModelProperty(value = "订单状态")
    private Long settle;
    /**
     * 状态 1: 正常  0: 禁用
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ")
    @ApiModelProperty(value = "状态 1: 正常  0: 禁用  ")
    private Integer status;
    /**
     * 添加人员
     */
    @ApiModelProperty(value= "添加人员")
    @ApiModelProperty(value = "添加人员")
    @TableField("create_by")
    private Long createBy;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("update_by")
    private Long updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    @ApiModelProperty(value= "erp仓库编码")
    @ApiModelProperty(value = "erp仓库编码")
    @TableField("plt_type")
    private Integer pltType;
    /**
     * 入库日期
     */
    @ApiModelProperty(value= "入库日期")
    @ApiModelProperty(value = "入库日期")
    @TableField("in_time")
    private String InTime;
@@ -276,9 +276,10 @@
    @TableField("Upstreamcode")
    private String Upstreamcode;
    public Order() {}
    public Order() {
    }
    public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
    public Order(String uuid, String orderNo, String orderTime, Long docType, Long itemId, String itemName, Long allotItemId, String defNumber, String number, Long cstmr, String cstmrName, String tel, String operMemb, Double totalFee, Double discount, Double discountFee, Double otherFee, Double actFee, Integer payType, String salesman, Integer accountDay, Integer postFeeType, Double postFee, Date payTime, Date sendTime, String shipName, String shipCode, Long settle, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
        this.uuid = uuid;
        this.orderNo = orderNo;
        this.orderTime = orderTime;
@@ -352,18 +353,20 @@
//            null    // 备注
//    );
    public String getDocType$(){
    public String getDocType$() {
        DocTypeService service = SpringUtils.getBean(DocTypeService.class);
        DocType docType = service.selectById(this.docType);
        if (!Cools.isEmpty(docType)){
        if (!Cools.isEmpty(docType)) {
            return String.valueOf(docType.getDocName());
        }
        return null;
    }
    public String getPayType$(){
        if (null == this.payType){ return null; }
        switch (this.payType){
    public String getPayType$() {
        if (null == this.payType) {
            return null;
        }
        switch (this.payType) {
            case 1:
                return "现金";
            case 2:
@@ -373,9 +376,11 @@
        }
    }
    public String getPostFeeType$(){
        if (null == this.postFeeType){ return null; }
        switch (this.postFeeType){
    public String getPostFeeType$() {
        if (null == this.postFeeType) {
            return null;
        }
        switch (this.postFeeType) {
            case 1:
                return "在线支付";
            case 2:
@@ -385,32 +390,34 @@
        }
    }
    public String getPayTime$(){
        if (Cools.isEmpty(this.payTime)){
    public String getPayTime$() {
        if (Cools.isEmpty(this.payTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.payTime);
    }
    public String getSendTime$(){
        if (Cools.isEmpty(this.sendTime)){
    public String getSendTime$() {
        if (Cools.isEmpty(this.sendTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime);
    }
    public String getSettle$(){
    public String getSettle$() {
        OrderSettleService service = SpringUtils.getBean(OrderSettleService.class);
        OrderSettle orderSettle = service.selectById(this.settle);
        if (!Cools.isEmpty(orderSettle)){
        if (!Cools.isEmpty(orderSettle)) {
            return String.valueOf(orderSettle.getSettleName());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -420,33 +427,36 @@
        }
    }
    public String getCreateBy$(){
    public String getCreateBy$() {
        if (!Cools.isEmpty(this.createBy) && this.createBy == 9999L) {
            return "系统同步";
        }
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateBy$(){
    public String getUpdateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -990,7 +990,9 @@
        order.setDefNumber(param.get操作系统号());
        order.setCreateBy(9999L);
        order.setCreateTime(now);
        order.setUpdateBy(9999L);
        order.setUpdateTime(now);
        order.setUpstreamcode(param.getUpstreamcode());
        //订单状态
src/main/webapp/static/js/agvWrkDetlLog/wrkDetlLog.js
@@ -43,7 +43,8 @@
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
                'data': res.data.records,
                'countData': res.data.count
            }
        },
        response: {
@@ -63,6 +64,7 @@
                    res.data[_index][data.value] = 'N';
                }
            });
        }
    });
src/main/webapp/static/js/order/order.js
@@ -44,7 +44,7 @@
        cellMinWidth: 100,
        cols: [[
            {type: 'numbers'},
            {field: 'defNumber', align: 'center', title: '操作系统号', hide: false, width: 120},
            {field: 'defNumber', align: 'center', title: '操作系统号', hide: false, width: 100},
            {field: '操作单据', align: 'center', title: '操作单据', hide: true},
            {field: '操作类型', align: 'center', title: '操作类型', hide: true},
            {field: 'orderNo', title: '单据编号', templet: '#orderNoTpl'},
@@ -53,16 +53,17 @@
            //{field: 'defNumber', align: 'center', title: '业务类型'},
            //{field: 'postFee', align: 'center', title: '总数量',  minWidth: 130, width: 130},
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160},
            {field: 'createTime$', title: '创建时间', hide: true},
            {field: 'orderTime', align: 'center',title: '单据日期'},
            {field: 'shipCode', align: 'center',title: '制单人', hide: false},
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160},
            //{field: 'shipCode', align: 'center',title: '制单人'},
            {field: 'createBy$', title: '创建人'},
            {field: 'createTime$', title: '创建时间'},
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 140, width: 140},
            {field: 'memo', align: 'center',title: '备注', hide: true},
            {field: 'cstmrName', align: 'center',title: '供应商/客户编码', hide: true},
            {field: 'tel', align: 'center',title: '仓库', hide: true},
            {field: 'operMemb', align: 'center',title: '出入库类别', hide: true},
            {field: 'salesman', align: 'center',title: '部门', hide: true},
            {align: 'center', title: '操作', toolbar: '#operate', width: 180}
            {align: 'center', title: '操作', toolbar: '#operate', width: 160}
        ]],
        request: {
            pageName: 'curr',
src/main/webapp/static/js/wrkMastDetlLog/wrkMastDetlLog.js
@@ -1,29 +1,30 @@
var pageCurr;
var pageLimit;
function getCol() {
    var cols = [
        {field: 'wrkNo', align: 'center',title: '工作号'}
        ,{field: 'modiTime$', align: 'center',title: '工作时间','width': 180}
        {field: 'wrkNo', align: 'center', title: '工作号'}
        , {field: 'modiTime$', align: 'center', title: '工作时间', 'width': 180}
    ];
    cols.push(
        //{field: 'suppCode', align: 'center',title: '货架码'},
        {field: 'wrkSts$', align: 'center',title: '工作状态'}
        ,{field: 'ioType$', align: 'center',title: '工作类型'}
        ,{field: 'locNo', align: 'center',title: '目标库位'}
        {field: 'wrkSts$', align: 'center', title: '工作状态'}
        , {field: 'ioType$', align: 'center', title: '工作类型'}
        , {field: 'locNo', align: 'center', title: '目标库位'}
        // ,{field: 'staNo', align: 'center',title: '目标站'}
        // ,{field: 'sourceStaNo', align: 'center',title: '源站'}
        ,{field: 'sourceLocNo', align: 'center',title: '源库位'});
    arrRemove(detlCols,  'field', 'zpallet');
        , {field: 'sourceLocNo', align: 'center', title: '源库位'});
    arrRemove(detlCols, 'field', 'zpallet');
    cols.push.apply(cols, detlCols);
    cols.push({field: 'modiUser$', align: 'center',title: '修改人员',hide: true}
        ,{field: 'modiTime$', align: 'center',title: '修改时间',hide: true}
    cols.push({field: 'modiUser$', align: 'center', title: '修改人员', hide: true}
        , {field: 'modiTime$', align: 'center', title: '修改时间', hide: true}
    )
    return cols;
}
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
}).use(['table', 'laydate', 'form', 'admin'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
@@ -35,7 +36,7 @@
    tableIns = table.render({
        elem: '#wrkMastDetlLog',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/wrkMastDetlLog/list/auth',
        url: baseUrl + '/wrkMastDetlLog/list/auth',
        page: true,
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
@@ -105,25 +106,31 @@
                'count': res.data.total,
                'data': res.data.records,
                'limit': res.data.size,
                'countData': res.count
            }
        },
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
                top.location.href = baseUrl + "/";
            }
            pageCurr=curr;
            pageLimit=res.limit;
            pageCurr = curr;
            pageLimit = res.limit;
            limit();
            var d ="当页总数量:";
            Object.keys(res.countData).forEach(key => {
                d = d + key + "--" + res.countData[key]+"; ";
            });
            $("#countData").text(d);
        }
    });
    // 监听排序事件
    table.on('sort(wrkMastDetlLog)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
        $.each($('#search-box [name]').serializeArray(), function () {
            searchData[this.name] = this.value;
        });
        searchData['orderByField'] = obj.field;
@@ -137,23 +144,23 @@
    // 监听头工具栏事件
    table.on('toolbar(wrkMastDetlLog)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
        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.id;
               }));
               break;
                if (checkStatus.length === 0) {
                    layer.msg('请选择要删除的数据', {icon: 2});
                    return;
                }
                del(checkStatus.map(function (d) {
                    return d.id;
                }));
                break;
            case 'exportData':
                admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                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);
@@ -161,11 +168,11 @@
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                    $.each($('#search-box [name]').serializeArray(), function () {
                        exportData[this.name] = this.value;
                    });
                    var searchData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                    $.each($('#search-box [name]').serializeArray(), function () {
                        searchData[this.name] = this.value;
                    });
                    var param = {
@@ -176,18 +183,18 @@
                        'size': pageLimit
                    };
                    $.ajax({
                        url: baseUrl+"/wrkMastDetlLog/export/auth",
                        url: baseUrl + "/wrkMastDetlLog/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        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');
                                table.exportFile(titles, res.data, 'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg, {icon: 2})
                            }
@@ -199,7 +206,7 @@
    });
    // 监听行工具事件
    table.on('tool(wrkMastDetlLog)', function(obj){
    table.on('tool(wrkMastDetlLog)', function (obj) {
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
@@ -224,19 +231,19 @@
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/wrkMastDetlLog/"+(mData?'update':'add')+"/auth",
                        url: baseUrl + "/wrkMastDetlLog/" + (mData ? 'update' : 'add') + "/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            layer.close(loadIndex);
                            if (res.code === 200){
                            if (res.code === 200) {
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload();
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
@@ -258,17 +265,17 @@
            layer.close(i);
            var loadIndex = layer.load(2);
            $.ajax({
                url: baseUrl+"/wrkMastDetlLog/delete/auth",
                url: baseUrl + "/wrkMastDetlLog/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {ids: ids},
                method: 'POST',
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.code === 200){
                    if (res.code === 200) {
                        layer.msg(res.msg, {icon: 1});
                        tableReload();
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else if (res.code === 403) {
                        top.location.href = baseUrl + "/";
                    } else {
                        layer.msg(res.msg, {icon: 2});
                    }
@@ -295,43 +302,44 @@
        setTimeout(function () {
            layDate.render({
                elem: '.layui-laydate-range'
                ,type: 'datetime'
                ,range: true
                , type: 'datetime'
                , range: true
            });
            layDate.render({
                elem: '#ioTime\\$',
                type: 'datetime',
                value: data!==undefined?data['ioTime\\$']:null
                value: data !== undefined ? data['ioTime\\$'] : null
            });
            layDate.render({
                elem: '#modiTime\\$',
                type: 'datetime',
                value: data!==undefined?data['modiTime\\$']:null
                value: data !== undefined ? data['modiTime\\$'] : null
            });
            layDate.render({
                elem: '#appeTime\\$',
                type: 'datetime',
                value: data!==undefined?data['appeTime\\$']:null
                value: data !== undefined ? data['appeTime\\$'] : null
            });
        }, 300);
    }
    layDateRender();
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
$(document).on('click', '#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(child) {
    var searchData = {};
    $.each($('#search-box [name]').serializeArray(), function() {
    $.each($('#search-box [name]').serializeArray(), function () {
        searchData[this.name] = this.value;
    });
    tableIns.reload({
        where: searchData,
        page: {curr: pageCurr}
     });
    });
}
src/main/webapp/views/agvWrkDetlLog/wrkDetlLog.html
@@ -65,7 +65,7 @@
<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/agvWrkDetlLog/wrkDetlLog.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkDetlLog/wrkDetlLog.js?v=1" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
src/main/webapp/views/order/order.html
@@ -316,7 +316,7 @@
<script type="text/javascript" src="../../static/js/echarts/echarts.min.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/order/order.js?v=4" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/order/order.js?v=7" charset="utf-8"></script>
<script type="text/template" id="docTypeTpl">
    <option value="">选择类型</option>
src/main/webapp/views/wrkMastDetlLog/wrkMastDetlLog.html
@@ -19,34 +19,46 @@
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="wrk_no" placeholder="工作号" autocomplete="off">
                            <input class="layui-input" type="text" name="wrk_no" placeholder="工作号"
                                   autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline cool-auto-complete">
                            <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="请输入" autocomplete="off" style="display: none">
                            <input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="工作状态" onfocus=this.blur()>
                            <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="请输入"
                                   autocomplete="off" style="display: none">
                            <input id="wrkSts$" 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="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
                                <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                                <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts"
                                       onkeyup="autoLoad(this.getAttribute('data-key'))">
                                <select class="cool-auto-complete-window-select"
                                        data-key="basWrkStatusQueryBywrkStsSelect"
                                        onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                                </select>
                            </div>
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline cool-auto-complete">
                            <input id="ioType" class="layui-input" name="io_type" type="text" placeholder="请输入" autocomplete="off" style="display: none">
                            <input id="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="入出库类型" onfocus=this.blur()>
                            <input id="ioType" class="layui-input" name="io_type" type="text" placeholder="请输入"
                                   autocomplete="off" style="display: none">
                            <input id="ioType$" 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="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
                                <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                                <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType"
                                       onkeyup="autoLoad(this.getAttribute('data-key'))">
                                <select class="cool-auto-complete-window-select"
                                        data-key="basWrkIotypeQueryByioTypeSelect"
                                        onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                                </select>
                            </div>
                        </div>
                    </div>
                    <div class="layui-inline" style="width: 300px">
                        <div class="layui-input-inline">
                            <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                            <input class="layui-input layui-laydate-range" name="modi_time" type="text"
                                   placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                        </div>
                    </div>
                    <div class="layui-inline">
@@ -56,17 +68,20 @@
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="supp_code" placeholder="货架码" autocomplete="off">
                            <input class="layui-input" type="text" name="supp_code" placeholder="货架码"
                                   autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="order_no" placeholder="单据编号" autocomplete="off">
                            <input class="layui-input" type="text" name="order_no" placeholder="单据编号"
                                   autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入"
                                   autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
@@ -76,6 +91,7 @@
                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
                            <i class="layui-icon">&#xe666;</i>重置
                        </button>
                        <div style="float:right;margin-left: 10px;margin-top:4px;" id="countData">数量</div>
                    </div>
                </div>
            </div>
@@ -86,22 +102,27 @@
<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 style="visibility: hidden;" 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>
        <!--        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>-->
        <button style="visibility: hidden;" 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>-->
    <!--    <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/wrkMastDetlLog/wrkMastDetlLog.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/wrkMastDetlLog/wrkMastDetlLog.js?v=8" charset="utf-8"></script>
</body>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
@@ -112,7 +133,8 @@
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">工作号: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="wrkNo" placeholder="请输入工作号" lay-vertype="tips" lay-verify="required">
                        <input class="layui-input" name="wrkNo" placeholder="请输入工作号" lay-vertype="tips"
                               lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
@@ -136,7 +158,8 @@
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">商品编号: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="matnr" placeholder="请输入商品编号" lay-vertype="tips" lay-verify="required">
                        <input class="layui-input" name="matnr" placeholder="请输入商品编号" lay-vertype="tips"
                               lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
@@ -334,10 +357,13 @@
                    <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()>
                        <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">
                            <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>
@@ -352,10 +378,13 @@
                    <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()>
                        <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">
                            <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>
@@ -415,7 +444,7 @@
                    </div>
                </div>
             </div>
            </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">