作者 朱兆平

金二适配及本地抬杆放行优化

package com.sy;
import com.sy.bwAnalysis.AnalysisRoute;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
... ... @@ -17,49 +16,5 @@ public class AnalysisImfApplication {
public static void main(String[] args) {
SpringApplication.run(AnalysisImfApplication.class, args);
/*String message="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<MSG><META><SNDR>KAO</SNDR><RCVR></RCVR><SEQN>20200924082928</SEQN><DDTM>20200924082928</DDTM><TYPE>KAKO</TYPE><STYP>CARM</STYP></META><GATHER_INFO AREA_ID=\"\t\t4600329012\" CHNL_NO=\"\t\t4600010005\" I_E_TYPE=\"I\" SEQ_NO=\"20200924082701000001\">\n" +
" <IC>\n" +
" <DR_IC_NO/>\n" +
" <IC_DR_CUSTOMS_NO/>\n" +
" <IC_CO_CUSTOMS_NO/>\n" +
" <IC_BILL_NO/>\n" +
" <IC_FORM_TYPE/>\n" +
" <IC_GROSS_WT/>\n" +
" <IC_VE_CUSTOMS_NO/>\n" +
" <IC_VE_NAME/>\n" +
" <IC_CONTA_ID/>\n" +
" <IC_ESEAL_ID/>\n" +
" <IC_REG_DATETIME/>\n" +
" <IC_PER_DAY_DUE/>\n" +
" </IC>\n" +
" <WEIGHT>\n" +
" <GROSS_WT>1120.00</GROSS_WT>\n" +
" </WEIGHT>\n" +
" <CAR>\n" +
" <VE_NAME>苏H630D5\t</VE_NAME>\n" +
" <CAR_EC_NO/>\n" +
" <CAR_EC_NO2/>\n" +
" <VE_CUSTOMS_NO/>\n" +
" <VE_WT/>\n" +
" </CAR>\n" +
" <CONTA>\n" +
" <CONTA_NUM/>\n" +
" <CONTA_RECO>1</CONTA_RECO>\n" +
" <CONTA_ID_F/>\n" +
" <CONTA_ID_B/>\n" +
" <CONTA_MODEL_F/>\n" +
" <CONTA_MODEL_B/>\n" +
" </CONTA>\n" +
" <ORDER_NUM/>\n" +
" <BAR_CODE>20201029163743299076</BAR_CODE>\n" +
" <SEAL>\n" +
" <ESEAL_ID/>\n" +
" <SEAL_KEY/>\n" +
" </SEAL>\n" +
"</GATHER_INFO></MSG>";
AnalysisRoute.analysis(message);*/
}
}
... ...
... ... @@ -31,8 +31,8 @@ public class AnalysisRoute implements Runnable{
@Autowired
private CLRService clrService;
@Qualifier("GatherInfoService")
@Autowired
@Qualifier("GatherInfoServiceImpl")
private GatherInfoService infoService;
@Autowired
... ...
package com.sy.mapper;
import com.sy.model.LandList;
public interface LandListDao {
int deleteByPrimaryKey(String id);
int insert(LandList record);
int insertSelective(LandList record);
LandList selectByPrimaryKey(String id);
int updateByPrimaryKeySelective(LandList record);
int updateByPrimaryKey(LandList record);
/**
* 根据二维码 核销申请单
* @param barcode 二维码
* @return 更新数据量
*/
int releaseBarcode(String barcode);
}
... ...
... ... @@ -65,6 +65,10 @@ public class LandBusinessTypeList {
private String remark2;
private String remark3;
private String veProperty;
public String getIsthree() {
return isthree;
}
... ... @@ -322,4 +326,20 @@ public class LandBusinessTypeList {
public void setRemark2(String remark2) {
this.remark2 = remark2 == null ? null : remark2.trim();
}
public String getRemark3() {
return remark3;
}
public void setRemark3(String remark3) {
this.remark3 = remark3;
}
public String getVeProperty() {
return veProperty;
}
public void setVeProperty(String veProperty) {
this.veProperty = veProperty;
}
}
... ...
package com.sy.model;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* land_list
* @author
*/
@Data
public class LandList implements Serializable {
/**
* 主键
*/
private String id;
/**
* 发送二维码标识id
*/
private String massageId;
private String trailerFrameNo;
/**
* 车架号
*/
private String trailerLicenseNo;
/**
* 主单列表
*/
private String masterList;
private Date prodectTime;
/**
* 删除标识0:未删除,1删除
*/
private String isDelete;
/**
* 货代代码
*/
private String agentno;
/**
* 货代名称
*/
private String agentname;
/**
* 所在企业代码
*/
private String cocode;
/**
* 驾驶员姓名
*/
private String drivername;
/**
* 驾驶员ID
*/
private String driverid;
/**
* 起始海关代码
*/
private String startport;
/**
* 目的关区代码
*/
private String endport;
/**
* 起始场站
*/
private String startsatation;
/**
* 目的场站
*/
private String endstation;
/**
* 通道,卡口
*/
private String aisle;
/**
* 业务类型(1.出口送货,2:进口提货,3:分拨分流,4:货运调拨)
*/
private String businesstype;
/**
* 进出场标识
*/
private String turnoverflag;
/**
* 二维码
*/
private String barcode;
/**
* 校验标识
*/
private String contrastflag;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private Date createDate;
private String updateBy;
private Date updateDate;
/**
* 二维码是否失效:0:有效,1:无效
*/
private String isvalid;
/**
* 过卡重量
*/
private Double aislewt;
/**
* 是否空车:0空车,1不空车
*/
private String isfull;
/**
* 车辆装载货物总重量
*/
private String remark;
/**
* 进出差值
*/
private String remark1;
/**
* 車輛備案重量
*/
private String remark2;
private String remark3;
private String isthree;
/**
* 申請單位
*/
private String veproperty;
/**
* 介质类型 1 IC卡
2 二维码
3 电子车牌
4 车牌号
*/
private String mediumtype;
/**
* 数据中心统一编号seqn
*/
private String seqn;
/**
* 车次确认编号
*/
private String trainsconfirmationNumber;
/**
* 申报状态
*/
private String applicationStatus;
/**
* 企业信用代码
*/
private String enterpriseCreditCode;
/**
* 组织机构代码
*/
private String organizationCode;
/**
* 申报人员编号
*/
private String declarePersonnelNumbers;
/**
* 运输方式 2 海运 4公路 5航空
*/
private String modeTransportation;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
... ...
... ... @@ -6,7 +6,7 @@ import lombok.Data;
/**
* land_router_config
* @author
* @author
*/
@Data
public class LandRouterConfig implements Serializable {
... ... @@ -43,6 +43,11 @@ public class LandRouterConfig implements Serializable {
private String businessType;
/**
* 流转申请业务类型 进口业务=I 还是出口业务=E
*/
private String ieType;
/**
* 对应金二业务类型码
*/
private String g2BusinessType;
... ... @@ -65,4 +70,4 @@ public class LandRouterConfig implements Serializable {
private String status;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
}
... ...
package com.sy.service;
import com.sy.model.GatherInfo;
import com.sy.model.LandBusinessTypeList;
public interface GatherInfoService {
... ... @@ -11,6 +10,4 @@ public interface GatherInfoService {
* 根据过卡进行抬杆指令处理
*/
void handel(GatherInfo info);
}
... ...
... ... @@ -60,7 +60,7 @@ public class CommandLogImpl implements CommandLogService {
command.setInGrossWeight(inWt);
command.setGoodsWeight(goodsWt);
command.setActualGoodsWeight(diffVal);
if(list_infos.size()>0){
if(list_infos!=null && list_infos.size()>0){
command.setMasterList(Arrays.toString(toStrArry(list_infos)));
}
insert(command);
... ...
... ... @@ -4,18 +4,19 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sy.crossDomain.buildBarCode;
import com.sy.mapper.LandListDao;
import com.sy.model.*;
import com.sy.service.*;
import com.sy.socket.CommandClient;
import com.sy.utils.FileTool;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.*;
... ... @@ -23,10 +24,10 @@ import java.util.stream.Collectors;
import static com.sy.service.impl.ResMessageServiceImpl.toStrArry;
@Slf4j
@Component("GatherInfoHandle")
public class GatherInfoHandle implements GatherInfoService {
private static final Logger logger = LoggerFactory.getLogger(GatherInfoHandle.class);
private static GatherInfoHandle gatherInfoHandle;
//逻辑判断后的返回信息定义
... ... @@ -58,11 +59,15 @@ public class GatherInfoHandle implements GatherInfoService {
private RedisService redisService;
@Autowired
BusnesslistinfoService busnesslistinfoService;
private BusnesslistinfoService busnesslistinfoService;
@Resource
private LandListDao landListDao;
@Value("${devdebug}")
private Boolean debug;
/**
* 进出场申请表
*/
... ... @@ -171,6 +176,8 @@ public class GatherInfoHandle implements GatherInfoService {
//入区核放
if(chanelInCheck()){
pass();
log.info("[X21-SUCCESS]:[IN]-车辆入区直接放行");
return;
}else{
inStationInfo(); //入场信息获取
setListinfos(); //流转申请表体获取
... ... @@ -185,11 +192,13 @@ public class GatherInfoHandle implements GatherInfoService {
releaseFormCheck(); //流转申请单核销
}
}
}else{
log.info("[X21-ERROR]:{}车辆验放失败",info.getVename());
}
logger.info("[X21-ERROR]:车辆过磅验放失败");
}catch (Exception e){
logger.error("放行判定异常",e);
log.error("放行判定异常",e);
CommandClient.Client(gatherInfo, "放行判定异常");
}
... ... @@ -217,7 +226,7 @@ public class GatherInfoHandle implements GatherInfoService {
private boolean veNameCheck(String veName){
//1. 若无车牌号,返回未识别错误
if (StringUtils.isEmpty(vaName)) {
logger.error(NO_CHEPAI+vaName);
log.error(NO_CHEPAI+vaName);
sendBw(info,false,NO_CHEPAI + vaName,null,listinfos);
//CommandClient.Client(info, NO_CHEPAI + vaName);
return false;
... ... @@ -233,7 +242,7 @@ public class GatherInfoHandle implements GatherInfoService {
LandRoadVe ve = gatherInfoHandle.veService.selectByFrameNo(vaName);
//若无备案信息或者黑名单,返回车辆未备案或者识别错误,
if (ve == null && !veBlackListCheck(ve)) {
logger.error(NORECORD+vaName);
log.error(NORECORD+vaName);
sendBw(info,false,NORECORD + vaName,null,listinfos);
//CommandClient.Client(info, NORECORD + vaName);
return false;
... ... @@ -250,7 +259,7 @@ public class GatherInfoHandle implements GatherInfoService {
*/
private boolean veBlackListCheck(LandRoadVe ve){
if("Y".equals(ve.getVeState())){
logger.info(BLACKLIST+vaName);
log.info(BLACKLIST+vaName);
sendBw(info,false,BLACKLIST + vaName,null,listinfos);
return false;
}
... ... @@ -264,11 +273,11 @@ public class GatherInfoHandle implements GatherInfoService {
*/
private boolean LandBusinessFormCheck(){
try {
logger.info("车辆-{}核碰缓存",info.getVename());
log.info("车辆-{}核碰缓存",info.getVename());
landBusinessTypeListList = new ArrayList<>();
//通过车牌号,二维码,场站,通道号,进出类型查询进出场站申请列表
if (info==null){
logger.error("info 实体为NULL");
log.error("info 实体为NULL");
return false;
}
... ... @@ -281,7 +290,7 @@ public class GatherInfoHandle implements GatherInfoService {
landBusinessTypeListList = list;
//4. 若查询结果为null,返回无相对应进出场申请
if (list == null || list.isEmpty()) {
logger.error(vaName+IEPORSE);
log.error(vaName+IEPORSE);
sendBw(info,false,vaName+IEPORSE,null,listinfos);
return false;
}
... ... @@ -292,21 +301,22 @@ public class GatherInfoHandle implements GatherInfoService {
landBusinessTypeList = item;
//离场装载货物重量
goodsWt = Double.parseDouble(landBusinessTypeList.getRemark());
logger.info("车辆-{}的申请缓存信息核碰成功,通道:{}",info.getVename(),info.getChnlno());
log.info("车辆-{}的申请缓存信息核碰成功,通道:{}",info.getVename(),info.getChnlno());
return true;
}
}
//核碰流转申请失败
logger.info("[CACHE]:车辆-{}的流转申请校验失败,无对应流转申请信息",info.getVename());
log.info("[CACHE]:车辆-{}的流转申请校验失败,无对应流转申请信息",info.getVename());
}else {
logger.error("[CACHE-ERROR]:未找到车辆-{}的申请缓存信息",info.getVename());
logger.info("[CACHE-ERROR]:未找到车辆-{}的申请缓存信息,或者流转已超期失效",info.getVename());
log.error("[CACHE-ERROR]:未找到车辆-{}的申请缓存信息",info.getVename());
log.info("[CACHE-ERROR]:未找到车辆-{}的申请缓存信息,或者流转已超期失效",info.getVename());
sendBw(info,false,info.getVename()+IEPORSE+",或者流转已超期失效",null,listinfos);
return false;
}
}catch (Exception e){
e.printStackTrace();
logger.error("[CACHE-PARSE-ERROR]:",e);
log.error("[CACHE-PARSE-ERROR]:",e);
return false;
}
... ... @@ -322,7 +332,7 @@ public class GatherInfoHandle implements GatherInfoService {
*/
private boolean weightCheck(GatherInfo info){
if(info.getGrosswt().compareTo(BigDecimal.ZERO) > 0){
logger.info("过磅重量校验通过,过磅重量大于0");
log.info("过磅重量校验通过,过磅重量大于0");
}else{
sendBw(info,false,NOGrossWt + growssWt,new LandBusinessTypeList(),listinfos);
return false;
... ... @@ -344,7 +354,7 @@ public class GatherInfoHandle implements GatherInfoService {
//todo:快件暂不校验直接放行,不过得录单
//todo:换单货物校验逻辑待定
//todo:未来取消货物类型判定.
logger.info("车辆装载货物为:" + landBusinessTypeList.getCocode());
log.info("车辆装载货物为:" + landBusinessTypeList.getCocode());
return true;
}
return false;
... ... @@ -369,7 +379,7 @@ public class GatherInfoHandle implements GatherInfoService {
private void inStationInfo(){
List<LandBusinessTypeList> stationInChanleInfo= gatherInfoHandle.listService.selectwt(info.getVename(),info.getBarcode(),info.getAreaid(),"I");
if (stationInChanleInfo.isEmpty()){
logger.info("未查询到车辆:{}的入场信息",info.getVename());
log.info("未查询到车辆:{}的入场信息",info.getVename());
}else {
for(LandBusinessTypeList typeList:stationInChanleInfo){
if(typeList.getAislewt()!=null){
... ... @@ -408,13 +418,13 @@ public class GatherInfoHandle implements GatherInfoService {
* @return true 抬杆放行
*/
private boolean checkRelease(){
logger.info("[进出场申请]-业务类型为:"+landBusinessTypeList.getCocode()+landBusinessTypeList.getBusinesstype());
log.info("[进出场申请]-业务类型为:"+landBusinessTypeList.getCocode()+landBusinessTypeList.getBusinesstype());
switch (landBusinessTypeList.getBusinesstype()){
case "空车业务":
if(gatherInfoHandle.weightCheckHandleService.checkEmpty(growssWt,selfWt)){
return true;
}else{
logger.error("[空车业务]-出场重量未通过校验:"+GROWSSEXCETION);
log.error("[空车业务]-出场重量未通过校验:"+GROWSSEXCETION);
sendBw(info,false,GROWSSEXCETION,landBusinessTypeList,listinfos);
return false;
}
... ... @@ -423,7 +433,7 @@ public class GatherInfoHandle implements GatherInfoService {
if (gatherInfoHandle.weightCheckHandleService.checkExportDownLoading(growssWt, selfWt, goodsWt,inWt)){
return true;
}else{
logger.error("[出口送货]-出场重量未通过校验:"+GROWSSEXCETION);
log.error("[出口送货]-出场重量未通过校验:"+GROWSSEXCETION);
sendBw(info,false,GROWSSEXCETION,landBusinessTypeList,listinfos);
return false;
}
... ... @@ -434,21 +444,21 @@ public class GatherInfoHandle implements GatherInfoService {
/**
* 退库货物不校验运单放行.
*/
logger.info("[退库业务]-重量核验通过.");
log.info("[退库业务]-重量核验通过.");
}else{
//检查运单放行
if (gatherInfoHandle.resMessageService.checkManifestRelease(info,listinfos)){
return true;
}else {
//有运单未放行
logger.error("[进口提货]-出场未通过校验:"+FANGXING+landBusinessTypeList.getMasterList());
log.error("[进口提货]-出场未通过校验:"+FANGXING+landBusinessTypeList.getMasterList());
sendBw(info,false,FANGXING+landBusinessTypeList.getMasterList(),landBusinessTypeList,listinfos);
return false;
}
}
//todo:装载运单历史数据累加超重判定
}else{
logger.error("[进口提货]-出场重量未通过校验:"+GROWSSEXCETION);
log.error("[进口提货]-出场重量未通过校验:"+GROWSSEXCETION);
sendBw(info,false,GROWSSEXCETION,landBusinessTypeList,listinfos);
return false;
}
... ... @@ -458,14 +468,14 @@ public class GatherInfoHandle implements GatherInfoService {
//todo:检查分拨申请
boolean allocatCheck = checkNmmsAllocate(landBusinessTypeList.getMasterList());
if(!allocatCheck){
logger.error("[分拨业务]-分拨申请舱单未通过校验:"+FENBO);
log.error("[分拨业务]-分拨申请舱单未通过校验:"+FENBO);
sendBw(info,false,FENBO,landBusinessTypeList,listinfos);
return false;
}
return true;
//todo:分拨运抵通知,重车入场视为运抵
}else{
logger.error("[分拨业务]-出场重量未通过校验:"+GROWSSEXCETION);
log.error("[分拨业务]-出场重量未通过校验:"+GROWSSEXCETION);
sendBw(info,false,GROWSSEXCETION,landBusinessTypeList,listinfos);
return false;
}
... ... @@ -476,18 +486,18 @@ public class GatherInfoHandle implements GatherInfoService {
return true;
}else {
//有运单未放行
logger.error("[调拨业务]-出场未通过校验:"+FANGXING+landBusinessTypeList.getMasterList());
log.error("[调拨业务]-出场未通过校验:"+FANGXING+landBusinessTypeList.getMasterList());
sendBw(info,false,FANGXING,landBusinessTypeList,listinfos);
return false;
}
//todo:检查ULD放行.
}else{
logger.error("[调拨业务]-出场未通过校验:"+GROWSSEXCETION);
log.error("[调拨业务]-出场未通过校验:"+GROWSSEXCETION);
sendBw(info,false,GROWSSEXCETION,landBusinessTypeList,listinfos);
return false;
}
default:
logger.error("[未知业务类型]-出场未通过校验");
log.error("[未知业务类型]-出场未通过校验");
break;
}
... ... @@ -552,7 +562,7 @@ public class GatherInfoHandle implements GatherInfoService {
if (temp.isEmpty()){
//todo:流转申请状态核销
logger.info("[进出场申请]-流转申请已核销:"+vaName);
log.info("[进出场申请]-流转申请已核销:"+vaName);
//二维码核销
releaseBarCode();
}
... ... @@ -568,11 +578,16 @@ public class GatherInfoHandle implements GatherInfoService {
//二维码失效通知,已进入场站的与缓存比较.
if(count==0){
//todo:测试注释掉,二维码释放
logger.info("[进出场申请]-二维码释放:"+vaName);
log.info("[进出场申请]-二维码释放:"+vaName);
if (!gatherInfoHandle.debug){
buildBarCode.cancleBarCode(vaName);
}
int rc = gatherInfoHandle.landListDao.releaseBarcode(info.getBarcode());
//车辆流转申请缓存删除
gatherInfoHandle.redisService.del(info.getVename());
//车辆过卡信息缓存删除-X22金二判定时候生成的这个缓存
gatherInfoHandle.redisService.del(info.getSeqno());
log.info("[流转申请]-车辆{}二维码已核销:{}",vaName,info.getBarcode());
}
}
... ... @@ -599,16 +614,16 @@ public class GatherInfoHandle implements GatherInfoService {
return check;
}
logger.info(String.format("开始发送指令:车牌%s,场站%s,通道%s,重量%s",info.getVename(),info.getAreaid(),info.getChnlno(),info.getGrosswt()));
log.info(String.format("开始发送指令:车牌%s,场站%s,通道%s,重量%s",info.getVename(),info.getAreaid(),info.getChnlno(),info.getGrosswt()));
boolean flag = false;
if (check) {
CommandClient.Client(info, PERMITTHOUGH);
logger.info("=============>>>>>>>>放行报文发送成功<<<<<<<<<==============");
log.info("=============>>>>>>>>放行报文发送成功<<<<<<<<<==============");
flag = true;
record();
} else {
CommandClient.Client(info, reason);
logger.info("=============>>>>>>>>重量异常报文发送成功<<<<<<<<<==============");
log.info("=============>>>>>>>>重量异常报文发送成功<<<<<<<<<==============");
}
commandlog(info,check,reason,land,list_infos);
return flag;
... ... @@ -672,10 +687,10 @@ public class GatherInfoHandle implements GatherInfoService {
* @return
*/
private Map nmmsAllocate(@NotNull String waybill){
logger.info("新舱单查询分拨申请数据开始");
log.info("新舱单查询分拨申请数据开始");
Feign_Allocate_Search feignAllocateSearch = new Feign_Allocate_Search(waybill,0,10);
Map map = gatherInfoHandle.nmmsService.getAllocate(feignAllocateSearch);
logger.info(""+map);
log.info(""+map);
return map;
}
... ... @@ -693,7 +708,7 @@ public class GatherInfoHandle implements GatherInfoService {
//中文逗号替换
waybill = waybill.replace(",", ",");
String[] maifest = waybill.split(",");
logger.info("运单列表:" + waybill);
log.info("运单列表:" + waybill);
boolean flag = false;
for (String awb : maifest) {
... ... @@ -706,18 +721,18 @@ public class GatherInfoHandle implements GatherInfoService {
JSONObject awbinfo = ds.getJSONObject(0);
if (awbinfo.containsKey("RECEIPTINFORMATION")){
if (awbinfo.getString("RECEIPTINFORMATION").contains("39301") || awbinfo.getString("RECEIPTINFORMATION").contains("39103")){
logger.info("运单:{},分拨回执查询结果:{}",awb,awbinfo.getString("RECEIPTINFORMATION"));
log.info("运单:{},分拨回执查询结果:{}",awb,awbinfo.getString("RECEIPTINFORMATION"));
}else {
logger.info("运单{}分拨申请回执不正常:{}",awb,awbinfo.getString("RECEIPTINFORMATION"));
log.info("运单{}分拨申请回执不正常:{}",awb,awbinfo.getString("RECEIPTINFORMATION"));
return false;
}
}
}else {
logger.info("运单:{}分拨申请回执未查询到,或未进行分拨申请",awb);
log.info("运单:{}分拨申请回执未查询到,或未进行分拨申请",awb);
return false;
}
}else{
logger.info("运单:{}分拨申请回执未查询到,或未进行分拨申请",awb);
log.info("运单:{}分拨申请回执未查询到,或未进行分拨申请",awb);
return false;
}
... ...
... ... @@ -6,7 +6,7 @@ import com.sy.service.GatherInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("GatherInfoService")
@Service("GatherInfoServiceImpl")
public class GatherInfoServiceImpl implements GatherInfoService {
@Autowired
... ...
... ... @@ -7,9 +7,9 @@ import com.sy.model.GatherInfo;
import com.sy.model.LandBusinessTypeList;
import com.sy.service.LandBusListService;
import com.sy.service.RedisService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
... ... @@ -17,9 +17,9 @@ import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class LandBusListServiceImpl implements LandBusListService {
private static final Logger logger = LoggerFactory.getLogger(LandBusListServiceImpl.class);
@Autowired
private LandBusinessTypeListMapper listMapper;
... ... @@ -128,21 +128,29 @@ public class LandBusListServiceImpl implements LandBusListService {
list = JSONArray.parseArray(landBusinessJson,LandBusinessTypeList.class);
//4. 若查询结果为null,返回无相对应进出场申请
if (list == null || list.isEmpty()) {
logger.error(gatherInfo.getVename()+"无相对应进出场申请");
log.error(gatherInfo.getVename()+"无相对应进出场申请");
return null;
}
for (LandBusinessTypeList item : list) {
if (item.getAisle().equals(gatherInfo.getChnlno()) && item.getBarcode().equals(gatherInfo.getBarcode())){
/**
* 通道对碰有了.二维码不一致怎么办?
*/
if (item.getAisle().equals(gatherInfo.getChnlno())){
if (item.getBarcode().equals(gatherInfo.getBarcode())){
log.info("车辆-{}的申请缓存信息核碰成功,通道:{}",gatherInfo.getVename(),gatherInfo.getChnlno());
return item;
}else {
log.error("[BARCODE-ERROR]:车辆-{}的申请缓存信息核碰失败,通道:{},二维码信息不一致",gatherInfo.getVename(),gatherInfo.getChnlno());
return null;
}
logger.info("车辆-{}的申请缓存信息核碰成功,通道:{}",gatherInfo.getVename(),gatherInfo.getChnlno());
return item;
}
}
}else {
logger.error("未找到车辆-{}的申请缓存信息",gatherInfo.getVename());
logger.info("未找到车辆-{}的申请缓存信息,或者流转已超期失效",gatherInfo.getVename());
log.error("未找到车辆-{}的申请缓存信息",gatherInfo.getVename());
log.info("未找到车辆-{}的申请缓存信息,或者流转已超期失效",gatherInfo.getVename());
return null;
}
}catch (Exception e){
... ...
... ... @@ -2,8 +2,7 @@ package com.sy.service.impl;
import com.sy.model.AdvanceArrive;
import com.sy.service.FeignService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Map;
... ... @@ -15,14 +14,14 @@ import java.util.Map;
* @email vokes0069@163.com
*/
@Service
@Slf4j
public class MessageServiceHystrix implements FeignService {
private static final Logger logger = LoggerFactory.getLogger(MessageServiceHystrix.class);
@Override
public Map<String, Object> sendMessage(AdvanceArrive arrive) {
logger.info("发送数据成功",arrive);
log.info("发送数据成功",arrive);
return null;
}
}
... ...
... ... @@ -7,7 +7,7 @@ import com.sy.model.RESMESSAGE;
import com.sy.service.CommandLogService;
import com.sy.service.ResMessageService;
import com.sy.socket.CommandClient;
import org.apache.log4j.Logger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
... ... @@ -22,10 +22,11 @@ import java.util.stream.Collectors;
* @time 2019-${MOUTH}-22 21:32
*/
@Service
@Slf4j
public class ResMessageServiceImpl implements ResMessageService {
private static final Logger logger = Logger.getLogger(ResMessageServiceImpl.class);
private static String FANGXING="-等运单未放行";
private static String AWB_EMPTY="未申请装载运单";
@Autowired
private RESMESSAGEMapper mapper;
... ... @@ -65,7 +66,7 @@ public class ResMessageServiceImpl implements ResMessageService {
}
}).collect(Collectors.toList());
logger.info("运单列表:" + toStrArry(list_infos));
log.info("运单列表:" + toStrArry(list_infos));
boolean flag = false;
/**
... ... @@ -89,7 +90,7 @@ public class ResMessageServiceImpl implements ResMessageService {
}
}
if (!noRelease.isEmpty()) {
logger.info(Arrays.toString(noRelease.toArray())+FANGXING);
log.info(Arrays.toString(noRelease.toArray())+FANGXING);
commandLogService.commandlog(info,false,Arrays.toString(noRelease.toArray())+FANGXING,null,list_infos,
new Double("0.0"),new Double("0.0"),new Double("0.0"),new Double("0.0"));
CommandClient.Client(info, Arrays.toString(noRelease.toArray())+FANGXING);
... ... @@ -97,6 +98,11 @@ public class ResMessageServiceImpl implements ResMessageService {
}
}
}
//todo:如果只拉集装器的判定
else{
log.info("[放行判定]:{}","集装器与散杂货放行");
return true;
}
return flag;
... ...
package com.sy.service.impl;
import com.sy.logic.LiftBar;
import com.sy.service.WeightCheckHandleService;
import com.sy.utils.FileTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
@Slf4j
@Service
public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
private static final Logger logger = LoggerFactory.getLogger(LiftBar.class);
//从配置文件中读取货物重差可控范围
private static String checkWt = FileTool.readProperties("grossWt");
... ... @@ -76,7 +74,7 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
result2 = Double.parseDouble(df.format(Math.abs((grossWt-wt)) / grossWt));
logger.info("[WEIGHT-CHECK]-进出场比对差值:{},空车出场差值:{},进出场比对重量差:{},空车比对重量差:{}",result,result2,Math.abs(inWt - goodsWt - grossWt),Math.abs(grossWt-wt));
log.info("[WEIGHT-CHECK]-进出场比对差值:{},空车出场差值:{},进出场比对重量差:{},空车比对重量差:{}",result,result2,Math.abs(inWt - goodsWt - grossWt),Math.abs(grossWt-wt));
}
double range = valueDob();
if (result <= range || result2 <= range) {
... ... @@ -122,8 +120,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
goodCheckResult = Double.parseDouble(df.format(Math.abs((grossWt-inWt-goodsWt)) / goodsWt));
}
double range = valueDob();
logger.info("[WEIGHT-CHECK]-实际离场拉货重量:{},申请离场拉货重量:{},货重差值:{},货重误差:{}",grossWt-inWt,goodsWt,grossWt-inWt-goodsWt,goodCheckResult);
logger.info("[WEIGHT-CHECK]-进出场比对差值:{},提货离场差值:{},进出场比对重量差:{}",result,result1,Math.abs(inWt - grossWt));
log.info("[WEIGHT-CHECK]-实际离场拉货重量:{},申请离场拉货重量:{},货重差值:{},货重误差:{}",grossWt-inWt,goodsWt,grossWt-inWt-goodsWt,goodCheckResult);
log.info("[WEIGHT-CHECK]-进出场比对差值:{},提货离场差值:{},进出场比对重量差:{}",result,result1,Math.abs(inWt - grossWt));
if (result <= range || goodCheckResult<=range) {
... ... @@ -228,8 +226,8 @@ public class WeightCheckHandleServiceImpl implements WeightCheckHandleService {
try {
m = nf.parse(checkWt);//将百分数转换成Number类型
} catch (ParseException e) {
logger.info("重量校验消息异常---"+e.toString());
logger.info(e.getMessage());
log.info("重量校验消息异常---"+e.toString());
log.info(e.getMessage());
}
return m.doubleValue();
}
... ...
... ... @@ -12,9 +12,8 @@ import com.sy.service.LandBusListService;
import com.sy.service.RedisService;
import com.sy.service.impl.GatherInfoHandle;
import com.sy.socket.CommandClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
... ... @@ -22,9 +21,14 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* X21 车辆过卡信息与金二路由处理.
* todo: 直接从业务整表进行二维码判定是不是更合理?
*
*/
@Slf4j
@Service("X21")
public class MessageRouterX21 implements MessageRouter {
private static final Logger logger = LoggerFactory.getLogger(MessageRouterX21.class);
/**
* 金二与本地认证兼容性开关
* Y 是金二业务必须走金二
... ... @@ -47,7 +51,7 @@ public class MessageRouterX21 implements MessageRouter {
@Override
public void route(Message message) {
logger.info("处理X21:gatherInfo");
log.info("处理X21:gatherInfo");
GatherInfoAnalysis gatherInfoAnalysis = new GatherInfoAnalysis();
GatherInfo info = gatherInfoAnalysis.toJavaBean(message);
... ... @@ -68,14 +72,20 @@ public class MessageRouterX21 implements MessageRouter {
*/
private void routerCheckG2(GatherInfo info){
/**
* 通过业务类型进行核对
* 1. 获取进出场申请信息,主要获取业务类型
* X21通道信息与流转信息比对
* 1. 从缓存获取车辆进出场申请信息,有流转信息再进行通道对碰.
* 无流转信息则说明缓存失效或者二维码不对.
*/
LandBusinessTypeList landBusinessTypeList = landBusListService.getLandBusinessTypeListByGather(info);
if (landBusinessTypeList!=null){
rightChnelCheck(landBusinessTypeList.getBusinesstype(),info);
}else {
/**
* 对应进出场申请数据
*/
log.error("[G2]-X21与流转信息核碰失败,未有流转缓存或者二维码对碰不成功");
CommandClient.Client(info,"G2-未找到通道对应申报信息,或二维码信息不一致");
record(info,false,"G2-未找到通道对应申报信息",null);
}
... ... @@ -110,39 +120,63 @@ public class MessageRouterX21 implements MessageRouter {
List<LandRouterConfig> routerConfigs = landRouterConfigDao.selectByBussType(businessType);
//有金二与业务类型绑定
if (!routerConfigs.isEmpty()){
/**
* 路由配置的卡口 是进出卡口都有 还是只有进或者出
* 根据X21过的通道类型(进卡口/出卡口)来判定,对应流转申报业务类型 的 进出卡口业务是否有金二通道配置
*/
boolean anyMatch = routerConfigs.stream().anyMatch(router-> router.getChanelType().equals(info.getIetype()));
//是否走对通道的判定
for (LandRouterConfig routerConfig : routerConfigs) {
if (routerConfig.getChanelId().equals(info.getChnlno())){
/**
* 查找到金二与通道的验放配置
*/
//缓存X21,用来接收海关的x82指令核对.收到X22指令后进行核销此缓存.走金二验放的才缓存
cacheWithSeqno(info);
//将X21报文发给三宝,让三宝发给金二
sendToSample(info);
record(info,true,"已转金二验放-[SEQN]:"+info.getSeqno(),null);
logger.info("[G2]>>为[金二业务],已将[{}]过卡信息发送与金二",info.getVename());
return;
/**
* 有对应卡口进出类型的配置
* 继续判定
* 1 通道是否走对. 走对 将X21报文给金二,由三宝转成X81
* 2 没走对 返回 走错通道.业务结束.
*/
if (anyMatch){
//是否走对通道的判定
for (LandRouterConfig routerConfig : routerConfigs) {
if (routerConfig.getChanelId().equals(info.getChnlno())){
/**
* 查找到金二与通道的验放配置
*/
log.info("[G2-ROUTER]-车辆[{}]流转为金二业务,转金二处理",info.getVename());
//缓存X21,用来接收海关的x82指令核对.收到X22指令后进行核销此缓存.走金二验放的才缓存
cacheWithSeqno(info);
log.debug("[G2-ROUTER-CACHE]-车辆[{}]流转已缓存[SEQNO]:{}",info.getVename(),info.getSeqno());
//将X21报文发给三宝,让三宝发给金二
sendToSample(info);
record(info,true,"已转金二验放-[SEQN]:"+info.getSeqno(),null);
log.info("[G2]>>为[金二业务],已将[{}]过卡信息发送与金二",info.getVename());
return;
}
}
}
/**
* 没适配上 为走错通道,走错通道直接给指令,不走本地验放.
* 为提高抬杆效率
*/
//todo:走错通道的回执指令处理
log.info("走错通道");
CommandClient.Client(info,"G2-未找到通道对应申报信息,或二维码信息不一致");
record(info,false,"走错通道-[SEQN]:"+info.getSeqno(),null);
}
/**
* 没适配上 为走错通道,走错通道直接给指令,不走本地验放.
* 为提高抬杆效率
* 有对应卡口进出类型的配置.
* 说明没有金二配置
* 走本地
*/
//todo:走错通道的回执指令处理
record(info,false,"走错通道-[SEQN]:"+info.getSeqno(),null);
logger.info("走错通道");
else{
//没有金二配置,走本地
X21Local(info);
}
}else {
//没有金二配置,走本地
X21Local(info);
}
}
/**
... ...
... ... @@ -3,29 +3,23 @@ package com.sy.service.router;
import com.alibaba.fastjson.JSON;
import com.sy.bwAnalysis.CommandInfoAnalysis;
import com.sy.bwAssist.Message;
import com.sy.mapper.LandRouterConfigDao;
import com.sy.model.GatherInfo;
import com.sy.model.LandBusinessTypeList;
import com.sy.model.LandRouterConfig;
import com.sy.model.CommandInfoX22;
import com.sy.service.CommandLogService;
import com.sy.service.LandBusListService;
import com.sy.service.RedisService;
import com.sy.service.impl.GatherInfoHandle;
import com.sy.socket.CommandClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("X22")
@Slf4j
public class MessageRouterX22 implements MessageRouter {
private static final Logger logger = LoggerFactory.getLogger(MessageRouterX22.class);
@Value("${g2.switch}")
private boolean g2Switch;
... ... @@ -40,7 +34,8 @@ public class MessageRouterX22 implements MessageRouter {
/**
* 放行的code标识
*/
private static String CODE_RELEASE = "00000000200000000000";
private static String CODE_RELEASE_I = "00000000200000000000";
private static String CODE_RELEASE_E = "00000000100000000000";
... ... @@ -53,7 +48,7 @@ public class MessageRouterX22 implements MessageRouter {
@Override
public void route(Message message) {
try {
logger.info("处理X22:CommandInfo");
log.info("处理X22:CommandInfo");
CommandInfoAnalysis commandInfoAnalysis = new CommandInfoAnalysis();
CommandInfoX22 commandInfoX22 = commandInfoAnalysis.toJavaBean(message);
... ... @@ -67,7 +62,7 @@ public class MessageRouterX22 implements MessageRouter {
/**
* 1. 判断指令是否放行
*/
if (commandInfoX22.getCheckResult().equals(CODE_RELEASE)) {
if (commandInfoX22.getCheckResult().equals(CODE_RELEASE_I) || commandInfoX22.getCheckResult().equals(CODE_RELEASE_E)) {
/**
* todo:第一种.收到G2指令直接放行.并记录过卡与流转申请的核销
*/
... ... @@ -87,13 +82,14 @@ public class MessageRouterX22 implements MessageRouter {
*/
CommandClient.Client(gatherInfo,commandInfoX22.getOpHint());
record(gatherInfo,false,gatherInfo.getSeqno()+"金二验放失败:"+commandInfoX22.getOpHint(),null);
}
}
else{
log.info("[X22-ERROR]:未找到对应的SEQNO:[{}]过卡缓存数据",commandInfoX22.getSeqNo());
}
}
}catch (Exception e){
logger.error("[X22-ERROR]:",e);
log.error("[X22-ERROR]:",e);
}
}
... ...
... ... @@ -139,7 +139,7 @@ public class CommandClient {
* */
private static String getXmlInfo(GatherInfo info,String message) {
String flag = null;
if ("直接放行".equals(message)){
if ("直接放行".equals(message) || "海关放行".equals(message)){
flag = "00";
} else{
flag = "11";
... ...
... ... @@ -3,6 +3,7 @@ package com.sy.task;
import com.sy.bwAnalysis.AnalysisRoute;
import com.sy.utils.XMLThreadPoolFactory;
import com.tianbo.util.IO.FileTool;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
... ... @@ -18,10 +19,9 @@ import java.util.concurrent.ThreadPoolExecutor;
/**
* 回执解析定时任务
*/
@Slf4j
@Component
public class TaskAnalysis {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TaskAnalysis.class);
//回执读取目录
@Value("${custom.receptDirectory}")
private String receptDir;
... ...
... ... @@ -33,14 +33,16 @@
<result column="REMARK" jdbcType="VARCHAR" property="remark" />
<result column="REMARK1" jdbcType="VARCHAR" property="remark1" />
<result column="REMARK2" jdbcType="VARCHAR" property="remark2" />
<result column="REMARK3" jdbcType="VARCHAR" property="remark3" />
<result column="ISTHREE" jdbcType="VARCHAR" property="isthree" />
<result column="VEPROPERTY" jdbcType="VARCHAR" property="veProperty" />
</resultMap>
<sql id="Base_Column_List">
id, MASSAGE_ID, TRAILER_FRAME_NO, TRAILER_LICENSE_NO, MASTER_LIST, PRODECT_TIME,
IS_DELETE, AGENTNO, AGENTNAME, COCODE, DRIVERNAME, DRIVERID, STARTPORT, ENDPORT,
STARTSATATION, ENDSTATION, AISLE, BUSINESSTYPE, TURNOVERFLAG, BARCODE, CONTRASTFLAG,
CREATE_BY, CREATE_DATE, UPDATE_BY, UPDATE_DATE, ISVALID, AISLEWT, ISFULL, REMARK,
REMARK1, REMARK2,ISTHREE
REMARK1, REMARK2,ISTHREE,VEPROPERTY
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
... ... @@ -135,7 +137,7 @@
CREATE_BY, CREATE_DATE, UPDATE_BY,
UPDATE_DATE, ISVALID, AISLEWT,
ISFULL, REMARK, REMARK1,
REMARK2)
REMARK2,REMARK3,VEPROPERTY)
values (#{id,jdbcType=VARCHAR}, #{massageId,jdbcType=VARCHAR}, #{trailerFrameNo,jdbcType=VARCHAR},
#{trailerLicenseNo,jdbcType=VARCHAR}, #{masterList,jdbcType=VARCHAR}, #{prodectTime,jdbcType=TIMESTAMP},
#{isDelete,jdbcType=VARCHAR}, #{agentno,jdbcType=VARCHAR}, #{agentname,jdbcType=VARCHAR},
... ... @@ -146,7 +148,7 @@
#{createBy,jdbcType=VARCHAR}, #{createDate,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateDate,jdbcType=TIMESTAMP}, #{isvalid,jdbcType=VARCHAR}, #{aislewt,jdbcType=DOUBLE},
#{isfull,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{remark1,jdbcType=VARCHAR},
#{remark2,jdbcType=VARCHAR})
#{remark2,jdbcType=VARCHAR},#{remark3,jdbcType=VARCHAR},#{veProperty,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sy.model.LandBusinessTypeList">
insert into land_businesstype_list
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sy.mapper.LandListDao">
<resultMap id="BaseResultMap" type="com.sy.model.LandList">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="MASSAGE_ID" jdbcType="VARCHAR" property="massageId" />
<result column="TRAILER_FRAME_NO" jdbcType="VARCHAR" property="trailerFrameNo" />
<result column="TRAILER_LICENSE_NO" jdbcType="VARCHAR" property="trailerLicenseNo" />
<result column="MASTER_LIST" jdbcType="VARCHAR" property="masterList" />
<result column="PRODECT_TIME" jdbcType="TIMESTAMP" property="prodectTime" />
<result column="IS_DELETE" jdbcType="VARCHAR" property="isDelete" />
<result column="AGENTNO" jdbcType="VARCHAR" property="agentno" />
<result column="AGENTNAME" jdbcType="VARCHAR" property="agentname" />
<result column="COCODE" jdbcType="VARCHAR" property="cocode" />
<result column="DRIVERNAME" jdbcType="VARCHAR" property="drivername" />
<result column="DRIVERID" jdbcType="VARCHAR" property="driverid" />
<result column="STARTPORT" jdbcType="VARCHAR" property="startport" />
<result column="ENDPORT" jdbcType="VARCHAR" property="endport" />
<result column="STARTSATATION" jdbcType="VARCHAR" property="startsatation" />
<result column="ENDSTATION" jdbcType="VARCHAR" property="endstation" />
<result column="AISLE" jdbcType="VARCHAR" property="aisle" />
<result column="BUSINESSTYPE" jdbcType="VARCHAR" property="businesstype" />
<result column="TURNOVERFLAG" jdbcType="VARCHAR" property="turnoverflag" />
<result column="BARCODE" jdbcType="VARCHAR" property="barcode" />
<result column="CONTRASTFLAG" jdbcType="VARCHAR" property="contrastflag" />
<result column="CREATE_BY" jdbcType="VARCHAR" property="createBy" />
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
<result column="UPDATE_BY" jdbcType="VARCHAR" property="updateBy" />
<result column="UPDATE_DATE" jdbcType="TIMESTAMP" property="updateDate" />
<result column="ISVALID" jdbcType="VARCHAR" property="isvalid" />
<result column="AISLEWT" jdbcType="DOUBLE" property="aislewt" />
<result column="ISFULL" jdbcType="VARCHAR" property="isfull" />
<result column="REMARK" jdbcType="VARCHAR" property="remark" />
<result column="REMARK1" jdbcType="VARCHAR" property="remark1" />
<result column="REMARK2" jdbcType="VARCHAR" property="remark2" />
<result column="REMARK3" jdbcType="VARCHAR" property="remark3" />
<result column="ISTHREE" jdbcType="VARCHAR" property="isthree" />
<result column="VEPROPERTY" jdbcType="VARCHAR" property="veproperty" />
<result column="MEDIUMTYPE" jdbcType="VARCHAR" property="mediumtype" />
<result column="SEQN" jdbcType="VARCHAR" property="seqn" />
<result column="TRAINSCONFIRMATION_NUMBER" jdbcType="VARCHAR" property="trainsconfirmationNumber" />
<result column="APPLICATION_STATUS" jdbcType="VARCHAR" property="applicationStatus" />
<result column="ENTERPRISE_CREDIT_CODE" jdbcType="VARCHAR" property="enterpriseCreditCode" />
<result column="ORGANIZATION_CODE" jdbcType="VARCHAR" property="organizationCode" />
<result column="DECLARE_PERSONNEL_NUMBERS" jdbcType="VARCHAR" property="declarePersonnelNumbers" />
<result column="MODE_TRANSPORTATION" jdbcType="VARCHAR" property="modeTransportation" />
</resultMap>
<sql id="Base_Column_List">
id, MASSAGE_ID, TRAILER_FRAME_NO, TRAILER_LICENSE_NO, MASTER_LIST, PRODECT_TIME,
IS_DELETE, AGENTNO, AGENTNAME, COCODE, DRIVERNAME, DRIVERID, STARTPORT, ENDPORT,
STARTSATATION, ENDSTATION, AISLE, BUSINESSTYPE, TURNOVERFLAG, BARCODE, CONTRASTFLAG,
CREATE_BY, CREATE_DATE, UPDATE_BY, UPDATE_DATE, ISVALID, AISLEWT, ISFULL, REMARK,
REMARK1, REMARK2, REMARK3, ISTHREE, VEPROPERTY, MEDIUMTYPE, SEQN, TRAINSCONFIRMATION_NUMBER,
APPLICATION_STATUS, ENTERPRISE_CREDIT_CODE, ORGANIZATION_CODE, DECLARE_PERSONNEL_NUMBERS,
MODE_TRANSPORTATION
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from land_list
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from land_list
where id = #{id,jdbcType=VARCHAR}
</delete>
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.sy.model.LandList" useGeneratedKeys="true">
insert into land_list (MASSAGE_ID, TRAILER_FRAME_NO, TRAILER_LICENSE_NO,
MASTER_LIST, PRODECT_TIME, IS_DELETE,
AGENTNO, AGENTNAME, COCODE,
DRIVERNAME, DRIVERID, STARTPORT,
ENDPORT, STARTSATATION, ENDSTATION,
AISLE, BUSINESSTYPE, TURNOVERFLAG,
BARCODE, CONTRASTFLAG, CREATE_BY,
CREATE_DATE, UPDATE_BY, UPDATE_DATE,
ISVALID, AISLEWT, ISFULL,
REMARK, REMARK1, REMARK2,
REMARK3, ISTHREE, VEPROPERTY,
MEDIUMTYPE, SEQN, TRAINSCONFIRMATION_NUMBER,
APPLICATION_STATUS, ENTERPRISE_CREDIT_CODE,
ORGANIZATION_CODE, DECLARE_PERSONNEL_NUMBERS,
MODE_TRANSPORTATION)
values (#{massageId,jdbcType=VARCHAR}, #{trailerFrameNo,jdbcType=VARCHAR}, #{trailerLicenseNo,jdbcType=VARCHAR},
#{masterList,jdbcType=VARCHAR}, #{prodectTime,jdbcType=TIMESTAMP}, #{isDelete,jdbcType=VARCHAR},
#{agentno,jdbcType=VARCHAR}, #{agentname,jdbcType=VARCHAR}, #{cocode,jdbcType=VARCHAR},
#{drivername,jdbcType=VARCHAR}, #{driverid,jdbcType=VARCHAR}, #{startport,jdbcType=VARCHAR},
#{endport,jdbcType=VARCHAR}, #{startsatation,jdbcType=VARCHAR}, #{endstation,jdbcType=VARCHAR},
#{aisle,jdbcType=VARCHAR}, #{businesstype,jdbcType=VARCHAR}, #{turnoverflag,jdbcType=VARCHAR},
#{barcode,jdbcType=VARCHAR}, #{contrastflag,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR},
#{createDate,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateDate,jdbcType=TIMESTAMP},
#{isvalid,jdbcType=VARCHAR}, #{aislewt,jdbcType=DOUBLE}, #{isfull,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR}, #{remark1,jdbcType=VARCHAR}, #{remark2,jdbcType=VARCHAR},
#{remark3,jdbcType=VARCHAR}, #{isthree,jdbcType=VARCHAR}, #{veproperty,jdbcType=VARCHAR},
#{mediumtype,jdbcType=VARCHAR}, #{seqn,jdbcType=VARCHAR}, #{trainsconfirmationNumber,jdbcType=VARCHAR},
#{applicationStatus,jdbcType=VARCHAR}, #{enterpriseCreditCode,jdbcType=VARCHAR},
#{organizationCode,jdbcType=VARCHAR}, #{declarePersonnelNumbers,jdbcType=VARCHAR},
#{modeTransportation,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.sy.model.LandList" useGeneratedKeys="true">
insert into land_list
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="massageId != null">
MASSAGE_ID,
</if>
<if test="trailerFrameNo != null">
TRAILER_FRAME_NO,
</if>
<if test="trailerLicenseNo != null">
TRAILER_LICENSE_NO,
</if>
<if test="masterList != null">
MASTER_LIST,
</if>
<if test="prodectTime != null">
PRODECT_TIME,
</if>
<if test="isDelete != null">
IS_DELETE,
</if>
<if test="agentno != null">
AGENTNO,
</if>
<if test="agentname != null">
AGENTNAME,
</if>
<if test="cocode != null">
COCODE,
</if>
<if test="drivername != null">
DRIVERNAME,
</if>
<if test="driverid != null">
DRIVERID,
</if>
<if test="startport != null">
STARTPORT,
</if>
<if test="endport != null">
ENDPORT,
</if>
<if test="startsatation != null">
STARTSATATION,
</if>
<if test="endstation != null">
ENDSTATION,
</if>
<if test="aisle != null">
AISLE,
</if>
<if test="businesstype != null">
BUSINESSTYPE,
</if>
<if test="turnoverflag != null">
TURNOVERFLAG,
</if>
<if test="barcode != null">
BARCODE,
</if>
<if test="contrastflag != null">
CONTRASTFLAG,
</if>
<if test="createBy != null">
CREATE_BY,
</if>
<if test="createDate != null">
CREATE_DATE,
</if>
<if test="updateBy != null">
UPDATE_BY,
</if>
<if test="updateDate != null">
UPDATE_DATE,
</if>
<if test="isvalid != null">
ISVALID,
</if>
<if test="aislewt != null">
AISLEWT,
</if>
<if test="isfull != null">
ISFULL,
</if>
<if test="remark != null">
REMARK,
</if>
<if test="remark1 != null">
REMARK1,
</if>
<if test="remark2 != null">
REMARK2,
</if>
<if test="remark3 != null">
REMARK3,
</if>
<if test="isthree != null">
ISTHREE,
</if>
<if test="veproperty != null">
VEPROPERTY,
</if>
<if test="mediumtype != null">
MEDIUMTYPE,
</if>
<if test="seqn != null">
SEQN,
</if>
<if test="trainsconfirmationNumber != null">
TRAINSCONFIRMATION_NUMBER,
</if>
<if test="applicationStatus != null">
APPLICATION_STATUS,
</if>
<if test="enterpriseCreditCode != null">
ENTERPRISE_CREDIT_CODE,
</if>
<if test="organizationCode != null">
ORGANIZATION_CODE,
</if>
<if test="declarePersonnelNumbers != null">
DECLARE_PERSONNEL_NUMBERS,
</if>
<if test="modeTransportation != null">
MODE_TRANSPORTATION,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="massageId != null">
#{massageId,jdbcType=VARCHAR},
</if>
<if test="trailerFrameNo != null">
#{trailerFrameNo,jdbcType=VARCHAR},
</if>
<if test="trailerLicenseNo != null">
#{trailerLicenseNo,jdbcType=VARCHAR},
</if>
<if test="masterList != null">
#{masterList,jdbcType=VARCHAR},
</if>
<if test="prodectTime != null">
#{prodectTime,jdbcType=TIMESTAMP},
</if>
<if test="isDelete != null">
#{isDelete,jdbcType=VARCHAR},
</if>
<if test="agentno != null">
#{agentno,jdbcType=VARCHAR},
</if>
<if test="agentname != null">
#{agentname,jdbcType=VARCHAR},
</if>
<if test="cocode != null">
#{cocode,jdbcType=VARCHAR},
</if>
<if test="drivername != null">
#{drivername,jdbcType=VARCHAR},
</if>
<if test="driverid != null">
#{driverid,jdbcType=VARCHAR},
</if>
<if test="startport != null">
#{startport,jdbcType=VARCHAR},
</if>
<if test="endport != null">
#{endport,jdbcType=VARCHAR},
</if>
<if test="startsatation != null">
#{startsatation,jdbcType=VARCHAR},
</if>
<if test="endstation != null">
#{endstation,jdbcType=VARCHAR},
</if>
<if test="aisle != null">
#{aisle,jdbcType=VARCHAR},
</if>
<if test="businesstype != null">
#{businesstype,jdbcType=VARCHAR},
</if>
<if test="turnoverflag != null">
#{turnoverflag,jdbcType=VARCHAR},
</if>
<if test="barcode != null">
#{barcode,jdbcType=VARCHAR},
</if>
<if test="contrastflag != null">
#{contrastflag,jdbcType=VARCHAR},
</if>
<if test="createBy != null">
#{createBy,jdbcType=VARCHAR},
</if>
<if test="createDate != null">
#{createDate,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
#{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateDate != null">
#{updateDate,jdbcType=TIMESTAMP},
</if>
<if test="isvalid != null">
#{isvalid,jdbcType=VARCHAR},
</if>
<if test="aislewt != null">
#{aislewt,jdbcType=DOUBLE},
</if>
<if test="isfull != null">
#{isfull,jdbcType=VARCHAR},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
<if test="remark1 != null">
#{remark1,jdbcType=VARCHAR},
</if>
<if test="remark2 != null">
#{remark2,jdbcType=VARCHAR},
</if>
<if test="remark3 != null">
#{remark3,jdbcType=VARCHAR},
</if>
<if test="isthree != null">
#{isthree,jdbcType=VARCHAR},
</if>
<if test="veproperty != null">
#{veproperty,jdbcType=VARCHAR},
</if>
<if test="mediumtype != null">
#{mediumtype,jdbcType=VARCHAR},
</if>
<if test="seqn != null">
#{seqn,jdbcType=VARCHAR},
</if>
<if test="trainsconfirmationNumber != null">
#{trainsconfirmationNumber,jdbcType=VARCHAR},
</if>
<if test="applicationStatus != null">
#{applicationStatus,jdbcType=VARCHAR},
</if>
<if test="enterpriseCreditCode != null">
#{enterpriseCreditCode,jdbcType=VARCHAR},
</if>
<if test="organizationCode != null">
#{organizationCode,jdbcType=VARCHAR},
</if>
<if test="declarePersonnelNumbers != null">
#{declarePersonnelNumbers,jdbcType=VARCHAR},
</if>
<if test="modeTransportation != null">
#{modeTransportation,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.sy.model.LandList">
update land_list
<set>
<if test="massageId != null">
MASSAGE_ID = #{massageId,jdbcType=VARCHAR},
</if>
<if test="trailerFrameNo != null">
TRAILER_FRAME_NO = #{trailerFrameNo,jdbcType=VARCHAR},
</if>
<if test="trailerLicenseNo != null">
TRAILER_LICENSE_NO = #{trailerLicenseNo,jdbcType=VARCHAR},
</if>
<if test="masterList != null">
MASTER_LIST = #{masterList,jdbcType=VARCHAR},
</if>
<if test="prodectTime != null">
PRODECT_TIME = #{prodectTime,jdbcType=TIMESTAMP},
</if>
<if test="isDelete != null">
IS_DELETE = #{isDelete,jdbcType=VARCHAR},
</if>
<if test="agentno != null">
AGENTNO = #{agentno,jdbcType=VARCHAR},
</if>
<if test="agentname != null">
AGENTNAME = #{agentname,jdbcType=VARCHAR},
</if>
<if test="cocode != null">
COCODE = #{cocode,jdbcType=VARCHAR},
</if>
<if test="drivername != null">
DRIVERNAME = #{drivername,jdbcType=VARCHAR},
</if>
<if test="driverid != null">
DRIVERID = #{driverid,jdbcType=VARCHAR},
</if>
<if test="startport != null">
STARTPORT = #{startport,jdbcType=VARCHAR},
</if>
<if test="endport != null">
ENDPORT = #{endport,jdbcType=VARCHAR},
</if>
<if test="startsatation != null">
STARTSATATION = #{startsatation,jdbcType=VARCHAR},
</if>
<if test="endstation != null">
ENDSTATION = #{endstation,jdbcType=VARCHAR},
</if>
<if test="aisle != null">
AISLE = #{aisle,jdbcType=VARCHAR},
</if>
<if test="businesstype != null">
BUSINESSTYPE = #{businesstype,jdbcType=VARCHAR},
</if>
<if test="turnoverflag != null">
TURNOVERFLAG = #{turnoverflag,jdbcType=VARCHAR},
</if>
<if test="barcode != null">
BARCODE = #{barcode,jdbcType=VARCHAR},
</if>
<if test="contrastflag != null">
CONTRASTFLAG = #{contrastflag,jdbcType=VARCHAR},
</if>
<if test="createBy != null">
CREATE_BY = #{createBy,jdbcType=VARCHAR},
</if>
<if test="createDate != null">
CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
UPDATE_BY = #{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateDate != null">
UPDATE_DATE = #{updateDate,jdbcType=TIMESTAMP},
</if>
<if test="isvalid != null">
ISVALID = #{isvalid,jdbcType=VARCHAR},
</if>
<if test="aislewt != null">
AISLEWT = #{aislewt,jdbcType=DOUBLE},
</if>
<if test="isfull != null">
ISFULL = #{isfull,jdbcType=VARCHAR},
</if>
<if test="remark != null">
REMARK = #{remark,jdbcType=VARCHAR},
</if>
<if test="remark1 != null">
REMARK1 = #{remark1,jdbcType=VARCHAR},
</if>
<if test="remark2 != null">
REMARK2 = #{remark2,jdbcType=VARCHAR},
</if>
<if test="remark3 != null">
REMARK3 = #{remark3,jdbcType=VARCHAR},
</if>
<if test="isthree != null">
ISTHREE = #{isthree,jdbcType=VARCHAR},
</if>
<if test="veproperty != null">
VEPROPERTY = #{veproperty,jdbcType=VARCHAR},
</if>
<if test="mediumtype != null">
MEDIUMTYPE = #{mediumtype,jdbcType=VARCHAR},
</if>
<if test="seqn != null">
SEQN = #{seqn,jdbcType=VARCHAR},
</if>
<if test="trainsconfirmationNumber != null">
TRAINSCONFIRMATION_NUMBER = #{trainsconfirmationNumber,jdbcType=VARCHAR},
</if>
<if test="applicationStatus != null">
APPLICATION_STATUS = #{applicationStatus,jdbcType=VARCHAR},
</if>
<if test="enterpriseCreditCode != null">
ENTERPRISE_CREDIT_CODE = #{enterpriseCreditCode,jdbcType=VARCHAR},
</if>
<if test="organizationCode != null">
ORGANIZATION_CODE = #{organizationCode,jdbcType=VARCHAR},
</if>
<if test="declarePersonnelNumbers != null">
DECLARE_PERSONNEL_NUMBERS = #{declarePersonnelNumbers,jdbcType=VARCHAR},
</if>
<if test="modeTransportation != null">
MODE_TRANSPORTATION = #{modeTransportation,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.sy.model.LandList">
update land_list
set MASSAGE_ID = #{massageId,jdbcType=VARCHAR},
TRAILER_FRAME_NO = #{trailerFrameNo,jdbcType=VARCHAR},
TRAILER_LICENSE_NO = #{trailerLicenseNo,jdbcType=VARCHAR},
MASTER_LIST = #{masterList,jdbcType=VARCHAR},
PRODECT_TIME = #{prodectTime,jdbcType=TIMESTAMP},
IS_DELETE = #{isDelete,jdbcType=VARCHAR},
AGENTNO = #{agentno,jdbcType=VARCHAR},
AGENTNAME = #{agentname,jdbcType=VARCHAR},
COCODE = #{cocode,jdbcType=VARCHAR},
DRIVERNAME = #{drivername,jdbcType=VARCHAR},
DRIVERID = #{driverid,jdbcType=VARCHAR},
STARTPORT = #{startport,jdbcType=VARCHAR},
ENDPORT = #{endport,jdbcType=VARCHAR},
STARTSATATION = #{startsatation,jdbcType=VARCHAR},
ENDSTATION = #{endstation,jdbcType=VARCHAR},
AISLE = #{aisle,jdbcType=VARCHAR},
BUSINESSTYPE = #{businesstype,jdbcType=VARCHAR},
TURNOVERFLAG = #{turnoverflag,jdbcType=VARCHAR},
BARCODE = #{barcode,jdbcType=VARCHAR},
CONTRASTFLAG = #{contrastflag,jdbcType=VARCHAR},
CREATE_BY = #{createBy,jdbcType=VARCHAR},
CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
UPDATE_BY = #{updateBy,jdbcType=VARCHAR},
UPDATE_DATE = #{updateDate,jdbcType=TIMESTAMP},
ISVALID = #{isvalid,jdbcType=VARCHAR},
AISLEWT = #{aislewt,jdbcType=DOUBLE},
ISFULL = #{isfull,jdbcType=VARCHAR},
REMARK = #{remark,jdbcType=VARCHAR},
REMARK1 = #{remark1,jdbcType=VARCHAR},
REMARK2 = #{remark2,jdbcType=VARCHAR},
REMARK3 = #{remark3,jdbcType=VARCHAR},
ISTHREE = #{isthree,jdbcType=VARCHAR},
VEPROPERTY = #{veproperty,jdbcType=VARCHAR},
MEDIUMTYPE = #{mediumtype,jdbcType=VARCHAR},
SEQN = #{seqn,jdbcType=VARCHAR},
TRAINSCONFIRMATION_NUMBER = #{trainsconfirmationNumber,jdbcType=VARCHAR},
APPLICATION_STATUS = #{applicationStatus,jdbcType=VARCHAR},
ENTERPRISE_CREDIT_CODE = #{enterpriseCreditCode,jdbcType=VARCHAR},
ORGANIZATION_CODE = #{organizationCode,jdbcType=VARCHAR},
DECLARE_PERSONNEL_NUMBERS = #{declarePersonnelNumbers,jdbcType=VARCHAR},
MODE_TRANSPORTATION = #{modeTransportation,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="releaseBarcode" parameterType="java.lang.String">
update land_list
set
ISVALID = '1'
where BARCODE = #{barcode,jdbcType=VARCHAR}
</update>
</mapper>
... ...
... ... @@ -10,13 +10,14 @@
<result column="chanel_type" jdbcType="VARCHAR" property="chanelType" />
<result column="business_type" jdbcType="VARCHAR" property="businessType" />
<result column="g2_business_type" jdbcType="VARCHAR" property="g2BusinessType" />
<result column="ie_type" jdbcType="VARCHAR" property="ieType" />
<result column="identify_type" jdbcType="VARCHAR" property="identifyType" />
<result column="gather_receiver" jdbcType="VARCHAR" property="gatherReceiver" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="status" jdbcType="VARCHAR" property="status" />
</resultMap>
<sql id="Base_Column_List">
id, area_id, area_name, chanel_id, chanel_name, chanel_type, business_type, g2_business_type,
id, area_id, area_name, chanel_id, chanel_name, chanel_type, business_type, g2_business_type,ie_type
identify_type, gather_receiver, create_time, `status`
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
... ...
... ... @@ -3,6 +3,7 @@ package com.sy;
import com.sy.bwAnalysis.AnalysisRoute;
import com.sy.logic.LiftBar;
import com.sy.utils.XMLThreadPoolFactory;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
... ... @@ -12,10 +13,9 @@ import java.util.concurrent.ThreadPoolExecutor;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class BeihuoAllocateTests {
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(LiftBar.class);
private static ThreadPoolExecutor threadPoolEs = XMLThreadPoolFactory.instance("kakou");
private AnalysisRoute analysisRoute=new AnalysisRoute();
... ... @@ -110,7 +110,7 @@ public class BeihuoAllocateTests {
//二维码
String barcode = "9cc260";
logger.error("开始分拨业务进场测试1");
log.error("开始分拨业务进场测试1");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -141,7 +141,7 @@ public class BeihuoAllocateTests {
//二维码
String barcode = "9cc260";
logger.error("开始分拨离场测试1");
log.error("开始分拨离场测试1");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -172,7 +172,7 @@ public class BeihuoAllocateTests {
//二维码
String barcode = "9cc260";
logger.error("开始分拨业务进场测试1");
log.error("开始分拨业务进场测试1");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -203,7 +203,7 @@ public class BeihuoAllocateTests {
//二维码
String barcode = "9cc260";
logger.error("开始分拨离场测试1");
log.error("开始分拨离场测试1");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ...
... ... @@ -3,6 +3,7 @@ package com.sy;
import com.sy.bwAnalysis.AnalysisRoute;
import com.sy.logic.LiftBar;
import com.sy.utils.XMLThreadPoolFactory;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
... ... @@ -13,9 +14,9 @@ import java.util.concurrent.TimeUnit;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class BeihuoTests {
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(LiftBar.class);
private static ThreadPoolExecutor threadPoolEs = XMLThreadPoolFactory.instance("kakou");
private AnalysisRoute analysisRoute=new AnalysisRoute();
... ... @@ -110,7 +111,7 @@ public class BeihuoTests {
//二维码
String barcode = "fb2-4fdb-aa62-b6ee0d33c915";
logger.error("开始进场测试");
log.error("开始进场测试");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -141,7 +142,7 @@ public class BeihuoTests {
String ie = "E";
//二维码
String barcode = "f7f-461a-bb39-b61c0a4d5677";
logger.error("开始出口送货离场测试");
log.error("开始出口送货离场测试");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -308,7 +309,7 @@ public class BeihuoTests {
*
*/
public void message(){
logger.error("开始进场测试");
log.error("开始进场测试");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ...
... ... @@ -17,6 +17,7 @@ class RedisServiceTest {
@Autowired
RedisService redisService;
@Test
void expire() {
}
... ...
... ... @@ -4,25 +4,29 @@ import com.sy.bwAnalysis.AnalysisRoute;
import com.sy.bwAnalysis.GatherInfoAnalysis;
import com.sy.bwAnalysis.MessageAnalysis;
import com.sy.bwAssist.Message;
import com.sy.mapper.LandListDao;
import com.sy.model.GatherInfo;
import com.sy.service.RedisService;
import com.sy.service.router.MessageRouter;
import com.sy.service.router.RouterContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.log4j.PropertyConfigurator;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class GatherInfoHandleImplTest {
private static final Logger logger = LoggerFactory.getLogger(GatherInfoHandleImplTest.class);
private AnalysisRoute analysisRoute=new AnalysisRoute();
... ... @@ -30,6 +34,8 @@ public class GatherInfoHandleImplTest {
private static String CHANEL_BEIHUO_I1 = "4604601010";
private static String CHANEL_BEIHUO_E1 = "4604600010";
private static String CHANEL_BEIHUO_E2 = "4604600011";
//二维码
private static String BARCODE = "845-4493-8cbd-963e6ce478cc";
@Autowired
RedisService redisService;
... ... @@ -42,6 +48,9 @@ public class GatherInfoHandleImplTest {
@Autowired
MessageRouter messageRouterX22;
@Resource
private LandListDao landListDao;
//车牌号
private String voNo = "豫A61CR7";
//备案重量
... ... @@ -54,10 +63,10 @@ public class GatherInfoHandleImplTest {
private String chnlNo = "4604601010";
//进出场类型I/E
private String ie = "I";
//二维码
private String barcode = "613f5c";
//进通道报文
//进通道报文X21
private static String IMPORT_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<MSG>\n" +
"\t<META>\n" +
... ... @@ -111,6 +120,51 @@ public class GatherInfoHandleImplTest {
"\t</GATHER_INFO>\n" +
"</MSG>";
/**
* 入区不放行代码
*/
private static String CHCEK_RESULT_CODE_I_ERR= "11000000200000000000";
/**
* 入区放行代码
*/
private static String CHCEK_RESULT_CODE_I_SUC= "00000000200000000000";
/**
* 出区不放行代码
*/
private static String CHCEK_RESULT_CODE_E_ERR= "11000000100000000000";
/**
* 出区放行代码
*/
private static String CHCEK_RESULT_CODE_E_SUC= "00000000100000000000";
private static String RESULT_CODE_DES_SUC = "直接放行";
private static String RESULT_CODE_DES_ERR = "不放行";
//X22指令报文
private static String X22_COMMANDINFO_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<MSG>\n" +
"\t<META>\n" +
"\t\t<SNDR>KAO</SNDR>\n" +
"\t\t<RCVR/>\n" +
"\t\t<SEQN>20220829110020</SEQN>\n" +
"\t\t<DDTM>20220829110020</DDTM>\n" +
"\t\t<TYPE>KAKO</TYPE>\n" +
"\t\t<STYP>CARM</STYP>\n" +
"\t</META>\n" +
"\t<COMMAND_INFO AREA_ID=\"${AREA_ID}\" CHNL_NO=\"${CHNL_NO}\" I_E_TYPE=\"${I_E_TYPE}\" SEQ_NO=\"${SEQ_NO}\">\n" +
"\t\t<CHECK_RESULT>${CHECK_RESULT}</CHECK_RESULT>\n" +
"\t\t<OP_HINT>${OP_HINT}</OP_HINT>\n" +
"\t\t<SEAL>\n" +
"\t\t\t<ESEAL_ID/>\n" +
"\t\t\t<SEAL_KEY/>\n" +
"\t\t\t<OPEN_TIMES/>\n" +
"\t\t\t<ESEAL_IC_NO/>\n" +
"\t\t</SEAL>\n" +
"\t\t<SZ_MSG/>\n" +
"\t</COMMAND_INFO>\n" +
"</MSG>";
/**
... ... @@ -129,9 +183,9 @@ public class GatherInfoHandleImplTest {
//进出场类型I/E
String ie = "I";
//二维码
String barcode = "74b-4bef-b248-80a95358683f";
String barcode = BARCODE;
logger.error("开始进场测试");
log.error("开始进场测试");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -143,10 +197,8 @@ public class GatherInfoHandleImplTest {
String string = IMPORT_XML.replace("Msg","MSG");
MessageAnalysis analysis = new MessageAnalysis();
Message message = analysis.readTicketsXml(string);
GatherInfoAnalysis gatherInfoAnalysis = new GatherInfoAnalysis();
GatherInfo info = gatherInfoAnalysis.toJavaBean(message);
mesageHandle(message);
}
... ... @@ -164,13 +216,13 @@ public class GatherInfoHandleImplTest {
//场站编号
String areaID = AREA_BEIHUO;
//通道编号
String chnlNo = CHANEL_BEIHUO_E2;
String chnlNo = CHANEL_BEIHUO_E1;
//进出场类型I/E
String ie = "E";
//二维码
String barcode = "22a-47a0-a296-1fe53e37a217";
String barcode = BARCODE;
logger.error("开始出口送货离场测试");
log.error("开始出口送货离场测试");
IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
.replace("${cross_weight}",cross_weight)
.replace("${areaID}",areaID)
... ... @@ -183,6 +235,34 @@ public class GatherInfoHandleImplTest {
Message message = analysis.readTicketsXml(string);
mesageHandle(message);
}
/**
* 接收到金二X22指令测试
*/
@Test
public void X22Test(){
landListDao.releaseBarcode("20220624063118000004");
X22_COMMANDINFO_XML= X22_COMMANDINFO_XML.replace("${AREA_ID}",AREA_BEIHUO)
.replace("${CHNL_NO}",CHANEL_BEIHUO_E1)
.replace("${I_E_TYPE}","E")
.replace("${SEQ_NO}","20220624063118000004")
.replace("${CHECK_RESULT}",CHCEK_RESULT_CODE_E_SUC)
.replace("${OP_HINT}",RESULT_CODE_DES_SUC);
String string = X22_COMMANDINFO_XML.replace("Msg","MSG");
MessageAnalysis analysis = new MessageAnalysis();
Message message = analysis.readTicketsXml(string);
mesageHandle(message);
}
public void mesageHandle(Message message){
if ("CARM".equals(message.getMeta().getSmType())) {
//策略判断
if(message.getComInfo() !=null){
... ... @@ -193,7 +273,6 @@ public class GatherInfoHandleImplTest {
routerContext.executeStrategy(message);
}
}
}
... ...