自动化立体仓库 - WMS系统
zhangc
2025-01-08 a23152b2b3639fcea27d4e6efb53b1291158f6b3
订单历史档
10个文件已添加
1355 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderDetlLogController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderLogController.java 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetlLog.java 476 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderLog.java 453 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderDetlLogMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderLogMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderDetlLogService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderLogService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderDetlLogServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderLogServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlLogController.java
New file
@@ -0,0 +1,104 @@
package com.zy.asrs.controller;
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.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.OrderDetl;
import com.zy.asrs.entity.OrderDetlLog;
import com.zy.asrs.service.OrderDetlLogService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
public class OrderDetlLogController extends BaseController {
    @Autowired
    private OrderDetlLogService orderDetlLogService;
    @RequestMapping(value = "/orderDetlLog/{id}/auth")
    @ManagerAuth
    public R get(@PathVariable("id") String id) {
        return R.ok(orderDetlLogService.selectById(String.valueOf(id)));
    }
    @RequestMapping(value = "/orderDetlLog/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 Map<String, Object> param){
        EntityWrapper<OrderDetlLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
            wrapper.orderBy("create_time", false);
        }
        wrapper.eq("status", 1);
        return R.ok(orderDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
    }
    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)){
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
            }
        }
    }
    @RequestMapping(value = "/orderDetlLog/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
        EntityWrapper<OrderDetlLog> wrapper = new EntityWrapper<>();
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        Map<String, Object> map = excludeTrash(param.getJSONObject("orderDetl"));
        convert(map, wrapper);
        List<OrderDetlLog> list = orderDetlLogService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
    }
    @RequestMapping(value = "/orderDetlLogQuery/auth")
    @ManagerAuth
    public R query(String condition) {
        EntityWrapper<OrderDetlLog> wrapper = new EntityWrapper<>();
        wrapper.like("id", condition);
        Page<OrderDetlLog> page = orderDetlLogService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (OrderDetlLog orderDetl : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", orderDetl.getId());
            map.put("value", orderDetl.getId());
            result.add(map);
        }
        return R.ok(result);
    }
    @RequestMapping(value = "/orderDetlLog/check/column/auth")
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
        Wrapper<OrderDetlLog> wrapper = new EntityWrapper<OrderDetlLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
        if (null != orderDetlLogService.selectOne(wrapper)){
            return R.parse(BaseRes.REPEAT).add(getComment(OrderDetl.class, String.valueOf(param.get("key"))));
        }
        return R.ok();
    }
}
src/main/java/com/zy/asrs/controller/OrderLogController.java
New file
@@ -0,0 +1,240 @@
package com.zy.asrs.controller;
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.annotations.ManagerAuth;
import com.core.common.*;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.result.WrkTraceVo;
import com.zy.asrs.service.*;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@Slf4j
@RestController
public class OrderLogController extends BaseController {
    @Autowired
    private OrderLogService orderLogService;
    @Autowired
    private OrderDetlLogService orderDetlLogService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private DocTypeService docTypeService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastLogService wrkMastLogService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private MatService matService;
    @RequestMapping(value = "/orderLog/nav/list/auth")
    @ManagerAuth
    public R navList(@RequestParam(required = false) String orderNo){
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        if (!Cools.isEmpty(orderNo)) {
            wrapper.like("order_no", orderNo);
        }
        wrapper.le("settle", 2).eq("status", 1);
        wrapper.orderBy("create_time", false);
        List<OrderLog> orders = orderLogService.selectList(wrapper);
        // 保留出库单
        if (!Cools.isEmpty(orders)) {
            Iterator<OrderLog> iterator = orders.iterator();
            while (iterator.hasNext()) {
                OrderLog order = iterator.next();
                if (order.getDocType() != null) {
                    DocType docType = docTypeService.selectById(order.getDocType());
                    if (docType != null) {
                        if (docType.getPakout() == 0) {
                            iterator.remove();
                        }
                    }
                }
            }
        }
        return R.ok().add(orders);
    }
    @RequestMapping(value = "/orderLog/head/page/auth")
    @ManagerAuth
    public R head(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
            wrapper.orderBy("settle").orderBy("create_time", false);
        }
        wrapper.eq("status", 1);
        return R.ok(orderLogService.selectPage(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/orderLog/detl/all/auth")
    @ManagerAuth
    public R head(@RequestParam Long orderId){
        return R.ok().add(orderDetlLogService.selectList(new EntityWrapper<OrderDetlLog>().eq("order_id", orderId)));
    }
    @PostMapping(value = "/orderLog/wrk/trace/auth")
    @ManagerAuth
    public R orderWrkTrace(@RequestParam("orderId") Long orderId) {
        OrderLog order = orderLogService.selectById(orderId);
        if (null == order) {
            return R.error("单据不存在");
        }
        // 数量统计
        List<OrderDetlLog> orderDetls = orderDetlLogService.selectList(new EntityWrapper<OrderDetlLog>().eq("order_id", orderId));
        double totalQty = 0;
        double wrkQty = 0;
        double lackQty = 0;
        for (OrderDetlLog orderDetl : orderDetls) {
            totalQty = totalQty + orderDetl.getAnfme();
            wrkQty = wrkQty + orderDetl.getQty();
            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
            if (issued > 0.0) {
                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null);
                for (LocDetl locDetl : locDetls) {
                    if (issued > 0) {
                        issued = issued - locDetl.getAnfme();
                    } else {
                        break;
                    }
                }
            }
            if (issued > 0.0) {
                lackQty = lackQty + issued;
            }
        }
        // 任务追溯
        List<WrkTraceVo> wrkTraceVos = new ArrayList<>();
        List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNoGroupByMatnrOfSum(order.getOrderNo());
        for (WrkDetl wrkDetl : wrkDetls) {
            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()));
            if (wrkMast == null) {
                WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()));
                if (wrkMastLog != null) {
                    wrkMast = new WrkMast();
                    BeanUtils.copyProperties(wrkMastLog, wrkMast);
                } else {
                    continue;
                }
            }
            boolean exist = false;
            for (WrkTraceVo vo : wrkTraceVos) {
                if (vo.getWrkNo().equals(wrkMast.getWrkNo()) && vo.getIoTimeStr().equals(DateUtils.convert(wrkMast.getIoTime()))) {
                    vo.getWrkDetls().add(wrkDetl);
                    exist = true;
                }
            }
            if (!exist) {
                WrkTraceVo vo = new WrkTraceVo(wrkMast.getWrkNo(), DateUtils.convert(wrkMast.getIoTime()), wrkMast, wrkDetl);
                wrkTraceVos.add(vo);
            }
        }
        if (!Cools.isEmpty(wrkTraceVos) && wrkTraceVos.size() > 1) {
            wrkTraceVos.sort((o1, o2) -> (int) (o2.getWrkMast().getIoTime().getTime() - o1.getWrkMast().getIoTime().getTime()));
        }
        return R.ok().add(Cools
                .add("list", wrkTraceVos)
                .add("orderNo", order.getOrderNo())
                .add("totalQty", totalQty)
                .add("wrkQty", wrkQty)
                .add("lackQty", lackQty)
        );
    }
    // ------------------------------------------------------------------------------------------------
    @RequestMapping(value = "/orderLog/{id}/auth")
    @ManagerAuth
    public R get(@PathVariable("id") String id) {
        return R.ok(orderLogService.selectById(String.valueOf(id)));
    }
    @RequestMapping(value = "/orderLog/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 Map<String, Object> param){
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.ok(orderLogService.selectPage(new Page<>(curr, limit), wrapper));
    }
    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)){
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
            }
        }
    }
    @RequestMapping(value = "/orderLog/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        Map<String, Object> map = excludeTrash(param.getJSONObject("order"));
        convert(map, wrapper);
        List<OrderLog> list = orderLogService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
    }
    @RequestMapping(value = "/orderLogQuery/auth")
    @ManagerAuth
    public R query(String condition) {
        EntityWrapper<OrderLog> wrapper = new EntityWrapper<>();
        wrapper.like("id", condition);
        Page<OrderLog> page = orderLogService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (OrderLog order : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", order.getId());
            map.put("value", order.getOrderNo());
            result.add(map);
        }
        return R.ok(result);
    }
    @RequestMapping(value = "/orderLog/check/column/auth")
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
        Wrapper<OrderLog> wrapper = new EntityWrapper<OrderLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
        if (null != orderLogService.selectOne(wrapper)){
            return R.parse(BaseRes.REPEAT).add(getComment(Order.class, String.valueOf(param.get("key"))));
        }
        return R.ok();
    }
}
src/main/java/com/zy/asrs/entity/OrderDetlLog.java
New file
@@ -0,0 +1,476 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.OrderService;
import com.zy.common.utils.Synchro;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("man_order_detl_log")
public class OrderDetlLog implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 订单内码
     */
    @ApiModelProperty(value= "订单内码")
    @TableField("order_id")
    private Long orderId;
    /**
     * 单据编号
     */
    @ApiModelProperty(value= "单据编号")
    @TableField("order_no")
    private String orderNo;
    /**
     * 数量
     */
    @ApiModelProperty(value= "数量")
    private Double anfme;
    /**
     * 作业数量
     *
     *  1. 入库 : qty 👆
     *  1. 出库 : qty 👆
     */
    @ApiModelProperty(value= "作业数量")
    private Double qty;
    /**
     * 物料号
     */
    @ApiModelProperty(value= "物料号")
    private String matnr;
    /**
     * 物料号
     */
    @ApiModelProperty(value= "物料号")
    private String maktx;
    /**
     * 序列码
     */
    @ApiModelProperty(value= "序列码")
    private String batch;
    /**
     * 规格
     */
    @ApiModelProperty(value= "规格")
    private String specs;
    /**
     * 批次
     */
    @ApiModelProperty(value= "批次")
    private String model;
    /**
     * 颜色
     */
    @ApiModelProperty(value= "颜色")
    private String color;
    /**
     * 品牌
     */
    @ApiModelProperty(value= "品牌")
    private String brand;
    /**
     * 单位
     */
    @ApiModelProperty(value= "单位")
    private String unit;
    /**
     * 单价
     */
    @ApiModelProperty(value= "单价")
    private Double price;
    /**
     * sku
     */
    @ApiModelProperty(value= "sku")
    private String sku;
    /**
     * 包数
     */
    @ApiModelProperty(value= "包数")
    private Double units;
    /**
     * 条码
     */
    @ApiModelProperty(value= "条码")
    private String barcode;
    /**
     * 物料状态
     */
    @ApiModelProperty(value= "物料状态")
    private String origin;
    /**
     * 厂家
     */
    @ApiModelProperty(value= "厂家")
    private String manu;
    /**
     * 单据时间
     */
    @ApiModelProperty(value= "单据时间")
    @TableField("manu_date")
    private String manuDate;
    /**
     * 品项数
     */
    @ApiModelProperty(value= "品项数")
    @TableField("item_num")
    private String itemNum;
    /**
     * 安全库存量
     */
    @ApiModelProperty(value= "安全库存量")
    @TableField("safe_qty")
    private Double safeQty;
    /**
     * 重量
     */
    @ApiModelProperty(value= "重量")
    private Double weight;
    /**
     * 长度
     */
    @ApiModelProperty(value= "长度")
    private Double length;
    /**
     * 体积
     */
    @ApiModelProperty(value= "体积")
    private Double volume;
    /**
     * 三方编码
     */
    @ApiModelProperty(value= "三方编码")
    @TableField("three_code")
    private String threeCode;
    /**
     * 供应商
     */
    @ApiModelProperty(value= "供应商")
    private String supp;
    /**
     * 供应商编码
     */
    @ApiModelProperty(value= "供应商编码")
    @TableField("supp_code")
    private String suppCode;
    /**
     * 是否批次 1: 是  0: 否
     */
    @ApiModelProperty(value= "是否批次 1: 是  0: 否  ")
    @TableField("be_batch")
    private Integer beBatch;
    /**
     * 保质期
     */
    @ApiModelProperty(value= "保质期")
    @TableField("dead_time")
    private String deadTime;
    /**
     * 预警天数
     */
    @ApiModelProperty(value= "预警天数")
    @TableField("dead_warn")
    private Integer deadWarn;
    /**
     * 制购 1: 制造  2: 采购  3: 外协
     */
    @ApiModelProperty(value= "制购 1: 制造  2: 采购  3: 外协  ")
    private Integer source;
    /**
     * 要求检验 1: 是  0: 否
     */
    @ApiModelProperty(value= "要求检验 1: 是  0: 否  ")
    private Integer inspect;
    /**
     * 危险品 1: 是  0: 否
     */
    @ApiModelProperty(value= "危险品 1: 是  0: 否  ")
    private Integer danger;
    /**
     * 状态 1: 正常  0: 禁用
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ")
    private Integer status;
    /**
     * 添加人员
     */
    @ApiModelProperty(value= "添加人员")
    @TableField("create_by")
    private Long createBy;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    @TableField("update_by")
    private Long updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 工序状态
     */
    @ApiModelProperty(value= "工序状态 1:待加工,2:已加工,3:无需加工")
    @TableField("process_sts")
    private Integer processSts;
    public OrderDetlLog() {}
    public OrderDetlLog(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo,Integer processSts) {
        this.orderId = orderId;
        this.orderNo = orderNo;
        this.anfme = anfme;
        this.qty = qty;
        this.matnr = matnr;
        this.maktx = maktx;
        this.batch = batch;
        this.specs = specs;
        this.model = model;
        this.color = color;
        this.brand = brand;
        this.unit = unit;
        this.price = price;
        this.sku = sku;
        this.units = units;
        this.barcode = barcode;
        this.origin = origin;
        this.manu = manu;
        this.manuDate = manuDate;
        this.itemNum = itemNum;
        this.safeQty = safeQty;
        this.weight = weight;
        this.length = length;
        this.volume = volume;
        this.threeCode = threeCode;
        this.supp = supp;
        this.suppCode = suppCode;
        this.beBatch = beBatch;
        this.deadTime = deadTime;
        this.deadWarn = deadWarn;
        this.source = source;
        this.inspect = inspect;
        this.danger = danger;
        this.status = status;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
        this.processSts = processSts;
    }
    public String getOrderId$(){
        OrderService service = SpringUtils.getBean(OrderService.class);
        Order order = service.selectById(this.orderId);
        if (!Cools.isEmpty(order)){
            return String.valueOf(order.getId());
        }
        return null;
    }
    public String getProcessSts$(){
        if (null == this.processSts){ return null; }
        switch (this.processSts){
            case 0:
                return "其他";
            case 1:
                return "待加工";
            case 2:
                return "已加工";
            case 3:
                return "无需加工";
            default:
                return String.valueOf(this.processSts);
        }
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.beBatch);
        }
    }
    public String getSource$(){
        if (null == this.source){ return null; }
        switch (this.source){
            case 1:
                return "制造";
            case 2:
                return "采购";
            case 3:
                return "外协";
            default:
                return String.valueOf(this.source);
        }
    }
    public String getInspect$(){
        if (null == this.inspect){ return null; }
        switch (this.inspect){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.inspect);
        }
    }
    public String getDanger$(){
        if (null == this.danger){ return null; }
        switch (this.danger){
            case 1:
                return "是";
            case 0:
                return "否";
            default:
                return String.valueOf(this.danger);
        }
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public Double getEnableQty() {
        Double enableQty = null;
        if (null != this.anfme && this.qty != null) {
            enableQty = this.anfme - this.qty;
            if (enableQty < 0) {
                enableQty = 0.0D;
            }
//            return this.anfme - this.qty;
        }
        return enableQty;
    }
    public void sync(Object source) {
        Synchro.Copy(source, this);
    }
}
src/main/java/com/zy/asrs/entity/OrderLog.java
New file
@@ -0,0 +1,453 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderSettleService;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("man_order_log")
public class OrderLog implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 编号
     */
    @ApiModelProperty(value= "编号")
    private String uuid;
    /**
     * 订单编号
     */
    @ApiModelProperty(value= "订单编号")
    @TableField("order_no")
    private String orderNo;
    /**
     * 单据日期
     */
    @ApiModelProperty(value= "单据日期")
    @TableField("order_time")
    private String orderTime;
    /**
     * 单据类型
     */
    @ApiModelProperty(value= "单据类型")
    @TableField("doc_type")
    private Long docType;
    /**
     * 项目编号
     */
    @ApiModelProperty(value= "项目编号")
    @TableField("item_id")
    private Long itemId;
    @ApiModelProperty(value= "")
    @TableField("item_name")
    private String itemName;
    /**
     * 调拨项目编号
     */
    @ApiModelProperty(value= "调拨项目编号")
    @TableField("allot_item_id")
    private Long allotItemId;
    /**
     * 初始票据号
     */
    @ApiModelProperty(value= "初始票据号")
    @TableField("def_number")
    private String defNumber;
    /**
     * 票据号
     */
    @ApiModelProperty(value= "票据号")
    private String number;
    /**
     * 客户编号
     */
    @ApiModelProperty(value= "客户编号")
    private Long cstmr;
    /**
     * 客户
     */
    @ApiModelProperty(value= "客户")
    @TableField("cstmr_name")
    private String cstmrName;
    /**
     * 联系方式
     */
    @ApiModelProperty(value= "联系方式")
    private String tel;
    /**
     * 操作人员
     */
    @ApiModelProperty(value= "操作人员")
    @TableField("oper_memb")
    private String operMemb;
    /**
     * 合计金额
     */
    @ApiModelProperty(value= "合计金额")
    @TableField("total_fee")
    private Double totalFee;
    /**
     * 优惠率
     */
    @ApiModelProperty(value= "优惠率")
    private Double discount;
    /**
     * 优惠金额
     */
    @ApiModelProperty(value= "优惠金额")
    @TableField("discount_fee")
    private Double discountFee;
    /**
     * 销售或采购费用合计
     */
    @ApiModelProperty(value= "销售或采购费用合计")
    @TableField("other_fee")
    private Double otherFee;
    /**
     * 实付金额
     */
    @ApiModelProperty(value= "实付金额")
    @TableField("act_fee")
    private Double actFee;
    /**
     * 付款类型 1: 现金  2: 记账
     */
    @ApiModelProperty(value= "付款类型 1: 现金  2: 记账  ")
    @TableField("pay_type")
    private Integer payType;
    /**
     * 业务员
     */
    @ApiModelProperty(value= "业务员")
    private String salesman;
    /**
     * setMemo
     */
    @ApiModelProperty(value= "结算天数")
    @TableField("account_day")
    private Integer accountDay;
    /**
     * 邮费支付类型 1: 在线支付  2: 货到付款
     */
    @ApiModelProperty(value= "邮费支付类型 1: 在线支付  2: 货到付款  ")
    @TableField("post_fee_type")
    private Integer postFeeType;
    /**
     * 邮费
     */
    @ApiModelProperty(value= "邮费")
    @TableField("post_fee")
    private Double postFee;
    /**
     * 付款时间
     */
    @ApiModelProperty(value= "付款时间")
    @TableField("pay_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    /**
     * 发货时间
     */
    @ApiModelProperty(value= "发货时间")
    @TableField("send_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date sendTime;
    /**
     * 物流名称
     */
    @ApiModelProperty(value= "物流名称")
    @TableField("ship_name")
    private String shipName;
    /**
     * 物流单号
     */
    @ApiModelProperty(value= "物流单号")
    @TableField("ship_code")
    private String shipCode;
    /**
     * 订单状态
     */
    @ApiModelProperty(value= "订单状态")
    private Long settle;
    /**
     * 状态 1: 正常  0: 禁用
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ")
    private Integer status;
    /**
     * 添加人员
     */
    @ApiModelProperty(value= "添加人员")
    @TableField("create_by")
    private Long createBy;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    @TableField("update_by")
    private Long updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value= "erp仓库编码")
    @TableField("plt_type")
    private Integer pltType;
    /**
     * 入库日期
     */
    @ApiModelProperty(value= "入库日期")
    @TableField("in_time")
    private String InTime;
    @TableField("Upstreamcode")
    private String Upstreamcode;
    public OrderLog() {}
    public OrderLog(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;
        this.docType = docType;
        this.itemId = itemId;
        this.itemName = itemName;
        this.allotItemId = allotItemId;
        this.defNumber = defNumber;
        this.number = number;
        this.cstmr = cstmr;
        this.cstmrName = cstmrName;
        this.tel = tel;
        this.operMemb = operMemb;
        this.totalFee = totalFee;
        this.discount = discount;
        this.discountFee = discountFee;
        this.otherFee = otherFee;
        this.actFee = actFee;
        this.payType = payType;
        this.salesman = salesman;
        this.accountDay = accountDay;
        this.postFeeType = postFeeType;
        this.postFee = postFee;
        this.payTime = payTime;
        this.sendTime = sendTime;
        this.shipName = shipName;
        this.shipCode = shipCode;
        this.settle = settle;
        this.status = status;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
    }
//    Order order = new Order(
//            null,    // 编号[非空]
//            null,    // 订单编号
//            null,    // 单据日期
//            null,    // 单据类型
//            null,    // 项目编号
//            null,    //
//            null,    // 调拨项目编号
//            null,    // 初始票据号
//            null,    // 票据号
//            null,    // 客户编号
//            null,    // 客户
//            null,    // 联系方式
//            null,    // 操作人员
//            null,    // 合计金额
//            null,    // 优惠率
//            null,    // 优惠金额
//            null,    // 销售或采购费用合计
//            null,    // 实付金额
//            null,    // 付款类型
//            null,    // 业务员
//            null,    // 结算天数
//            null,    // 邮费支付类型
//            null,    // 邮费
//            null,    // 付款时间
//            null,    // 发货时间
//            null,    // 物流名称
//            null,    // 物流单号
//            null,    // 订单状态
//            null,    // 状态
//            null,    // 添加人员
//            null,    // 添加时间
//            null,    // 修改人员
//            null,    // 修改时间
//            null    // 备注
//    );
    public String getDocType$(){
        DocTypeService service = SpringUtils.getBean(DocTypeService.class);
        DocType docType = service.selectById(this.docType);
        if (!Cools.isEmpty(docType)){
            return String.valueOf(docType.getDocName());
        }
        return null;
    }
    public String getPayType$(){
        if (null == this.payType){ return null; }
        switch (this.payType){
            case 1:
                return "现金";
            case 2:
                return "记账";
            default:
                return String.valueOf(this.payType);
        }
    }
    public String getPostFeeType$(){
        if (null == this.postFeeType){ return null; }
        switch (this.postFeeType){
            case 1:
                return "在线支付";
            case 2:
                return "货到付款";
            default:
                return String.valueOf(this.postFeeType);
        }
    }
    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)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime);
    }
    public String getSettle$(){
        OrderSettleService service = SpringUtils.getBean(OrderSettleService.class);
        OrderSettle orderSettle = service.selectById(this.settle);
        if (!Cools.isEmpty(orderSettle)){
            return String.valueOf(orderSettle.getSettleName());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "禁用";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    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/mapper/OrderDetlLogMapper.java
New file
@@ -0,0 +1,16 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.OrderDetlLog;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface OrderDetlLogMapper extends BaseMapper<OrderDetlLog> {
    @Insert("insert into man_order_detl_log select * from man_order_detl where order_no=#{orderNo}")
    int save(String orderNo);
}
src/main/java/com/zy/asrs/mapper/OrderLogMapper.java
New file
@@ -0,0 +1,14 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.OrderLog;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface OrderLogMapper extends BaseMapper<OrderLog> {
    @Insert("insert into man_order_log select * from man_order where order_no=#{orderNo}")
    int save(String orderNo);
}
src/main/java/com/zy/asrs/service/OrderDetlLogService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.OrderDetlLog;
public interface OrderDetlLogService extends IService<OrderDetlLog> {
    boolean save(String orderNo);
}
src/main/java/com/zy/asrs/service/OrderLogService.java
New file
@@ -0,0 +1,8 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.OrderLog;
public interface OrderLogService extends IService<OrderLog> {
    boolean save(String orderNo);
}
src/main/java/com/zy/asrs/service/impl/OrderDetlLogServiceImpl.java
New file
@@ -0,0 +1,18 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.OrderDetlLog;
import com.zy.asrs.mapper.OrderDetlLogMapper;
import com.zy.asrs.service.OrderDetlLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("orderDetlLogService")
public class OrderDetlLogServiceImpl extends ServiceImpl<OrderDetlLogMapper, OrderDetlLog> implements OrderDetlLogService {
    @Override
    public boolean save(String orderNo) {
        return this.baseMapper.save(orderNo)>0;
    }
}
src/main/java/com/zy/asrs/service/impl/OrderLogServiceImpl.java
New file
@@ -0,0 +1,18 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.OrderLog;
import com.zy.asrs.mapper.OrderLogMapper;
import com.zy.asrs.service.OrderLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("orderLogService")
public class OrderLogServiceImpl extends ServiceImpl<OrderLogMapper, OrderLog> implements OrderLogService {
    @Override
    public boolean save(String orderNo) {
        return this.baseMapper.save(orderNo) > 0;
    }
}