自动化立体仓库 - WMS系统
cl
昨天 c664c49f8e211b7b791a5ff1e63cda53c1b1264e
#
明细历史优化+打印
2个文件已添加
4个文件已修改
267 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/WrkDetlLog.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkArchiveToLogService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -281,6 +281,59 @@
    @ApiModelProperty(value= "到期日期")
    @TableField("deadline")
    private Date deadline;
    public WrkDetlLog() {
    }
    /** 从现档明细拷贝到历史档 */
    public WrkDetlLog(WrkDetl wrkDetl) {
        if (wrkDetl == null) {
            return;
        }
        this.wrkNo = wrkDetl.getWrkNo();
        this.ioTime = wrkDetl.getIoTime();
        this.anfme = wrkDetl.getAnfme();
        this.stock = wrkDetl.getStock();
        this.zpallet = wrkDetl.getZpallet();
        this.matnr = wrkDetl.getMatnr();
        this.maktx = wrkDetl.getMaktx();
        this.batch = wrkDetl.getBatch();
        this.orderNo = wrkDetl.getOrderNo();
        this.specs = wrkDetl.getSpecs();
        this.model = wrkDetl.getModel();
        this.color = wrkDetl.getColor();
        this.brand = wrkDetl.getBrand();
        this.unit = wrkDetl.getUnit();
        this.price = wrkDetl.getPrice();
        this.sku = wrkDetl.getSku();
        this.units = wrkDetl.getUnits();
        this.barcode = wrkDetl.getBarcode();
        this.origin = wrkDetl.getOrigin();
        this.manu = wrkDetl.getManu();
        this.manuDate = wrkDetl.getManuDate();
        this.itemNum = wrkDetl.getItemNum();
        this.safeQty = wrkDetl.getSafeQty();
        this.weight = wrkDetl.getWeight();
        this.length = wrkDetl.getLength();
        this.volume = wrkDetl.getVolume();
        this.threeCode = wrkDetl.getThreeCode();
        this.supp = wrkDetl.getSupp();
        this.suppCode = wrkDetl.getSuppCode();
        this.beBatch = wrkDetl.getBeBatch();
        this.deadTime = wrkDetl.getDeadTime();
        this.deadWarn = wrkDetl.getDeadWarn();
        this.source = wrkDetl.getSource();
        this.inspect = wrkDetl.getInspect();
        this.danger = wrkDetl.getDanger();
        this.modiUser = wrkDetl.getModiUser();
        this.modiTime = wrkDetl.getModiTime();
        this.appeUser = wrkDetl.getAppeUser();
        this.appeTime = wrkDetl.getAppeTime();
        this.memo = wrkDetl.getMemo();
        this.proddate = wrkDetl.getProddate();
        this.deadline = wrkDetl.getDeadline();
    }
    public String getProddate$(){
        if (Cools.isEmpty(this.proddate)){
            return "";
@@ -382,6 +435,5 @@
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
}
src/main/java/com/zy/asrs/service/WrkArchiveToLogService.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.WrkMast;
/**
 * 工作主档、明细转历史档并删现档
 */
public interface WrkArchiveToLogService {
    void archiveMastAndDetlToLogThenDeleteCurrent(WrkMast wrkMast);
}
src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java
New file
@@ -0,0 +1,94 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkDetlLog;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.WrkMastLog;
import com.zy.asrs.mapper.WrkDetlLogMapper;
import com.zy.asrs.mapper.WrkDetlMapper;
import com.zy.asrs.mapper.WrkMastLogMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.WrkArchiveToLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.MessageFormat;
import java.util.List;
@Slf4j
@Service("wrkArchiveToLog")
public class WrkArchiveToLogServiceImpl implements WrkArchiveToLogService {
    @Autowired
    private WrkMastLogMapper wrkMastLogMapper;
    @Autowired
    private WrkDetlLogMapper wrkDetlLogMapper;
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private WrkDetlMapper wrkDetlMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void archiveMastAndDetlToLogThenDeleteCurrent(WrkMast wrkMast) {
        boolean printLog = !Cools.isEmpty(wrkMast)
                && Long.valueOf(30L).equals(wrkMast.getWrkSts())
                && "Y".equalsIgnoreCase(wrkMast.getFullPlt());
        Integer wrkNo = wrkMast.getWrkNo();
        boolean wrkMastLogSaved = wrkMastLogMapper.save(wrkNo) > 0;
        if (!wrkMastLogSaved) {
            log.error(MessageFormat.format("保存工作历史档[workNo={0}]失败", wrkNo));
        }
        int num = 0;
        List<WrkDetl> detls = wrkDetlMapper.selectByWrkNo(wrkNo);
        for (WrkDetl d : detls) {
            WrkDetlLog detlLog = new WrkDetlLog(d);
            num += wrkDetlLogMapper.insert(detlLog);
        }
        boolean wrkDetlLogSaved = num > 0;
//        boolean wrkDetlLogSaved = wrkDetlLogMapper.save(wrkNo) > 0;
        if (!wrkDetlLogSaved) {
            log.error(MessageFormat.format("保存工作明细历史档[workNo={0}]失败", wrkNo));
        }
        EntityWrapper<WrkMastLog> mastLogW = new EntityWrapper<>();
        mastLogW.eq("wrk_no", wrkNo);
        mastLogW.eq("io_time", wrkMast.getIoTime());
        int mastCount = wrkMastLogMapper.selectCount(mastLogW);
        EntityWrapper<WrkDetlLog> detlLogW = new EntityWrapper<>();
        detlLogW.eq("wrk_no", wrkNo);
        detlLogW.eq("io_time", wrkMast.getIoTime());
        int detlCount = wrkDetlLogMapper.selectCount(detlLogW);
        boolean wrkMastDeleted =false;
        boolean wrkDetlDeleted =false;
        if (mastCount > 0 && detlCount > 0) {
             wrkMastDeleted = wrkMastMapper.deleteById(wrkNo) > 0;
            if (!wrkMastDeleted) {
                log.error(MessageFormat.format("删除工作主档[workNo={0}]失败", wrkNo));
            }
             wrkDetlDeleted = wrkDetlMapper.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)) > 0;
            if (!wrkDetlDeleted) {
                log.error(MessageFormat.format("删除工作明细档[workNo={0}]失败", wrkNo));
            }
        }
        if (printLog) {
            JSONObject detlJson = new JSONObject(true);
            detlJson.put("service", "WrkArchiveToLogService");
            detlJson.put("wrkNo", wrkNo);
            detlJson.put("wrkDetls", JSON.toJSON(detls));
            detlJson.put("wrkMast", (JSONObject) JSON.toJSON(wrkMast));
            detlJson.put("wrkMastDeleted", wrkMastDeleted);
            detlJson.put("wrkDetlDeleted", wrkDetlDeleted);
            log.info(detlJson.toJSONString());
        }
    }
}
src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java
@@ -1,16 +1,46 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.WrkDetlLogMapper;
import com.zy.asrs.entity.WrkDetlLog;
import com.zy.asrs.service.WrkDetlLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkDetlLog;
import com.zy.asrs.mapper.WrkDetlLogMapper;
import com.zy.asrs.service.WrkDetlLogService;
import com.zy.asrs.service.WrkDetlService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service("wrkDetlLogService")
public class WrkDetlLogServiceImpl extends ServiceImpl<WrkDetlLogMapper, WrkDetlLog> implements WrkDetlLogService {
    @Resource
    private WrkDetlLogMapper wrkDetlLogMapper;
    @Resource
    private WrkDetlService wrkDetlService;
    @Override
    @Transactional
    public boolean save(Integer workNo) {
        return this.baseMapper.save(workNo)>0;
        List<WrkDetl> detls = wrkDetlService.selectByWrkNo(workNo);
        if (Cools.isEmpty(detls)) {
            return false;
        }
        Integer num = 0;
        try {
            for (WrkDetl d : detls) {
                WrkDetlLog detlLog = new WrkDetlLog(d);
                num += wrkDetlLogMapper.insert(detlLog);
            }
            return num > 0;
        } catch (Exception e) {
            System.out.println("转明细失败");
            e.printStackTrace();
            return false;
        }
//        return wrkDetlLogMapper.save(workNo) > 0;
    }
}
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
@@ -291,7 +291,7 @@
            WrkDetl wrkDetl = new WrkDetl();
            BeanUtils.copyProperties(locDetl,wrkDetl);
            wrkDetl.setZpallet(wrkMast.getBarcode());
            wrkDetl.setIoTime(now);
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            //wrkDetl.setBatch(locDetl.getBatch());
            wrkDetl.setOrderNo(orderNo);
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -29,13 +29,15 @@
public class WorkLogHandler extends AbstractHandler<String> {
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastLogService wrkMastLogService;
    private WrkArchiveToLogService wrkArchiveToLogService;
//    @Autowired
//    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private WrkDetlLogService wrkDetlLogService;
//    @Autowired
//    private WrkMastLogService wrkMastLogService;
//    @Autowired
//    private WrkDetlLogService wrkDetlLogService;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
@@ -100,23 +102,48 @@
                    }
                }
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
            }
            // 删除工作主档
            if (!wrkMastService.deleteById(wrkMast)) {
                exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo());
            }
            // 保存工作明细档历史档
            if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
            wrkArchiveToLogService.archiveMastAndDetlToLogThenDeleteCurrent(wrkMast);
