tao.mo

Merge remote-tracking branch 'origin/API-2023-07-30-bug' into API-2023-07-30-bug

package com.erry.iclear.dateInterface.api;
import com.erry.iclear.dateInterface.api.request.MawbDetail;
import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
import com.erry.iclear.dateInterface.api.request.Mawb;
import com.erry.iclear.dateInterface.api.response.ResultRS;
import com.erry.iclear.dateInterface.entity.IClearApiLog;
import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
import com.erry.iclear.dateInterface.repository.MawbAdd;
import com.erry.iclear.dateInterface.service.*;
import com.erry.iclear.dateInterface.util.StringUtil;
......@@ -17,7 +16,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
/**
* @author Administrator
......@@ -118,7 +119,7 @@ public class CustomsDataInterface {
//2、TODO 校验主单
sw.start("checkMawb");
result=mawbService.checkMawb(mawb);
result=mawbService.checkMawb(mawb,appId);
if(!result.getSuccess()){
return result;
}
......
......@@ -110,7 +110,7 @@ public class FedexDataInterface {
sw.stop();
sw.start("checkFedexMawb");
ResultRS iclearCheckRs = fedexService.checkFedexMawb(saveMawbFedexResult,appInfo);
ResultRS iclearCheckRs = fedexService.checkFedexMawb(saveMawbFedexResult,appInfo,appId);
//返回结果
ResultRS result = new ResultRS(Boolean.TRUE,ErrorCodeEnum.SUCCESS.getCode(),null,null);
if(nonEmptyCheck.getSuccess() && iclearCheckRs.getSuccess()){
......@@ -195,7 +195,7 @@ public class FedexDataInterface {
//2、TODO 校验主单
sw.start("checkFedexMawb");
result=fedexService.checkFedexMawb(saveMawbFedexResult,null);
result=fedexService.checkFedexMawb(saveMawbFedexResult,null,appId);
if(!result.getSuccess()){
return result;
}
......@@ -216,6 +216,7 @@ public class FedexDataInterface {
return result;
}
sw.stop();
log.info("saveIClearApiLogResult.getCreateTime():"+saveIClearApiLogResult.getCreateTime());
ChmConsignment chmGetId = chmConsignmentRepository.findChmConsignmentByConsignmentCode(saveIClearApiLogResult.getBillNo(), saveIClearApiLogResult.getCreateTime());
//调用IClear接口进行运单推送EXP002
String objJson = JsonToJava.toJson(chmGetId.getId());
......
......@@ -100,4 +100,21 @@ public class Constant {
* 监管条件
*/
public static final String supervise_condition = "superviseRestrict";
/**
* DM004接收取件信息
*/
public static final String FILE_TYPE_GET_PICK_INFORMATION = "fileType_5";
//OSPR状态
/**
* 未完成
*/
public static final String OSPR_STATUS_INCOMPLETED = "OSPRStatus_1";
//扫描代码
/**
* C类已取件
*/
public static final String SCAN_CODE_TAKEN_PART= "scanCode_1";
}
......
......@@ -3,7 +3,6 @@ package com.erry.iclear.dateInterface.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.io.Serializable;
......@@ -413,6 +412,62 @@ public class ChmConsignment implements Serializable {
@Column(name = "EANNO")
private String eanNo;
/**
* 扫描代码ID
*/
@JsonIgnore
@ManyToOne(targetEntity = DictionaryEntries.class)
@JoinColumn(name = "SCAN_CODE_ID")
private DictionaryEntries scanCodeDic;
/**
* 扫描代码
*/
@Column(name = "SCAN_CODE")
private String scanCode;
/**
* 扫描状态日期
*/
@Column(name = "SCAN_STATUS_TIME")
private Date scanStatusTime;
/**
* 运单类型ID
*/
// @JsonIgnore
// @ManyToOne(targetEntity = DictionaryEntries.class)
// @JoinColumn(name = "CONS_TYPE_ID")
// private DictionaryEntries consTypeDic;
/**
* OSPR状态ID
*/
@JsonIgnore
@ManyToOne(targetEntity = DictionaryEntries.class)
@JoinColumn(name = "OSPR_STATUS_ID")
private DictionaryEntries osprStatusDic;
/**
* 站点
*/
@JsonIgnore
@ManyToOne(targetEntity = Organization.class)
@JoinColumn(name = "STATION_ID")
private Organization station;
/**
* 站点名称
*/
@Column(name = "STATION_NAME")
private String stationName;
/**
* 取件日期
*/
@Column(name = "PICK_UP_DATE")
private Date pickUpDate;
@OneToMany(mappedBy = "chmConsignment", cascade = CascadeType.ALL)
private List<ChmConsignmentDetail> chmConsignmentDetailList;
......
......@@ -4,7 +4,6 @@ import com.erry.iclear.dateInterface.entity.ChmConsignment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
......@@ -33,6 +32,15 @@ public interface ChmConsignmentRepository extends JpaSpecificationExecutor<ChmCo
public ChmConsignment findChmConsignmentByConsignmentCode(String consignmentCode,Date startDate);
/**
* 根据运单号查找多条数据
* @param consignmentCode
* @param startDate
* @return
*/
@Query( nativeQuery = true,value ="select * from T_CHM_CONSIGNMENT where CONSIGNMENT_CODE = ?1 and CREATE_TIME>= ?2 and CREATOR = ?3" )
public List<ChmConsignment> findChmConsignmentByConsignmentCodes(String consignmentCode,Date startDate,String creator);
/**
* 根据运单ID查运单
* @param id
* @return
......
package com.erry.iclear.dateInterface.repository;
import com.erry.iclear.dateInterface.entity.Organization;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface OrganizationRepository extends JpaSpecificationExecutor<Organization>, JpaRepository<Organization, Long> {
@Query(nativeQuery = true, value = "select top 1 * from T_AU_ORGANIZATION o where o.NAME = :name ")
public Organization findOrganizationByName(@Param("name") String name);
}
package com.erry.iclear.dateInterface.repository;
import com.erry.iclear.dateInterface.entity.TaskInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface TaskInfoRepository extends JpaSpecificationExecutor<TaskInfo>, JpaRepository<TaskInfo, Long> {
@Query(nativeQuery = true, value = "select top 1 * from T_TASK_INFO info where info.FILE_TYPE_ID = :fileTypeId and " +
"info.AWB_NUMBER = :consignmentCode order by CREATE_TIME DESC")
public TaskInfo findTaskInfoByConsignment(@Param("fileTypeId") Long taskStatusId,@Param("consignmentCode") String consignmentCode);
}
......@@ -113,13 +113,13 @@ public class FedexService {
* @param fedexMawb
* @return
*/
public ResultRS checkFedexMawb(FedexMawb fedexMawb,AppInfo appInfo){
public ResultRS checkFedexMawb(FedexMawb fedexMawb,AppInfo appInfo,String appId){
ResultRS result = new ResultRS(Boolean.FALSE,null,null,null);
try{
log.info("checkMawb start>>>>>>>>>> mawb:"+gson.toJson(fedexMawb));
//1、将请求转换为运单
ChmConsignment chmConsignment=consignmentService.convertToChmConsignmentFedex(fedexMawb,null,"IDE-ICLEAR-API",appInfo);
ChmConsignment chmConsignment=consignmentService.convertToChmConsignmentFedex(fedexMawb,null,appId,appInfo);
if(Objects.equals(chmConsignment,null)){
result.setCode(ErrorCodeEnum.ERROR_7.getCode());
result.setMsg(ErrorCodeEnum.ERROR_7.getName());
......
......@@ -2,15 +2,15 @@ package com.erry.iclear.dateInterface.service;
import com.erry.iclear.dateInterface.api.request.FedexMawb;
import com.erry.iclear.dateInterface.api.request.FedexMawbDetail;
import com.erry.iclear.dateInterface.common.Constant;
import com.erry.iclear.dateInterface.entity.DictionaryEntries;
import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
import com.erry.iclear.dateInterface.api.request.Mawb;
import com.erry.iclear.dateInterface.api.request.MawbDetail;
import com.erry.iclear.dateInterface.api.response.IClearCheckResult;
import com.erry.iclear.dateInterface.api.response.ResultRS;
import com.erry.iclear.dateInterface.common.Constant;
import com.erry.iclear.dateInterface.entity.ChmConsignment;
import com.erry.iclear.dateInterface.entity.ChmConsignmentDetail;
import com.erry.iclear.dateInterface.entity.DictionaryEntries;
import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
import com.erry.iclear.dateInterface.repository.DictionaryEntriesRepository;
import com.erry.iclear.dateInterface.repository.MawbRepository;
import com.erry.iclear.dateInterface.util.HttpUtils;
......@@ -23,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.validation.Valid;
import java.util.*;
/**
......@@ -301,12 +300,12 @@ public class MawbService {
* @param mawb
* @return
*/
public ResultRS checkMawb(Mawb mawb){
public ResultRS checkMawb(Mawb mawb,String appId){
ResultRS result = new ResultRS(Boolean.FALSE,null,null,null);
try{
log.info("checkMawb start>>>>>>>>>> mawb:"+gson.toJson(mawb));
//1、将请求转换为运单
ChmConsignment chmConsignment=consignmentService.convertToChmConsignment(mawb,null,"IDE-ICLEAR-API");
ChmConsignment chmConsignment=consignmentService.convertToChmConsignment(mawb,null,appId);
if(Objects.equals(chmConsignment,null)){
result.setCode(ErrorCodeEnum.ERROR_30001.getCode());
result.setMsg(ErrorCodeEnum.ERROR_30001.getName());
......