src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/common/service/erp/ErpService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/common/service/erp/entity/UploadBill.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/common/service/erp/entity/UploadBillDetail.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/controller/WorkController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/entity/param/StockInParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/pda/stockIn.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java
@@ -8,7 +8,6 @@ import com.core.exception.CoolException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; @@ -271,7 +270,7 @@ /** * 持久化销售订单 */ @Scheduled(cron = "0/45 * * * * ? ") // @Scheduled(cron = "0/45 * * * * ? ") @Transactional // @PostConstruct public void getOrdersExecute(){ @@ -420,7 +419,7 @@ /** * 库存上传 */ @Scheduled(cron = "0/15 * * * * ? ") // @Scheduled(cron = "0/15 * * * * ? ") @GetMapping("test2") public void uploadStockExecute(){ try { src/main/java/zy/cloud/wms/common/service/erp/ErpService.java
New file @@ -0,0 +1,73 @@ package zy.cloud.wms.common.service.erp; import com.alibaba.fastjson.JSON; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SnowflakeIdWorker; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import zy.cloud.wms.common.service.erp.entity.UploadBill; import zy.cloud.wms.common.service.erp.entity.UploadBillDetail; import zy.cloud.wms.manager.entity.Comb; import zy.cloud.wms.manager.utils.HttpHandler; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by vincent on 2021/3/23 */ @Slf4j @Service("erpService") public class ErpService { @Autowired private SnowflakeIdWorker snowflakeIdWorker; /** * 单据上报 */ public Boolean uploadBill(List<Comb> combs, Integer docId, String docNumber){ try { if (Cools.isEmpty(combs)) { return false; } UploadBill uploadBill = new UploadBill(); uploadBill.setNumber(docNumber); uploadBill.setBillDate(DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F)); uploadBill.setBTypeID("宏挺客户"); uploadBill.setKTypeID("宏挺仓库"); uploadBill.setVchType(docId); List<UploadBillDetail> detail = new ArrayList<>(); uploadBill.setDetail(detail); for (Comb comb : combs) { UploadBillDetail detl = new UploadBillDetail(); detl.setUserCode(comb.getMatnr()); detl.setQty(comb.getAnfme()); detl.setPrice(0.0D); } String response = new HttpHandler.Builder() .setUri(ErpScheduler.URI) .setPath(ErpScheduler.UPLOAD_BILL) .setJson(JSON.toJSONString(uploadBill)) .build() .doPost(); if (!Cools.isEmpty(response)) { log.warn(response); Result result = JSON.parseObject(response, Result.class); if (result.getCode() != 1) { return false; } } } catch (Exception e) { e.printStackTrace(); return false; } return Boolean.TRUE; } } src/main/java/zy/cloud/wms/common/service/erp/entity/UploadBill.java
New file @@ -0,0 +1,27 @@ package zy.cloud.wms.common.service.erp.entity; import lombok.Data; import java.util.List; /** * Created by vincent on 2021/3/23 */ @Data public class UploadBill { private String number; private Integer vchType; private String billDate; private String bTypeID; private String kTypeID; private String summary; private List<UploadBillDetail> detail; } src/main/java/zy/cloud/wms/common/service/erp/entity/UploadBillDetail.java
New file @@ -0,0 +1,19 @@ package zy.cloud.wms.common.service.erp.entity; import lombok.Data; /** * Created by vincent on 2021/3/23 */ @Data public class UploadBillDetail { private String userCode; private Double qty; private Double Price; private String comment; } src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -86,7 +86,7 @@ } Long sts = pakouts.get(0).getWrkSts(); if (sts == 1) { sts =2L; sts = 2L; } WrkSts wrkSts = wrkStsService.selectById(sts); return R.ok().add(Cools src/main/java/zy/cloud/wms/manager/entity/param/StockInParam.java
@@ -12,4 +12,6 @@ private String zpallet; private Integer docType; } src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -12,6 +12,7 @@ import zy.cloud.wms.common.model.OrderStoDto; import zy.cloud.wms.common.service.MainService; import zy.cloud.wms.common.service.asrs.AsrsService; import zy.cloud.wms.common.service.erp.ErpService; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; import zy.cloud.wms.manager.entity.param.*; @@ -46,6 +47,8 @@ private MatService matService; @Autowired private AsrsService asrsService; @Autowired private ErpService erpService; @Override @Transactional @@ -59,6 +62,7 @@ return R.error("物料不存在"); } Date now = new Date(); String docNum = String.valueOf(snowflakeIdWorker.nextId()); for (Comb comb : combs) { // 改变组托档状态 comb.setIoStatus(4); @@ -77,6 +81,8 @@ locDetl.setZpallet(param.getZpallet()); locDetl.setAnfme(comb.getAnfme()); VersionUtils.setLocDetl(locDetl, comb); locDetl.setDocId(param.getDocType().longValue()); locDetl.setDocNum(docNum); locDetl.setStatus(1); locDetl.setCreateBy(userId); locDetl.setCreateTime(now); @@ -94,6 +100,12 @@ } } // 上报给erp if (!erpService.uploadBill(combs, param.getDocType(), docNum)) { throw new CoolException("无法上报至erp"); } return R.ok(); } src/main/webapp/views/pda/stockIn.html
@@ -76,6 +76,13 @@ display: none; } #typeSelect { padding: 10px 20px; } .layui-form-radio { width: 100%; } </style> </head> <body> @@ -100,9 +107,20 @@ <footer> <div class="layui-btn-container"> <button type="button" class="layui-btn layui-btn-primary" onclick="reset()">重置</button> <button id="pakin" type="button" class="layui-btn layui-btn-normal" onclick="pakIn()" style="margin-left: 15px">上架</button> <button id="pakin" type="button" class="layui-btn layui-btn-normal" onclick="confirm()" style="margin-left: 15px">上架</button> </div> </footer> <div id="typeSelect" style="display: none"> <form class="layui-form"> <input type="radio" name="docType" value="34" title="采购单" checked=""> <input type="radio" name="docType" value="45" title="销售退货单"> <hr> <div style="text-align: center"> <button class="layui-btn layui-btn-normal" onclick="pakIn()">确定</button> </div> </form> </div> </body> <script> var tableIns; @@ -243,44 +261,57 @@ layui.form.render('select'); } function confirm() { layer.open({ type: 1, title: '单据类型', shade: [0.3,'#000'], area: ['70%'], content: $('#typeSelect'), success: function(layero, index){ } }); } // 上架 function pakIn() { layer.confirm('上架当前托盘?', {shadeClose: true}, function(){ var zpallet = $('#code').val(); if (isEmpty(zpallet)) { tips("托盘条码为空", true); return; } var node = $('#node').val(); if (isEmpty(node)) { tips("货位为空", true); return; } if (matData.length === 0) { tips("请提取物料", true); return; } $.ajax({ url: baseUrl+"/work/stock/in", headers: {'token': localStorage.getItem('token')}, data: JSON.stringify({ nodeId: node, zpallet: zpallet }), contentType:'application/json;charset=UTF-8', method: 'POST', async: false, success: function (res) { if (res.code === 200) { reset(); tips("上架成功") } else if (res.code === 403) { top.location.href = baseUrl + "/pda"; } else { tips(res.msg, true) } var docType = $('input:radio[name="docType"]:checked').val(); var zpallet = $('#code').val(); if (isEmpty(zpallet)) { tips("托盘条码为空", true); return; } var node = $('#node').val(); if (isEmpty(node)) { tips("货位为空", true); return; } if (matData.length === 0) { tips("请提取物料", true); return; } $.ajax({ url: baseUrl+"/work/stock/in", headers: {'token': localStorage.getItem('token')}, data: JSON.stringify({ nodeId: node, zpallet: zpallet, docType: docType }), contentType:'application/json;charset=UTF-8', method: 'POST', async: false, success: function (res) { if (res.code === 200) { reset(); tips("上架成功") } else if (res.code === 403) { top.location.href = baseUrl + "/pda"; } else { tips(res.msg, true) } }) } }) }