mrzhssss
2022-01-07 4914fc09a649088b19e0d9572c9c14843a8a268d
更新提交
20个文件已修改
2个文件已添加
1个文件已删除
1370 ■■■■ 已修改文件
src/main/java/item.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/receiveDetl.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/CodeBuilder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/model/ReceiveStoDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/ItemController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/ReceiveDetlController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/WorkController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/Item.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/ReceiveDetl.java 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/mapper/ReceiveDetlMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/ReceiveDetlService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/WorkService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/impl/ReceiveDetlServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ReceiveDetlMapper.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/item/item.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/itemDetl/itemDetl.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/receive/receive.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/receiveDetl/receiveDetl.js 536 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/item/item.html 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/receive/receive.html 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/receiveDetl/receiveDetl.html 299 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/receiveDetl/receiveDetl_detail.html 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/item.sql
New file
@@ -0,0 +1,18 @@
-- save item record
-- mysql
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'item/item.html', 'item管理', null , '2', null , '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'item#view', '查询', '', '3', '0', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'item#btn-add', '新增', '', '3', '1', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'item#btn-edit', '编辑', '', '3', '2', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'item#btn-delete', '删除', '', '3', '3', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'item#btn-export', '导出', '', '3', '4', '1');
-- sqlserver
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'item/item.html', N'item管理', null, '2', null, '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'item#view', N'查询', '', '3', '0', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'item#btn-add', N'新增', '', '3', '1', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'item#btn-edit', N'编辑', '', '3', '2', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'item#btn-delete', N'删除', '', '3', '3', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'item#btn-export', N'导出', '', '3', '4', '1');
src/main/java/receiveDetl.sql
New file
@@ -0,0 +1,18 @@
-- save receiveDetl record
-- mysql
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'receiveDetl/receiveDetl.html', 'receiveDetl管理', null , '2', null , '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'receiveDetl#view', '查询', '', '3', '0', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'receiveDetl#btn-add', '新增', '', '3', '1', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'receiveDetl#btn-edit', '编辑', '', '3', '2', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'receiveDetl#btn-delete', '删除', '', '3', '3', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'receiveDetl#btn-export', '导出', '', '3', '4', '1');
-- sqlserver
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'receiveDetl/receiveDetl.html', N'receiveDetl管理', null, '2', null, '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'receiveDetl#view', N'查询', '30533', '3', '0', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'receiveDetl#btn-add', N'新增', '30533', '3', '1', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'receiveDetl#btn-edit', N'编辑', '30533', '3', '2', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'receiveDetl#btn-delete', N'删除', '30533', '3', '3', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'receiveDetl#btn-export', N'导出', '30533', '3', '4', '1');
src/main/java/zy/cloud/wms/common/CodeBuilder.java
@@ -23,7 +23,7 @@
        generator.url="localhost:1433;databasename=wms_saas";
        generator.username="sa";
        generator.password="sa@123";
        generator.table="man_item_detl";
        generator.table="man_receive_detl";
        generator.packagePath="zy.cloud.wms.manager";
        generator.sqlOsType = SqlOsType.SQL_SERVER;
