作者 朱兆平

回执解析优化

... ... @@ -137,6 +137,7 @@ custom:
receptBakDir: ./success
#解析错误报文的备份目录
errBakDir: ./error
transmitDir: ./transmit
devops:
dir:
singlewindow-tcs-recept: D:\TCSSingleWindow\recive
... ...
... ... @@ -40,6 +40,10 @@ public class CustomXmlHandleThread implements Runnable{
@Value("${custom.errBakDir}")
private String errBakDir;
//回执转发目录
@Value("${custom.transmit}")
private String transmitDir;
private File xmlfile;
private static CustomXmlHandleThread customXmlHandle;
//海关新舱单回执报头
... ... @@ -101,6 +105,8 @@ public class CustomXmlHandleThread implements Runnable{
customXmlHandle.bakupDir = this.bakupDir;
customXmlHandle.errBakDir = this.errBakDir;
customXmlHandle.transmitDir = this.transmitDir;
// 初使化时将已静态化的testService实例化
}
... ... @@ -108,12 +114,15 @@ public class CustomXmlHandleThread implements Runnable{
public void run() {
try{
FileUtils.copyFileToDirectory(xmlfile,new File(customXmlHandle.transmitDir));
int i =handelXmlDocument();
String today = DateUtil.getTodayBy_yyyyMMdd();
String backdireByDay = customXmlHandle.bakupDir + "/" + today;
//操作成功,则转移剪切解析文件到备份目录,否则转移到error目录备份
if(i>0){
File bakupDirectory = new File(backdireByDay);
//复制一份到转发目录
//解析成功备份一份到备份目录
FileUtils.moveFileToDirectory(xmlfile,bakupDirectory,true);
}else {
errBak(xmlfile);
... ...
... ... @@ -57,7 +57,7 @@ public class NmmsBaseService {
return shareServiceImp.share(customReception.getMessageType(), customReception);
}
}
//未进入主分单解析 返回0 失败
return 0;
}
... ...
... ... @@ -4,6 +4,8 @@ import com.tianbo.analysis.dao.ALLOCATEARRIVALMapper;
import com.tianbo.analysis.model.ALLOCATEARRIVAL;
import com.tianbo.analysis.model.CustomReception;
import com.tianbo.analysis.service.ALLOCATEARRIVALService;
import com.tianbo.analysis.service.NmmsBaseService;
import com.tianbo.analysis.tools.AWBTools;
import com.tianbo.util.Date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
... ... @@ -19,7 +21,7 @@ import java.util.List;
*/
@Service
@Slf4j
public class ALLOCATEARRIVALServiceImp implements ALLOCATEARRIVALService {
public class ALLOCATEARRIVALServiceImp extends NmmsBaseService implements ALLOCATEARRIVALService {
@Autowired
ALLOCATEARRIVALMapper allocatearrivalMapper;
... ... @@ -39,19 +41,14 @@ public class ALLOCATEARRIVALServiceImp implements ALLOCATEARRIVALService {
String flightDateStr = customReception.getFlightDate();
if (!StringUtils.isEmpty(flightDateStr)) {
Date flightDate = DateUtil.formatByyyyyMMdd(flightDateStr);
//设置主单回执、航班号、航班日期
ALLOCATEARRIVAL allocatearrival = new ALLOCATEARRIVAL();
allocatearrival.setReceiptinformation(reception);
allocatearrival.setFlightno(customReception.getFlightNo().substring(2));
allocatearrival.setFlightdate(flightDate);
if (awbA!=null && awbA.length()>0){
StringBuffer stringBuffer = new StringBuffer(awbA);
stringBuffer.insert(3,"-");
awbA = stringBuffer.toString();
//设置主分单的 主单号
allocatearrival.setWaybillno(awbA);
}
... ... @@ -59,6 +56,31 @@ public class ALLOCATEARRIVALServiceImp implements ALLOCATEARRIVALService {
if (flightDate != null && customReception.getFlightNo() != null){
//处理主单格式,将海关回执的主单号58019316861,变为580-19316861
if (awbA!=null && awbA.length()>0){
}
}else {
return shareServiceImp.share("MT3202", customReception);
}
}
//未进入主分单解析 返回0 失败
return 0;
}
@Override
public int master() {
//设置主单回执、航班号、航班日期
ALLOCATEARRIVAL allocatearrival = new ALLOCATEARRIVAL();
allocatearrival.setReceiptinformation(reception);
String[] flightInfo = AWBTools.splitFlight(customReception.getFlightNo());
allocatearrival.setFlightno(flightInfo[1]);
allocatearrival.setCarrier(flightInfo[0]);
allocatearrival.setFlightdate(flightDate);
//设置主分单的 主单号
allocatearrival.setWaybillno(awbA);
allocatearrival.setStatus(nmsStatusCode);
//更新主单回执
int i = allocatearrivalMapper.updateRECEIPTION(allocatearrival);
//获取分单autoid
... ... @@ -78,14 +100,4 @@ public class ALLOCATEARRIVALServiceImp implements ALLOCATEARRIVALService {
}
return 0;
}
}else {
return shareServiceImp.share("MT3202", customReception);
}
}
//未进入主分单解析 返回0 失败
return 0;
}
}
... ...
... ... @@ -9,6 +9,7 @@ import com.tianbo.analysis.model.ORIGINMANIFESTMASTER;
import com.tianbo.analysis.model.Originmanifestsecondary;
import com.tianbo.analysis.model.SENDLOG;
import com.tianbo.analysis.service.CoustomAnalysisService;
import com.tianbo.analysis.service.NmmsBaseService;
import com.tianbo.util.Date.DateUtil;
import com.tianbo.util.Helper;
import lombok.extern.slf4j.Slf4j;
... ... @@ -20,9 +21,13 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author mrz
* 原始回执解析
*/
@Service
@Slf4j
public class CoustomAnalysisServiceImp implements CoustomAnalysisService {
public class CoustomAnalysisServiceImp extends NmmsBaseService implements CoustomAnalysisService {
@Autowired
SENDLOGMapper sendlogMapper;
... ... @@ -38,50 +43,25 @@ public class CoustomAnalysisServiceImp implements CoustomAnalysisService {
}
}
@Override
public int insertRecept(CustomReception customReception){
ShareServiceImp shareServiceImp = new ShareServiceImp();
String awbA = customReception.getWayBillMaster();
String awbH = customReception.getWayBillSecond();
// 回执内容
String reception = customReception.getResponseText();
String flightDateStr = customReception.getFlightDate();
// Date flightDate = new Date();
if (!StringUtils.isEmpty(flightDateStr)){
Date flightDate = DateUtil.formatByyyyyMMdd(flightDateStr);
@Override
public int insertRecept(CustomReception customReception){
return super.insertRecept(customReception);
}
@Override
public int second() {
// 设置分单回执
Originmanifestsecondary originmanifestsecondary = new Originmanifestsecondary();
originmanifestsecondary.setReceiption(reception);
// 设置主单回执、航班号、航班日期
ORIGINMANIFESTMASTER originmanifestmaster = new ORIGINMANIFESTMASTER();
originmanifestmaster.setReceiptinformation(reception);
originmanifestmaster.setFlightno(customReception.getFlightNo());
originmanifestmaster.setFlightDate(flightDate);
// 判断航班号 航班日期 是否为空
if (flightDate != null && customReception.getFlightNo() != null){
if (awbA!=null && awbA.length()>0){
StringBuffer stringBuffer = new StringBuffer(awbA);
stringBuffer.insert(3,"-");
awbA = stringBuffer.toString();
//设置主分单的 主单号
originmanifestsecondary.setWaybillnomaster(awbA);
originmanifestmaster.setWaybillnomaster(awbA);
}
//有分单号 更新分单
if(awbA!=null && awbA.length()>0 && awbH!=null && awbH.length()> 0){
//取分单号
String[] awbhArr = awbH.split("_");
String awbh = awbhArr[1];
originmanifestsecondary.setWaybillnosecondary(awbh);
originmanifestsecondary.setStatus(nmsStatusCode);
//更新分单回执
int i = originmanifestsecondaryMapper.updateRECEIPTION(originmanifestsecondary);
//获取分单autoid
... ... @@ -94,15 +74,26 @@ public class CoustomAnalysisServiceImp implements CoustomAnalysisService {
int ii = insertSendlog("MT1201",reception,autoId);
int iii = shareServiceImp.updateMessages(customReception);
if (i>0 && ii>0 && iii > 0){
if (i>0 && ii>0){
log.info("运单号 {} 原始回执更新成功",awbA);
return 1;
}
if (iii > 0){
return 1;
}
}
return 0;
}
//处理主单格式,将海关回执的主单号58019316861,变为580-19316861
if (awbA!=null && awbA.length()>0){
@Override
public int master() {
// 设置主单回执、航班号、航班日期
ORIGINMANIFESTMASTER originmanifestmaster = new ORIGINMANIFESTMASTER();
originmanifestmaster.setReceiptinformation(reception);
originmanifestmaster.setFlightno(customReception.getFlightNo());
originmanifestmaster.setFlightDate(flightDate);
originmanifestmaster.setWaybillnomaster(awbA);
originmanifestmaster.setStatus(nmsStatusCode);
//更新主单回执
int i = originmanifestmasterMapper.updateRECEIPTION(originmanifestmaster);
//获取分单autoid
... ... @@ -116,22 +107,17 @@ public class CoustomAnalysisServiceImp implements CoustomAnalysisService {
int ii =insertSendlog("MT1201",reception,autoId);
int iii = shareServiceImp.updateMessages(customReception);
if (i>0 && ii>0 && iii > 0){
if (i>0 && ii>0){
log.info("运单号 {} 原始回执更新成功",awbA);
return 1;
}
}
return 0;
}
}else {
return shareServiceImp.share("MT1201", customReception);
if (iii > 0){
return 1;
}
}
//未进入主分单解析 返回0 失败
return 0;
}
public int insertSendlog(String type,String reception,String autoId){
SENDLOG sendlog = new SENDLOG();
sendlog.setAutoid(Helper.getUUID());
... ...
... ... @@ -5,6 +5,8 @@ import com.tianbo.analysis.dao.INPORTALLOCATEMapper;
import com.tianbo.analysis.model.CustomReception;
import com.tianbo.analysis.model.INPORTALLOCATE;
import com.tianbo.analysis.service.INPORTALLOCATEService;
import com.tianbo.analysis.service.NmmsBaseService;
import com.tianbo.analysis.tools.AWBTools;
import com.tianbo.util.Date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
... ... @@ -21,7 +23,7 @@ import java.util.List;
@Service
@Slf4j
public class INPORTALLOCATEServiceImp implements INPORTALLOCATEService{
public class INPORTALLOCATEServiceImp extends NmmsBaseService implements INPORTALLOCATEService{
@Autowired
INPORTALLOCATEMapper inportallocateMapper;
... ... @@ -29,38 +31,20 @@ public class INPORTALLOCATEServiceImp implements INPORTALLOCATEService{
@Override
public int insertRecept(CustomReception customReception) {
ShareServiceImp shareServiceImp = new ShareServiceImp();
// 发送日志 插入
CoustomAnalysisServiceImp coustomAnalysisServiceImp = new CoustomAnalysisServiceImp();
return super.insertRecept(customReception);
}
// 主单号
String awbA = customReception.getWayBillMaster();
//回执内容
String reception = customReception.getResponseText();
String flightDateStr = customReception.getFlightDate();
if (!StringUtils.isEmpty(flightDateStr)) {
Date flightDate = DateUtil.formatByyyyyMMdd(flightDateStr);
//设置主单回执、航班号、航班日期
@Override
public int master() {
INPORTALLOCATE inportallocate = new INPORTALLOCATE();
inportallocate.setReceiptinformation(reception);
inportallocate.setFlightno(customReception.getFlightNo().substring(2));
String[] flightInfo = AWBTools.splitFlight(customReception.getFlightNo());
inportallocate.setFlightno(flightInfo[1]);
inportallocate.setCarrier(flightInfo[0]);
inportallocate.setFlightdate(flightDate);
if (awbA!=null && awbA.length()>0){
StringBuffer stringBuffer = new StringBuffer(awbA);
stringBuffer.insert(3,"-");
awbA = stringBuffer.toString();
//设置主分单的 主单号
inportallocate.setWaybillno(awbA);
}
// 判断航班号 航班日期 是否为空
if (flightDate != null && customReception.getFlightNo() != null){
//处理主单格式,将海关回执的主单号58019316861,变为580-19316861
if (awbA!=null && awbA.length()>0){
inportallocate.setStatus(nmsStatusCode);
//更新主单回执
int i = inportallocateMapper.updateRECEIPTION(inportallocate);
//获取分单autoid
... ... @@ -74,20 +58,14 @@ public class INPORTALLOCATEServiceImp implements INPORTALLOCATEService{
int ii =coustomAnalysisServiceImp.insertSendlog("MT6202",reception,autoId);
int iii = shareServiceImp.updateMessages(customReception);
if (i>0 && ii>0 && iii > 0){
if (i>0 && ii>0 ){
log.info("运单号 {} 分拨申请回执更新成功",awbA);
return 1;
}
if (iii > 0){
return 1;
}
return 0;
}
}else {
return shareServiceImp.share("MT6202", customReception);
}
}
//未进入主分单解析 返回0 失败
return 0;
}
}
... ...
... ... @@ -5,10 +5,10 @@ import com.tianbo.analysis.dao.PREPARESECONDARYMapper;
import com.tianbo.analysis.model.CustomReception;
import com.tianbo.analysis.model.PREPAREMASTER;
import com.tianbo.analysis.model.PREPARESECONDARY;
import com.tianbo.analysis.service.NmmsBaseService;
import com.tianbo.analysis.service.PREPAREMASTERService;
import com.tianbo.util.Date.DateUtil;
import com.tianbo.analysis.tools.AWBTools;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
... ... @@ -21,7 +21,7 @@ import java.util.List;
*/
@Service
@Slf4j
public class PREPAREMASTERServiceImp implements PREPAREMASTERService {
public class PREPAREMASTERServiceImp extends NmmsBaseService implements PREPAREMASTERService {
@Autowired
PREPAREMASTERMapper preparemasterMapper;
... ... @@ -33,49 +33,25 @@ public class PREPAREMASTERServiceImp implements PREPAREMASTERService {
// 货物接收运抵主分单
public int insertRecept(CustomReception customReception) {
return super.insertRecept(customReception);
}
ShareServiceImp shareServiceImp = new ShareServiceImp();
// 发送日志 插入
CoustomAnalysisServiceImp coustomAnalysisServiceImp = new CoustomAnalysisServiceImp();
// 主单号
String awbA = customReception.getWayBillMaster();
String awbH = customReception.getWayBillSecond();
//回执内容
String reception = customReception.getResponseText();
String flightDateStr = customReception.getFlightDate();
if (!StringUtils.isEmpty(flightDateStr)) {
Date flightDate = DateUtil.formatByyyyyMMdd(flightDateStr);
/**
* 入库分单回执信息
* @return 成功返回1,失败返回0。
*/
@Override
public int second() {
// 设置 接收运抵分单 回执
PREPARESECONDARY preparesecondary = new PREPARESECONDARY();
preparesecondary.setReceiptinformation(reception);
//设置主单回执、航班号、航班日期
PREPAREMASTER preparemaster = new PREPAREMASTER();
preparemaster.setReceiptinformation(reception);
preparemaster.setFlightno(customReception.getFlightNo());
preparemaster.setFlightdate(flightDate);
if (awbA!=null && awbA.length()>0){
StringBuffer stringBuffer = new StringBuffer(awbA);
stringBuffer.insert(3,"-");
awbA = stringBuffer.toString();
//设置主分单的 主单号
preparesecondary.setWaybillnomaster(awbA);
preparemaster.setWaybillnomaster(awbA);
}
// 判断航班号 航班日期 是否为空
if (flightDate != null && customReception.getFlightNo() != null){
//有分单号 更新分单
if(awbA!=null && awbA.length()>0 && awbH!=null && awbH.length()> 0){
//取分单号
//取分单号
String[] awbhArr = awbH.split("_");
String awbh = awbhArr[1];
preparesecondary.setWaybillnosecondary(awbh);
preparesecondary.setStatus(nmsStatusCode);
//更新分单回执
int i = preparesecondaryMapper.updateRECEIPTION(preparesecondary);
//获取分单autoid
... ... @@ -85,18 +61,36 @@ public class PREPAREMASTERServiceImp implements PREPAREMASTERService {
String autoId = preparesecondary1.getAutoid();
//插入sendlog记录表
log.info("即将插入日志运单号为:"+awbH+"->autoid="+autoId);
int ii = coustomAnalysisServiceImp.insertSendlog("MT3201",reception,autoId);
int ii = coustomAnalysisServiceImp.insertSendlog(customReception.getMessageType(),reception,autoId);
int iii = shareServiceImp.updateMessages(customReception);
if (i>0 && ii>0 && iii > 0){
if (i>0 && ii>0){
log.info("运单号 {} 原始回执更新成功",awbH);
return 1;
}
if (iii > 0){
return 1;
}
}
return 0;
}
//处理主单格式,将海关回执的主单号58019316861,变为580-19316861
if (awbA!=null && awbA.length()>0){
/**
* 入库分单回执信息
* @return 成功返回1,失败返回0。
*/
@Override
public int master() {
//设置主单回执、航班号、航班日期
PREPAREMASTER preparemaster = new PREPAREMASTER();
preparemaster.setReceiptinformation(reception);
String[] flightInfo = AWBTools.splitFlight(customReception.getFlightNo());
preparemaster.setFlightno(flightInfo[1]);
preparemaster.setCarrier(flightInfo[0]);
preparemaster.setFlightdate(flightDate);
preparemaster.setWaybillnomaster(awbA);
preparemaster.setStatus(nmsStatusCode);
//更新主单回执
int i = preparemasterMapper.updateRECEIPTION(preparemaster);
//获取分单autoid
... ... @@ -107,24 +101,17 @@ public class PREPAREMASTERServiceImp implements PREPAREMASTERService {
//插入sendlog记录表
log.info("即将插入日志运单号为:"+awbA+"->autoid="+autoId);
int ii =coustomAnalysisServiceImp.insertSendlog("MT3201",reception,autoId);
int ii =coustomAnalysisServiceImp.insertSendlog(customReception.getMessageType(),reception,autoId);
int iii = shareServiceImp.updateMessages(customReception);
if (i>0 && ii>0 && iii > 0){
if (i>0 && ii>0){
log.info("运单号 {} 原始回执更新成功",awbA);
return 1;
}
if (iii > 0){
return 1;
}
return 0;
}
}else {
return shareServiceImp.share("MT2201", customReception);
}
}
//未进入主分单解析 返回0 失败
return 0;
}
}
... ...
... ... @@ -15,9 +15,11 @@ public class AWBTools {
}
public static String[] splitFlight(String flightNo){
String[] flight = {"1","2"};
String[] flight = {"UNKONW","UNKONW"};
if (!StringUtils.isEmpty(flightNo) && flightNo.length()>2){
flight[0] = flightNo.substring(0,2);
flight[1] = flightNo.substring(2);
}
return flight;
}
... ...
... ... @@ -7,7 +7,7 @@
<result column="WAYBILLNO" property="waybillno" jdbcType="VARCHAR" />
<result column="CARRIER" property="carrier" jdbcType="VARCHAR" />
<result column="FLIGHTNO" property="flightno" jdbcType="VARCHAR" />
<result column="FLIGHTDATE" property="flightdate" jdbcType="TIMESTAMP" />
<result column="FLIGHTDATE" property="flightdate" jdbcType="DATE" />
<result column="CUSTOMOS" property="customos" jdbcType="VARCHAR" />
<result column="ARRIVALPIECES" property="arrivalpieces" jdbcType="VARCHAR" />
<result column="ARRIVALWEIGHT" property="arrivalweight" jdbcType="VARCHAR" />
... ... @@ -117,10 +117,14 @@
<update id="updateRECEIPTION" parameterType="com.tianbo.analysis.model.ALLOCATEARRIVAL" >
UPDATE ALLOCATEARRIVAL
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR}
WHERE FLIGHTNO = #{flightno,jdbcType=VARCHAR}
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR},
STATUS = #{status,jdbcType=VARCHAR}
WHERE
CARRIER = #{carrier,jdbcType=VARCHAR}
AND
FLIGHTNO = #{flightno,jdbcType=VARCHAR}
AND
FLIGHTDATE= #{flightDate,jdbcType=TIMESTAMP}
FLIGHTDATE= #{flightDate,jdbcType=DATE}
AND
WAYBILLNO = #{waybillno,jdbcType=VARCHAR}
</update>
... ... @@ -131,7 +135,7 @@
WHERE
FLIGHTNO= #{flightno,jdbcType=VARCHAR}
AND
FLIGHTDATE= #{flightDate,jdbcType=TIMESTAMP}
FLIGHTDATE= #{flightDate,jdbcType=DATE}
AND
WAYBILLNO = #{waybillno,jdbcType=VARCHAR}
</select>
... ...
... ... @@ -132,9 +132,13 @@
<update id="updateRECEIPTION" parameterType="com.tianbo.analysis.model.INPORTALLOCATE" >
UPDATE ALLOCATEARRIVAL
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR}
WHERE FLIGHTNO = #{flightno,jdbcType=VARCHAR}
UPDATE INPORTALLOCATE
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR},
STATUS = #{status,jdbcType=VARCHAR}
WHERE
CARRIER = #{carrier,jdbcType=VARCHAR}
AND
FLIGHTNO = #{flightno,jdbcType=VARCHAR}
AND
FLIGHTDATE= #{flightDate,jdbcType=TIMESTAMP}
AND
... ... @@ -143,7 +147,7 @@
<select id="selectAutoIdByAwb" parameterType="com.tianbo.analysis.model.INPORTALLOCATE" resultType="com.tianbo.analysis.model.INPORTALLOCATE">
SELECT ID
FROM ALLOCATEARRIVAL
FROM INPORTALLOCATE
WHERE
FLIGHTNO= #{flightno,jdbcType=VARCHAR}
AND
... ...
... ... @@ -355,7 +355,9 @@
<update id="updateRECEIPTION" parameterType="com.tianbo.analysis.model.ORIGINMANIFESTMASTER" >
UPDATE ORIGINMANIFESTMASTER
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR}
SET
RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR},
STATUS=#{status,jdbcType=VARCHAR }
WHERE FLIGHTNO = #{flightno,jdbcType=VARCHAR}
AND
FLIGHT_DATE= #{flightDate,jdbcType=TIMESTAMP}
... ...
... ... @@ -308,12 +308,15 @@
</insert>
<update id="updateRECEIPTION" parameterType="com.tianbo.analysis.model.PREPAREMASTER" >
UPDATE PREPAREMASTER
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR}
SET RECEIPTINFORMATION= #{receiptinformation,jdbcType=VARCHAR},
STATUS = #{status,jdbcType=VARCHAR }
WHERE FLIGHTNO = #{flightno,jdbcType=VARCHAR}
AND
FLIGHTDATE= #{flightDate,jdbcType=TIMESTAMP}
AND
WAYBILLNOMASTER = #{waybillnomaster,jdbcType=VARCHAR}
AND
CARRIER = #{carrier,jdbcType=VARCHAR}
</update>
<select id="selectAutoIdByAwb" parameterType="com.tianbo.analysis.model.PREPAREMASTER" resultType="com.tianbo.analysis.model.PREPAREMASTER">
... ...
... ... @@ -263,8 +263,11 @@
<update id="updateRECEIPTION" parameterType="com.tianbo.analysis.model.Originmanifestsecondary" >
UPDATE ORIGINMANIFESTSECONDARY
SET RECEIPTION= #{receiption,jdbcType=VARCHAR}
WHERE WAYBILLNOMASTER = #{waybillnomaster,jdbcType=VARCHAR}
SET
RECEIPTION= #{receiption,jdbcType=VARCHAR},
STATUS=#{status,jdbcType=VARCHAR }
WHERE
WAYBILLNOMASTER = #{waybillnomaster,jdbcType=VARCHAR}
AND WAYBILLNOSECONDARY = #{waybillnosecondary,jdbcType=VARCHAR}
</update>
... ...