tao.mo

BASF接口

mt
2021年9月15日10:44:06
1 +package com.erry.iclear.dateInterface.api;
2 +
3 +import com.erry.iclear.dateInterface.api.request.Basfc;
4 +import com.erry.iclear.dateInterface.api.request.Mawb;
5 +import com.erry.iclear.dateInterface.api.response.ResultRS;
6 +import com.erry.iclear.dateInterface.entity.IClearApiLog;
7 +import com.erry.iclear.dateInterface.service.BasfService;
8 +import com.erry.iclear.dateInterface.service.IClearApiLogService;
9 +import com.erry.iclear.dateInterface.service.MawbService;
10 +import com.google.gson.Gson;
11 +import io.swagger.annotations.ApiOperation;
12 +import lombok.extern.slf4j.Slf4j;
13 +import org.springframework.beans.factory.annotation.Autowired;
14 +import org.springframework.util.StopWatch;
15 +import org.springframework.validation.annotation.Validated;
16 +import org.springframework.web.bind.annotation.*;
17 +
18 +import javax.servlet.http.HttpServletRequest;
19 +import java.util.Date;
20 +import java.util.Objects;
21 +
22 +@RestController
23 +@RequestMapping("/basf")
24 +@Slf4j
25 +public class BasfDataInterface {
26 + private Gson gson = new Gson();
27 +
28 + @Autowired
29 + private BasfService basfService;
30 +
31 + @Autowired
32 + private IClearApiLogService iClearApiLogService;
33 +
34 + @ApiOperation(value = "BASF推送运单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/customs/sendMawbBasf")
35 + @PostMapping("/sendMawbBasf")
36 + @ResponseBody
37 + public ResultRS sendMawbBasf(HttpServletRequest request
38 + , @Validated @RequestBody Basfc basfc) {
39 + log.info("接收到请求数据consignmentCode:"+basfc.getConsignmentCode()+" data:" + gson.toJson(basfc));
40 + ResultRS result = new ResultRS(Boolean.FALSE,"","");
41 +
42 + if(Objects.equals(basfc,null)){
43 + result.setCode("-7");
44 + result.setMsg("请求信息不能为空");
45 + return result;
46 + }
47 + //1、保存请求信息,保存到iClear的 SQLServer
48 +
49 + StopWatch sw = new StopWatch("receice mawbBasf");
50 + sw.start("save log");
51 +
52 + String appId=(String) request.getHeader("Appid");
53 + String appKey=(String) request.getHeader("Appkey");
54 + String timeStamp=(String) request.getHeader("TimeStamp");
55 + IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLogC(basfc,appId,appKey,new Date(Long.valueOf(timeStamp))));
56 +
57 + basfc.setAppId(appId);
58 + Mawb saveMawbBasfResult = null;
59 + if(!Objects.equals(saveIClearApiLogResult,null)){
60 + log.info("请求保存成功,msgId:"+saveIClearApiLogResult.getMsgId());
61 + basfc.setMsgId(saveIClearApiLogResult.getMsgId());
62 + basfc.getBasfcDetailList().forEach(d->{
63 + d.setMsgId(saveIClearApiLogResult.getMsgId());
64 + });
65 + saveMawbBasfResult = basfService.saveMawbBasf(basfc);
66 + if(!Objects.equals(saveMawbBasfResult,null)){
67 + log.info("请求数据运单号"+basfc.getConsignmentCode()+"保存成功,msgId:"+saveMawbBasfResult.getMsgId());
68 + }else{
69 + log.info("请求数据运单号"+basfc.getConsignmentCode()+"保存失败,msgId:"+saveMawbBasfResult.getMsgId());
70 + }
71 + }else{
72 + log.info("请求日志保存失败,consignmentCode:"+basfc.getConsignmentCode());
73 + }
74 + sw.stop();
75 +
76 +
77 + //2、TODO 校验主单
78 + /* sw.start("checkMawb");
79 + result=mawbService.checkMawb(mawb);
80 + if(!result.getSuccess()){
81 + return result;
82 + }
83 + sw.stop();*/
84 +
85 +// //3、TODO 校验子单
86 +// sw.start("checkMawbDetail");
87 +// result=mawbDetailServicel.checkMawbDetail(mawb);
88 +// if(!result.getSuccess()){
89 +// return result;
90 +// }
91 +// sw.stop();
92 +
93 +
94 + //4、保存运单到iclear中
95 + sw.start("processChmConsignment");
96 + result = chmConsignmentService.processChmConsignment(saveMawbBasfResult, timeStamp,appId);
97 + if(!result.getSuccess()){
98 + return result;
99 + }
100 + sw.stop();
101 +
102 +
103 + //5、更新日志
104 + sw.start("updateIClearApiLog");
105 + if(!Objects.equals(saveIClearApiLogResult,null)){
106 + saveIClearApiLogResult.setReceiveResult(result.getSuccess().toString());
107 + saveIClearApiLogResult.setErrorCode(result.getCode());
108 + saveIClearApiLogResult.setResponseTime(new Date());
109 + saveIClearApiLogResult.setSpendTime(sw.getTotalTimeMillis());
110 +
111 + iClearApiLogService.updateIClearApiLog(saveIClearApiLogResult);
112 + }
113 + log.info("请求数据consignmentCode:"+basfc.getConsignmentCode() +" 接收结束");
114 + sw.stop();
115 + log.info(sw.prettyPrint());
116 +
117 + //6、return result
118 + result.setSuccess(Boolean.TRUE);
119 + result.setCode("0");
120 + return result;
121 + }
122 +}
...@@ -135,95 +135,6 @@ public class CustomsDataInterface { ...@@ -135,95 +135,6 @@ public class CustomsDataInterface {
135 result.setCode("0"); 135 result.setCode("0");
136 return result; 136 return result;
137 } 137 }
138 -
139 - @ApiOperation(value = "BASF推送运单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/customs/sendMawbBasf")
140 - @PostMapping("/sendMawbBasf")
141 - @ResponseBody
142 - public ResultRS sendMawbBasf(HttpServletRequest request
143 - ,@Validated @RequestBody Basfc basfc) {
144 - log.info("接收到请求数据consignmentCode:"+basfc.getConsignmentCode()+" data:" + gson.toJson(basfc));
145 - ResultRS result = new ResultRS(Boolean.FALSE,"","");
146 -
147 - if(Objects.equals(basfc,null)){
148 - result.setCode("-7");
149 - result.setMsg("请求信息不能为空");
150 - return result;
151 - }
152 - //1、保存请求信息,保存到iClear的 SQLServer
153 -
154 - StopWatch sw = new StopWatch("receice mawbBasf");
155 - sw.start("save log");
156 -
157 - String appId=(String) request.getHeader("Appid");
158 - String appKey=(String) request.getHeader("Appkey");
159 - String timeStamp=(String) request.getHeader("TimeStamp");
160 - IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLogC(basfc,appId,appKey,new Date(Long.valueOf(timeStamp))));
161 -
162 - basfc.setAppId(appId);
163 - Mawb saveMawbBasfResult = null;
164 - if(!Objects.equals(saveIClearApiLogResult,null)){
165 - log.info("请求保存成功,msgId:"+saveIClearApiLogResult.getMsgId());
166 - basfc.setMsgId(saveIClearApiLogResult.getMsgId());
167 - basfc.getBasfcDetailList().forEach(d->{
168 - d.setMsgId(saveIClearApiLogResult.getMsgId());
169 - });
170 - saveMawbBasfResult = mawbService.saveMawbBasf(basfc);
171 - if(!Objects.equals(saveMawbBasfResult,null)){
172 - log.info("请求数据运单号"+basfc.getConsignmentCode()+"保存成功,msgId:"+saveMawbBasfResult.getMsgId());
173 - }else{
174 - log.info("请求数据运单号"+basfc.getConsignmentCode()+"保存失败,msgId:"+saveMawbBasfResult.getMsgId());
175 - }
176 - }else{
177 - log.info("请求日志保存失败,consignmentCode:"+basfc.getConsignmentCode());
178 - }
179 - sw.stop();
180 -
181 -
182 - //2、TODO 校验主单
183 - /* sw.start("checkMawb");
184 - result=mawbService.checkMawb(mawb);
185 - if(!result.getSuccess()){
186 - return result;
187 - }
188 - sw.stop();*/
189 -
190 -// //3、TODO 校验子单
191 -// sw.start("checkMawbDetail");
192 -// result=mawbDetailServicel.checkMawbDetail(mawb);
193 -// if(!result.getSuccess()){
194 -// return result;
195 -// }
196 -// sw.stop();
197 -
198 -
199 - //4、保存运单到iclear中
200 - sw.start("processChmConsignment");
201 - result = chmConsignmentService.processChmConsignment(saveMawbBasfResult, timeStamp,appId);
202 - if(!result.getSuccess()){
203 - return result;
204 - }
205 - sw.stop();
206 -
207 -
208 - //5、更新日志
209 - sw.start("updateIClearApiLog");
210 - if(!Objects.equals(saveIClearApiLogResult,null)){
211 - saveIClearApiLogResult.setReceiveResult(result.getSuccess().toString());
212 - saveIClearApiLogResult.setErrorCode(result.getCode());
213 - saveIClearApiLogResult.setResponseTime(new Date());
214 - saveIClearApiLogResult.setSpendTime(sw.getTotalTimeMillis());
215 -
216 - iClearApiLogService.updateIClearApiLog(saveIClearApiLogResult);
217 - }
218 - log.info("请求数据consignmentCode:"+basfc.getConsignmentCode() +" 接收结束");
219 - sw.stop();
220 - log.info(sw.prettyPrint());
221 -
222 - //6、return result
223 - result.setSuccess(Boolean.TRUE);
224 - result.setCode("0");
225 - return result;
226 - }
227 } 138 }
228 139
229 140
......
1 +package com.erry.iclear.dateInterface.repository;
2 +
3 +import com.erry.iclear.dateInterface.api.request.BasfMawb;
4 +import org.springframework.data.jpa.repository.JpaRepository;
5 +import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 +import org.springframework.stereotype.Repository;
7 +import org.springframework.transaction.annotation.Transactional;
8 +
9 +/**
10 + * @author Administrator
11 + */
12 +@Repository
13 +@Transactional(rollbackFor = Exception.class)
14 +public interface BasfMawbRepository extends JpaRepository<BasfMawb, Integer>, JpaSpecificationExecutor<BasfMawb> {
15 +}
1 +package com.erry.iclear.dateInterface.service;
2 +
3 +import com.erry.iclear.dateInterface.api.request.*;
4 +import com.erry.iclear.dateInterface.repository.BasfMawbRepository;
5 +import com.erry.iclear.dateInterface.util.NumberUtils;
6 +import lombok.extern.slf4j.Slf4j;
7 +import org.springframework.beans.factory.annotation.Autowired;
8 +import org.springframework.stereotype.Service;
9 +
10 +import java.util.ArrayList;
11 +import java.util.List;
12 +
13 +/**
14 + * @author Administrator
15 + */
16 +@Service
17 +@Slf4j
18 +public class BasfService {
19 + @Autowired
20 + private BasfMawbRepository basfMawbRepository;
21 +
22 + /**
23 + * 保存主单Request --basfc
24 + * @param basfc
25 + */
26 + public Mawb saveMawbBasf(Basfc basfc){
27 + Mawb result=null;
28 + try{
29 + log.info("saveMawb start>>>>>>>>>>>");
30 + //运单头部信息
31 + BasfMawb mawb = new BasfMawb();
32 + mawb.setAppId(basfc.getAppId());
33 + mawb.setMsgId(basfc.getMsgId());
34 + mawb.setConsignmentCodeId(basfc.getConsignmentId());
35 + mawb.setType(basfc.getConsType());
36 + //TODO 记录时为同一张表,用 '-->' 记录具体存放字段(方便查看,以免误解)
37 + //运单号-->提单号
38 + mawb.setBillNo(basfc.getConsignmentCode());
39 + //经营单位 --> 消费使用/生产销售单位名称
40 + mawb.setOwnerName(basfc.getOperateUnitName());
41 + //经营单位海关编码 --> 消费使用/生产销售单位代码
42 + mawb.setOwnerCode(basfc.getOperateUnitCode());
43 + //经营单位社会信用证代码 --> 消费使用/生产销售单位单位统一编码
44 + mawb.setOwnerCodeScc(basfc.getOperateSCC());
45 + //发件人 --> 境内收发货人名称
46 + mawb.setTradeName(basfc.getSender());
47 + //发件人海关编码 --> 境内收发货人编号
48 + mawb.setTradeCode(basfc.getShipperCustomsCode());
49 + //发件人社会信用证代码 --> 生产核销单位统一信用代码---报关形式类型
50 + mawb.setTradeCodeScc(basfc.getShipperSCC());
51 +
52 + mawb.setEANNo(basfc.getEANNo());
53 + //明细
54 + List<MawbDetail> mawbDetailList = new ArrayList<>();
55 + if (basfc.getBasfcDetailList().size()>0){
56 + for (BasfcDetail basfcDetail : basfc.getBasfcDetailList()){
57 + MawbDetail mawbDetail = new MawbDetail();
58 + mawbDetail.setDetailId(basfcDetail.getConsignmentDetailId());
59 + mawbDetail.setGmodel(basfcDetail.getModel());
60 + mawbDetail.setCodeTS(basfcDetail.getSkuCode());
61 + mawbDetail.setGname(basfcDetail.getSkuName());
62 + mawbDetail.setGqty(basfcDetail.getKnockdownNumber());
63 + mawbDetail.setGunit(basfcDetail.getKnockdownUnit());
64 + mawbDetail.setFirstUnit(basfcDetail.getUnitLegalFirst());
65 + mawbDetail.setFirstQty(NumberUtils.bigDecimalToIntger(basfcDetail.getQtyLegalFirst()));
66 + mawbDetail.setSecondQty(NumberUtils.bigDecimalToIntger(basfcDetail.getQtyLegalSecond()));
67 + mawbDetail.setSecondUnit(basfcDetail.getUnitLegalSecond());
68 + mawbDetail.setDeclTotal(basfcDetail.getDeclaredAmount());
69 + mawbDetail.setTradeCurr(basfcDetail.getCurrency());
70 + mawbDetail.setDeclaredWeight(basfcDetail.getDeclaredWeight());
71 + mawbDetailList.add(mawbDetail);
72 + }
73 + }
74 + mawb.setMawbDetailList(mawbDetailList);
75 + result = basfMawbRepository.save(mawb);
76 + log.info("saveMawb end>>>>>>>>>>>");
77 + }catch (Exception e){
78 + log.error("saveMawb() error:"+e.getMessage());
79 + }
80 + return result;
81 + }
82 +}
...@@ -66,66 +66,6 @@ public class MawbService { ...@@ -66,66 +66,6 @@ public class MawbService {
66 66
67 67
68 /** 68 /**
69 - * 保存主单Request --basfc
70 - * @param basfc
71 - */
72 - public Mawb saveMawbBasf(Basfc basfc){
73 - Mawb result=null;
74 - try{
75 - log.info("saveMawb start>>>>>>>>>>>");
76 - //运单头部信息
77 - Mawb mawb = new Mawb();
78 - mawb.setAppId(basfc.getAppId());
79 - mawb.setMsgId(basfc.getMsgId());
80 - mawb.setConsignmentCodeId(basfc.getConsignmentId());
81 - mawb.setType(basfc.getConsType());
82 - //TODO 记录时为同一张表,用 '-->' 记录具体存放字段(方便查看,以免误解)
83 - //运单号-->提单号
84 - mawb.setBillNo(basfc.getConsignmentCode());
85 - //经营单位 --> 消费使用/生产销售单位名称
86 - mawb.setOwnerName(basfc.getOperateUnitName());
87 - //经营单位海关编码 --> 消费使用/生产销售单位代码
88 - mawb.setOwnerCode(basfc.getOperateUnitCode());
89 - //经营单位社会信用证代码 --> 消费使用/生产销售单位单位统一编码
90 - mawb.setOwnerCodeScc(basfc.getOperateSCC());
91 - //发件人 --> 境内收发货人名称
92 - mawb.setTradeName(basfc.getSender());
93 - //发件人海关编码 --> 境内收发货人编号
94 - mawb.setTradeCode(basfc.getShipperCustomsCode());
95 - //发件人社会信用证代码 --> 生产核销单位统一信用代码---报关形式类型
96 - mawb.setTradeCodeScc(basfc.getShipperSCC());
97 -
98 - mawb.setEANNo(basfc.getEANNo());
99 - //明细
100 - List<MawbDetail> mawbDetailList = new ArrayList<>();
101 - if (basfc.getBasfcDetailList().size()>0){
102 - for (BasfcDetail basfcDetail : basfc.getBasfcDetailList()){
103 - MawbDetail mawbDetail = new MawbDetail();
104 - mawbDetail.setDetailId(basfcDetail.getConsignmentDetailId());
105 - mawbDetail.setGmodel(basfcDetail.getModel());
106 - mawbDetail.setCodeTS(basfcDetail.getSkuCode());
107 - mawbDetail.setGname(basfcDetail.getSkuName());
108 - mawbDetail.setGqty(basfcDetail.getKnockdownNumber());
109 - mawbDetail.setGunit(basfcDetail.getKnockdownUnit());
110 - mawbDetail.setFirstUnit(basfcDetail.getUnitLegalFirst());
111 - mawbDetail.setFirstQty(NumberUtils.bigDecimalToIntger(basfcDetail.getQtyLegalFirst()));
112 - mawbDetail.setSecondQty(NumberUtils.bigDecimalToIntger(basfcDetail.getQtyLegalSecond()));
113 - mawbDetail.setSecondUnit(basfcDetail.getUnitLegalSecond());
114 - mawbDetail.setDeclTotal(basfcDetail.getDeclaredAmount());
115 - mawbDetail.setTradeCurr(basfcDetail.getCurrency());
116 - mawbDetail.setDeclaredWeight(basfcDetail.getDeclaredWeight());
117 - mawbDetailList.add(mawbDetail);
118 - }
119 - }
120 - mawb.setMawbDetailList(mawbDetailList);
121 - result = mawbRepository.save(mawb);
122 - log.info("saveMawb end>>>>>>>>>>>");
123 - }catch (Exception e){
124 - log.error("saveMawb() error:"+e.getMessage());
125 - }
126 - return result;
127 - }
128 - /**
129 * 校验主单 69 * 校验主单
130 * @param mawb 70 * @param mawb
131 * @return 71 * @return
......