Jiaqi.xu

BASF申报接口

......@@ -2,11 +2,15 @@ package com.erry.iclear.dateInterface.api;
import com.erry.iclear.dateInterface.api.request.BasfMawb;
import com.erry.iclear.dateInterface.api.request.Basfc;
import com.erry.iclear.dateInterface.api.request.ConsignmentCode;
import com.erry.iclear.dateInterface.api.response.ResultRS;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import com.erry.iclear.dateInterface.entity.IClearApiLog;
import com.erry.iclear.dateInterface.service.BasfService;
import com.erry.iclear.dateInterface.service.ChmConsignmentService;
import com.erry.iclear.dateInterface.service.DeclaredInfoService;
import com.erry.iclear.dateInterface.service.IClearApiLogService;
import com.erry.iclear.dateInterface.util.StringUtil;
import com.google.gson.Gson;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -17,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@RestController
......@@ -34,6 +39,9 @@ public class BasfDataInterface {
@Autowired
private IClearApiLogService iClearApiLogService;
@Autowired
private DeclaredInfoService declaredInfoService;
@ApiOperation(value = "BASF推送运单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/customs/sendMawbBasf")
@PostMapping("/sendMawbBasf")
@ResponseBody
......@@ -122,4 +130,51 @@ public class BasfDataInterface {
result.setCode("0");
return result;
}
@ApiOperation(value = "BASF获取申报信息", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/customs/selectDecListBasf")
@PostMapping("/selectDecListBasf")
@ResponseBody
public ResultRS selectDecListBasf(HttpServletRequest request
, @Validated @RequestBody ConsignmentCode consignmentCode) {
log.info("接收到请求数据consignmentCode:"+consignmentCode.getConsignmentCode()+" data:" + gson.toJson(consignmentCode));
ResultRS result = new ResultRS(Boolean.FALSE,"","");
//获取请求的运单号
String[] splitConsignment = StringUtil.split(consignmentCode.getConsignmentCode(),",");
if(splitConsignment.length > 20){
result.setCode("30001");
result.setMsg("请求信息不能大于20条运单");
return result;
}
if(splitConsignment.length<1){
result.setCode("-7");
result.setMsg("请求信息不能为空");
return result;
}
StopWatch sw = new StopWatch("receice mawbBasf");
sw.start("save log");
String appId=(String) request.getHeader("Appid");
String appKey=(String) request.getHeader("Appkey");
String timeStamp=(String) request.getHeader("TimeStamp");
//记录请求的运单
IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLogCselect(consignmentCode.getConsignmentCode(),appId,appKey,new Date(Long.valueOf(timeStamp))));
//日志的ID放入到回执日志中对应
saveIClearApiLogResult.getMsgId();
//查询请求需要得运单申报信息
List<DeclaredInfo> declaredInfos = declaredInfoService.selectDeclaredInfo(splitConsignment);
if(declaredInfos.size()>0){
for (int i= 0;i<declaredInfos.size();i++){
}
}
//返回申报数据
//更新记录的请求信息
//记录返回得申报数据记录
//6、return result
result.setSuccess(Boolean.TRUE);
result.setCode("0");
return result;
}
}
......
package com.erry.iclear.dateInterface.api.request;
import java.io.Serializable;
import java.util.List;
/**
* 运单集合 2021年11月4日 xjq
*/
public class ConsignmentCode implements Serializable {
private String consignmentCode;
public String getConsignmentCode() {
return consignmentCode;
}
public void setConsignmentCode(String consignmentCode) {
this.consignmentCode = consignmentCode;
}
}
package com.erry.iclear.dateInterface.common;
import java.io.Serializable;
/**
* Created by liyang on 2017/4/22.
*/
public class BaseModel implements Serializable {
private static final long serilalVersionUID = 1L;
private Long id;
public BaseModel() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
package com.erry.iclear.dateInterface.common;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JsonDateTimeSerializer extends JsonSerializer<Date> {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String formattedDate = dateFormat.format(date);
gen.writeString(formattedDate);
}
}
package com.erry.iclear.dateInterface.entity;
import com.erry.iclear.dateInterface.common.BaseModel;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.util.Date;
import java.util.Objects;
/**
* 组织结构表
*
* @author Created by Erry 2019/7/1.
*/
@Entity
@Table(name = "T_AU_ORGANIZATION")
public class Organization extends BaseModel {
private static final long serialVersionUID = 2693103610036977383L;
/**
* 表ID,自动增加
*/
@Id
@GeneratedValue
@Column(name = "ID")
private Long id;
// @Version
// @Column(name = "VERSION")
// private Integer version;
/**
* 编码
*/
@Column(name = "CODE")
private String code;
/**
* 名称
*/
@Column(name = "NAME")
private String name;
/**
* 组织架构类型 (和用户类型、角色类型对应的是同一个数据字典)
* <p>
* 客户
* 速递员
* 站点
* RDE
* 口岸
* 总部
*/
@JsonIgnore
@ManyToOne(targetEntity = DictionaryEntries.class)
@JoinColumn(name = "TYPE_ID")
private DictionaryEntries type;
/**
* 上级组织
*/
@JsonIgnore
@ManyToOne(targetEntity = Organization.class)
@JoinColumn(name = "PARENT_ID")
private Organization parent;
/**
* 级别
*/
@Column(name = "LEVEL")
private Long LEVEL;
/**
* 创建人
*/
@JsonIgnore
@ManyToOne(targetEntity = SysUser.class)
@JoinColumn(name = "CREATE_USER_ID")
private SysUser createUser;
/**
* 创建时间
*/
@Column(name = "CREATE_TIME")
private Date createTime;
/**
* 最后修改人
*/
@JsonIgnore
@ManyToOne(targetEntity = SysUser.class)
@JoinColumn(name = "LAST_MODIFY_USER_ID")
private SysUser lastModifyUser;
/**
* 最后修改时间
*/
@Column(name = "LAST_MODIFY_TIME")
private Date lastModifyTime;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public DictionaryEntries getType() {
return type;
}
public void setType(DictionaryEntries type) {
this.type = type;
}
public Organization getParent() {
return parent;
}
public void setParent(Organization parent) {
this.parent = parent;
}
public Long getLEVEL() {
return LEVEL;
}
public void setLEVEL(Long LEVEL) {
this.LEVEL = LEVEL;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public SysUser getCreateUser() {
return createUser;
}
public void setCreateUser(SysUser createUser) {
this.createUser = createUser;
}
public SysUser getLastModifyUser() {
return lastModifyUser;
}
public void setLastModifyUser(SysUser lastModifyUser) {
this.lastModifyUser = lastModifyUser;
}
public Date getLastModifyTime() {
return lastModifyTime;
}
public void setLastModifyTime(Date lastModifyTime) {
this.lastModifyTime = lastModifyTime;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Organization that = (Organization) o;
return Objects.equals(id, that.id) &&
Objects.equals(code, that.code) &&
Objects.equals(name, that.name) &&
Objects.equals(type, that.type) &&
Objects.equals(parent, that.parent) &&
Objects.equals(LEVEL, that.LEVEL) &&
Objects.equals(createUser, that.createUser) &&
Objects.equals(createTime, that.createTime) &&
Objects.equals(lastModifyUser, that.lastModifyUser) &&
Objects.equals(lastModifyTime, that.lastModifyTime);
}
@Override
public int hashCode() {
return Objects.hash(id, code, name, type, parent, LEVEL, createUser, createTime, lastModifyUser, lastModifyTime);
}
@Override
public String toString() {
return "Organization{" +
"id=" + id +
", code='" + code + '\'' +
", name='" + name + '\'' +
", type=" + type +
", parent=" + parent +
", LEVEL=" + LEVEL +
", createUser=" + createUser +
", createTime=" + createTime +
", lastModifyUser=" + lastModifyUser +
", lastModifyTime=" + lastModifyTime +
'}';
}
}
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
package com.erry.iclear.dateInterface.repository;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* xjq 2021年11月5日
*/
@Repository
@Transactional(rollbackFor = Exception.class)
public interface DeclaredInfoRepository extends JpaRepository<DeclaredInfo, Integer>, JpaSpecificationExecutor<DeclaredInfo> {
/**
* 根据运单号在申报数据表中查询数据
* @return
*/
@Query(nativeQuery = true, value = "select * from T_DECLARED_INFO where CONSIGNMENT_ID IN (SELECT * FROM T_CHM_CONSIGNMENT WHERE T_CHM_CONSIGNMENT.CONSIGNMENT_CODE IN ?1)")
public List<DeclaredInfo> getDeclaredInfoByAll(List<String> consignmentCodeList);
}
package com.erry.iclear.dateInterface.service;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import com.erry.iclear.dateInterface.repository.DeclaredInfoRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* xjq 2021年11月5日
*/
@Service
@Slf4j
@Transactional(rollbackOn = Exception.class)
public class DeclaredInfoService {
@Autowired
private DeclaredInfoRepository declaredInfoRepository;
public List<DeclaredInfo> selectDeclaredInfo(String[] consignmentCode){
List<DeclaredInfo> DeclaredInfo = new ArrayList<>();
List consignmentCodeList = new ArrayList();
if(consignmentCode.length>0){
for(int i = 0; i < consignmentCode.length; i++){
consignmentCodeList.add(consignmentCode[i]);
}
}
DeclaredInfo = declaredInfoRepository.getDeclaredInfoByAll(consignmentCodeList);
return DeclaredInfo;
}
}
......@@ -83,6 +83,29 @@ public class IClearApiLogService {
return result;
}
/**
* BASF请求申报数据-添加日志 2021年11月3日 xjq
* @return
*/
public IClearApiLog convertToIClearApiLogCselect(String basfc, String appId, String appKey, Date pushTime){
IClearApiLog result = new IClearApiLog();
try{
result.setMsgType(Constant.MSG_TYPE_C);
result.setAppId(appId);
result.setAppKey(appKey);
result.setCreateTime(new Date());
result.setPushTime(pushTime);
result.setReceiveResult(null);
result.setResponseTime(null);
result.setSpendTime(null);
result.setSendTimes(1);
result.setBillNo(basfc);
}catch (Exception e){
log.error("convertToIClearApiLog() error:"+e.getMessage());
}
return result;
}
public void updateIClearApiLog(IClearApiLog iClearApiLog){
try{
......