| package com.zy.asrs.wms.controller; | 
|   | 
| 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.web.BaseController; | 
| import com.zy.asrs.common.wms.entity.Order; | 
| import com.zy.asrs.common.wms.entity.OrderDetl; | 
| import com.zy.asrs.common.wms.entity.WrkDetl; | 
| import com.zy.asrs.common.wms.entity.WrkMast; | 
| import com.zy.asrs.common.wms.service.*; | 
| import com.zy.asrs.framework.common.Cools; | 
| import com.zy.asrs.framework.common.R; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.beans.factory.annotation.Value; | 
| import org.springframework.web.bind.annotation.GetMapping; | 
| import org.springframework.web.bind.annotation.RequestParam; | 
| import org.springframework.web.bind.annotation.RestController; | 
|   | 
| import java.text.SimpleDateFormat; | 
| import java.util.*; | 
|   | 
| @RestController | 
| public class TestController extends BaseController { | 
|   | 
|     @Autowired | 
|     private WrkMastService wrkMastService; | 
|     @Autowired | 
|     private WrkDetlService wrkDetlService; | 
|     @Autowired | 
|     private OrderService orderService; | 
|     @Autowired | 
|     private OrderDetlService orderDetlService; | 
|     @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; | 
|   | 
|     @GetMapping("/test") | 
|     public R test(@RequestParam Integer wrkNo) { | 
|         WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, wrkNo)); | 
|         Long hostId = wrkMast.getHostId(); | 
|   | 
|         List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId)); | 
|         // 区分订单任务 | 
|         List<WrkDetl> wrkDetlsKeyOrder = new ArrayList<>(); | 
|         if (!Cools.isEmpty(wrkDetls)) { | 
|             Iterator<WrkDetl> iterator = wrkDetls.iterator(); | 
|             while (iterator.hasNext()) { | 
|                 WrkDetl wrkDetl = iterator.next(); | 
|                 if (!Cools.isEmpty(wrkDetl.getOrderNo())) { | 
|                     wrkDetlsKeyOrder.add(wrkDetl); | 
|                     iterator.remove(); | 
|                 } | 
|             } | 
|         } | 
|   | 
|         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 { | 
|                         //上报失败 | 
|                     } | 
|                 } catch (Exception e) { | 
|                     e.printStackTrace(); | 
|                 } 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); | 
|                 } | 
|             } | 
|         } | 
|   | 
|         return R.ok(); | 
|     } | 
|   | 
|     @GetMapping("/test1") | 
|     public R test1(@RequestParam String orderNo) { | 
|         Order order = orderService.selectByNo(orderNo, 1L); | 
|         List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId())); | 
|   | 
|         //上报念初ERP   【 上报三方平台 】 | 
|         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); | 
|         String nowFormat = dateFormat.format(new Date()); | 
|   | 
|         ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>(); | 
|         for (OrderDetl orderDetl : orderDetls) { | 
|             LinkedHashMap<String, Object> mat = new LinkedHashMap<>(); | 
|             mat.put("GoodsCode", orderDetl.getMatnr()); | 
|             mat.put("Num", orderDetl.getAnfme()); | 
|             if (!Cools.isEmpty(orderDetl.getBatch())) { | 
|                 mat.put("BatchNo", orderDetl.getBatch()); | 
|             } | 
|             if (!Cools.isEmpty(orderDetl.getThreeCode())) { | 
|                 mat.put("DepotName", orderDetl.getThreeCode()); | 
|             } | 
|             if (!Cools.isEmpty(orderDetl.getSupp())) { | 
|                 mat.put("FromDanCode", orderDetl.getSupp()); | 
|             } | 
|             if (!Cools.isEmpty(orderDetl.getSuppCode())) { | 
|                 mat.put("FromNo", orderDetl.getSuppCode()); | 
|             } | 
|             mats.add(mat); | 
|         } | 
|         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 { | 
|                 //上报失败 | 
|             } | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } 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); | 
|         } | 
|   | 
|         return R.ok(); | 
|     } | 
|   | 
| } |