| | |
| | | package com.zy.asrs.wms.task.handler; |
| | | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.common.sys.entity.OperateLog; |
| | | import com.zy.asrs.common.sys.service.OperateLogService; |
| | | import com.zy.asrs.common.utils.HttpHandler; |
| | | import com.zy.asrs.common.utils.Utils; |
| | | import com.zy.asrs.common.wms.entity.Order; |
| | | import com.zy.asrs.common.wms.entity.WaitPakin; |
| | | import com.zy.asrs.common.wms.entity.WrkDetl; |
| | | import com.zy.asrs.common.wms.entity.WrkMast; |
| | |
| | | import com.zy.asrs.wms.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; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/7/6 |
| | |
| | | private WaitPakinLogService waitPakinLogService; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private OperateLogService operateLogService; |
| | | |
| | | @Value("${erp.url}") |
| | | private String ERP_URL; |
| | | |
| | | @Value("${erp.report}") |
| | | private String ERP_REPORT; |
| | | |
| | | @Value("${erp.login}") |
| | | private String ERP_LOGIN; |
| | | |
| | | // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no = |
| | | @Transactional |
| | |
| | | } |
| | | } |
| | | |
| | | if (!wrkDetlsKeyOrder.isEmpty()) { |
| | | //上报念初ERP 【 上报三方平台 】 |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); |
| | | String nowFormat = dateFormat.format(new Date()); |
| | | |
| | | ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>(); |
| | | String orderNo = ""; |
| | | for (WrkDetl wrkDetl : wrkDetlsKeyOrder) { |
| | | orderNo = wrkDetl.getOrderNo(); |
| | | LinkedHashMap<String, Object> mat = new LinkedHashMap<>(); |
| | | mat.put("GoodsCode", wrkDetl.getMatnr()); |
| | | mat.put("Num", wrkDetl.getAnfme()); |
| | | if (!Cools.isEmpty(wrkDetl.getBatch())) { |
| | | mat.put("BatchNo", wrkDetl.getBatch()); |
| | | } |
| | | if (!Cools.isEmpty(wrkDetl.getThreeCode())) { |
| | | mat.put("DepotName", wrkDetl.getThreeCode()); |
| | | } |
| | | if (!Cools.isEmpty(wrkDetl.getSupp())) { |
| | | mat.put("FromDanCode", wrkDetl.getSupp()); |
| | | } |
| | | if (!Cools.isEmpty(wrkDetl.getSuppCode())) { |
| | | mat.put("FromNo", wrkDetl.getSuppCode()); |
| | | } |
| | | mats.add(mat); |
| | | } |
| | | Order order = orderService.selectByNo(orderNo, hostId); |
| | | if (order != null) { |
| | | LinkedHashMap<String, Object> param = new LinkedHashMap<>(); |
| | | param.put("Login", ERP_LOGIN); |
| | | param.put("DanType", order.getDocType$()+"SH"); |
| | | param.put("Date", nowFormat); |
| | | param.put("DanCode", orderNo); |
| | | param.put("Data", mats); |
| | | |
| | | String response = ""; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(ERP_URL) |
| | | .setPath(ERP_REPORT + Utils.ncErpDataEncode(param)) |
| | | .build() |
| | | .doGet(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONArray result = jsonObject.getJSONArray("result"); |
| | | Object object = result.get(0); |
| | | JSONObject data = JSON.parseObject(object.toString()); |
| | | if (data.getBoolean("State")) { |
| | | //上报成功 |
| | | } else { |
| | | //上报失败 |
| | | exceptionHandle("上报ERP失败[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | //异常上报失败 |
| | | exceptionHandle("上报ERP异常失败[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } finally { |
| | | //记录上报数据 |
| | | OperateLog operateLog = new OperateLog(); |
| | | operateLog.setAction("上报ERP," + ERP_URL + ERP_REPORT); |
| | | operateLog.setRequest(Utils.ncErpDataEncode(param)); |
| | | operateLog.setResponse(response); |
| | | operateLog.setCreateTime(new Date()); |
| | | operateLog.setSystem("WMS"); |
| | | operateLog.setUserId(9527L); |
| | | operateLog.setIp("127.0.0.1"); |
| | | operateLogService.save(operateLog); |
| | | //记录上报数据 |
| | | OperateLog operateLog1 = new OperateLog(); |
| | | operateLog1.setAction("上报ERP," + ERP_URL + ERP_REPORT); |
| | | operateLog1.setRequest(param.toString()); |
| | | operateLog1.setResponse(response); |
| | | operateLog1.setCreateTime(new Date()); |
| | | operateLog1.setSystem("WMS"); |
| | | operateLog1.setUserId(9527L); |
| | | operateLog1.setIp("127.0.0.1"); |
| | | operateLogService.save(operateLog1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 保存工作主档历史档 |
| | | if (!wrkMastLogService.saveToHistory(wrkMast.getId())) { |
| | | exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo()); |