|  |  |  | 
|---|
|  |  |  | 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$()); | 
|---|
|  |  |  | param.put("Date", nowFormat); | 
|---|
|  |  |  | param.put("FromDanCode", 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 保存工作主档历史档 | 
|---|
|  |  |  | if (!wrkMastLogService.saveToHistory(wrkMast.getId())) { | 
|---|
|  |  |  | exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo()); | 
|---|