| | |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | |
| | | @Service |
| | | @Transactional |
| | | public class WorkMastHandler extends AbstractHandler<String> { |
| | | |
| | | @Value("${erp.address.URL}") |
| | | private String erpBaseUrl; |
| | | |
| | | @Value("${erp.address.Inaddress}") |
| | | private String erpInAddress; |
| | | |
| | | @Value("${erp.address.Outaddress}") |
| | | private String erpOutAddress; |
| | | |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | /** |
| | | * wcs上报任务完成后,将任务上报给erp |
| | | * 2.入库上报 |
| | | * 13.出库上报 |
| | | */ |
| | | public ReturnT<String> start1(WrkMast wrkMast) { |
| | | // 2.入库上报 |
| | | if (wrkMast.getWrkSts() == 2) { |
| | | return ErpdoIn(wrkMast); |
| | | // 13.出库上报 |
| | | } else if (wrkMast.getWrkSts() == 13) { |
| | | return ErpdoOut(wrkMast); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private ReturnT<String> ErpdoOut(WrkMast wrkMast){ |
| | | try { |
| | | com.zy.common.utils.HttpHandler.Builder builder = new com.zy.common.utils.HttpHandler.Builder(); |
| | | if (Cools.isEmpty(erpBaseUrl) || Cools.isEmpty(erpOutAddress)) { |
| | | return FAIL.setMsg("ERP出库上报地址未配置[erp.address.URL / erp.address.Outaddress]"); |
| | | } |
| | | java.util.List<WrkDetl> wrkDetls = wrkDetlService.selectList( |
| | | new com.baomidou.mybatisplus.mapper.EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()) |
| | | ); |
| | | if (wrkDetls == null || wrkDetls.isEmpty()) { |
| | | return FAIL.setMsg("ERP出库上报失败, 未找到工作明细[workNo=" + wrkMast.getWrkNo() + "]"); |
| | | } |
| | | |
| | | java.util.Map<String, Object> payload = new java.util.HashMap<>(); |
| | | payload.put("palletId", wrkMast.getBarcode()); |
| | | payload.put("anfme", wrkDetls.get(0).getAnfme()); |
| | | payload.put("locId", wrkMast.getSourceLocNo()); |
| | | payload.put("weight", wrkMast.getScWeight()); |
| | | payload.put("photos", new java.util.ArrayList<String>()); |
| | | if (wrkMast.getModiTime() != null) { |
| | | payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(wrkMast.getModiTime())); |
| | | } else { |
| | | payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date())); |
| | | } |
| | | payload.put("BizNo", String.valueOf(wrkDetls.get(0).getThreeCode())); |
| | | |
| | | String uri = erpBaseUrl; |
| | | String response = builder |
| | | .setUri(uri) |
| | | .setPath(erpOutAddress) |
| | | .setHttps(uri != null && uri.startsWith("https://")) |
| | | .setTimeout(10, java.util.concurrent.TimeUnit.SECONDS) |
| | | .setJson(com.alibaba.fastjson.JSON.toJSONString(payload)) |
| | | .build() |
| | | .doPost(); |
| | | |
| | | com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(response == null ? "{}" : response); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code == null || code != 0) { |
| | | String msg = jsonObject.getString("msg"); |
| | | return FAIL.setMsg(Cools.isEmpty(msg) ? "ERP出库上报失败" : msg); |
| | | } |
| | | wrkMast.setWrkSts(wrkMast.getWrkSts() + 1); |
| | | wrkMast.setModiTime(new java.util.Date()); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | return FAIL.setMsg("ERP出库上报成功但更新工作状态失败; [workNo=" + wrkMast.getWrkNo() + "]"); |
| | | } |
| | | } catch (Exception e) { |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private ReturnT<String> ErpdoIn(WrkMast wrkMast){ |
| | | try { |
| | | com.zy.common.utils.HttpHandler.Builder builder = new com.zy.common.utils.HttpHandler.Builder(); |
| | | if (Cools.isEmpty(erpBaseUrl) || Cools.isEmpty(erpInAddress)) { |
| | | return FAIL.setMsg("ERP入库上报地址未配置[erp.address.URL / erp.address.Inaddress]"); |
| | | } |
| | | |
| | | java.util.Map<String, Object> payload = new java.util.HashMap<>(); |
| | | payload.put("palletId", wrkMast.getBarcode()); |
| | | java.util.List<WrkDetl> wrkDetls = wrkDetlService.selectList( |
| | | new com.baomidou.mybatisplus.mapper.EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()) |
| | | ); |
| | | if (wrkDetls == null || wrkDetls.isEmpty()) { |
| | | return FAIL.setMsg("ERP入库上报失败, 未找到工作明细[workNo=" + wrkMast.getWrkNo() + "]"); |
| | | } |
| | | double anfme = 0D; |
| | | for (WrkDetl d : wrkDetls) { |
| | | if (d != null && d.getAnfme() != null) { |
| | | anfme += d.getAnfme(); |
| | | } |
| | | } |
| | | payload.put("anfme", anfme); |
| | | payload.put("locId", wrkMast.getLocNo()); |
| | | payload.put("weight", wrkMast.getScWeight()); |
| | | payload.put("photos", new java.util.ArrayList<String>()); |
| | | if (wrkMast.getModiTime() != null) { |
| | | payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(wrkMast.getModiTime())); |
| | | } else { |
| | | payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date())); |
| | | } |
| | | payload.put("BizNo", String.valueOf(wrkDetls.get(0).getThreeCode())); |
| | | |
| | | String uri = erpBaseUrl; |
| | | |
| | | String response = builder |
| | | .setUri(uri) |
| | | .setPath(erpInAddress) |
| | | .setHttps(uri != null && uri.startsWith("https://")) |
| | | .setTimeout(10, java.util.concurrent.TimeUnit.SECONDS) |
| | | .setJson(com.alibaba.fastjson.JSON.toJSONString(payload)) |
| | | .build() |
| | | .doPost(); |
| | | |
| | | com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(response == null ? "{}" : response); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code == null || code != 0) { |
| | | String msg = jsonObject.getString("msg"); |
| | | return FAIL.setMsg(Cools.isEmpty(msg) ? "ERP入库上报失败" : msg); |
| | | } |
| | | wrkMast.setWrkSts(wrkMast.getWrkSts() + 1); |
| | | wrkMast.setModiTime(new java.util.Date()); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | return FAIL.setMsg("ERP入库上报成功但更新工作状态失败; [workNo=" + wrkMast.getWrkNo() + "]"); |
| | | } |
| | | } catch (Exception e) { |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | } |