123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package com.kmall.admin.controller.kmall2oms;
- import com.alibaba.fastjson.JSON;
- import com.google.gson.Gson;
- import com.kmall.admin.dto.TransferGoodsDto;
- import com.kmall.admin.entity.StoreTransferInventoryOrderDetailEntity;
- import com.kmall.admin.entity.StoreTransferInventoryOrderEntity;
- import com.kmall.admin.service.StoreTransferInventoryOrderDetailService;
- import com.kmall.admin.service.StoreTransferInventoryOrderService;
- import com.kmall.admin.utils.data.response.ResponseMessage;
- import com.kmall.admin.utils.oms.OmsSign;
- import com.kmall.common.utils.R;
- import com.kmall.manager.manager.merch.OmsMerchProperties;
- import okhttp3.Request;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import java.util.*;
- /**
- * @author zhangchuangbiao
- * @version 1.0
- * 2021-03-08 10:15
- * 负责处理kmall与oms接口对象
- */
- @Controller
- @ResponseBody
- @RequestMapping("ktooms")
- public class KtoOmsController {
- private static Logger LOGGER = LoggerFactory.getLogger(KtoOmsController.class);
- @Autowired
- private OmsMerchProperties omsMerchProperties;
- @Autowired
- private StoreTransferInventoryOrderService storeTransferInventoryOrderService ;
- @Autowired
- private StoreTransferInventoryOrderDetailService storeTransferInventoryOrderDetailService;
- @RequestMapping("sendTransfer/{transferId}")
- public R sendToTransferOrder(@PathVariable("transferId") Integer transferId){
- // 查询转移单记录与明细
- // queryById(transferId)
- StoreTransferInventoryOrderEntity storeTransferInventoryOrderEntity = storeTransferInventoryOrderService.queryObject(transferId);
- if(storeTransferInventoryOrderEntity == null){
- return R.error("未找到该转移单");
- }
- Integer status = storeTransferInventoryOrderEntity.getStatus();
- if(status != 0 && status != 2 ){
- return R.error("该转移单不允许推送");
- }
- // queryDetailByTransferId(transferId)
- List<Map> transferGoodsDto = storeTransferInventoryOrderDetailService.queryDtoById(transferId);
- storeTransferInventoryOrderEntity.setStatus(3);
- Gson gson = new Gson();
- String timestamp = String.valueOf(System.currentTimeMillis()/1000);
- Map<String, String> sParaTemp = new TreeMap<>();
- // 构建request中的data数据
- Map<String,Object> dataParam = new HashMap<>();
- dataParam.put("merchId",storeTransferInventoryOrderEntity.getMerchSn());
- dataParam.put("merchName",storeTransferInventoryOrderEntity.getMerchName());
- // dataParam.put("thirdPartyMerchCode","");
- // dataParam.put("thirdPartyMerchName","");
- dataParam.put("merchTransDocSn",transferId+"");
- dataParam.put("rollOutShopId",storeTransferInventoryOrderEntity.getOutStoreSn());
- dataParam.put("rollInShopId",storeTransferInventoryOrderEntity.getInStoreSn());
- dataParam.put("billTime",timestamp);
- dataParam.put("item",transferGoodsDto);
- sParaTemp.put("data",gson.toJson(dataParam));
- sParaTemp.put("merchId",omsMerchProperties.getMerchSn());
- sParaTemp.put("timestamp", timestamp);
- // 组装oms请求报文
- Request request = buildRequest(sParaTemp);
- // 同步访问,返回结果字符串
- String responseString = null;
- try {
- LOGGER.info("oms的请求报文:" + request);
- responseString = com.kmall.admin.utils.oms.OkHttpUtils.post(request);
- storeTransferInventoryOrderService.update(storeTransferInventoryOrderEntity);
- return handleResult(responseString,gson);
- } catch (Exception e) {
- e.printStackTrace();
- storeTransferInventoryOrderEntity.setStatus(2);
- storeTransferInventoryOrderService.update(storeTransferInventoryOrderEntity);
- return R.error(e.getMessage());
- }
- }
- private R handleResult(String responseString, Gson gson) {
- LOGGER.info("oms的响应报文"+responseString);
- //解析响应数据
- ResponseMessage result = gson.fromJson(responseString, ResponseMessage.class);
- if(result == null){
- String info = "解析响应数据Result失败";
- LOGGER.error("--- {}", info);
- throw new RuntimeException(info);
- }else{
- return R.ok(result.getMsg());
- }
- }
- private Request buildRequest(Map<String, String> sParaTemp) {
- //生成要请求给oms秘钥
- LOGGER.info("md5混淆码参数:" + omsMerchProperties.getMd5Salt());
- String sign = OmsSign.sign(sParaTemp,omsMerchProperties.getMd5Salt());
- sParaTemp.put("sign", sign);
- //构建Request
- String url = omsMerchProperties.getSendTransferUrl();
- url = "http://183.3.221.143:8680/al/shop/bdd/cb/transgoods";
- return com.kmall.admin.utils.oms.OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
- }
- }
|