//        generator.js = false;
src/main/java/zy/cloud/wms/common/model/ReceiveStoDto.java
@@ -4,6 +4,7 @@
import zy.cloud.wms.manager.entity.OrderDetl;
import zy.cloud.wms.manager.entity.Receive;
import zy.cloud.wms.manager.entity.ReceiveDetl;
//import zy.cloud.wms.manager.entity.ReceiveDetl;
import java.util.ArrayList;
import java.util.List;
src/main/java/zy/cloud/wms/manager/controller/ItemController.java
@@ -61,6 +61,7 @@
    @RequestMapping(value = "/item/add/auth")
    @ManagerAuth
    public R add(Item item) {
        item.setHostId(getHostId());
        item.setCreateBy(getUserId());
        item.setCreateTime(new Date());
@@ -85,14 +86,18 @@
    @RequestMapping(value = "/item/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam String param){
        List<Item> list = JSONArray.parseArray(param, Item.class);
        if (Cools.isEmpty(list)){
            return R.error();
    public R delete(@RequestParam("ids[]") String param){
        if (param != null){
            itemService.delete(new EntityWrapper<Item>()
                    .eq("id",param));
        }
        for (Item entity : list){
            itemService.delete(new EntityWrapper<>(entity));
        }
//        List<Item> list = JSONArray.parseArray(param, Item.class);
//        if (Cools.isEmpty(list)){
//            return R.error();
//        }
//        for (Item entity : list){
//            itemService.delete(new EntityWrapper<>(entity));
//        }
        return R.ok();
    }
src/main/java/zy/cloud/wms/manager/controller/ReceiveDetlController.java
@@ -5,21 +5,18 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import zy.cloud.wms.manager.service.ReceiveDetlService;
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 zy.cloud.wms.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import zy.cloud.wms.common.web.BaseController;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import zy.cloud.wms.manager.service.ReceiveDetlService;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@RestController
public class ReceiveDetlController extends BaseController {
@@ -43,7 +40,6 @@
        EntityWrapper<ReceiveDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        hostEq(wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.ok(receiveDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
@@ -56,7 +52,7 @@
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.eq(entry.getKey(), val);
                wrapper.like(entry.getKey(), val);
            }
        }
    }
@@ -80,13 +76,9 @@
    @RequestMapping(value = "/receiveDetl/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam String param){
        List<ReceiveDetl> list = JSONArray.parseArray(param, ReceiveDetl.class);
        if (Cools.isEmpty(list)){
            return R.error();
        }
        for (ReceiveDetl entity : list){
            receiveDetlService.delete(new EntityWrapper<>(entity));
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            receiveDetlService.deleteById(id);
        }
        return R.ok();
    }
@@ -95,9 +87,8 @@
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
        EntityWrapper<ReceiveDetl> wrapper = new EntityWrapper<>();
        hostEq(wrapper);
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        Map<String, Object> map = excludeTrash(param.getJSONObject("orderDetl"));
        Map<String, Object> map = excludeTrash(param.getJSONObject("receiveDetl"));
        convert(map, wrapper);
        List<ReceiveDetl> list = receiveDetlService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
@@ -108,7 +99,6 @@
    public R query(String condition) {
        EntityWrapper<ReceiveDetl> wrapper = new EntityWrapper<>();
        wrapper.like("id", condition);
        hostEq(wrapper);
        Page<ReceiveDetl> page = receiveDetlService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (ReceiveDetl receiveDetl : page.getRecords()){
@@ -130,4 +120,10 @@
        return R.ok();
    }
    @RequestMapping("/receiveDetl/addIn")
    public R addIn(@RequestBody ReceiveDetl receiveDetl){
        System.out.println("receiveDetl = " + receiveDetl);
        return R.ok();
    }
}
src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -77,7 +77,9 @@
    @RequestMapping("/stock/out/print")
    @ManagerAuth(memo = "拣货单打印")
    public R stockOutPrint(@RequestBody StockOutParam stockOutParam) {
        return workService.stockOutPrint(stockOutParam, getUserId(), getHostId());
        return workService.stockInPrint(stockOutParam, getUserId(), getHostId());
    }
    @RequestMapping("/stock/allot")
src/main/java/zy/cloud/wms/manager/entity/Item.java
@@ -7,6 +7,7 @@
import com.core.common.Cools;
import com.core.common.SpringUtils;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import zy.cloud.wms.system.entity.Host;
import zy.cloud.wms.system.entity.User;
import zy.cloud.wms.system.service.HostService;
@@ -85,6 +86,7 @@
     */
    @ApiModelProperty(value= "开始时间")
    @TableField("start_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
@@ -92,6 +94,7 @@
     */
    @ApiModelProperty(value= "结束时间")
    @TableField("end_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
@@ -112,6 +115,7 @@
     */
    @ApiModelProperty(value= "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
@@ -126,6 +130,7 @@
     */
    @ApiModelProperty(value= "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
src/main/java/zy/cloud/wms/manager/entity/ReceiveDetl.java
@@ -1,22 +1,51 @@
package zy.cloud.wms.manager.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.core.common.Cools;import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotations.TableField;
import io.swagger.annotations.ApiModelProperty;
import com.core.common.SpringUtils;
import lombok.Data;
import lombok.NoArgsConstructor;
import zy.cloud.wms.manager.service.OrderService;
import zy.cloud.wms.system.entity.Host;
import zy.cloud.wms.system.entity.User;
import zy.cloud.wms.system.service.HostService;
import zy.cloud.wms.manager.entity.Order;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import com.core.common.SpringUtils;
import zy.cloud.wms.system.service.UserService;
import java.io.Serializable;
import zy.cloud.wms.system.entity.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModelProperty;
import com.core.common.SpringUtils;
import zy.cloud.wms.system.service.UserService;
import zy.cloud.wms.system.entity.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
@Data
@NoArgsConstructor
@TableName("man_receive_detl")
public class ReceiveDetl implements Serializable {
@@ -26,13 +55,9 @@
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 所属项目
     */
    @ApiModelProperty(value= "所属项目")
    @ApiModelProperty(value= "")
    @TableField("host_id")
    private Long hostId;
@@ -121,7 +146,7 @@
     * 数量
     */
    @ApiModelProperty(value= "数量")
    private Integer count;
    private Double count;
    /**
     * 重量
@@ -130,7 +155,7 @@
    private Double weight;
    /**
     * 状态 1: 正常  0: 禁用
     * 状态 1: 正常  0: 禁用
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ")
    private Integer status;
@@ -147,6 +172,7 @@
     */
    @ApiModelProperty(value= "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
@@ -161,6 +187,7 @@
     */
    @ApiModelProperty(value= "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
@@ -169,34 +196,11 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    public ReceiveDetl() {}
    @TableField("in_qty")
    private int inQty;
    public ReceiveDetl(Long hostId, Long orderId, Double anfme, String matnr, String maktx, String name, String specs, String model, String batch, String unit, String barcode, String supplier, Double unitPrice, Integer itemNum, Integer count, Double weight, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
        this.hostId = hostId;
        this.orderId = orderId;
        this.anfme = anfme;
        this.matnr = matnr;
        this.maktx = maktx;
        this.name = name;
        this.specs = specs;
        this.model = model;
        this.batch = batch;
        this.unit = unit;
        this.barcode = barcode;
        this.supplier = supplier;
        this.unitPrice = unitPrice;
        this.itemNum = itemNum;
        this.count = count;
        this.weight = weight;
        this.status = status;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
    }
//    OrderDetl orderDetl = new OrderDetl(
//    ReceiveDetl receiveDetl = new ReceiveDetl(
//            null,    //
//            null,    // 订单内码
//            null,    // 数量
//            null,    // 商品编码
@@ -234,15 +238,6 @@
    public void setHostId(Long hostId) {
        this.hostId = hostId;
    }
    public String getHostId$(){
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.selectById(this.hostId);
        if (!Cools.isEmpty(host)){
            return String.valueOf(host.getName());
        }
        return null;
    }
    public Long getOrderId() {
@@ -358,11 +353,11 @@
        this.itemNum = itemNum;
    }
    public Integer getCount() {
    public Double getCount() {
        return count;
    }
    public void setCount(Integer count) {
    public void setCount(Double count) {
        this.count = count;
    }
src/main/java/zy/cloud/wms/manager/mapper/ReceiveDetlMapper.java
@@ -1,10 +1,9 @@
package zy.cloud.wms.manager.mapper;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import java.util.List;
@@ -12,6 +11,5 @@
@Repository
public interface ReceiveDetlMapper extends BaseMapper<ReceiveDetl> {
    List<ReceiveDetl> selectByOrderNo(@Param("orderNo") String orderNo, @Param("hostId") Long hostId);
    List<ReceiveDetl> selectByOrderNo(String orderNo, Long hostId);
}
src/main/java/zy/cloud/wms/manager/service/ReceiveDetlService.java
@@ -1,12 +1,11 @@
package zy.cloud.wms.manager.service;
import com.baomidou.mybatisplus.service.IService;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import com.baomidou.mybatisplus.service.IService;
import java.util.List;
public interface ReceiveDetlService extends IService<ReceiveDetl> {
    List<ReceiveDetl> selectByOrderNo(String orderNo, Long hostId);
}
src/main/java/zy/cloud/wms/manager/service/WorkService.java
@@ -21,6 +21,8 @@
    R stockOutPrint(StockOutParam param, Long userId, Long hostId);
    R stockInPrint(StockOutParam param, Long userId, Long hostId);
    R pakoutComplete(StockConfirmParam param, Long userId);
    R stockOutComplete(StockConfirmParam param, Long userId, Long hostId);
src/main/java/zy/cloud/wms/manager/service/impl/ReceiveDetlServiceImpl.java
@@ -1,10 +1,10 @@
package zy.cloud.wms.manager.service.impl;
import zy.cloud.wms.manager.mapper.ReceiveDetlMapper;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import zy.cloud.wms.manager.service.ReceiveDetlService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import zy.cloud.wms.manager.mapper.ReceiveDetlMapper;
import zy.cloud.wms.manager.service.ReceiveDetlService;
import java.util.List;
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -62,6 +62,7 @@
    private ReceiveDetlService receiveDetlService;
    @Override
    @Transactional
    public R stockPakin(PakinParam param, Long userId, Long hostId) {
@@ -322,8 +323,10 @@
        return R.ok("生成拣货单成功");
    }
    @Override
    public R stockOutPrint(StockOutParam param, Long userId, Long hostId) {
        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (order == null) {
            return R.error("此单据已失效");
@@ -340,6 +343,27 @@
        vo.setCstmrName(order.getCstmrName());
        vo.setWorkerName(Cools.isEmpty(order.getOperMemb())? "" : order.getOperMemb());
        return R.ok().add(vo);
    }
    @Override
    public R stockInPrint(StockOutParam param, Long userId, Long hostId) {
        Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId);
        if (receive == null) {
            return R.error("此单据已失效");
        }
        List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", receive.getOrderNo()).eq("host_id", hostId));
        Double total = 0.0D;
        for (Pakout pakout : pakouts) {
            total = pakout.getAnfme() + total;
        }
        StoPrintVo vo = new StoPrintVo();
        vo.setDocNum(param.getOrderNo());
        vo.setList(pakouts);
        vo.setTotal(total);
        vo.setCstmrName(receive.getCstmrName());
        vo.setWorkerName(Cools.isEmpty(receive.getOperMemb())? "" : receive.getOperMemb());
        return R.ok().add(vo);
    }
    @Override
@@ -644,7 +668,7 @@
            receiveDetl.setUnit(mat.getUnit());
            receiveDetl.setBarcode(mat.getBarcode());
            receiveDetl.setItemNum(mat.getItemNum());
            receiveDetl.setCount(mat.getCount());
            receiveDetl.setCount(Double.valueOf(mat.getCount()));
            receiveDetl.setUnitPrice(mat.getPrice());
            receiveDetl.setWeight(mat.getWeight());
            if (!receiveDetlService.insert(receiveDetl)) {
src/main/resources/mapper/ReceiveDetlMapper.xml
@@ -29,15 +29,14 @@
        <result column="memo" property="memo" />
    </resultMap>
    <select id="selectByOrderNo" resultMap="BaseResultMap">
    <select id="selectByOrderNo" resultType="zy.cloud.wms.manager.entity.ReceiveDetl">
        select
        mod.*
            mod.*
        from man_receive_detl mod
        left join man_receive mo on mo.id = mod.order_id
                 left join man_order mo on mo.id = mod.order_id
        where 1=1
        and mo.order_no = #{orderNo}
        and mo.host_id = #{hostId}
          and mo.order_no = #{orderNo}
          and mo.host_id = #{hostId}
    </select>
</mapper>
src/main/webapp/static/js/item/item.js
@@ -22,6 +22,7 @@
        cols: [[
            {type: 'checkbox'}
            ,{field: 'id', align: 'center',title: 'ID'}
            ,{field: 'hostId', align: 'center',title: ''}
            ,{field: 'uuid', align: 'center',title: '项目编号'}
            ,{field: 'name', align: 'center',title: '项目名称'}
            ,{field: 'inUuid', align: 'center',title: '内部编号'}
@@ -32,9 +33,9 @@
            ,{field: 'startTime$', align: 'center',title: '开始时间'}
            ,{field: 'endTime$', align: 'center',title: '结束时间'}
            ,{field: 'status$', align: 'center',title: '状态'}
            ,{field: 'createBy$', align: 'center',title: '添加人员',event: 'createBy', style: 'cursor:pointer'}
            ,{field: 'createBy$', align: 'center',title: '添加人员'}
            ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{field: 'updateBy$', align: 'center',title: '修改人员',event: 'updateBy', style: 'cursor:pointer'}
            ,{field: 'updateBy$', align: 'center',title: '修改人员'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
            ,{field: 'memo', align: 'center',title: '备注'}
@@ -80,7 +81,7 @@
    // 监听头工具栏事件
    table.on('toolbar(item)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id);
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                showEditModel();
@@ -158,6 +159,7 @@
            title: (mData ? '修改' : '添加') + '订单状态',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender();
                form.val('detail', mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
@@ -229,23 +231,26 @@
    });
    // 时间选择器
    layDate.render({
    function layDateRender() {
            layDate.render({
        elem: '#startTime\\$',
        type: 'datetime'
    });
    layDate.render({
        layDate.render({
        elem: '#endTime\\$',
        type: 'datetime'
    });
    layDate.render({
        layDate.render({
        elem: '#createTime\\$',
        type: 'datetime'
    });
    layDate.render({
        layDate.render({
        elem: '#updateTime\\$',
        type: 'datetime'
    });
    }
    layDateRender();
});
src/main/webapp/static/js/itemDetl/itemDetl.js
@@ -338,10 +338,12 @@
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '订单状态',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender();
src/main/webapp/static/js/receive/receive.js
@@ -199,7 +199,7 @@
            ,{field: 'shipName', align: 'center',title: '物流名称', hide: true}
            ,{field: 'shipCode', align: 'center',title: '物流单号', hide: true}
            ,{field: 'settle$', align: 'center',title: '订单状态', templet: '#settleTpl', width: 100}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate',  width: 120}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#printBar',  width: 120}
        ]],
        request: {
            pageName: 'curr',
src/main/webapp/static/js/receiveDetl/receiveDetl.js
@@ -1,48 +1,50 @@
var pageCurr;
layui.use(['table','laydate', 'form'], function(){
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    // 数据渲染
    tableIns = table.render({
        elem: '#orderDetl',
        elem: '#receiveDetl',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/receiveDetl/list/auth',
        page: true,
        limit: 16,
        limits: [16, 30, 50, 100, 200, 500],
        even: true,
        toolbar: '#toolbar',
        cellMinWidth: 50,
        cols: [[
            {type: 'checkbox'}
//            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
            ,{field: 'id', align: 'center',title: 'ID'}
            ,{field: 'orderId$', align: 'center',title: '订单内码',event: 'orderId', style: 'cursor:pointer'}
            ,{field: 'anfme', align: 'center',title: '数量'}
            ,{field: 'id', align: 'center',title: 'ID', hide:true}
            ,{field: 'hostId', align: 'center',title: '', hide:true}
            ,{field: 'orderId$', align: 'center',title: '订单内码', width: 100}
            ,{field: 'anfme', align: 'center',title: '需入库数量', width: 100}
            ,{field: 'inQty', align: 'center',title: '已入库数量', width: 100}
            ,{field: 'matnr', align: 'center',title: '商品编码'}
            ,{field: 'maktx', align: 'center',title: '商品名称'}
            ,{field: 'name', align: 'center',title: '名称'}
            ,{field: 'specs', align: 'center',title: '规格'}
            ,{field: 'model', align: 'center',title: '型号'}
            ,{field: 'batch', align: 'center',title: '批号'}
            ,{field: 'unit', align: 'center',title: '单位'}
            ,{field: 'barcode', align: 'center',title: '商品条码'}
            ,{field: 'supplier', align: 'center',title: '供应商'}
            ,{field: 'unitPrice', align: 'center',title: '单价'}
            ,{field: 'itemNum', align: 'center',title: '品项数'}
            ,{field: 'count', align: 'center',title: '数量'}
            ,{field: 'weight', align: 'center',title: '重量'}
            ,{field: 'status$', align: 'center',title: '状态'}
            ,{field: 'createBy$', align: 'center',title: '添加人员',event: 'createBy', style: 'cursor:pointer'}
            ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{field: 'updateBy$', align: 'center',title: '修改人员',event: 'updateBy', style: 'cursor:pointer'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
            ,{field: 'memo', align: 'center',title: '备注'}
            ,{field: 'name', align: 'center',title: '名称', hide:true}
            ,{field: 'specs', align: 'center',title: '规格', hide:true}
            ,{field: 'model', align: 'center',title: '型号', hide:true}
            ,{field: 'batch', align: 'center',title: '批号', hide:true}
            ,{field: 'unit', align: 'center',title: '单位', hide:true}
            ,{field: 'barcode', align: 'center',title: '商品条码', hide:true}
            ,{field: 'supplier', align: 'center',title: '供应商', hide:true}
            ,{field: 'unitPrice', align: 'center',title: '单价', hide:true}
            ,{field: 'itemNum', align: 'center',title: '品项数', hide:true}
            ,{field: 'count', align: 'center',title: '数量', hide:true}
            ,{field: 'weight', align: 'center',title: '重量', hide:true}
            ,{field: 'status$', align: 'center',title: '状态', hide:true}
            ,{field: 'createBy$', align: 'center',title: '添加人员', hide:true}
            ,{field: 'createTime$', align: 'center',title: '添加时间', hide:true}
            ,{field: 'updateBy$', align: 'center',title: '修改人员', hide:true}
            ,{field: 'updateTime$', align: 'center',title: '修改时间', hide:true}
            ,{field: 'memo', align: 'center',title: '备注', hide:true}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150}
        ]],
        request: {
@@ -66,19 +68,11 @@
            }
            pageCurr=curr;
            limit();
            form.on('checkbox(tableCheckbox)', function (data) {
                var _index = $(data.elem).attr('table-index')||0;
                if(data.elem.checked){
                    res.data[_index][data.value] = 'Y';
                }else{
                    res.data[_index][data.value] = 'N';
                }
            });
        }
    });
    // 监听排序事件
    table.on('sort(locMast)', function (obj) {
    table.on('sort(receiveDetl)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
@@ -87,63 +81,27 @@
        searchData['orderByType'] = obj.type;
        tableIns.reload({
            where: searchData,
            page: {
                curr: 1
            },
            done: function (res, curr, count) {
                if (res.code === 403) {
                    top.location.href = baseUrl+"/";
                }
                pageCurr=curr;
                limit();
            }
            page: {curr: 1}
        });
    });
    // 监听头工具栏事件
    table.on('toolbar(orderDetl)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id);
    table.on('toolbar(receiveDetl)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                layer.open({
                    type: 2,
                    title: '新增',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    content: 'receiveDetl_detail.html',
                    success: function(layero, index){
                        layer.getChildFrame('#data-detail-submit-edit', index).hide();
                        clearFormVal(layer.getChildFrame('#detail', index));
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                    }
                });
                showEditModel();
                break;
            case 'deleteData':
                var data = checkStatus.data;
                if (data.length === 0){
                    layer.msg('请选择数据');
                } else {
                    layer.confirm('确定删除'+(data.length===1?'此':data.length)+'条数据吗', function(){
                        $.ajax({
                            url: baseUrl+"/receiveDetl/delete/auth",
                            headers: {'token': localStorage.getItem('token')},
                            data: {param: JSON.stringify(data)},
                            method: 'POST',
                            traditional:true,
                            success: function (res) {
                                if (res.code === 200){
                                    layer.closeAll();
                                    tableReload(false);
                                } else if (res.code === 403){
                                    top.location.href = baseUrl+"/";
                                } else {
                                    layer.msg(res.msg)
                                }
                            }
                        })
                    });
                }
                break;
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               var ids = checkStatus.map(function (d) {
                   return d.id;
               });
               del(ids);
               break;
            case 'exportData':
                layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
@@ -159,7 +117,7 @@
                        exportData[this.name] = this.value;
                    });
                    var param = {
                        'orderDetl': exportData,
                        'receiveDetl': exportData,
                        'fields': fields
                    };
                    $.ajax({
@@ -176,7 +134,7 @@
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg)
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    });
@@ -186,242 +144,121 @@
    });
    // 监听行工具事件
    table.on('tool(orderDetl)', function(obj){
    table.on('tool(receiveDetl)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            // 详情
            case 'detail':
                layer.open({
                    type: 2,
                    title: '详情',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    shadeClose: true,
                    content: 'receiveDetl_detail.html',
                    success: function(layero, index){
                        setFormVal(layer.getChildFrame('#detail', index), data, true);
                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                        layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                    }
                });
                break;
            // 编辑
            case 'edit':
                layer.open({
                    type: 2,
                    title: '修改',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    content: 'receiveDetl_detail.html',
                    success: function(layero, index){
                        layer.getChildFrame('#data-detail-submit-save', index).hide();
                        setFormVal(layer.getChildFrame('#detail', index), data, false);
                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
                        top.convertDisabled(layer.getChildFrame('', index), true);
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                    }
                showEditModel(data);
                break;
            case "del":
                var ids = [data.id];
                del(ids);
                break;
            case "add":
                // showEditModel(data);
                startIn(data);
                break;
        }
    });
    function startIn(data) {
        admin.open({
            type:1
            ,area: '600px'
            ,title: '入库'
            ,content: $('#addIn').html()
            ,success: function () {
                var remain = data.anfme - data.inQty;
                form.val('inDetail',{
                    "remain": remain
                });
                break;
            case 'orderId':
                var param = top.reObject(data).orderId;
                if (param === undefined) {
                    layer.msg("无数据");
                } else {
                   layer.open({
                       type: 2,
                       title: '订单内码详情',
                       maxmin: true,
                       area: [top.detailWidth, top.detailHeight],
                       shadeClose: true,
                       content: '../receive/receiveDetl_detail.html',
                       success: function(layero, index){
                           $.ajax({
                               url: "baseUrl+/receive/"+ param +"/auth",
                               headers: {'token': localStorage.getItem('token')},
                               method: 'GET',
                               success: function (res) {
                                   if (res.code === 200){
                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                                   } else if (res.code === 403){
                                       top.location.href = baseUrl+"/";
                                   }else {
                                       layer.msg(res.msg)
                                   }
                               }
                           })
                       }
                   });
                }
                break;
            case 'createBy':
                var param = top.reObject(data).createBy;
                if (param === undefined) {
                    layer.msg("无数据");
                } else {
                   layer.open({
                       type: 2,
                       title: '添加人员详情',
                       maxmin: true,
                       area: [top.detailWidth, top.detailHeight],
                       shadeClose: true,
                       content: '../user/user_detail.html',
                       success: function(layero, index){
                           $.ajax({
                               url: "baseUrl+/user/"+ param +"/auth",
                               headers: {'token': localStorage.getItem('token')},
                               method: 'GET',
                               success: function (res) {
                                   if (res.code === 200){
                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                                   } else if (res.code === 403){
                                       top.location.href = baseUrl+"/";
                                   }else {
                                       layer.msg(res.msg)
                                   }
                               }
                           })
                       }
                   });
                }
                break;
            case 'updateBy':
                var param = top.reObject(data).updateBy;
                if (param === undefined) {
                    layer.msg("无数据");
                } else {
                   layer.open({
                       type: 2,
                       title: '修改人员详情',
                       maxmin: true,
                       area: [top.detailWidth, top.detailHeight],
                       shadeClose: true,
                       content: '../user/user_detail.html',
                       success: function(layero, index){
                           $.ajax({
                               url: "baseUrl+/user/"+ param +"/auth",
                               headers: {'token': localStorage.getItem('token')},
                               method: 'GET',
                               success: function (res) {
                                   if (res.code === 200){
                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
                                   } else if (res.code === 403){
                                       top.location.href = baseUrl+"/";
                                   }else {
                                       layer.msg(res.msg)
                                   }
                               }
                           })
                       }
                   });
                }
                break;
        }
    });
    // 数据保存动作
    form.on('submit(save)', function () {
        if (banMsg != null){
            layer.msg(banMsg);
            return;
        }
        method("add");
    });
    // 数据修改动作
    form.on('submit(edit)', function () {
        method("update")
    });
    function method(name){
        var index = layer.load(1, {
            shade: [0.5,'#000'] //0.1透明度的背景
        });
        var data = {
//            id: $('#id').val(),
            id: $('#id').val(),
            orderId: $('#orderId').val(),
            anfme: $('#anfme').val(),
            matnr: $('#matnr').val(),
            maktx: $('#maktx').val(),
            name: $('#name').val(),
            specs: $('#specs').val(),
            model: $('#model').val(),
            batch: $('#batch').val(),
            unit: $('#unit').val(),
            barcode: $('#barcode').val(),
            supplier: $('#supplier').val(),
            unitPrice: $('#unitPrice').val(),
            itemNum: $('#itemNum').val(),
            count: $('#count').val(),
            weight: $('#weight').val(),
            status: $('#status').val(),
            createBy: $('#createBy').val(),
            createTime: top.strToDate($('#createTime\\$').val()),
            updateBy: $('#updateBy').val(),
            updateTime: top.strToDate($('#updateTime\\$').val()),
            memo: $('#memo').val(),
        };
        $.ajax({
            url: baseUrl+"/receiveDetl/"+name+"/auth",
            headers: {'token': localStorage.getItem('token')},
            data: top.reObject(data),
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    parent.layer.closeAll();
                    parent.$(".layui-laypage-btn")[0].click();
                    $("#data-detail :input").each(function () {
                        $(this).val("");
                    });
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg)
                }
                layer.close(index);
                form.val('inDetail',data);
                form.on('submit(recommendIn)',function (data) {
                    console.log(data);
                    $.ajax({
                        url: baseUrl+"/receiveDetl/addIn"
                        ,headers: {'token':localStorage.getItem('token')}
                        ,data: data
                        ,method: 'POST'
                    })
                    return false;
                });
            }
        })
    }
    // 复选框事件
    form.on('checkbox(detailCheckbox)', function (data) {
        var el = data.elem;
        if (el.checked) {
            $(el).val('Y');
        } else {
            $(el).val('N');
        }
    });
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '订单状态',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender();
                form.val('detail', mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/receiveDetl/"+(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+"/receiveDetl/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(false);
    });
    // 搜索栏重置事件
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
@@ -429,15 +266,18 @@
    });
    // 时间选择器
    layDate.render({
    function layDateRender() {
            layDate.render({
        elem: '#createTime\\$',
        type: 'datetime'
    });
    layDate.render({
        layDate.render({
        elem: '#updateTime\\$',
        type: 'datetime'
    });
    }
    layDateRender();
});
@@ -451,80 +291,8 @@
    $.each($('#search-box [name]').serializeArray(), function() {
        searchData[this.name] = this.value;
    });
    (child ? parent.tableIns : tableIns).reload({
    tableIns.reload({
        where: searchData,
        page: {
            curr: pageCurr
        },
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;
            if (res.data.length === 0 && count !== 0) {
                tableIns.reload({
                    where: searchData,
                    page: {
                        curr: pageCurr-1
                    }
                });
                pageCurr -= 1;
            }
            limit(child);
        }
    });
        page: {curr: pageCurr}
     });
}
function setFormVal(el, data, showImg) {
    for (var val in data) {
        var find = el.find(":input[id='" + val + "']");
        if (find[0]!=null){
            if (find[0].type === 'checkbox'){
                if (data[val]==='Y'){
                    find.attr("checked","checked");
                    find.val('Y');
                } else {
                    find.remove("checked");
                    find.val('N');
                }
                continue;
            }
        }
        find.val(data[val]);
        if (showImg){
            var next = find.next();
            if (next.get(0)){
                if (next.get(0).localName === "img") {
                    find.hide();
                    next.attr("src", data[val]);
                    next.show();
                }
            }
        }
    }
}
function clearFormVal(el) {
    $(':input', el)
        .val('')
        .removeAttr('checked')
        .removeAttr('selected');
}
function detailScreen(index) {
    var detail = layer.getChildFrame('#data-detail', index);
    var height = detail.height()+60;
    if (height > ($(window).height()*0.9)) {
        height = ($(window).height()*0.8);
    }
    layer.style(index, {
//        top: (($(window).height()-height)/3)+"px",
        height: height+'px'
    });
}
$('body').keydown(function () {
    if (event.keyCode === 13) {
        $("#search").click();
    }
});
src/main/webapp/views/item/item.html
@@ -55,7 +55,7 @@
    <form id="detail" lay-filter="detail" class="layui-form admin-form">
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md6">
            <div class="layui-col-md12">
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">项目编号: </label>
                    <div class="layui-input-block">
@@ -101,13 +101,13 @@
                <div class="layui-form-item">
                    <label class="layui-form-label">开始时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="startTime" placeholder="请输入开始时间">
                        <input class="layui-input" name="startTime" id="startTime$" placeholder="请输入开始时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">结束时间: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="endTime" placeholder="请输入结束时间">
                        <input class="layui-input" name="endTime" id="endTime$" placeholder="请输入结束时间">
                    </div>
                </div>
                <div class="layui-form-item">
@@ -122,26 +122,38 @@
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">添加人员: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="createBy" placeholder="请输入添加人员">
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="createBy" placeholder="请输入添加人员" style="display: none">
                        <input id="createBy$" 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="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" 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="createTime" placeholder="请输入添加时间">
                        <input class="layui-input" name="createTime" id="createTime$" placeholder="请输入添加时间">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">修改人员: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="updateBy" placeholder="请输入修改人员">
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="updateBy" placeholder="请输入修改人员" style="display: none">
                        <input id="updateBy$" 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="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" 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="updateTime" placeholder="请输入修改时间">
                        <input class="layui-input" name="updateTime" id="updateTime$" placeholder="请输入修改时间">
                    </div>
                </div>
                <div class="layui-form-item">
src/main/webapp/views/receive/receive.html
@@ -112,13 +112,17 @@
    <span name="docType" class="layui-badge layui-badge-gray">{{d.docType$}}</span>
</script>
<script type="text/html" id="operate">
    {{#if (d.settle == 1){ }}
    <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="stockOut" style="font-size: 16px">拣货单</a>
    {{# } }}
    {{#if (d.settle == 2 || d.settle == 4){ }}
<!--<script type="text/html" id="operate">-->
<!--    <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="print" style="font-size: 16px">打印</a>-->
<!--    {{#if (d.settle == 1){ }}-->
<!--    <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="stockOut" style="font-size: 16px">拣货单</a>-->
<!--    {{# } }}-->
<!--    {{#if (d.settle == 2 || d.settle == 4){ }}-->
<!--    {{# } }}-->
<!--</script>-->
<script type="text/html" id="printBar">
    <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="print" style="font-size: 16px">打印</a>
    {{# } }}
</script>
<script type="text/html" id="settleTpl">
src/main/webapp/views/receiveDetl/receiveDetl.html
@@ -20,44 +20,12 @@
            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline cool-auto-complete">
            <input id="orderId" class="layui-input" name="order_id" type="text" placeholder="请输入" autocomplete="off" style="display: none">
            <input id="orderId$" 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="receiveQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))">
                <select class="cool-auto-complete-window-select" data-key="receiveQueryByorderIdSelect" 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="createBy" class="layui-input" name="create_by" type="text" placeholder="请输入" autocomplete="off" style="display: none">
            <input id="createBy$" 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="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
                <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" 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="updateBy" class="layui-input" name="update_by" type="text" placeholder="请输入" autocomplete="off" style="display: none">
            <input id="updateBy$" 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="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
                <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                </select>
            </div>
        </div>
    </div>
    <!-- 待添加 -->
    <div id="data-search-btn" class="layui-btn-container layui-form-item">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索
        </button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置
        </button>
    </div>
</div>
@@ -74,8 +42,9 @@
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">编辑</a>
    <!--    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>-->
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="add">开始入库</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>
@@ -83,9 +52,257 @@
<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/receiveDetl/receiveDetl.js" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
</body>
<!-- 添加入库表单 -->
<script type="text/html" id="addIn">
    <form id="inDetail" lay-filter="inDetail" class="layui-form admin-form">
        <div class="layui-row">
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label" >商品名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="maktx" placeholder="请输入" disabled>
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">
                        商品编码:
                    </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="matnr" disabled>
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">
                        应入数量:
                    </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="anfme" disabled>
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">
                        已入数量:
                    </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="inQty" disabled>
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">
                        本次入库量:
                    </label>
                    <div class="layui-input-block">
                        <input type="number" class="layui-input"  name="remain" placeholder="请输入">
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">
                        入库位置:
                    </label>
                    <div class="layui-input-block">
                        <input type="number" class="layui-input" placeholder="可直接点击自动入库">
                    </div>
                </div>
            </div>
            <hr class="layui-bg-gray">
            <div class="layui-form-item text-right">
                <button class="layui-btn" lay-filter="recommendIn" lay-submit="">自动入库</button>
                <button class="layui-btn layui-btn-normal" lay-filter="inLoc" lay-submit="">入库</button>
                <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
            </div>
        </div>
    </form>
</script>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
    <form id="detail" lay-filter="detail" class="layui-form admin-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">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="hostId" 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="orderId" placeholder="请输入订单内码" style="display: none">
                        <input id="orderId$" 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="orderQueryByorderId"
                                   onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect"
                                    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="anfme" placeholder="请输入数量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">商品编码: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="matnr" placeholder="请输入商品编码">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">商品名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="maktx" placeholder="请输入商品名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="name" placeholder="请输入名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">规格: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="specs" placeholder="请输入规格">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">型号: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="model" placeholder="请输入型号">
                    </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="unit" placeholder="请输入单位">
                    </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="supplier" placeholder="请输入供应商">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单价: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="unitPrice" placeholder="请输入单价">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">品项数: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="itemNum" placeholder="请输入品项数">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">数量: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="count" placeholder="请输入数量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">重量: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="weight" placeholder="请输入重量">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">状态: </label>
                    <div class="layui-input-block">
                        <select name="status">
                            <option value="">请选择状态</option>
                            <option value="1">正常</option>
                            <option value="0">禁用</option>
                        </select>
                    </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="createBy" placeholder="请输入添加人员" style="display: none">
                        <input id="createBy$" 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="userQueryBycreateBy"
                                   onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect"
                                    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="createTime" id="createTime$" 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="updateBy" placeholder="请输入修改人员" style="display: none">
                        <input id="updateBy$" 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="userQueryByupdateBy"
                                   onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect"
                                    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="updateTime" id="updateTime$" 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>
        </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>
    </form>
</script>
</html>
src/main/webapp/views/receiveDetl/receiveDetl_detail.html
File was deleted