作者 朱兆平

转关运抵报文生成发送接口优化

... ... @@ -158,10 +158,41 @@ customs:
# 邮箱客户端id
hostId: DXPENT0000460002
# 当前操作员ic卡证书号
certNo: 111
certNo: DXPENT0000460002
sso:
witheIP: 10.5.14.108,10.5.14.109,10.5.14.110
mq:
dir:
# 从mq队列读取存储到本地的路径
saveXml-dir:
# 从本地路径读取报文路径 发送的MQ队列
sendXml-dir: send
needSend: true
queue:
#发送mq队列名称
send-to-mq: response.transarrive
#读取mq队列名称
read-from-mq: send.transarrive
exchange:
#TCS回执发送到此交换,交换再把回执消息同步到其他配置的回执订阅队列
#交换名称
name: cus.arrivetrans.send.broadcast
#交换类型
type: fanout
#routing key名称,此处为空,所有绑定交换的队列都被广播
routing-key: transarrive
connection:
# ip: 218.28.199.134
# port: 8004
# vHost: NMMS
# username: tianbo
# password: vmvnv1v2VV
ip: 192.168.1.63
port: 5672
vHost: NMMS
username: admin
password: admin
info:
version: 1.0
description: "新舱单辅助管理服务-统一认证、转运管理、提前运抵等"
... ...
... ... @@ -12,18 +12,19 @@
</parent>
<groupId>com.tianbo</groupId>
<artifactId>nmms-manage</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.2-SNAPSHOT</version>
<name>nmms-manage</name>
<description>nmms management system</description>
<properties>
<druid.version>1.1.9</druid.version>
<druid.version>1.2.8</druid.version>
<spring-cloud.version>Greenwich.BUILD-SNAPSHOT</spring-cloud.version>
<lombok_sersion>1.18.6</lombok_sersion>
<fastJson_version>1.2.75</fastJson_version>
<swagger2_version>2.9.2</swagger2_version>
<spring_tomcat_version>9.0.35</spring_tomcat_version>
<logback.verion>1.2.9</logback.verion>
<jackson.verion>2.10.5</jackson.verion>
<spring_tomcat_version>9.0.56</spring_tomcat_version>
<logback.verion>1.2.10</logback.verion>
<jackson.verion>2.13.1</jackson.verion>
<xstream.verion>1.4.18</xstream.verion>
</properties>
<dependencies>
<!--spring boot-->
... ... @@ -34,7 +35,7 @@
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
... ... @@ -80,7 +81,7 @@
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.17</version>
<version>${xstream.verion}</version>
</dependency>
<!--<fastJson_version>1.2.75</fastJson_version>-->
<dependency>
... ... @@ -129,11 +130,6 @@
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
... ...
... ... @@ -5,6 +5,7 @@ import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.service.TransArriveExportService;
import com.tianbo.analysis.tools.TransArriveTools;
import com.tianbo.util.Date.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
... ... @@ -25,8 +26,6 @@ public class TransArriveExportController {
@ApiOperation(value = "新增转关运抵申报")
@PostMapping("/addTrans")
public ResultJson addTrans(@RequestBody TRANSTOARRIVEEXPORT transtoarriveexport){
transtoarriveexport.setAutoid(UUID.randomUUID().toString());
transtoarriveexport.setCreattime(new Date());
int result=transArriveExportService.addTransArriveExport(transtoarriveexport);
return result>0?new ResultJson("200","新增转关运抵申报成功!"):new ResultJson("201","新增转关运抵申报失败!");
}
... ...
package com.tianbo.analysis.controller;
import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.dao.TransToArriveExportResonseDao;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.model.TransToArriveExportResonse;
import com.tianbo.analysis.service.TransArriveExportService;
import com.tianbo.util.Date.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Api(description = "转关运抵申报")
@RestController
@RequestMapping("/trans/log")
public class TransArriveExportResponseController {
@Resource
TransToArriveExportResonseDao mydao;
@ApiOperation(value = "查询申报回执")
@GetMapping("/getByAutoid")
public ResultJson<List<TransToArriveExportResonse>> selectPrediction(@RequestParam(value = "autoid", required = true) String clientseqno){
List<TransToArriveExportResonse> r = mydao.selectByClientseqno(clientseqno);
return new ResultJson("200","success",r);
}
}
... ...
... ... @@ -17,6 +17,8 @@ public interface TRANSTOARRIVEEXPORTMapper {
int updateByPrimaryKeySelective(TRANSTOARRIVEEXPORT record);
int updateByPrimaryKey(TRANSTOARRIVEEXPORT record);
//更新发送状态
int updateStatusByPrimaryKey(TRANSTOARRIVEEXPORT record);
List<TRANSTOARRIVEEXPORT> selectTrans(TRANSTOARRIVEEXPORT record);
... ...
package com.tianbo.analysis.dao;
import com.tianbo.analysis.model.TransToArriveExportResonse;
import java.util.List;
public interface TransToArriveExportResonseDao {
int deleteByPrimaryKey(String autoid);
int insert(TransToArriveExportResonse record);
int insertSelective(TransToArriveExportResonse record);
TransToArriveExportResonse selectByPrimaryKey(String autoid);
List<TransToArriveExportResonse> selectByClientseqno(String autoid);
int updateByPrimaryKeySelective(TransToArriveExportResonse record);
int updateByPrimaryKey(TransToArriveExportResonse record);
}
... ...
package com.tianbo.analysis.exception;
public class TransArriveException extends Exception {
public TransArriveException(){
super();
}
public TransArriveException(String errMessage){
super(errMessage);
}
public TransArriveException(String message, Throwable cause) {
super(message, cause);
}
public TransArriveException(Throwable cause) {
super(cause);
}
}
... ...
... ... @@ -12,6 +12,7 @@ import lombok.Data;
*/
@Data
public class SysMenu extends VUERouter implements Serializable {
private Integer id;
/**
... ...
package com.tianbo.analysis.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* TRANS_TO_ARRIVE_EXPORT_RESONSE
* @author
*/
@ApiModel(value="com.tianbo.analysis.model.TransToArriveExportResonse转关运抵回执表")
@Data
public class TransToArriveExportResonse implements Serializable {
private String autoid;
/**
* 版本
*/
@ApiModelProperty(value="版本")
private String ver;
/**
* 海关统一编号 导入错误时回执没有编号
*/
@ApiModelProperty(value="海关统一编号 导入错误时回执没有编号")
private String seqno;
/**
* 客户端统一编号
*/
@ApiModelProperty(value="客户端统一编号")
private String clientseqno;
/**
* 客户端导入回执状态码 0=正常 1=失败
*/
@ApiModelProperty(value="客户端导入回执状态码 0=正常 1=失败")
private String responsecode;
/**
* 客户端导入回执内容
处理成功时为空,处理失败时为错误原因。
*/
@ApiModelProperty(value="客户端导入回执内容处理成功时为空,处理失败时为错误原因。")
private String responsemessage;
/**
* 海关回执内容,审核备注
*/
@ApiModelProperty(value="海关回执内容,审核备注")
private String note;
/**
* 海关处理结果代码S=SUCCESS F=FAILD
*/
@ApiModelProperty(value="海关处理结果代码S=SUCCESS F=FAILD")
private String procresult;
/**
* 海关回执下发时间
*/
@ApiModelProperty(value="海关回执下发时间")
private Date procdate;
/**
* 回执接收时间,业务数据入库时间
*/
@ApiModelProperty(value="回执接收时间,业务数据入库时间")
private Date responsedate;
/**
* 操作人
*/
@ApiModelProperty(value="操作人")
private String operator;
/**
* 发送件数
*/
@ApiModelProperty(value="发送件数")
private String pcs;
/**
* 发送重量
*/
@ApiModelProperty(value="发送重量")
private String wgt;
/**
* 业务类型 进口 出口
*/
@ApiModelProperty(value="业务类型 进口 出口")
private String type;
private static final long serialVersionUID = 1L;
}
... ...
package com.tianbo.analysis.service;
public interface MQ {
boolean send(String message);
void get();
}
... ...
package com.tianbo.analysis.service.imp;
import com.tianbo.analysis.service.MQ;
import com.tianbo.util.RabitMq.exchange.ExSendMsg;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class MQImpl implements MQ {
//回执读取目录
@Value("${mq.connection.ip}")
private String mqIp;
@Value("${mq.connection.port}")
private int mqPort;
@Value("${mq.connection.vHost}")
private String mqVhost;
@Value("${mq.connection.username}")
private String mqUsername;
@Value("${mq.connection.password}")
private String mqPassword;
@Value("${mq.queue.send-to-mq}")
private String queueName;
@Value("${mq.exchange.name}")
private String exchangeName;
@Value("${mq.exchange.type}")
private String exchangeType;
@Value("${mq.exchange.routing-key}")
private String routingName;
@Value("${mq.needSend}")
private boolean mqNeedSend;
@Override
public boolean send(String message) {
try{
if (mqNeedSend){
boolean mqSendResult = ExSendMsg.sendMsg(
exchangeName,
exchangeType,
routingName,
queueName,
message,
mqIp,
mqPort,
mqVhost,
mqUsername,
mqPassword
);
if (mqSendResult){
log.info("转发到MQ成功");
}else{
log.info("转发到MQ失败");
}
return mqSendResult;
}
return false;
} catch (Exception e){
log.error("mq读写失败",e);
return false;
}
}
@Override
public void get() {
}
}
... ...
... ... @@ -4,10 +4,16 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.config.CustomsProperties;
import com.tianbo.analysis.dao.TRANSTOARRIVEEXPORTMapper;
import com.tianbo.analysis.dao.TransToArriveExportResonseDao;
import com.tianbo.analysis.exception.FFMResolveException;
import com.tianbo.analysis.exception.TransArriveException;
import com.tianbo.analysis.model.MANIFEST_AIR_CHANGE;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.model.TRANSTOARRIVEEXPORT;
import com.tianbo.analysis.model.TransToArriveExportResonse;
import com.tianbo.analysis.service.MQ;
import com.tianbo.analysis.service.TransArriveExportService;
import com.tianbo.analysis.tools.TransArriveTools;
import com.tianbo.analysis.tools.XmlTools;
import com.tianbo.util.Date.DateUtil;
import lombok.extern.slf4j.Slf4j;
... ... @@ -44,11 +50,22 @@ public class TransArriveExportImpl implements TransArriveExportService {
@Autowired
private CustomsProperties customsProperties;
@Value("${customs.transarrive.xml-save}")
private String saveXmlForSendDir;
@Autowired
private MQ mq;
@Resource
TransToArriveExportResonseDao toArriveExportResonseDao;
@Override
public int addTransArriveExport(TRANSTOARRIVEEXPORT transtoarriveexport) {
// transtoarriveexport.setAutoid(UUID.randomUUID().toString());
String id = TransArriveTools.getClientseqno();
transtoarriveexport.setAutoid(id);
transtoarriveexport.setClientseqno(id);
transtoarriveexport.setCreattime(new Date());
return mapper.insertSelective(transtoarriveexport);
}
... ... @@ -72,17 +89,21 @@ public class TransArriveExportImpl implements TransArriveExportService {
@Override
public ResultJson send(TRANSTOARRIVEEXPORT record) {
//签名信息
String sign = "kUNHDHVG1b72ZIrN8voIGUr+2JRITIo5FlusuSQCMerhV5GEGg9Z42L5F28MM+4gFL6CQgH2JPmdRdHAYIKJa89fdxGnHE3QSVd8dDUxx7q7AUUDzOg25OVB3ULywb8ruivj6tAR0daYkU3ACzWMYZoH4BNEMh4Za6DI7lBNf04=";
//设置海关相关信息配置
record.setSign(sign);
record.setApplycode(customsProperties.getApplyCode());
record.setApplyname(customsProperties.getApplyName());
record.setCopcode(customsProperties.getCopCode());
record.setClientseqno(customsProperties.getTransarrive().getClientSeqno());
record.setHostid(customsProperties.getTransarrive().getHostId());
record.setCertno(customsProperties.getTransarrive().getCertNo());
//操作员IC卡号
record.setInputopid(customsProperties.getInputOpId());
// 操作员姓名
record.setInputopname(customsProperties.getInputOpName());
//签名时间
record.setSigndate(new Date());
ResultJson resultJson= new ResultJson();
try{
... ... @@ -112,7 +133,13 @@ public class TransArriveExportImpl implements TransArriveExportService {
boolean valied = XmlTools.validateXMLSchemaThrowError("xsd/ETAImportMessage.xsd", xmlStr);
if (valied) {
FileUtils.writeStringToFile(file, xmlStr, StandardCharsets.UTF_8);
//todo:更新发送状态,插入发送日志
//发送报文到MQ
mq.send(xmlStr);
//更新发送状态
record.setDstatus("001");
mapper.updateStatusByPrimaryKey(record);
// 插入发送日志
sendlog(record);
resultJson.setCode("200");
resultJson.setMsg("报文发送成功");
... ... @@ -149,12 +176,18 @@ public class TransArriveExportImpl implements TransArriveExportService {
return resultJson;
}
private void checkClientseqno(String clientSeqno) throws TransArriveException {
if (clientSeqno.isEmpty() && clientSeqno.length() != 18){
throw new TransArriveException("[ClientSeqNO-ERR] clientseqno信息不正确,应为18位的字符串");
}
}
@Override
public ResultJson batchSend(List<String> autoIDlist) {
ResultJson resultJson = new ResultJson();
List<TRANSTOARRIVEEXPORT> list = selectListByAutoIDS(autoIDlist);
for (TRANSTOARRIVEEXPORT manifestAirChange : list) {
ResultJson result = send(manifestAirChange);
resultJson = send(manifestAirChange);
/*if (!result){
message = message + manifestAirChange.getWaybillnomaster() +"发送失败\n";
}*/
... ... @@ -167,4 +200,25 @@ public class TransArriveExportImpl implements TransArriveExportService {
List<TRANSTOARRIVEEXPORT> list = mapper.selectListByAutoIDS(autoIDlist);
return list;
}
private void sendlog(TRANSTOARRIVEEXPORT record){
TransToArriveExportResonse toArriveExportResonse = new TransToArriveExportResonse();
toArriveExportResonse.setAutoid(UUID.randomUUID().toString());
toArriveExportResonse.setOperator(record.getUsername());
toArriveExportResonse.setPcs(record.getPackno());
toArriveExportResonse.setWgt(record.getGrosswt());
toArriveExportResonse.setResponsedate(new Date());
toArriveExportResonse.setClientseqno(record.getAutoid());
toArriveExportResonse.setType("E");
//发送记录
StringBuilder sb = new StringBuilder("申报已发送:转关方式[")
.append(record.getTrnmode())
.append("],")
.append("运单号[")
.append(record.getBillno())
.append("]");
toArriveExportResonse.setResponsemessage(sb.toString());
toArriveExportResonseDao.insertSelective(toArriveExportResonse);
}
}
... ...
package com.tianbo.analysis.tools;
import com.tianbo.util.Date.DateUtil;
import java.util.Random;
/**
* 生成转关运抵的Clientseqno的工具类,同时将与autoid主键共用
* 规则 000000000000057246 十八位的字符窜
* @author mrz
* @date 20220208
*/
public class TransArriveTools {
public synchronized static String getClientseqno(){
Random random = new Random();
int num = random.nextInt(9);
return DateUtil.getCurrentTime17()+String.valueOf(num);
}
}
... ...
... ... @@ -46,7 +46,7 @@
FLIGHTNO = #{flightno,jdbcType=VARCHAR} AND FLIGHTDATE = #{flightdate,jdbcType=TIMESTAMP}
AND dealstatus = '0' order by REPORTORDER asc
</select>
<select id="delFlightno" parameterType="com.tianbo.analysis.model.FFMInfo">
<delete id="delFlightno" parameterType="com.tianbo.analysis.model.FFMInfo">
DELETE FROM FFM_INFO where dealstatus = '0'
<if test="autoid != null">
and AUTOID = #{autoid,jdbcType=VARCHAR}
... ... @@ -57,13 +57,13 @@
<if test="flightdate != null">
and FLIGHTDATE = #{flightdate,jdbcType=TIMESTAMP}
</if>
</select>
<select id="delByAutoidList" parameterType="java.util.List">
</delete>
<delete id="delByAutoidList" parameterType="java.util.List">
DELETE FROM FFM_INFO where AUTOID in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</delete>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from FFM_INFO
where AUTOID = #{autoid,jdbcType=VARCHAR}
... ...
... ... @@ -21,6 +21,7 @@
CGONMS.SENDLOG
where
MESSAGEAUTOID = #{messageautoid,jdbcType=VARCHAR}
ORDER BY CREATEDATE DESC
</select>
<select id="checkWaybillPermit" parameterType="java.lang.String" resultMap="BaseResultMap">
... ...
... ... @@ -45,39 +45,24 @@
ClientSeqNo, HostId, CertNo, USERNAME, CREATTIME, DSTATUS, CUSTOM_RESPONSE_TEXT,
CUSTOM_RESPONSE_STATUS, UPDATETIME
</sql>
<sql id="Join_Response">
AUTOID, IEFlag, CustomsCode, InputOpId, InputOpName, ApplyName, ApplyCode,
CopCode, ArriveNo, ContaId, BillNo, TrafMode, TrafName, VoyageNo, TrafWay, PackNo,
GrossWt, UnloadCode, ArriveTime, ContaType, TrnMode, Notes, OperType, Sign, SignDate,
HostId, CertNo, USERNAME, CREATTIME, DSTATUS,UPDATETIME
</sql>
<sql id="Custom_Receipt">
<include refid="Base_Column_List" />
,RECEIPTION
</sql>
<select id="selectListByAutoIDS" resultMap="BaseResultMap" parameterType="java.util.List" >
SELECT
<include refid="Custom_Receipt" />
FROM
(
SELECT
<include refid="Custom_Receipt" />
FROM
(
SELECT
<include refid="Base_Column_List" />
FROM
TRANS_TO_ARRIVE_EXPORT
where AUTOID in
<include refid="Base_Column_List"></include>
FROM CGONMS.TRANS_TO_ARRIVE_EXPORT
WHERE AUTOID in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) t1
LEFT JOIN (
SELECT
RECEIPTION,
MESSAGEAUTOID,
MESSAGETYPE,
ROW_NUMBER () OVER ( PARTITION BY MESSAGEAUTOID ORDER BY CREATEDATE DESC ) rn
FROM
SENDLOG
) t2 ON t1.AUTOID = t2.MESSAGEAUTOID
AND t2.rn = 1
) t3
order by CREATTIME desc
</select>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
... ... @@ -87,25 +72,47 @@
where AUTOID = #{autoid,jdbcType=VARCHAR}
</select>
<select id="selectTrans" parameterType="com.tianbo.analysis.model.TRANSTOARRIVEEXPORT" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from CGONMS.TRANS_TO_ARRIVE_EXPORT
SELECT
<include refid="Base_Column_List" />
FROM
(
SELECT
<include refid="Join_Response" />,
t2.CUSTOM_RESPONSE_TEXT,
t2.CUSTOM_RESPONSE_STATUS,
t2.CLIENTSEQNO,
t2.SEQNO
FROM
TRANS_TO_ARRIVE_EXPORT t1
LEFT JOIN (
SELECT
RESPONSEMESSAGE || NOTE as CUSTOM_RESPONSE_TEXT,
RESPONSECODE || PROCRESULT as CUSTOM_RESPONSE_STATUS,
CLIENTSEQNO,
SEQNO,
ROW_NUMBER () OVER ( PARTITION BY CLIENTSEQNO ORDER BY RESPONSEDATE DESC ) rn
FROM
TRANS_TO_ARRIVE_EXPORT_RESONSE
) t2 ON t1.AUTOID = t2.CLIENTSEQNO
AND t2.rn = 1
) t3
where 1=1
<if test="customscode != null and customscode != ''" >
and CustomsCode = #{customscode,jdbcType=VARCHAR}
and CustomsCode = #{customscode,jdbcType=VARCHAR}
</if>
<if test="username != null and username != ''">
and USERNAME = #{username,jdbcType=VARCHAR}
and USERNAME = #{username,jdbcType=VARCHAR}
</if>
<if test="trafmode != null and trafmode != ''" >
and TrafMode = #{trafmode,jdbcType=VARCHAR}
and TrafMode = #{trafmode,jdbcType=VARCHAR}
</if>
<if test="unloadcode != null and unloadcode != ''" >
and UnloadCode = #{unloadcode,jdbcType=VARCHAR}
and UnloadCode = #{unloadcode,jdbcType=VARCHAR}
</if>
<if test="creattime != null" >
and #{creattime,jdbcType=TIMESTAMP}
and #{creattime,jdbcType=TIMESTAMP}
</if>
order by CREATTIME desc
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from CGONMS.TRANS_TO_ARRIVE_EXPORT
... ... @@ -462,6 +469,11 @@
</set>
where AUTOID = #{autoid,jdbcType=VARCHAR}
</update>
<update id="updateStatusByPrimaryKey" parameterType="com.tianbo.analysis.model.TRANSTOARRIVEEXPORT" >
update CGONMS.TRANS_TO_ARRIVE_EXPORT
set DSTATUS = #{dstatus,jdbcType=VARCHAR}
where AUTOID = #{autoid,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.tianbo.analysis.model.TRANSTOARRIVEEXPORT" >
update CGONMS.TRANS_TO_ARRIVE_EXPORT
set IEFlag = #{ieflag,jdbcType=VARCHAR},
... ...
<?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.tianbo.analysis.dao.TransToArriveExportResonseDao">
<resultMap id="BaseResultMap" type="com.tianbo.analysis.model.TransToArriveExportResonse">
<id column="AUTOID" jdbcType="VARCHAR" property="autoid" />
<result column="VER" jdbcType="VARCHAR" property="ver" />
<result column="SEQNO" jdbcType="VARCHAR" property="seqno" />
<result column="CLIENTSEQNO" jdbcType="VARCHAR" property="clientseqno" />
<result column="RESPONSECODE" jdbcType="VARCHAR" property="responsecode" />
<result column="RESPONSEMESSAGE" jdbcType="VARCHAR" property="responsemessage" />
<result column="NOTE" jdbcType="VARCHAR" property="note" />
<result column="PROCRESULT" jdbcType="VARCHAR" property="procresult" />
<result column="PROCDATE" jdbcType="TIMESTAMP" property="procdate" />
<result column="RESPONSEDATE" jdbcType="TIMESTAMP" property="responsedate" />
<result column="OPERATOR" jdbcType="VARCHAR" property="operator" />
<result column="PCS" jdbcType="VARCHAR" property="pcs" />
<result column="WGT" jdbcType="VARCHAR" property="wgt" />
<result column="TYPE" jdbcType="VARCHAR" property="type" />
</resultMap>
<sql id="Base_Column_List">
AUTOID, VER, SEQNO, CLIENTSEQNO, RESPONSECODE, RESPONSEMESSAGE, NOTE, PROCRESULT,
PROCDATE, RESPONSEDATE, "OPERATOR", PCS, WGT, "TYPE"
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from TRANS_TO_ARRIVE_EXPORT_RESONSE
where AUTOID = #{autoid,jdbcType=VARCHAR}
</select>
<select id="selectByClientseqno" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from TRANS_TO_ARRIVE_EXPORT_RESONSE
where CLIENTSEQNO = #{autoid,jdbcType=VARCHAR}
order by RESPONSEDATE desc
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from TRANS_TO_ARRIVE_EXPORT_RESONSE
where AUTOID = #{autoid,jdbcType=VARCHAR}
</delete>
<insert id="insert" keyColumn="AUTOID" keyProperty="autoid" parameterType="com.tianbo.analysis.model.TransToArriveExportResonse" useGeneratedKeys="true">
insert into TRANS_TO_ARRIVE_EXPORT_RESONSE (AUTOID,VER, SEQNO, CLIENTSEQNO,
RESPONSECODE, RESPONSEMESSAGE, NOTE,
PROCRESULT, PROCDATE, RESPONSEDATE,
"OPERATOR", PCS, WGT,
"TYPE")
values (#{autoid,jdbcType=VARCHAR},#{ver,jdbcType=VARCHAR}, #{seqno,jdbcType=VARCHAR}, #{clientseqno,jdbcType=VARCHAR},
#{responsecode,jdbcType=VARCHAR}, #{responsemessage,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR},
#{procresult,jdbcType=VARCHAR}, #{procdate,jdbcType=TIMESTAMP}, #{responsedate,jdbcType=TIMESTAMP},
#{operator,jdbcType=VARCHAR}, #{pcs,jdbcType=VARCHAR}, #{wgt,jdbcType=VARCHAR},
#{type,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" keyColumn="AUTOID" keyProperty="autoid" parameterType="com.tianbo.analysis.model.TransToArriveExportResonse" useGeneratedKeys="true">
insert into TRANS_TO_ARRIVE_EXPORT_RESONSE
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="autoid != null">
AUTOID,
</if>
<if test="ver != null">
VER,
</if>
<if test="seqno != null">
SEQNO,
</if>
<if test="clientseqno != null">
CLIENTSEQNO,
</if>
<if test="responsecode != null">
RESPONSECODE,
</if>
<if test="responsemessage != null">
RESPONSEMESSAGE,
</if>
<if test="note != null">
NOTE,
</if>
<if test="procresult != null">
PROCRESULT,
</if>
<if test="procdate != null">
PROCDATE,
</if>
<if test="responsedate != null">
RESPONSEDATE,
</if>
<if test="operator != null">
"OPERATOR",
</if>
<if test="pcs != null">
PCS,
</if>
<if test="wgt != null">
WGT,
</if>
<if test="type != null">
"TYPE",
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="autoid != null">
#{autoid,jdbcType=VARCHAR},
</if>
<if test="ver != null">
#{ver,jdbcType=VARCHAR},
</if>
<if test="seqno != null">
#{seqno,jdbcType=VARCHAR},
</if>
<if test="clientseqno != null">
#{clientseqno,jdbcType=VARCHAR},
</if>
<if test="responsecode != null">
#{responsecode,jdbcType=VARCHAR},
</if>
<if test="responsemessage != null">
#{responsemessage,jdbcType=VARCHAR},
</if>
<if test="note != null">
#{note,jdbcType=VARCHAR},
</if>
<if test="procresult != null">
#{procresult,jdbcType=VARCHAR},
</if>
<if test="procdate != null">
#{procdate,jdbcType=TIMESTAMP},
</if>
<if test="responsedate != null">
#{responsedate,jdbcType=TIMESTAMP},
</if>
<if test="operator != null">
#{operator,jdbcType=VARCHAR},
</if>
<if test="pcs != null">
#{pcs,jdbcType=VARCHAR},
</if>
<if test="wgt != null">
#{wgt,jdbcType=VARCHAR},
</if>
<if test="type != null">
#{type,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.tianbo.analysis.model.TransToArriveExportResonse">
update TRANS_TO_ARRIVE_EXPORT_RESONSE
<set>
<if test="ver != null">
VER = #{ver,jdbcType=VARCHAR},
</if>
<if test="seqno != null">
SEQNO = #{seqno,jdbcType=VARCHAR},
</if>
<if test="clientseqno != null">
CLIENTSEQNO = #{clientseqno,jdbcType=VARCHAR},
</if>
<if test="responsecode != null">
RESPONSECODE = #{responsecode,jdbcType=VARCHAR},
</if>
<if test="responsemessage != null">
RESPONSEMESSAGE = #{responsemessage,jdbcType=VARCHAR},
</if>
<if test="note != null">
NOTE = #{note,jdbcType=VARCHAR},
</if>
<if test="procresult != null">
PROCRESULT = #{procresult,jdbcType=VARCHAR},
</if>
<if test="procdate != null">
PROCDATE = #{procdate,jdbcType=TIMESTAMP},
</if>
<if test="responsedate != null">
RESPONSEDATE = #{responsedate,jdbcType=TIMESTAMP},
</if>
<if test="operator != null">
"OPERATOR" = #{operator,jdbcType=VARCHAR},
</if>
<if test="pcs != null">
PCS = #{pcs,jdbcType=VARCHAR},
</if>
<if test="wgt != null">
WGT = #{wgt,jdbcType=VARCHAR},
</if>
<if test="type != null">
"TYPE" = #{type,jdbcType=VARCHAR},
</if>
</set>
where AUTOID = #{autoid,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.tianbo.analysis.model.TransToArriveExportResonse">
update TRANS_TO_ARRIVE_EXPORT_RESONSE
set VER = #{ver,jdbcType=VARCHAR},
SEQNO = #{seqno,jdbcType=VARCHAR},
CLIENTSEQNO = #{clientseqno,jdbcType=VARCHAR},
RESPONSECODE = #{responsecode,jdbcType=VARCHAR},
RESPONSEMESSAGE = #{responsemessage,jdbcType=VARCHAR},
NOTE = #{note,jdbcType=VARCHAR},
PROCRESULT = #{procresult,jdbcType=VARCHAR},
PROCDATE = #{procdate,jdbcType=TIMESTAMP},
RESPONSEDATE = #{responsedate,jdbcType=TIMESTAMP},
"OPERATOR" = #{operator,jdbcType=VARCHAR},
PCS = #{pcs,jdbcType=VARCHAR},
WGT = #{wgt,jdbcType=VARCHAR},
"TYPE" = #{type,jdbcType=VARCHAR}
where AUTOID = #{autoid,jdbcType=VARCHAR}
</update>
</mapper>
... ...
... ... @@ -55,7 +55,7 @@
<OperType th:text="*{opertype}">${申报类型}</OperType>
<Sign th:text="*{sign}">${签名信息}</Sign>
<SignDate th:text="*{#dates.format(signdate,'yyyyMMddHHmmss')}">${签名日期}</SignDate>
<ClientSeqNo th:text="*{clientseqno}">${客户端统一编号}</ClientSeqNo>
<ClientSeqNo th:text="*{autoid}">${客户端统一编号}</ClientSeqNo>
<HostId th:text="*{hostid}">${邮箱客户端ID}</HostId>
<CertNo th:text="*{certno}">${当前操作员IC卡证书号}</CertNo>
</EtaArrivalSign>
... ...