src/main/java/com/zy/asrs/entity/OrderDetlGift.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/StockOutParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/result/OrderGiftProofreadingVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WorkService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/OrderGiftProofreadingExcelListener.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/entity/OrderGiftProofreadingExcel.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/LocDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/orderGift/orderGift.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/orderGift/orderGift.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/OrderDetlGift.java
@@ -8,6 +8,7 @@ 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; @@ -484,5 +485,8 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } public void sync(Object source) { Synchro.Copy(source, this); } } src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -53,6 +53,8 @@ // 木箱中铜箔数量 private Double count; private Double volume; private Double price; private String color; public void setAnfme(Double anfme){ src/main/java/com/zy/asrs/entity/result/OrderGiftProofreadingVo.java
@@ -18,18 +18,20 @@ @ExcelProperty(value = "卷号") private String model=""; @ExcelProperty(value = "长度") private String price=""; private Double price; @ExcelProperty(value = "净重") private String weight=""; private Double weight; @ExcelProperty(value = "毛重") private String volume=""; private Double volume; @ExcelProperty(value = "接头") private String specs; @ExcelProperty(value = "备注") private String memo=""; public OrderGiftProofreadingVo() { } public OrderGiftProofreadingVo(String orderNo, String matnr, String batch, String model, String price, String weight, String volume, String memo) { public OrderGiftProofreadingVo(String orderNo, String matnr, String batch, String model, Double price, Double weight, Double volume, String memo) { this.orderNo = orderNo; this.matnr = matnr; this.batch = batch; src/main/java/com/zy/asrs/service/WorkService.java
@@ -31,6 +31,7 @@ * 出库作业 */ void startupFullTakeStoreOrder(StockOutParam param, Long userId); void startupFullTakeStoreOrderGift(StockOutParam param, Long userId); /** * 出库作业 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -80,6 +80,10 @@ private SlaveProperties slaveProperties; @Autowired private WaitPakinService waitPakinService; @Autowired private OrderGiftService orderGiftService; @Autowired private OrderDetlGiftService orderDetlGiftService; @Override @Transactional @@ -286,6 +290,105 @@ } @Override @Transactional public void startupFullTakeStoreOrderGift(StockOutParam param, Long userId) { if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){ throw new CoolException("参数为空"); } if (Cools.isEmpty(param.getOrderNo())){ throw new CoolException("订单号参数为空"); } DocType docType = docTypeService.selectOrAdd("手动出库单", Boolean.FALSE); OrderGift order = orderGiftService.selectByNo(param.getOrderNo()); if (Cools.isEmpty(order)){ Date now = new Date(); order = new OrderGift( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] param.getOrderNo(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 null, // null, // 调拨项目编号 null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 null, // 联系方式 null, // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 null, // 销售或采购费用合计 null, // 实付金额 null, // 付款类型 null, // 业务员 null, // 结算天数 null, // 邮费支付类型 null, // 邮费 null, // 付款时间 null, // 发货时间 null, // 物流名称 null, // 物流单号 // 2L, // 订单状态 1L, // 订单状态 1, // 状态 userId, // 添加人员 now, // 添加时间 userId, // 修改人员 now, // 修改时间 null // 备注 ); if (!orderGiftService.insert(order)) { throw new CoolException("保存订单主档失败"); } // 单据明细档 List<DetlDto> list = new ArrayList<>(); List<StockOutParam.LocDetl> locDetls = param.getLocDetls(); int i=0; for (StockOutParam.LocDetl locDetl : locDetls) { i++; Mat mat = matService.selectByMatnr(locDetl.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(locDetl.getMatnr() + "物料编码检索失败,请先添加商品"); } OrderDetlGift orderDetl = new OrderDetlGift(); orderDetl.sync(mat); orderDetl.setSuppCode(String.valueOf(i)); // 行号 orderDetl.setManu(locDetl.getLocNo()); //库位号 orderDetl.setBatch(locDetl.getBatch()); //木箱编码 orderDetl.setAnfme(locDetl.getAnfme());//出库数量 orderDetl.setModel(locDetl.getModel());//批次 orderDetl.setSpecs(locDetl.getSpecs());//规格 orderDetl.setBrand(locDetl.getBrand());//木箱类型 orderDetl.setBarcode(locDetl.getZpallet());//木箱类型 orderDetl.setWeight(locDetl.getWeight()); orderDetl.setVolume(locDetl.getVolume()); orderDetl.setPrice(locDetl.getPrice()); // orderDetl.setWorkQty(locDetl.getAnfme()); orderDetl.setWorkQty(0.0); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setOrigin(locDetl.getOrigin()); orderDetl.setCreateBy(userId); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(userId); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); orderDetl.setMemo(locDetl.getMemo()); if (!orderDetlGiftService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } } else { throw new CoolException("订单号重复,订单"+param.getOrderNo()+"已存在!!!"); } } @Override @Transactional src/main/java/com/zy/asrs/utils/OrderGiftProofreadingExcelListener.java
@@ -4,19 +4,21 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SpringUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.LocDetlService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WorkService; import com.zy.common.entity.OutLocBoxExcel; import com.zy.common.entity.OrderGiftProofreadingExcel; import com.zy.common.model.DetlDto; import com.zy.common.model.LocDto; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -24,13 +26,12 @@ * Created by vincent on 2019-11-25 */ @Slf4j public class OrderGiftProofreadingExcelListener extends AnalysisEventListener<OutLocBoxExcel> { public class OrderGiftProofreadingExcelListener extends AnalysisEventListener<OrderGiftProofreadingExcel> { private int total = 0; private String orderOneNo = null; private String cstmrName = null; private Long userId; List<String[]> OutLocBoxCs = new ArrayList<>(); List<OrderGiftProofreadingExcel> OrderGiftProofreadingCs = new ArrayList<>(); public OrderGiftProofreadingExcelListener() { } @@ -44,7 +45,7 @@ */ private static final int BATCH_COUNT = 50; private final List<OutLocBoxExcel> list = new ArrayList<>(); private final List<OrderGiftProofreadingExcel> list = new ArrayList<>(); /** * 这里会一行行的返回头 @@ -57,11 +58,7 @@ * 这个每一条数据解析都会来调用 */ @Override public void invoke(OutLocBoxExcel excel, AnalysisContext ctx) { String batch = excel.getBatch(); String orderNo = excel.getOrderNo(); // String cstmrName = excel.getCstmrName(); String memo = excel.getMemo(); public void invoke(OrderGiftProofreadingExcel excel, AnalysisContext ctx) { if (Cools.isEmpty(orderOneNo)){ if (!Cools.isEmpty(excel.getOrderNo())){ orderOneNo = excel.getOrderNo(); @@ -69,19 +66,7 @@ throw new CoolException("订单号参数为空"); } } if (Cools.isEmpty(cstmrName)){ if (!Cools.isEmpty(excel.getCstmrName())){ cstmrName = excel.getCstmrName(); } else { throw new CoolException("客户名称参数为空"); } } String[] s=new String[4]; s[0] = batch; s[1] = orderOneNo; s[2] = cstmrName; s[3] = memo; OutLocBoxCs.add(s); OrderGiftProofreadingCs.add(excel); total++; } @@ -91,53 +76,11 @@ */ @Override public void doAfterAllAnalysed(AnalysisContext ctx) { if (!Cools.isEmpty(OutLocBoxCs) && OutLocBoxCs.size() != 0) { LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class); LocMastService locMastService = SpringUtils.getBean(LocMastService.class); if (!Cools.isEmpty(OrderGiftProofreadingCs) && !OrderGiftProofreadingCs.isEmpty()) { WorkService workService = SpringUtils.getBean(WorkService.class); List<LocDto> locDtos = new ArrayList<>(); List<String[]> outLocBoxCList = new ArrayList<>(); List<String> outLocBoxCNew = new ArrayList<>(); for (String[] outLocBoxC:OutLocBoxCs){ total--; if (!outLocBoxCNew.contains(outLocBoxC[0])){ LocDetl locDetlSou = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", outLocBoxC[0])); if (Cools.isEmpty(locDetlSou)){ throw new CoolException("箱号:"+outLocBoxC[0]+" 未查询到数据!!!"); } LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlSou.getLocNo())); if (Cools.isEmpty(locMast)){ throw new CoolException("箱号:"+outLocBoxC[0]+" 所在库位不满足出库条件!!!未查询到此箱号所在库位"); } if (!locMast.getLocSts().equals("F")){ throw new CoolException("箱号:"+outLocBoxC[0]+" 所在库位不满足出库条件!!!库位状态不为F!!!库位状态:"+locMast.getLocSts$()); } List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() .eq("loc_no", locDetlSou.getLocNo()).eq("origin", locDetlSou.getOrigin())); for (LocDetl locDetl:locDetls){ total++; String[] locDetlNow=new String[4]; locDetlNow[0] = locDetl.getBatch(); locDetlNow[1] = outLocBoxC[1]; locDetlNow[2] = outLocBoxC[2]; locDetlNow[3] = outLocBoxC[3]; outLocBoxCList.add(locDetlNow); outLocBoxCNew.add(outLocBoxC[0]); } } } for (String[] outLocBoxC:outLocBoxCList){ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", outLocBoxC[0])); if (Cools.isEmpty(locDetl)){ total--; continue; } // LocDto locDto = new LocDto(locDetl.getManu(), locDetl.getMatnr(), locDetl.getMaktx(),locDetl.getModel(),locDetl.getSpecs(), // locDetl.getBatch(),locDetl.getBrand(),locDetl.getBarcode(), outLocBoxC[1],locDetl.getAnfme()); // locDto.setOrigin(locDetl.getOrigin()); // locDto.setWeight(locDetl.getWeight()); locDetl.setMemo(outLocBoxC[3]); LocDto locDto = new LocDto(locDetl); for (OrderGiftProofreadingExcel orderGiftProofreadingExcel:OrderGiftProofreadingCs){ LocDto locDto = new LocDto(orderGiftProofreadingExcel); locDtos.add(locDto); } @@ -164,20 +107,18 @@ locDetl.setOrigin(locDto.getOrigin()); locDetl.setWeight(locDto.getWeight()); locDetl.setMemo(locDto.getMemo()); locDetl.setVolume(locDto.getVolume()); locDetl.setPrice(locDto.getPrice()); locDetls.add(locDetl); } param.setLocDetls(locDetls); param.setOrderNo(orderOneNo); param.setCstmrName(cstmrName); if (total>0){ workService.startupFullTakeStoreOrder(param,9999L); workService.startupFullTakeStoreOrderGift(param,9999L); } } log.info("出库{}条箱号!", total); log.info("导入{}条核对单据明细!", total); } public int getTotal() { src/main/java/com/zy/common/entity/OrderGiftProofreadingExcel.java
@@ -18,9 +18,10 @@ private String matnr; private String batch; private String model; private String price; private String weight; private String volume; private Double price; private Double weight; private Double volume; private String specs; private String memo; } src/main/java/com/zy/common/model/LocDto.java
@@ -2,6 +2,7 @@ import com.core.common.Cools; import com.zy.asrs.entity.LocDetl; import com.zy.common.entity.OrderGiftProofreadingExcel; import lombok.Data; import java.util.List; @@ -51,6 +52,18 @@ public LocDto() { } public LocDto(OrderGiftProofreadingExcel excel) { this.matnr = excel.getMatnr(); this.model = excel.getModel(); this.orderNo = excel.getOrderNo(); this.batch = excel.getBatch(); this.memo = excel.getMemo(); this.weight = excel.getWeight(); this.volume = excel.getVolume(); this.price = excel.getPrice(); this.specs = excel.getSpecs(); } public LocDto(String locNo, String matnr, String batch, Double anfme) { this.locNo = locNo; this.matnr = matnr; src/main/webapp/static/js/orderGift/orderGift.js
@@ -1,5 +1,6 @@ var insTbCount = 0; var tableCache2 = []; var admin; layui.config({ base: baseUrl + "/static/layui/lay/modules/" }).extend({ @@ -11,7 +12,7 @@ var table = layui.table; var util = layui.util; var upload = layui.upload; var admin = layui.admin; admin = layui.admin; var xmSelect = layui.xmSelect; var layDate = layui.laydate; var laytpl = layui.laytpl; @@ -891,7 +892,6 @@ // excel导入 function importExcel() { console.log("导入") $("#importExcel").trigger("click"); } function upload(obj){ src/main/webapp/views/orderGift/orderGift.html
@@ -90,6 +90,7 @@ <table id="order" lay-filter="order"></table> </div> </div> <span style="display: none"><input id="importExcel" type="file" onchange="upload(this)">启动出库</span> <div class="layui-card"> <div class="layui-card-body"> <!-- 入库通知单:由ERP提供单据编号、类型、单据时间及物料明细,生成入库作业单,为维护系统高可用,用户可自行添加入库通知单数据,完成独立的入库作业。--> @@ -98,7 +99,6 @@ </div> </div> </div> <div id="myModal" style="display: none"> <div style="padding: 10px"> <div class="layui-upload">