//            boolean printFullPltOutLog = !Cools.isEmpty(wrkMast)
//                    && Long.valueOf(30L).equals(wrkMast.getWrkSts())
//                    && "Y".equalsIgnoreCase(wrkMast.getFullPlt());
//            // 保存工作主档历史档
//            boolean wrkMastLogSaved = wrkMastLogService.save(wrkMast.getWrkNo());
//            if (printFullPltOutLog) {
//                System.out.println("[WorkLogHandler] save wrkMastLog, wrkNo=" + wrkMast.getWrkNo()
//                        + ", result=" + wrkMastLogSaved);
//            }
//            if (!wrkMastLogSaved) {
//                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
//            }
//
//            // 保存工作明细历史档
//            boolean wrkDetlLogSaved = wrkDetlLogService.save(wrkMast.getWrkNo());
//            if (printFullPltOutLog) {
//                System.out.println("[WorkLogHandler] save wrkDetlLog, wrkNo=" + wrkMast.getWrkNo()
//                        + ", result=" + wrkDetlLogSaved);
//            }
//            if (!wrkDetlLogSaved) {
//                exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
            }
            // 删除工作明细档
            if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
//            }
//            // 删除工作主档
//            boolean wrkMastDeleted = wrkMastService.deleteById(wrkMast);
//            if (printFullPltOutLog) {
//                System.out.println("[WorkLogHandler] delete wrkMast, wrkNo=" + wrkMast.getWrkNo()
//                        + ", result=" + wrkMastDeleted);
//            }
//            if (!wrkMastDeleted) {
//                exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo());
//            }
//
//            // 删除工作明细档
//            boolean wrkDetlDeleted = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
//            if (printFullPltOutLog) {
//                System.out.println("[WorkLogHandler] delete wrkDetl, wrkNo=" + wrkMast.getWrkNo()
//                        + ", result=" + wrkDetlDeleted);
//            }
//            if (!wrkDetlDeleted) {
//                exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo());
            }
//            }
            // 修改订单状态 作业中 ===>> 已完成
            for (WrkDetl wrkDetl : wrkDetlsKeyOrder) {
                if (!BaseController.isJSON(wrkDetl.getOrderNo())) {