123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- package com.steerinfo.dil.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.ctrip.framework.apollo.util.http.HttpUtil;
- import com.steerinfo.dil.feign.JoinFeign;
- import com.steerinfo.dil.mapper.OmstrainOrderMapper;
- import com.steerinfo.dil.mapper.TmsttOrderMapper;
- import com.steerinfo.dil.model.OmstrainOrder;
- import com.steerinfo.dil.model.TmsttOrder;
- import com.steerinfo.dil.service.IOmstrainOrderService;
- import com.steerinfo.dil.util.DataChange;
- import com.steerinfo.dil.util.HTTPRequestUtils;
- import com.steerinfo.dil.util.getRequestUtils;
- import javassist.expr.Instanceof;
- import org.apache.commons.lang3.AnnotationUtils;
- import org.apache.http.HttpEntity;
- import org.springframework.boot.test.web.client.TestRestTemplate;
- import org.springframework.cloud.client.loadbalancer.LoadBalanced;
- import org.springframework.context.annotation.Bean;
- import org.springframework.http.HttpHeaders;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.entity.mime.MultipartEntityBuilder;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.tools.ant.taskdefs.Get;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.util.LinkedMultiValueMap;
- import org.springframework.util.MultiValueMap;
- import org.springframework.web.client.RestTemplate;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Service;
- import org.springframework.web.client.RestClientException;
- import org.springframework.web.client.RestTemplate;
- import java.io.EOFException;
- import java.io.IOException;
- import java.math.BigDecimal;
- import java.sql.Wrapper;
- import java.util.*;
- @Service
- public class OmstrainOrderServiceImpl implements IOmstrainOrderService {
- @Autowired
- private RestTemplate restTemplate;
- @Autowired
- OmstrainOrderMapper omstrainOrderMapper;
- @Autowired
- TmsttOrderMapper tmsttOrderMapper;
- @Autowired
- JoinFeign joinFeign;
- private String guoYuanUrl="http://113.204.217.110:9810/dagang/receiving";
- //城嘉库登录访问接口
- private String chengJiaLoginUrl="http://116.204.73.104:8083/dagon/login";
- //城嘉库推送数据接口
- private String chengJiaSendUrl="http://116.204.73.104:8083/dagon/selectSaleSteelOrder";
- @Bean
- @LoadBalanced
- private RestTemplate getRestTemplate() {
- return new RestTemplate();
- }
- @Override
- @Transactional
- public int generateOmstrain(Map<String, Object> map) throws IOException {
- //需要做的事,
- int i;
- //1.生成火运订单,
- OmstrainOrder omstrainOrder = new OmstrainOrder();
- //获取火运运输订单ID
- BigDecimal trainOrderId = null;
- if(map.get("trainOrderId") != null){
- trainOrderId = DataChange.dataToBigDecimal(map.get("trainOrderId"));
- }else{
- //根据运输订单ID去查询火运实绩ID
- List<BigDecimal> trainOrderIds = omstrainOrderMapper.getTrainOrderIds(DataChange.dataToBigDecimal(map.get("orderId")));
- if(trainOrderIds.size() > 0){
- trainOrderId = trainOrderIds.get(0);
- }else{
- //根据发出时间和
- trainOrderId = omstrainOrderMapper.getTrainOrder();
- }
- }
- //生成运输订单号
- String trainOrderNumber = DataChange.generateEightDigitsNumber("WHYDD",trainOrderId.intValue());
- //获取车皮号/进站时间/发出时间
- if (map.get("wagonNo") != null && !"null".equals(map.get("wagonNo"))){
- String wagonNo = map.get("wagonNo").toString();
- omstrainOrder.setOrderWagonNo(wagonNo);
- }
- if(map.get("OutStation") != null && !"null".equals(map.get("OutStation")) && !"".equals(map.get("OutStation"))){
- long OutStationTime = (long) map.get("OutStation");
- omstrainOrder.setOutstationTime(new Date(OutStationTime));
- }
- if(map.get("EnStation") != null && !"null".equals(map.get("EnStation")) && !"".equals(map.get("EnStation"))){
- long EnStationTime = (long) map.get("EnStation");
- omstrainOrder.setEnstationTime(new Date(EnStationTime));
- }
- if (map.get("wagonWeight") != null && !"null".equals(map.get("wagonWeight"))){
- BigDecimal wagonWeight = DataChange.dataToBigDecimal(map.get("wagonWeight"));
- omstrainOrder.setOrderWagonWeight(wagonWeight);
- }
- if (map.get("wagonBillWeight") != null && !"null".equals(map.get("wagonBillWeight"))){
- BigDecimal wagonBillWeight = DataChange.dataToBigDecimal(map.get("wagonBillWeight"));
- omstrainOrder.setBillingWeight(wagonBillWeight);
- }
- if(map.get("strawMats") != null){
- omstrainOrder.setStrawmats(DataChange.dataToBigDecimal(map.get("strawMats")));
- }
- if(map.get("unloadPointId") != null){
- omstrainOrder.setWarehouseId(DataChange.dataToBigDecimal(map.get("unloadPointId")));
- }
- omstrainOrder.setId(trainOrderId);
- omstrainOrder.setOrderNo(trainOrderNumber);
- omstrainOrder.setInsertTime(new Date());
- omstrainOrder.setInsertUsername(map.get("personnelSsoId").toString());
- //初始化是没有验收
- omstrainOrder.setIsAccept(new BigDecimal(0));
- //获取汽运运输订单ID
- BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
- //生成火运订单和汽运订单的中间表
- if (map.get("trainOrderId") == null){
- TmsttOrder tmsttOrder = new TmsttOrder();
- tmsttOrder.setId(trainOrderId);
- tmsttOrder.setTrainOrderId(trainOrderId);
- tmsttOrder.setTruckOrderId(orderId);
- tmsttOrder.setInsertTime(new Date());
- i =+ tmsttOrderMapper.insertSelective(tmsttOrder);
- }
- if(map.get("trainOrderId") != null ){
- i =+ omstrainOrderMapper.updateByPrimaryKeySelective(omstrainOrder);
- }else{
- i =+ omstrainOrderMapper.insertSelective(omstrainOrder);
- }
- try {
- Map<String, Object> RemoteMap = joinFeign.selectSaleSteelOrder(map);
- List<Map<String,Object>> data =(List<Map<String, Object>>) RemoteMap.get("data");
- //根据汽运订单查找分属于哪个异地库。
- String inwardWarehouse = omstrainOrderMapper.getInwardWarehouse(orderId);
- if (inwardWarehouse!=null) {
- if (inwardWarehouse.contains("重庆金田")) {
- for (Map<String,Object> jitianMap:data) {
- Map<String, Object> orchardStorehouse = new HashMap<>();
- List<Map<String, Object>> orchardStorehouseList = new ArrayList<>();
- Object sendTime = jitianMap.get("sendTime");
- String transportType = (String) jitianMap.get("transportType");
- //发送时间
- orchardStorehouse.put("sendTime", sendTime);
- //系统代码
- orchardStorehouse.put("sysCode", "DGXT");
- //仓库代码
- orchardStorehouse.put("warehouseCode", "LJJT");
- //运输方式
- orchardStorehouse.put("transportType", transportType);
- //去掉sendTime
- jitianMap.remove("sendTime");
- jitianMap.remove("transportType");
- orchardStorehouseList.add(jitianMap);
- orchardStorehouse.put("details", orchardStorehouseList);
- //调用果园库接口
- sendMesToGuoyuan(orchardStorehouse);
- }
- } else if (inwardWarehouse.contains("成都城嘉")) {
- //调用城嘉库登录接口获取token
- //调用城嘉库推送接口
- String token = DagonloginChenJiaku();
- if (token != null) {
- for (Map<String,Object> map1:data) {
- map1.put("token", token);
- sendMesToChengJia(map1);
- }
- } else {
- System.out.println("登录城嘉库失败");
- }
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- return i;
- }
- }
- /**
- * 访问城嘉库接口方法
- * @param
- * @return
- */
- public String DagonloginChenJiaku() throws IOException {
- Map<String, String> reqMap = new HashMap<>();
- reqMap.put("username","dagon");
- reqMap.put("password","147258");
- // JSONObject jsonObject = new JSONObject();
- // jsonObject.putAll(reqMap);
- // Map<String,Object> map=new HashMap<>();
- // map.put("username","dagon");
- // map.put("password","147258");
- // jsonObject.putAll(map);
- // jsonObject.put("username","dagon");
- // jsonObject.put("password","147258");
- String jsonData = null;
- jsonData = getRequestUtils.doPost(chengJiaLoginUrl,reqMap);
- if(!"null".equals(jsonData)){
- System.out.println(jsonData);
- HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
- BigDecimal code = DataChange.dataToBigDecimal( hashMap.get("code"));
- System.out.println(hashMap.get("message"));
- if(200==code.intValue()){
- Map<String,Object> result =(Map<String,Object>) hashMap.get("result");
- String token =(String) result.get("token");
- return token;
- }else {
- System.out.println("推送数据失败"+hashMap.get("message"));
- }
- }
- return null;
- // String body = restTemplate.postForEntity(chengJiaLoginUrl, reqMap, String.class).getBody();
- // System.out.println(body);
- // return body;
- }
- /**
- * 推送数据给城嘉库
- */
- /**
- * 访问重庆果园库接口方法
- * @param map
- * @return
- */
- public int sendMesToChengJia(Map<String, Object> map){
- String token =(String) map.get("token");
- Map<String,Object> jsonObject = new HashMap<>();
- jsonObject.remove(token);
- jsonObject.putAll(map);
- String jsonData = null;
- jsonData = getRequestUtils.doPostAddHeader(chengJiaSendUrl, jsonObject,token);
- if(!"null".equals(jsonData)){
- System.out.println(jsonData);
- HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
- BigDecimal code = DataChange.dataToBigDecimal(hashMap.get("code"));
- System.out.println(hashMap.get("message"));
- if(code.intValue()==200){
- return 1;
- }else {
- System.out.println("推送数据失败"+hashMap.get("message"));
- }
- }
- return 0;
- }
- /**
- * 访问重庆果园库接口方法
- * @param map
- * @return
- */
- public int sendMesToGuoyuan(Map<String, Object> map){
- JSONObject jsonObject = new JSONObject();
- jsonObject.putAll(map);
- String jsonData = null;
- try {
- jsonData = HTTPRequestUtils.send(guoYuanUrl, jsonObject, "utf-8");
- } catch (IOException e) {
- e.printStackTrace();
- }
- if(!"null".equals(jsonData)){
- System.out.println(jsonData);
- HashMap hashMap = JSON.parseObject(jsonData, HashMap.class);
- BigDecimal code =DataChange.dataToBigDecimal(hashMap.get("code"));
- System.out.println(hashMap.get("message"));
- if(code.intValue()==200){
- return 1;
- }else {
- System.out.println("推送数据失败"+hashMap.get("message"));
- }
- }
- return 0;
- }
- @Override
- public List<Map<String, Object>> getOrderTrainMes(Integer orderId) {
- List<Map<String,Object>>mapList = omstrainOrderMapper.getOrderTrainMes(orderId);
- for(Map<String,Object>map1:mapList){
- List<Map<String,Object>> materialList = omstrainOrderMapper.getMaterialList(map1);
- for (Map<String,Object>materialMap:materialList){
- BigDecimal materialId = DataChange.dataToBigDecimal(materialMap.get("materialId"));
- //根据运输订单ID和物资ID去查询炉号
- List<Map<String, Object>> luHaoNumberList = omstrainOrderMapper.getLuhaoNum(new BigDecimal(orderId),materialId);
- StringBuilder sb = new StringBuilder();
- for (Map<String, Object> luHaoMap : luHaoNumberList) {
- sb.append(luHaoMap.get("materialFurnaceNumber"));
- sb.append("-");
- sb.append(luHaoMap.get("materialNum"));
- sb.append("/");
- }
- if(luHaoNumberList.size() > 0){
- sb.deleteCharAt(sb.length() - 1);
- materialMap.put("luhao",sb.toString());
- }
- }
- map1.put("materialMesList",materialList);
- }
- return mapList;
- }
- @Override
- public List<Map<String, Object>> getWagonShippingDetails(Map<String, Object> map) {
- return omstrainOrderMapper.getWagonShippingDetails(map);
- }
- }
|