| src/main/java/com/zy/asrs/controller/LocDetlController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/static/js/locDetl/locDetl.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/views/locDetl/locDetl.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -9,14 +9,10 @@ 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.LocDetl; import com.zy.asrs.entity.ManLocDetl; import com.zy.asrs.entity.Mat; import com.core.common.*; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderInspectionRollParam; import com.zy.asrs.entity.param.OrderMesXGHYParam; import com.zy.asrs.entity.param.QualityGroupListParam; import com.zy.asrs.entity.result.OrderPakoutDetailVo; import com.zy.asrs.mapper.LocDetlMapper; @@ -47,11 +43,18 @@ private MatService matService; @Autowired private ApiLogService apiLogService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Value("${srXghyMes.qualityFinishedCheckoutUrl}") private String qualityFinishedCheckoutUrl; @Value("${srXghyMes.qualityFinishedCheckout}") private String qualityFinishedCheckout; @Value("${srXghyMes.productInventoryUrl}") private String productInventoryUrl; @Value("${srXghyMes.productInventory}") private String productInventory; @RequestMapping(value = "/locDetl/update") public R update1() { @@ -385,4 +388,51 @@ return R.error("上报失败").add("上报失败"); } @RequestMapping(value = "/synchronize/mes/locDetl/report/auth") @ManagerAuth(memo = "同步库存至MES") public R synchronizeLocDetlMes() { List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>()); if (locDetlList.isEmpty()) { return R.error("库存为空!!!"); } OrderMesXGHYParam orderMesXGHYParam = new OrderMesXGHYParam(locDetlList,"in","成品入库"); orderMesXGHYParam.setBarcode(String.valueOf(snowflakeIdWorker.nextId())); orderMesXGHYParam.setPalletizingNo(1); String response = ""; boolean success = false; try { response = new HttpHandler.Builder() .setUri(productInventoryUrl) .setPath(productInventory) .setJson(JSON.toJSONString(orderMesXGHYParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getBoolean("state")) { success = true; } else { return R.error("同步库存至MES"); } } catch (Exception e) { return R.error("同步库存至MES"+e.getMessage()); } finally { try { // 保存接口日志 apiLogService.save( "同步库存至MES", productInventoryUrl+"/"+productInventory, null, "127.0.0.1", JSON.toJSONString(orderMesXGHYParam), response, success ); } catch (Exception e) { } } return R.error("上报失败").add("上报失败"); } } src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
@@ -1,6 +1,7 @@ package com.zy.asrs.entity.param; import com.core.common.DateUtils; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.WrkDetl; import lombok.Data; @@ -76,6 +77,16 @@ this.orderSerialNumber = sampleWrkDetl.getOrderNo(); } public Roll(LocDetl sampleLocDetl) { this.boxNo = sampleLocDetl.getBatch(); this.rollNo = sampleLocDetl.getModel(); this.specs = sampleLocDetl.getMatnr(); this.length = sampleLocDetl.getPrice().toString(); this.splices = sampleLocDetl.getSpecs(); this.netWeight = sampleLocDetl.getWeight().toString(); this.grossWeight = sampleLocDetl.getVolume().toString(); } @Override public String toString() { return String.format( @@ -170,6 +181,76 @@ this.matList = boxList; } public OrderMesXGHYParam(List<LocDetl> locDetls, String outOrIn,String stockType) { // 按batch字段分组,每个batch对应一个Box Map<String, List<LocDetl>> batchGroup = locDetls.stream() .collect(Collectors.groupingBy(LocDetl::getBatch)); List<OrderMesXGHYParam.Box> boxList = new ArrayList<>(); // 处理每个batch分组 for (Map.Entry<String, List<LocDetl>> entry : batchGroup.entrySet()) { String batch = entry.getKey(); List<LocDetl> batchWrkDetls = entry.getValue(); // 创建Box对象 OrderMesXGHYParam.Box box = new OrderMesXGHYParam.Box(); box.setBoxNo(batch); // batch对应boxNo box.setOutOrIn(outOrIn); // batch对应boxNo // 按model字段分组,每个model对应一个roll Map<String, List<LocDetl>> modelGroup = batchWrkDetls.stream() .collect(Collectors.groupingBy(LocDetl::getModel)); List<OrderMesXGHYParam.Box.Roll> rollList = new ArrayList<>(); String wideInWidth = null; String thickness = null; String boxPos = null; String boxType = null; String packageGroupNo = null; //包装组号(徐工没有,只有箱号卷号一对一) //null // 处理每个model分组 for (Map.Entry<String, List<LocDetl>> modelEntry : modelGroup.entrySet()) { List<LocDetl> modelWrkDetls = modelEntry.getValue(); LocDetl sampleWrkDetl = modelWrkDetls.get(0); String matnr = sampleWrkDetl.getMatnr(); String[] firstSplit = matnr.split("μm×"); if (firstSplit.length == 2) { thickness = firstSplit[0]; // 5.2 String[] secondSplit = firstSplit[1].split("mm"); if (secondSplit.length > 0) { wideInWidth = secondSplit[0]; // 834.1 } else { continue; } } else { continue; } boxPos = sampleWrkDetl.getOrigin(); boxType = sampleWrkDetl.getBrand$(); stockType = sampleWrkDetl.getManu(); packageGroupNo = sampleWrkDetl.getDeadTime(); OrderMesXGHYParam.Box.Roll roll = new OrderMesXGHYParam.Box.Roll(sampleWrkDetl); rollList.add(roll); } box.setWideInWidth(wideInWidth); box.setThickness(thickness); box.setBoxPos(boxPos); box.setBoxType(boxType); box.setStockType(stockType); box.setPackageGroupNo(packageGroupNo); box.setRolls(rollList); boxList.add(box); } // 设置到主对象中 this.matList = boxList; } @Override public String toString() { StringBuilder sb = new StringBuilder(); src/main/webapp/static/js/locDetl/locDetl.js
@@ -470,6 +470,35 @@ }) } // 同步库存至MES form.on('submit(synchronize)', function (data) { layer.confirm('确认向MES同步库存?', { shade: .1, skin: 'layui-layer-admin' }, function (i) { $.ajax({ url: baseUrl + "/synchronize/mes/locDetl/report/auth", headers: {'token': localStorage.getItem('token')}, method: 'POST', success: function (res) { layer.closeAll('loading'); if (res.code === 200){ if (insTbCount === 0) { insTb.reload({page: {curr: 1}}); } else { $(".layui-laypage-btn")[0].click(); } layer.msg(res.msg, {icon: 1}); } else if (res.code === 403){ top.location.href = baseUrl+"/"; }else { layer.msg(res.msg, {icon: 2}); } } }) }); }); // 复选框事件 form.on('checkbox(detailCheckbox)', function (data) { var el = data.elem; src/main/webapp/views/locDetl/locDetl.html
@@ -60,6 +60,7 @@ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block"> <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="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="synchronize">同步库存至MES</button> <!-- <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">查看异常数据</button>--> </div>