tao.mo

Merge branches 'API-2023-07-30-bug' and 'master' of http://118.178.128.178//Fedex/iClear-api

 Conflicts:
	src/main/java/com/erry/iclear/dateInterface/service/ApiService.java
Showing 25 changed files with 527 additions and 44 deletions
...@@ -49,6 +49,26 @@ md5 小写 16位 ...@@ -49,6 +49,26 @@ md5 小写 16位
49 IKNOWUiClearExportCTest 49 IKNOWUiClearExportCTest
50 IKNOWUiClearExportCProd 50 IKNOWUiClearExportCProd
51 51
52 +RunaTong的Secret
53 +md5 小写 16位
54 +明文:
55 + RunaTongiClearExportCDev
56 + RunaTongiClearExportCTest
57 + RunaTongiClearExportCProd
58 +
59 +fsyingde的Secret
60 +md5 小写 16位
61 +明文:
62 + fsyingdeiClearExportCDev
63 + fsyingdeiClearExportCTest
64 + fsyingdeiClearExportCProd
65 +
66 +SCMHOME的Secret
67 +md5 小写 16位
68 +明文:
69 + SCMHOMEiClearExportCDev
70 + SCMHOMEiClearExportCTest
71 + SCMHOMEiClearExportCProd
52 72
53 1、接口数据模型调研 2 73 1、接口数据模型调研 2
54 2、设计数据接口 2 74 2、设计数据接口 2
......
1 package com.erry.iclear.dateInterface.api; 1 package com.erry.iclear.dateInterface.api;
2 2
3 -import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
4 import com.erry.iclear.dateInterface.api.request.Mawb; 3 import com.erry.iclear.dateInterface.api.request.Mawb;
5 import com.erry.iclear.dateInterface.api.response.ResultRS; 4 import com.erry.iclear.dateInterface.api.response.ResultRS;
6 import com.erry.iclear.dateInterface.entity.IClearApiLog; 5 import com.erry.iclear.dateInterface.entity.IClearApiLog;
6 +import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
7 import com.erry.iclear.dateInterface.repository.MawbAdd; 7 import com.erry.iclear.dateInterface.repository.MawbAdd;
8 import com.erry.iclear.dateInterface.service.*; 8 import com.erry.iclear.dateInterface.service.*;
9 import com.erry.iclear.dateInterface.util.StringUtil; 9 import com.erry.iclear.dateInterface.util.StringUtil;
...@@ -16,7 +16,9 @@ import org.springframework.validation.annotation.Validated; ...@@ -16,7 +16,9 @@ import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 16 import org.springframework.web.bind.annotation.*;
17 17
18 import javax.servlet.http.HttpServletRequest; 18 import javax.servlet.http.HttpServletRequest;
19 -import java.util.*; 19 +import java.util.Date;
20 +import java.util.Map;
21 +import java.util.Objects;
20 22
21 /** 23 /**
22 * @author Administrator 24 * @author Administrator
...@@ -74,7 +76,12 @@ public class CustomsDataInterface { ...@@ -74,7 +76,12 @@ public class CustomsDataInterface {
74 String appKey=(String) request.getHeader("Appkey"); 76 String appKey=(String) request.getHeader("Appkey");
75 String timeStamp=(String) request.getHeader("TimeStamp"); 77 String timeStamp=(String) request.getHeader("TimeStamp");
76 IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLog(mawb,appId,appKey,new Date(Long.valueOf(timeStamp)))); 78 IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLog(mawb,appId,appKey,new Date(Long.valueOf(timeStamp))));
77 - 79 + String checkUser = mawbService.checkUser(appId);
80 + if (!StringUtil.isEmpty(checkUser)){
81 + result.setCode(ErrorCodeEnum.ERROR_30003.getCode());
82 + result.setMsg(checkUser);
83 + return result;
84 + }
78 mawb.setAppId(appId); 85 mawb.setAppId(appId);
79 if(!Objects.equals(saveIClearApiLogResult,null)){ 86 if(!Objects.equals(saveIClearApiLogResult,null)){
80 log.info("请求保存成功,msgId:"+saveIClearApiLogResult.getMsgId()); 87 log.info("请求保存成功,msgId:"+saveIClearApiLogResult.getMsgId());
...@@ -108,13 +115,20 @@ public class CustomsDataInterface { ...@@ -108,13 +115,20 @@ public class CustomsDataInterface {
108 } 115 }
109 sw.stop(); 116 sw.stop();
110 117
118 + //校验单据币制
119 + result = mawbService.checkCurrency(mawb);
120 + if(!result.getSuccess()){
121 + return result;
122 + }
123 +
111 124
112 //2、TODO 校验主单 125 //2、TODO 校验主单
113 sw.start("checkMawb"); 126 sw.start("checkMawb");
114 - result=mawbService.checkMawb(mawb); 127 + result=mawbService.checkMawb(mawb,appId);
115 if(!result.getSuccess()){ 128 if(!result.getSuccess()){
116 return result; 129 return result;
117 } 130 }
131 +
118 sw.stop(); 132 sw.stop();
119 133
120 // //3、TODO 校验子单 134 // //3、TODO 校验子单
......
...@@ -36,6 +36,9 @@ public class FedexDataInterface { ...@@ -36,6 +36,9 @@ public class FedexDataInterface {
36 private FedexService fedexService; 36 private FedexService fedexService;
37 37
38 @Autowired 38 @Autowired
39 + private MawbService mawbService;
40 +
41 + @Autowired
39 private ChmConsignmentService chmConsignmentService; 42 private ChmConsignmentService chmConsignmentService;
40 43
41 @Autowired 44 @Autowired
...@@ -98,10 +101,16 @@ public class FedexDataInterface { ...@@ -98,10 +101,16 @@ public class FedexDataInterface {
98 sw.start("generate FedexMawb"); 101 sw.start("generate FedexMawb");
99 fedexc.setAppId(appId); 102 fedexc.setAppId(appId);
100 FedexMawb saveMawbFedexResult = fedexService.generateFedexMawb(fedexc); 103 FedexMawb saveMawbFedexResult = fedexService.generateFedexMawb(fedexc);
104 +
105 + //检验运单币制是否有效
106 + ResultRS resultRS = mawbService.checkCurrency(saveMawbFedexResult);
107 + if(!resultRS.getSuccess()){
108 + return resultRS;
109 + }
101 sw.stop(); 110 sw.stop();
102 111
103 sw.start("checkFedexMawb"); 112 sw.start("checkFedexMawb");
104 - ResultRS iclearCheckRs = fedexService.checkFedexMawb(saveMawbFedexResult,appInfo); 113 + ResultRS iclearCheckRs = fedexService.checkFedexMawb(saveMawbFedexResult,appInfo,appId);
105 //返回结果 114 //返回结果
106 ResultRS result = new ResultRS(Boolean.TRUE,ErrorCodeEnum.SUCCESS.getCode(),null,null); 115 ResultRS result = new ResultRS(Boolean.TRUE,ErrorCodeEnum.SUCCESS.getCode(),null,null);
107 if(nonEmptyCheck.getSuccess() && iclearCheckRs.getSuccess()){ 116 if(nonEmptyCheck.getSuccess() && iclearCheckRs.getSuccess()){
...@@ -157,7 +166,12 @@ public class FedexDataInterface { ...@@ -157,7 +166,12 @@ public class FedexDataInterface {
157 String appKey=(String) request.getHeader("Appkey"); 166 String appKey=(String) request.getHeader("Appkey");
158 String timeStamp=(String) request.getHeader("TimeStamp"); 167 String timeStamp=(String) request.getHeader("TimeStamp");
159 IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLogC(fedexc,appId,appKey,new Date(Long.valueOf(timeStamp)))); 168 IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLogC(fedexc,appId,appKey,new Date(Long.valueOf(timeStamp))));
160 - 169 + String checkUser = mawbService.checkUser(appId);
170 + if (!StringUtil.isEmpty(checkUser)){
171 + result.setCode(ErrorCodeEnum.ERROR_30003.getCode());
172 + result.setMsg(checkUser);
173 + return result;
174 + }
161 fedexc.setAppId(appId); 175 fedexc.setAppId(appId);
162 FedexMawb saveMawbFedexResult = null; 176 FedexMawb saveMawbFedexResult = null;
163 if(!Objects.equals(saveIClearApiLogResult,null)){ 177 if(!Objects.equals(saveIClearApiLogResult,null)){
...@@ -177,10 +191,16 @@ public class FedexDataInterface { ...@@ -177,10 +191,16 @@ public class FedexDataInterface {
177 } 191 }
178 sw.stop(); 192 sw.stop();
179 193
194 + //检验运单币制是否有效
195 + ResultRS resultRS = mawbService.checkCurrency(saveMawbFedexResult);
196 + if(!resultRS.getSuccess()){
197 + return resultRS;
198 + }
199 +
180 200
181 //2、TODO 校验主单 201 //2、TODO 校验主单
182 sw.start("checkFedexMawb"); 202 sw.start("checkFedexMawb");
183 - result=fedexService.checkFedexMawb(saveMawbFedexResult,null); 203 + result=fedexService.checkFedexMawb(saveMawbFedexResult,null,appId);
184 if(!result.getSuccess()){ 204 if(!result.getSuccess()){
185 return result; 205 return result;
186 } 206 }
...@@ -201,6 +221,7 @@ public class FedexDataInterface { ...@@ -201,6 +221,7 @@ public class FedexDataInterface {
201 return result; 221 return result;
202 } 222 }
203 sw.stop(); 223 sw.stop();
224 + log.info("saveIClearApiLogResult.getCreateTime():"+saveIClearApiLogResult.getCreateTime());
204 ChmConsignment chmGetId = chmConsignmentRepository.findChmConsignmentByConsignmentCode(saveIClearApiLogResult.getBillNo(), saveIClearApiLogResult.getCreateTime()); 225 ChmConsignment chmGetId = chmConsignmentRepository.findChmConsignmentByConsignmentCode(saveIClearApiLogResult.getBillNo(), saveIClearApiLogResult.getCreateTime());
205 //调用IClear接口进行运单推送EXP002 226 //调用IClear接口进行运单推送EXP002
206 String objJson = JsonToJava.toJson(chmGetId.getId()); 227 String objJson = JsonToJava.toJson(chmGetId.getId());
......
...@@ -23,7 +23,7 @@ import java.util.Date; ...@@ -23,7 +23,7 @@ import java.util.Date;
23 @Slf4j 23 @Slf4j
24 public class VersionInterface { 24 public class VersionInterface {
25 //当前版本号 25 //当前版本号
26 - final String VERSION = "2.2"; 26 + final String VERSION = "2.6.1";
27 27
28 @ApiOperation(value = "获取当前API版本", httpMethod = "GET", notes = "ex: http://192.168.1.71:8080/version/version") 28 @ApiOperation(value = "获取当前API版本", httpMethod = "GET", notes = "ex: http://192.168.1.71:8080/version/version")
29 @GetMapping("/version") 29 @GetMapping("/version")
......
...@@ -100,4 +100,21 @@ public class Constant { ...@@ -100,4 +100,21 @@ public class Constant {
100 * 监管条件 100 * 监管条件
101 */ 101 */
102 public static final String supervise_condition = "superviseRestrict"; 102 public static final String supervise_condition = "superviseRestrict";
103 +
104 + /**
105 + * DM004接收取件信息
106 + */
107 + public static final String FILE_TYPE_GET_PICK_INFORMATION = "fileType_5";
108 +
109 + //OSPR状态
110 + /**
111 + * 未完成
112 + */
113 + public static final String OSPR_STATUS_INCOMPLETED = "OSPRStatus_1";
114 +
115 + //扫描代码
116 + /**
117 + * C类已取件
118 + */
119 + public static final String SCAN_CODE_TAKEN_PART= "scanCode_1";
103 } 120 }
......
1 +package com.erry.iclear.dateInterface.dto;
2 +
3 +import com.erry.iclear.dateInterface.entity.HsCodeAndDescription;
4 +import com.erry.iclear.dateInterface.entity.SysUser;
5 +import lombok.Data;
6 +
7 +import java.util.Date;
8 +
9 +@Data
10 +public class HsCodeAndDescriptionDto {
11 +
12 + private Long id;
13 +
14 + private String a;
15 +
16 + private String b;
17 +
18 + /***
19 + * 类型
20 + * 1表示hsCode清单
21 +
22 + * 2表示品名品名清单
23 + */
24 + private int type;
25 +
26 + //用户
27 + private SysUser sysUser;
28 +
29 + private Date createTime;
30 +
31 + private String errorMsg;
32 +
33 + private String rowNum;
34 +
35 + public HsCodeAndDescriptionDto() {
36 + }
37 +
38 + public HsCodeAndDescriptionDto(HsCodeAndDescription hsCodeAndDescription) {
39 + this.setId(hsCodeAndDescription.getId());
40 + this.setA(hsCodeAndDescription.getA());
41 + this.setB(hsCodeAndDescription.getB());
42 + this.setType(hsCodeAndDescription.getType());
43 + this.setSysUser(hsCodeAndDescription.getSysUser());
44 + this.setCreateTime(hsCodeAndDescription.getCreateTime());
45 + }
46 +}
...\ No newline at end of file ...\ No newline at end of file
...@@ -3,7 +3,6 @@ package com.erry.iclear.dateInterface.entity; ...@@ -3,7 +3,6 @@ package com.erry.iclear.dateInterface.entity;
3 3
4 import com.fasterxml.jackson.annotation.JsonIgnore; 4 import com.fasterxml.jackson.annotation.JsonIgnore;
5 import lombok.Data; 5 import lombok.Data;
6 -import org.springframework.format.annotation.DateTimeFormat;
7 6
8 import javax.persistence.*; 7 import javax.persistence.*;
9 import java.io.Serializable; 8 import java.io.Serializable;
...@@ -413,6 +412,62 @@ public class ChmConsignment implements Serializable { ...@@ -413,6 +412,62 @@ public class ChmConsignment implements Serializable {
413 @Column(name = "EANNO") 412 @Column(name = "EANNO")
414 private String eanNo; 413 private String eanNo;
415 414
415 + /**
416 + * 扫描代码ID
417 + */
418 + @JsonIgnore
419 + @ManyToOne(targetEntity = DictionaryEntries.class)
420 + @JoinColumn(name = "SCAN_CODE_ID")
421 + private DictionaryEntries scanCodeDic;
422 +
423 + /**
424 + * 扫描代码
425 + */
426 + @Column(name = "SCAN_CODE")
427 + private String scanCode;
428 +
429 + /**
430 + * 扫描状态日期
431 + */
432 + @Column(name = "SCAN_STATUS_TIME")
433 + private Date scanStatusTime;
434 +
435 + /**
436 + * 运单类型ID
437 + */
438 +// @JsonIgnore
439 +// @ManyToOne(targetEntity = DictionaryEntries.class)
440 +// @JoinColumn(name = "CONS_TYPE_ID")
441 +// private DictionaryEntries consTypeDic;
442 +
443 + /**
444 + * OSPR状态ID
445 + */
446 + @JsonIgnore
447 + @ManyToOne(targetEntity = DictionaryEntries.class)
448 + @JoinColumn(name = "OSPR_STATUS_ID")
449 + private DictionaryEntries osprStatusDic;
450 +
451 + /**
452 + * 站点
453 + */
454 + @JsonIgnore
455 + @ManyToOne(targetEntity = Organization.class)
456 + @JoinColumn(name = "STATION_ID")
457 + private Organization station;
458 +
459 + /**
460 + * 站点名称
461 + */
462 + @Column(name = "STATION_NAME")
463 + private String stationName;
464 +
465 + /**
466 + * 取件日期
467 + */
468 + @Column(name = "PICK_UP_DATE")
469 + private Date pickUpDate;
470 +
416 @OneToMany(mappedBy = "chmConsignment", cascade = CascadeType.ALL) 471 @OneToMany(mappedBy = "chmConsignment", cascade = CascadeType.ALL)
417 private List<ChmConsignmentDetail> chmConsignmentDetailList; 472 private List<ChmConsignmentDetail> chmConsignmentDetailList;
418 473
......
1 +package com.erry.iclear.dateInterface.entity;
2 +
3 +import com.fasterxml.jackson.annotation.JsonIgnore;
4 +import lombok.Data;
5 +
6 +import javax.persistence.*;
7 +import java.util.Date;
8 +
9 +@Entity
10 +@Table(name = "T_AU_HSCODE_DESCRIPTION")
11 +@Data
12 +public class HsCodeAndDescription {
13 +
14 + private static final long serialVersionUID = 1L;
15 +
16 + @Id
17 + @GeneratedValue
18 + @Column(name = "ID")
19 + private Long id;
20 +
21 + @Column(name = "A")
22 + private String a;
23 +
24 + @Column(name = "B")
25 + private String b;
26 +
27 + /***
28 + * 类型
29 + * 1表示hsCode清单
30 +
31 + * 2表示品名品名清单
32 + */
33 + @Column(name = "TYPE")
34 + private int type;
35 +
36 + //用户
37 + @JsonIgnore
38 + @ManyToOne(targetEntity = SysUser.class)
39 + @JoinColumn(name = "USER_ID")
40 + private SysUser sysUser;
41 +
42 + //创建时间
43 + @Column(name = "CREATETIME")
44 + private Date createTime;
45 +
46 +}
...@@ -27,7 +27,8 @@ public enum ErrorCodeEnum { ...@@ -27,7 +27,8 @@ public enum ErrorCodeEnum {
27 ERROR_30102("30102","hscode编码字段长度超过2000字符"), 27 ERROR_30102("30102","hscode编码字段长度超过2000字符"),
28 ERROR_30103("30103","skuCode与skuName必须传递一项"), 28 ERROR_30103("30103","skuCode与skuName必须传递一项"),
29 ERROR_30104("30104","skuCode或skuName长度超出限制"), 29 ERROR_30104("30104","skuCode或skuName长度超出限制"),
30 - ERROR_30105("30105","skuCode编码最少输入4位字符,skuName最少输入2个字符"); 30 + ERROR_30105("30105","skuCode编码最少输入4位字符,skuName最少输入2个字符"),
31 + ERROR_30106("30106","此申报{columnName}币制不在海关要求的范围内 请修改!");
31 32
32 33
33 ErrorCodeEnum(String code,String name){ 34 ErrorCodeEnum(String code,String name){
......
...@@ -99,4 +99,5 @@ public class SignInterceptor extends HandlerInterceptorAdapter { ...@@ -99,4 +99,5 @@ public class SignInterceptor extends HandlerInterceptorAdapter {
99 } 99 }
100 } 100 }
101 } 101 }
102 +
102 } 103 }
......
...@@ -4,7 +4,6 @@ import com.erry.iclear.dateInterface.entity.ChmConsignment; ...@@ -4,7 +4,6 @@ import com.erry.iclear.dateInterface.entity.ChmConsignment;
4 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.data.jpa.repository.Query;
7 -import org.springframework.data.repository.query.Param;
8 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
9 8
10 import java.util.Date; 9 import java.util.Date;
...@@ -33,6 +32,15 @@ public interface ChmConsignmentRepository extends JpaSpecificationExecutor<ChmCo ...@@ -33,6 +32,15 @@ public interface ChmConsignmentRepository extends JpaSpecificationExecutor<ChmCo
33 public ChmConsignment findChmConsignmentByConsignmentCode(String consignmentCode,Date startDate); 32 public ChmConsignment findChmConsignmentByConsignmentCode(String consignmentCode,Date startDate);
34 33
35 /** 34 /**
35 + * 根据运单号查找多条数据
36 + * @param consignmentCode
37 + * @param startDate
38 + * @return
39 + */
40 + @Query( nativeQuery = true,value ="select * from T_CHM_CONSIGNMENT where CONSIGNMENT_CODE = ?1 and CREATE_TIME>= ?2 and CREATOR = ?3" )
41 + public List<ChmConsignment> findChmConsignmentByConsignmentCodes(String consignmentCode,Date startDate,String creator);
42 +
43 + /**
36 * 根据运单ID查运单 44 * 根据运单ID查运单
37 * @param id 45 * @param id
38 * @return 46 * @return
......
1 +package com.erry.iclear.dateInterface.repository;
2 +
3 +import com.erry.iclear.dateInterface.entity.HsCodeAndDescription;
4 +import org.springframework.data.jpa.repository.JpaRepository;
5 +import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 +import org.springframework.data.jpa.repository.Query;
7 +import org.springframework.stereotype.Repository;
8 +
9 +import java.util.List;
10 +@Repository
11 +public interface HsCodeAndDescriptionRepository extends JpaSpecificationExecutor<HsCodeAndDescription>, JpaRepository<HsCodeAndDescription, Long> {
12 + @Query(nativeQuery = true,value = "select * from T_AU_HSCODE_DESCRIPTION where TYPE = ?1 ")
13 + public List<HsCodeAndDescription> selectAndType(int type);
14 +}
1 +package com.erry.iclear.dateInterface.repository;
2 +
3 +import com.erry.iclear.dateInterface.entity.Organization;
4 +import org.springframework.data.jpa.repository.JpaRepository;
5 +import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 +import org.springframework.data.jpa.repository.Query;
7 +import org.springframework.data.repository.query.Param;
8 +import org.springframework.stereotype.Repository;
9 +
10 +@Repository
11 +public interface OrganizationRepository extends JpaSpecificationExecutor<Organization>, JpaRepository<Organization, Long> {
12 + @Query(nativeQuery = true, value = "select top 1 * from T_AU_ORGANIZATION o where o.NAME = :name ")
13 + public Organization findOrganizationByName(@Param("name") String name);
14 +}
1 +package com.erry.iclear.dateInterface.repository;
2 +
3 +import com.erry.iclear.dateInterface.entity.TaskInfo;
4 +import org.springframework.data.jpa.repository.JpaRepository;
5 +import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 +import org.springframework.data.jpa.repository.Query;
7 +import org.springframework.data.repository.query.Param;
8 +import org.springframework.stereotype.Repository;
9 +
10 +@Repository
11 +public interface TaskInfoRepository extends JpaSpecificationExecutor<TaskInfo>, JpaRepository<TaskInfo, Long> {
12 +
13 + @Query(nativeQuery = true, value = "select top 1 * from T_TASK_INFO info where info.FILE_TYPE_ID = :fileTypeId and " +
14 + "info.AWB_NUMBER = :consignmentCode order by CREATE_TIME DESC")
15 + public TaskInfo findTaskInfoByConsignment(@Param("fileTypeId") Long taskStatusId,@Param("consignmentCode") String consignmentCode);
16 +
17 +}
...@@ -212,7 +212,7 @@ public class ApiService { ...@@ -212,7 +212,7 @@ public class ApiService {
212 }); 212 });
213 this.sendMawb(token,mawbList); 213 this.sendMawb(token,mawbList);
214 }catch(Exception ex){ 214 }catch(Exception ex){
215 - log.error("pushMawbAcc",ex); 215 + log.error(ex.getMessage(),ex);
216 } 216 }
217 } 217 }
218 /** 218 /**
...@@ -245,7 +245,7 @@ public class ApiService { ...@@ -245,7 +245,7 @@ public class ApiService {
245 declearTask.setPushTime(new Date()); 245 declearTask.setPushTime(new Date());
246 String objJson = JsonToJava.toJson(d); 246 String objJson = JsonToJava.toJson(d);
247 //推送海关回执数据 247 //推送海关回执数据
248 - String json = HttpUtils.doProxyPost(this.customsUrl,objJson,headerMap,this.proxyUrl,this.proxyPort); 248 + String json = HttpUtils.doProxyPost(this.completeMsgUrl,objJson,headerMap,this.proxyUrl,this.proxyPort);
249 log.info("sendMawb:"+json); 249 log.info("sendMawb:"+json);
250 //接口响应时间 250 //接口响应时间
251 declearTask.setResponseTime(new Date()); 251 declearTask.setResponseTime(new Date());
......
...@@ -113,13 +113,13 @@ public class FedexService { ...@@ -113,13 +113,13 @@ public class FedexService {
113 * @param fedexMawb 113 * @param fedexMawb
114 * @return 114 * @return
115 */ 115 */
116 - public ResultRS checkFedexMawb(FedexMawb fedexMawb,AppInfo appInfo){ 116 + public ResultRS checkFedexMawb(FedexMawb fedexMawb,AppInfo appInfo,String appId){
117 ResultRS result = new ResultRS(Boolean.FALSE,null,null,null); 117 ResultRS result = new ResultRS(Boolean.FALSE,null,null,null);
118 try{ 118 try{
119 log.info("checkMawb start>>>>>>>>>> mawb:"+gson.toJson(fedexMawb)); 119 log.info("checkMawb start>>>>>>>>>> mawb:"+gson.toJson(fedexMawb));
120 120
121 //1、将请求转换为运单 121 //1、将请求转换为运单
122 - ChmConsignment chmConsignment=consignmentService.convertToChmConsignmentFedex(fedexMawb,null,"IDE-ICLEAR-API",appInfo); 122 + ChmConsignment chmConsignment=consignmentService.convertToChmConsignmentFedex(fedexMawb,null,appId,appInfo);
123 if(Objects.equals(chmConsignment,null)){ 123 if(Objects.equals(chmConsignment,null)){
124 result.setCode(ErrorCodeEnum.ERROR_7.getCode()); 124 result.setCode(ErrorCodeEnum.ERROR_7.getCode());
125 result.setMsg(ErrorCodeEnum.ERROR_7.getName()); 125 result.setMsg(ErrorCodeEnum.ERROR_7.getName());
......
1 package com.erry.iclear.dateInterface.service; 1 package com.erry.iclear.dateInterface.service;
2 2
3 -import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
4 import com.erry.iclear.dateInterface.api.request.HsCodeParam; 3 import com.erry.iclear.dateInterface.api.request.HsCodeParam;
5 import com.erry.iclear.dateInterface.api.response.ResultHsCode; 4 import com.erry.iclear.dateInterface.api.response.ResultHsCode;
6 import com.erry.iclear.dateInterface.common.Constant; 5 import com.erry.iclear.dateInterface.common.Constant;
6 +import com.erry.iclear.dateInterface.dto.HsCodeAndDescriptionDto;
7 import com.erry.iclear.dateInterface.entity.HsCode; 7 import com.erry.iclear.dateInterface.entity.HsCode;
8 +import com.erry.iclear.dateInterface.entity.HsCodeAndDescription;
9 +import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
8 import com.erry.iclear.dateInterface.repository.DictionaryEntriesRepository; 10 import com.erry.iclear.dateInterface.repository.DictionaryEntriesRepository;
11 +import com.erry.iclear.dateInterface.repository.HsCodeAndDescriptionRepository;
9 import com.erry.iclear.dateInterface.repository.HsCodeRepository; 12 import com.erry.iclear.dateInterface.repository.HsCodeRepository;
10 import com.erry.iclear.dateInterface.util.StringUtil; 13 import com.erry.iclear.dateInterface.util.StringUtil;
11 import lombok.extern.slf4j.Slf4j; 14 import lombok.extern.slf4j.Slf4j;
12 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.stereotype.Service; 16 import org.springframework.stereotype.Service;
14 17
15 -import java.util.*; 18 +import java.math.BigDecimal;
19 +import java.util.Arrays;
20 +import java.util.HashMap;
21 +import java.util.List;
22 +import java.util.Map;
16 23
17 /** 24 /**
18 * hscode service 25 * hscode service
...@@ -27,6 +34,8 @@ public class HsCodeService { ...@@ -27,6 +34,8 @@ public class HsCodeService {
27 HsCodeRepository hsCodeRepository; 34 HsCodeRepository hsCodeRepository;
28 @Autowired 35 @Autowired
29 DictionaryEntriesRepository dicEntriesRepository; 36 DictionaryEntriesRepository dicEntriesRepository;
37 + @Autowired
38 + HsCodeAndDescriptionRepository hsCodeAndDescriptionRepository;
30 39
31 /** 40 /**
32 * 根据hscode编码查询对应的hscode 41 * 根据hscode编码查询对应的hscode
...@@ -168,29 +177,73 @@ public class HsCodeService { ...@@ -168,29 +177,73 @@ public class HsCodeService {
168 * 2023年2月24日17:29:49 177 * 2023年2月24日17:29:49
169 */ 178 */
170 public void setHscodeSupervise(List<HsCode> hsCodeList){ 179 public void setHscodeSupervise(List<HsCode> hsCodeList){
171 - List<Long> hsCodeIds = new ArrayList<>(); 180 + Map hsCodeAndDescription1 = new HashMap();
172 - Map<String,Object> hscodeMap = this.getHscodeSupervise(); 181 + List<HsCodeAndDescription> hsCodeAndDescriptionList = hsCodeAndDescriptionRepository.selectAndType(1);
173 - StringBuffer shsql = new StringBuffer("'"); 182 + if (hsCodeAndDescriptionList.size() > 0) {
174 - if (hscodeMap !=null && hscodeMap.size()>0){ 183 + for (HsCodeAndDescription hsCodeAndDescription : hsCodeAndDescriptionList) {
175 - for (Map.Entry hscodeEntry :hscodeMap.entrySet()){ 184 + HsCodeAndDescriptionDto hsCodeAndDescriptionDto = new HsCodeAndDescriptionDto(hsCodeAndDescription);
176 - HsCode hsCode = (HsCode) hscodeEntry.getValue(); 185 + hsCodeAndDescription1.put(hsCodeAndDescriptionDto.getB(), hsCodeAndDescriptionDto);
177 - hsCodeIds.add(hsCode.getId());
178 } 186 }
179 } 187 }
180 - hsCodeList.forEach(hsCode->{ 188 + List<String> dictionaryEntriesList = dicEntriesRepository.findDicEntByCodeList(Constant.supervise_condition,1);
181 - //判断该hscode是否只能申报D类 189 + for (HsCode hsCode : hsCodeList) {
182 - if(hsCodeIds.contains(hsCode.getId())){ 190 + Map<String,Object> hscodeMap = new HashMap<>();
183 - //d类 191 + hscodeMap.put("success",false);
192 + Boolean isTrue = false;
193 + if (hsCode !=null){
194 + if(hsCodeAndDescription1.size()>0){
195 + String fieldValue =getSubHscode(hsCode.getSkuCode());
196 + if (hsCodeAndDescription1.size()>0 && !StringUtil.isEmptyWithTrim(fieldValue)){
197 + //hsCodeAndDescription1.get(fieldValue);
198 + if (hsCodeAndDescription1.get(fieldValue) != null){
199 + isTrue = true;
200 + }
201 + }
202 + }
203 + if (dictionaryEntriesList != null && dictionaryEntriesList.size() >0){
204 + for (String str : dictionaryEntriesList){
205 + if (!StringUtil.isEmptyWithTrim(hsCode.getMonitorCondition()) || hsCode.getOutRate() != null){
206 + if (hsCode.getMonitorCondition().indexOf(str) > -1 || hsCode.getOutRate().compareTo(BigDecimal.valueOf(0)) > 0){
207 + isTrue = true;
208 + }
209 + }
210 + }
211 + }
212 + if (isTrue){
184 hsCode.setRestrictedC(1); 213 hsCode.setRestrictedC(1);
185 - }else{ 214 + }else {
186 - //C类
187 hsCode.setRestrictedC(0); 215 hsCode.setRestrictedC(0);
188 } 216 }
189 - //如果ID为空,则设置为空 217 + if (hsCode.getId()==null){
190 - if(hsCode.getId() == null){
191 hsCode.setRestrictedC(null); 218 hsCode.setRestrictedC(null);
192 } 219 }
193 - }); 220 + }
221 + }
222 +
223 +
224 +// List<Long> hsCodeIds = new ArrayList<>();
225 +// Map<String,Object> hscodeMap = this.getHscodeSupervise();
226 +// StringBuffer shsql = new StringBuffer("'");
227 +// if (hscodeMap !=null && hscodeMap.size()>0){
228 +// for (Map.Entry hscodeEntry :hscodeMap.entrySet()){
229 +// HsCode hsCode = (HsCode) hscodeEntry.getValue();
230 +// hsCodeIds.add(hsCode.getId());
231 +// }
232 +// }
233 +// hsCodeList.forEach(hsCode->{
234 +// //判断该hscode是否只能申报D类
235 +// if(hsCodeIds.contains(hsCode.getId())){
236 +// //d类
237 +// hsCode.setRestrictedC(1);
238 +// }else{
239 +// //C类
240 +// hsCode.setRestrictedC(0);
241 +// }
242 +// //如果ID为空,则设置为空
243 +// if(hsCode.getId() == null){
244 +// hsCode.setRestrictedC(null);
245 +// }
246 +// });
194 } 247 }
195 248
196 /** 249 /**
......
1 package com.erry.iclear.dateInterface.service; 1 package com.erry.iclear.dateInterface.service;
2 2
3 -import com.erry.iclear.dateInterface.enums.ErrorCodeEnum; 3 +import com.erry.iclear.dateInterface.api.request.FedexMawb;
4 +import com.erry.iclear.dateInterface.api.request.FedexMawbDetail;
4 import com.erry.iclear.dateInterface.api.request.Mawb; 5 import com.erry.iclear.dateInterface.api.request.Mawb;
5 import com.erry.iclear.dateInterface.api.request.MawbDetail; 6 import com.erry.iclear.dateInterface.api.request.MawbDetail;
6 import com.erry.iclear.dateInterface.api.response.IClearCheckResult; 7 import com.erry.iclear.dateInterface.api.response.IClearCheckResult;
7 import com.erry.iclear.dateInterface.api.response.ResultRS; 8 import com.erry.iclear.dateInterface.api.response.ResultRS;
9 +import com.erry.iclear.dateInterface.common.Constant;
8 import com.erry.iclear.dateInterface.entity.ChmConsignment; 10 import com.erry.iclear.dateInterface.entity.ChmConsignment;
9 import com.erry.iclear.dateInterface.entity.ChmConsignmentDetail; 11 import com.erry.iclear.dateInterface.entity.ChmConsignmentDetail;
12 +import com.erry.iclear.dateInterface.entity.DictionaryEntries;
13 +import com.erry.iclear.dateInterface.entity.SysUser;
14 +import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
15 +import com.erry.iclear.dateInterface.repository.DictionaryEntriesRepository;
10 import com.erry.iclear.dateInterface.repository.MawbRepository; 16 import com.erry.iclear.dateInterface.repository.MawbRepository;
17 +import com.erry.iclear.dateInterface.repository.SysUserRepository;
11 import com.erry.iclear.dateInterface.util.HttpUtils; 18 import com.erry.iclear.dateInterface.util.HttpUtils;
12 import com.erry.iclear.dateInterface.util.JsonToJava; 19 import com.erry.iclear.dateInterface.util.JsonToJava;
13 import com.erry.iclear.dateInterface.util.StringUtil; 20 import com.erry.iclear.dateInterface.util.StringUtil;
14 import com.google.gson.Gson; 21 import com.google.gson.Gson;
15 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
23 +import org.apache.commons.lang3.StringUtils;
16 import org.springframework.beans.factory.annotation.Autowired; 24 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.beans.factory.annotation.Value; 25 import org.springframework.beans.factory.annotation.Value;
18 import org.springframework.stereotype.Service; 26 import org.springframework.stereotype.Service;
...@@ -40,6 +48,12 @@ public class MawbService { ...@@ -40,6 +48,12 @@ public class MawbService {
40 @Autowired 48 @Autowired
41 private ChmConsignmentDetailService consignmentDetailService; 49 private ChmConsignmentDetailService consignmentDetailService;
42 50
51 + @Autowired
52 + private DictionaryEntriesRepository dictionaryEntriesRepository;
53 +
54 + @Autowired
55 + private SysUserRepository sysUserRepository;
56 +
43 /** 57 /**
44 * 保存主单Request 58 * 保存主单Request
45 * @param mawb 59 * @param mawb
...@@ -60,6 +74,16 @@ public class MawbService { ...@@ -60,6 +74,16 @@ public class MawbService {
60 return map; 74 return map;
61 } 75 }
62 76
77 + public String checkUser(String loginName){
78 + String result = null;
79 + SysUser sysUser = sysUserRepository.findUserByLoginName(loginName);
80 + if (sysUser == null){
81 + result = "该用户不存在";
82 + return result;
83 + }
84 + return result;
85 + }
86 +
63 87
64 public String checkMawbBaseInfo(Mawb mawb){ 88 public String checkMawbBaseInfo(Mawb mawb){
65 89
...@@ -165,18 +189,138 @@ public class MawbService { ...@@ -165,18 +189,138 @@ public class MawbService {
165 } 189 }
166 return ""; 190 return "";
167 } 191 }
192 + /**
193 + * 检查成交币制在系统中是否有效 Constant.CURRENCY_SYSTEM+ mawbDetail.getTradeCurr();
194 + * 成交币制 TradeCurr
195 + * 杂费币制 OtherCurr
196 + * 运费币制 FeeCurr
197 + * 保费币制 InsurCurr
198 + *
199 + */
200 + public ResultRS checkCurrency(Mawb mawb){
201 + ResultRS result = new ResultRS(Boolean.TRUE,null,null,null);
202 +
203 + String feeCurr = mawb.getFeeCurr();
204 + DictionaryEntries feeCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + feeCurr);
205 +
206 + String otherCurr = mawb.getOtherCurr();
207 + DictionaryEntries otherCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + otherCurr);
208 +
209 + String insurCurr = mawb.getInsurCurr();
210 + DictionaryEntries insurCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + insurCurr);
211 +
212 + //运费币制检查
213 + if (StringUtils.isNotEmpty(feeCurr) && Objects.isNull(feeCurrDict) ){
214 + result.setSuccess(Boolean.FALSE);
215 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
216 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}","运费"));
217 + return result;
218 + }
219 +
220 + //杂费币制检查
221 + if (StringUtils.isNotEmpty(otherCurr) && Objects.isNull(otherCurrDict) ){
222 + result.setSuccess(Boolean.FALSE);
223 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
224 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}","杂费"));
225 + return result;
226 + }
227 +
228 + //保费币制检查
229 + if (StringUtils.isNotEmpty(insurCurr) && Objects.isNull(insurCurrDict) ){
230 + result.setSuccess(Boolean.FALSE);
231 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
232 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}","保费"));
233 + return result;
234 + }
235 +
236 + //申报币制检查
237 + List<MawbDetail> mawbDetailList = mawb.getMawbDetailList();
238 + for (int i = 0, maxi = mawbDetailList.size(); i < maxi; i++) {
239 + MawbDetail mawbDetail = mawbDetailList.get(i);
240 + String tradeCurr = mawbDetail.getTradeCurr();
241 + DictionaryEntries tradeCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + tradeCurr);
242 + if((StringUtils.isNotEmpty(tradeCurr) && Objects.isNull(tradeCurrDict))){
243 + result.setSuccess(Boolean.FALSE);
244 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
245 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}",""));
246 + break;
247 + }
248 + }
249 +
250 + return result;
251 + }
252 + /**
253 + * 检查成交币制在系统中是否有效 Constant.CURRENCY_SYSTEM+ mawbDetail.getTradeCurr();
254 + * 成交币制 TradeCurr
255 + * 杂费币制 OtherCurr
256 + * 运费币制 FeeCurr
257 + * 保费币制 InsurCurr
258 + *
259 + */
260 + public ResultRS checkCurrency(FedexMawb mawb){
261 + ResultRS result = new ResultRS(Boolean.TRUE,null,null,null);
262 +
263 + String feeCurr = mawb.getFeeCurr();
264 + DictionaryEntries feeCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + feeCurr);
265 +
266 + String otherCurr = mawb.getOtherCurr();
267 + DictionaryEntries otherCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + otherCurr);
268 +
269 + String insurCurr = mawb.getInsurCurr();
270 + DictionaryEntries insurCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + insurCurr);
271 +
272 + //运费币制检查
273 + if (StringUtils.isNotEmpty(feeCurr) && Objects.isNull(feeCurrDict) ){
274 + result.setSuccess(Boolean.FALSE);
275 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
276 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}","运费"));
277 + return result;
278 + }
279 +
280 + //杂费币制检查
281 + if (StringUtils.isNotEmpty(otherCurr) && Objects.isNull(otherCurrDict) ){
282 + result.setSuccess(Boolean.FALSE);
283 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
284 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}","杂费"));
285 + return result;
286 + }
287 +
288 + //保费币制检查
289 + if (StringUtils.isNotEmpty(insurCurr) && Objects.isNull(insurCurrDict) ){
290 + result.setSuccess(Boolean.FALSE);
291 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
292 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}","保费"));
293 + return result;
294 + }
295 +
296 + //申报币制检查
297 + List<FedexMawbDetail> mawbDetailList = mawb.getMawbDetailList();
298 + for (int i = 0, maxi = mawbDetailList.size(); i < maxi; i++) {
299 + FedexMawbDetail mawbDetail = mawbDetailList.get(i);
300 + String tradeCurr = mawbDetail.getTradeCurr();
301 + DictionaryEntries tradeCurrDict = Constant.dictionaryEntriesCache.get(Constant.CURRENCY_SYSTEM + tradeCurr);
302 + if((StringUtils.isNotEmpty(tradeCurr) && Objects.isNull(tradeCurrDict))){
303 + result.setSuccess(Boolean.FALSE);
304 + result.setCode(ErrorCodeEnum.ERROR_30106.getCode());
305 + result.setMsg(ErrorCodeEnum.ERROR_30106.getName().replace("{columnName}",""));
306 + break;
307 + }
308 + }
309 +
310 + return result;
311 + }
168 312
169 /** 313 /**
170 * 校验主单 314 * 校验主单
171 * @param mawb 315 * @param mawb
172 * @return 316 * @return
173 */ 317 */
174 - public ResultRS checkMawb(Mawb mawb){ 318 + public ResultRS checkMawb(Mawb mawb,String appId){
175 ResultRS result = new ResultRS(Boolean.FALSE,null,null,null); 319 ResultRS result = new ResultRS(Boolean.FALSE,null,null,null);
176 try{ 320 try{
177 log.info("checkMawb start>>>>>>>>>> mawb:"+gson.toJson(mawb)); 321 log.info("checkMawb start>>>>>>>>>> mawb:"+gson.toJson(mawb));
178 //1、将请求转换为运单 322 //1、将请求转换为运单
179 - ChmConsignment chmConsignment=consignmentService.convertToChmConsignment(mawb,null,"IDE-ICLEAR-API"); 323 + ChmConsignment chmConsignment=consignmentService.convertToChmConsignment(mawb,null,appId);
180 if(Objects.equals(chmConsignment,null)){ 324 if(Objects.equals(chmConsignment,null)){
181 result.setCode(ErrorCodeEnum.ERROR_30001.getCode()); 325 result.setCode(ErrorCodeEnum.ERROR_30001.getCode());
182 result.setMsg(ErrorCodeEnum.ERROR_30001.getName()); 326 result.setMsg(ErrorCodeEnum.ERROR_30001.getName());
......
...@@ -91,8 +91,13 @@ public class FileUtils { ...@@ -91,8 +91,13 @@ public class FileUtils {
91 // convertBase64ToFile(sb.toString(),"C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\","6666666666666.PDF"); 91 // convertBase64ToFile(sb.toString(),"C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\","6666666666666.PDF");
92 // String str = convertFileToBase64("C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\PEK00000008IM202307061516013911.PDF"); 92 // String str = convertFileToBase64("C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\PEK00000008IM202307061516013911.PDF");
93 // convertBase64ToFile(str,"C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\","6666666666666.PDF"); 93 // convertBase64ToFile(str,"C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\","6666666666666.PDF");
94 - String str = convertFileToBase64("C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\20220909134833_0159806202504.PDF"); 94 + String str = convertFileToBase64("C:\\Users\\erry-Fedex\\Desktop\\630315652909.pdf");
95 - convertBase64ToFile(str,"C:\\Users\\erry-Fedex\\Documents\\WeChat Files\\hyssmt\\FileStorage\\File\\2023-07\\","77777777777777.PDF"); 95 +// convertBase64ToFile(str,"C:\\Users\\erry-Fedex\\Desktop\\","77777777777777.PDF");
96 + System.out.println(str);
96 97
98 + String filePath="C:\\Users\\erry-Fedex\\Desktop\\33333.txt";
99 + FileOutputStream fos = new FileOutputStream(filePath);
100 + fos.write(str.getBytes());
101 + fos.close();
97 } 102 }
98 } 103 }
......
...@@ -45,3 +45,7 @@ stamp_file_name=stamp.png ...@@ -45,3 +45,7 @@ stamp_file_name=stamp.png
45 #\u4EE3\u7406\u5730\u5740\uFF08\u5237\u65B0token\u3001\u4F20\u8F93\u6D77\u5173\u56DE\u6267\u5730\u5740\u3001\u63A8\u9001\u5B8C\u6574\u62A5\u6587\u5730\u5740\uFF09 45 #\u4EE3\u7406\u5730\u5740\uFF08\u5237\u65B0token\u3001\u4F20\u8F93\u6D77\u5173\u56DE\u6267\u5730\u5740\u3001\u63A8\u9001\u5B8C\u6574\u62A5\u6587\u5730\u5740\uFF09
46 api.address.proxy-url=cn2-proxy.apac.fedex.com 46 api.address.proxy-url=cn2-proxy.apac.fedex.com
47 api.address.proxy-port=3128 47 api.address.proxy-port=3128
48 +
49 +#return_message job email
50 +send_email_msg=zhouling.zhang@erry.com;
51 +send_email_cc=ICE-IClear-Support@erry.com
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -38,3 +38,7 @@ stamp_file_name=stamp.png ...@@ -38,3 +38,7 @@ stamp_file_name=stamp.png
38 #\u4EE3\u7406\u5730\u5740\uFF08\u5237\u65B0token\u3001\u4F20\u8F93\u6D77\u5173\u56DE\u6267\u5730\u5740\u3001\u63A8\u9001\u5B8C\u6574\u62A5\u6587\u5730\u5740\uFF09 38 #\u4EE3\u7406\u5730\u5740\uFF08\u5237\u65B0token\u3001\u4F20\u8F93\u6D77\u5173\u56DE\u6267\u5730\u5740\u3001\u63A8\u9001\u5B8C\u6574\u62A5\u6587\u5730\u5740\uFF09
39 api.address.proxy-url=cn2-proxy.apac.fedex.com 39 api.address.proxy-url=cn2-proxy.apac.fedex.com
40 api.address.proxy-port=3128 40 api.address.proxy-port=3128
41 +
42 +#return_message job email
43 +send_email_msg=hyssmt@vip.qq.com,li.chang@erry.com,yi.zhou@erry.com,peterhuang@fedex.com
44 +send_email_cc=ICE-IClear-Support@erry.com
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -38,3 +38,7 @@ stamp_file_name=stamp.png ...@@ -38,3 +38,7 @@ stamp_file_name=stamp.png
38 #\u4EE3\u7406\u5730\u5740\uFF08\u5237\u65B0token\u3001\u4F20\u8F93\u6D77\u5173\u56DE\u6267\u5730\u5740\u3001\u63A8\u9001\u5B8C\u6574\u62A5\u6587\u5730\u5740\uFF09 38 #\u4EE3\u7406\u5730\u5740\uFF08\u5237\u65B0token\u3001\u4F20\u8F93\u6D77\u5173\u56DE\u6267\u5730\u5740\u3001\u63A8\u9001\u5B8C\u6574\u62A5\u6587\u5730\u5740\uFF09
39 api.address.proxy-url=cn2-proxy.apac.fedex.com 39 api.address.proxy-url=cn2-proxy.apac.fedex.com
40 api.address.proxy-port=3128 40 api.address.proxy-port=3128
41 +
42 +#return_message job email
43 +send_email_msg=zhouling.zhang@erry.com;
44 +send_email_cc=ICE-IClear-Support@erry.com
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -27,8 +27,3 @@ smtp_pwd= ...@@ -27,8 +27,3 @@ smtp_pwd=
27 email_bcc=donotreply@fedex.com 27 email_bcc=donotreply@fedex.com
28 #email link 28 #email link
29 #email_link=http://localhost:8080/Exp 29 #email_link=http://localhost:8080/Exp
...\ No newline at end of file ...\ No newline at end of file
30 -#user email
31 -send_email=hyssmt@vip.qq.com,li.chang@erry.com
32 -#return_message job email
33 -send_email_msg=hyssmt@vip.qq.com,li.chang@erry.com,yi.zhou@erry.com
34 -send_email_cc=ICE-IClear-Support@erry.com
......
...@@ -33,7 +33,7 @@ public class ApiTest { ...@@ -33,7 +33,7 @@ public class ApiTest {
33 public static void main(String[] args) throws Exception{ 33 public static void main(String[] args) throws Exception{
34 // BASF,iClearExportC,6db193cb4165a71b 34 // BASF,iClearExportC,6db193cb4165a71b
35 System.out.println(new Date(Long.valueOf(timeStamp))); 35 System.out.println(new Date(Long.valueOf(timeStamp)));
36 - String token = SHA256Util.getSHA256String("IMPORT" + "iClearExportIMPORT" + "2486378add08d872" + ApiTest.timeStamp); 36 + String token = SHA256Util.getSHA256String("SCMHOME" + "iClearExportSCMHOME" + "e9b55bcf692eb698" + ApiTest.timeStamp);
37 System.out.println(token); 37 System.out.println(token);
38 38
39 //D类申报的数据落地接口 39 //D类申报的数据落地接口
......