作者 shenhailong

yml 增加 海关备案编码 组织机构代码 配置 运抵 新增报 删除报 出港理货删除报 新增报 模板 分单判断空字符 删除模板 添加content

... ... @@ -133,6 +133,7 @@ custom:
send-path: ./send/
#海关备案编码
custom-code: 460470678920X
#企业备案编码
org-code: 9141010070678920XJ
tcs:
mq-number: DXPENT0000460002
... ...
package com.sunyo.wlpt.message.builder.controller;
import com.sunyo.wlpt.message.builder.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/mt8205")
public class CreateftlxController {
@Autowired
MT8205Service mt8205Service;
@RequestMapping("/8205create")
public Boolean create8205(@RequestBody Map<String, Object> map){
try {
return mt8205Service.create8205(map);
}catch (Exception e){
e.printStackTrace();
return false;
}
}
}
... ... @@ -2,9 +2,11 @@ package com.sunyo.wlpt.message.builder.controller;
import com.sunyo.wlpt.message.builder.service.MT3201Service;
import io.swagger.annotations.ApiModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
... ... @@ -17,18 +19,32 @@ public class MT3201Controller {
MT3201Service mt3201Service;
@RequestMapping("/3201create")
public Boolean fohcreate(@RequestBody Map<String, Object> map){
@RequestMapping("/createMt3201")
@ResponseBody
public int fohcreate(@RequestBody Map<String, Object> map){
try {
return mt3201Service.fohcreate(map);
}catch (Exception e){
e.printStackTrace();
return false;
return 0;
}
}
@RequestMapping("/removeMt3201")
@ResponseBody
public int remove(@RequestBody Map<String, Object> map){
try {
return mt3201Service.remove(map);
}catch (Exception e){
e.printStackTrace();
return 0;
}
}
}
... ...
... ... @@ -4,6 +4,7 @@ import com.sunyo.wlpt.message.builder.service.MT520XService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
... ... @@ -22,7 +23,8 @@ public class MT520XController {
* @param map
* @return
*/
@RequestMapping("/520xcreate")
@RequestMapping("/createMt520x")
@ResponseBody
public int create(@RequestBody Map<String, Object> map){
try {
... ... @@ -35,4 +37,24 @@ public class MT520XController {
}
}
/**
* 进出港理货
* @param map
* @return
*/
@RequestMapping("/removeMt520x")
@ResponseBody
public int remove520x(@RequestBody Map<String, Object> map){
try {
return mt520XService.remove520x(map);
}catch (Exception e){
e.printStackTrace();
return 0;
}
}
}
... ...
package com.sunyo.wlpt.message.builder.service;
import sun.jvm.hotspot.oops.ObjectHeap;
import java.io.IOException;
import java.util.Map;
public interface MT3201Service {
Boolean fohcreate(Map<String, Object> map) throws IOException;
int fohcreate(Map<String, Object> map) throws IOException;
int remove(Map<String, Object> map) throws IOException;
}
... ...
... ... @@ -2,6 +2,7 @@ package com.sunyo.wlpt.message.builder.service;
import java.io.IOException;
import java.util.Map;
public interface MT520XService {
... ... @@ -9,4 +10,6 @@ public interface MT520XService {
public int create(Map<String, Object> map);
public int remove520x(Map<String, Object> map) throws IOException;
}
... ...
... ... @@ -5,6 +5,7 @@ import com.sunyo.wlpt.base.model.NMMS_CUSTOM_MT3201;
import com.sunyo.wlpt.message.builder.service.MT3201Service;
import com.sunyo.wlpt.message.builder.util.CustomXmlMaker;
import com.tianbo.util.Date.DateUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
... ... @@ -14,37 +15,60 @@ import java.util.Map;
@Service
public class MT3201ServiceImp extends CustomXmlMaker implements MT3201Service {
@Value("${custom.custom-code}")
private String orgsn;
@Value("${custom.org-code}")
private String orgCode;
@Override
public Boolean fohcreate(Map<String, Object> map) throws IOException {
public int fohcreate(Map<String, Object> map) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
NMMS_CUSTOM_MT3201 customMt3201 = objectMapper.convertValue(map.get("mt3201"), NMMS_CUSTOM_MT3201.class);
// 关区代码
String customCode = customMt3201.getCustomcode();
// 报文头时间 精确到毫秒
map.put("sendTime", DateUtil.getCurrentTime17());
// 封装实体
map.put("mt", customMt3201);
// 生成报文头部
String msgId = makeMsgID("MT3201", orgsn, customMt3201.getAwba());
String msessageType = "MT3201";
String senderId = makeSenderID(customCode, orgsn, "");
String receiverID = customCode;
map.put("msgId", msgId);
map.put("msessageType", msessageType);
map.put("senderId", senderId);
map.put("receiverID", receiverID);
if (makeXmlToFile("/manifest/MT3201.ftlx", msgId+".xml", map,"./send/add/")>0){
return 1;
}else {
return 0;
}
}
@Override
public int remove(Map<String, Object> map) throws IOException {
// 关区代码
String customCode = map.get("customCode").toString();
// 报文头时间 精确到毫秒
map.put("sendTime", DateUtil.getCurrentTime17());
// 生成报文头部
String msgId = makeMsgID("MT3201", "460470678920X", customMt3201.getAwba());
String msgId = makeMsgID("MT3201", orgsn, map.get("awba").toString());
String msessageType = "MT3201";
String senderId = makeSenderID(customCode, "460470678920X", "DXPENT0000460002");
String senderId = makeSenderID(customCode, orgsn, "");
String receiverID = customCode;
map.put("msgId", msgId);
map.put("msessageType", msessageType);
map.put("senderId", senderId);
map.put("receiverID", receiverID);
// if (makeXmlToFile("/manifest/MT3201.ftlx", msgId+".xml", map)>0){
// return true;
// }else {
// return false;
// }
return null;
if (makeXmlToFile("/remove/MT3201.ftlx", msgId+".xml", map,"./send/remove/")>0){
return 1;
}else {
return 0;
}
}
}
... ...
... ... @@ -18,6 +18,9 @@ public class MT520XServiceImp extends CustomXmlMaker implements MT520XService{
@Value("${custom.custom-code}")
private String orgsn;
@Value("${custom.org-code}")
private String orgCode;
@Override
public int create(Map<String, Object> map) {
... ... @@ -35,13 +38,14 @@ public class MT520XServiceImp extends CustomXmlMaker implements MT520XService{
hashMap.put("sendTime", DateUtil.getCurrentTime17());
// 封装实体
hashMap.put("mt", customMt520X);
hashMap.put("orgCode", orgCode);
if ("5201".equals(customMt520X.getExt1())){
// 生成报文头部
String msgId = makeMsgID("MT5201", "460470678920X", customMt520X.getAwba());
String msgId = makeMsgID("MT5201", orgsn, customMt520X.getAwba());
String msessageType = "MT5201";
String senderId = makeSenderID(customCode, "460470678920X", "DXPENT0000460002");
String senderId = makeSenderID(customCode, orgsn, "DXPENT0000460002");
String receiverID = customCode;
hashMap.put("msgId", msgId);
hashMap.put("msessageType", msessageType);
... ... @@ -76,4 +80,45 @@ public class MT520XServiceImp extends CustomXmlMaker implements MT520XService{
}
return 0;
}
@Override
public int remove520x(Map<String, Object> map) throws IOException {
String customCode = map.get("customCode").toString();
map.put("customCode", customCode);
// 报文头时间 精确到毫秒
map.put("sendTime", DateUtil.getCurrentTime17());
if ("5201".equals(map.get("mt520x").toString())){
// 生成报文头部
String msgId = makeMsgID("MT5201", orgsn, map.get("awba").toString());
String msessageType = "MT5201";
String senderId = makeSenderID(customCode, orgsn, "");
String receiverID = customCode;
map.put("msgId", msgId);
map.put("msessageType", msessageType);
map.put("senderId", senderId);
map.put("receiverID", receiverID);
if (makeXmlToFile("/remove/MT5201.ftlx", msgId+".xml", map, "./send/remove/")>0){
return 1;
}else {
return 0;
}
}else {
// 生成报文头部
String msgId = makeMsgID("MT5202", orgsn, map.get("awba").toString());
String msessageType = "MT5202";
String senderId = makeSenderID(customCode, orgsn, "");
String receiverID = customCode;
map.put("msgId", msgId);
map.put("msessageType", msessageType);
map.put("senderId", senderId);
map.put("receiverID", receiverID);
if (makeXmlToFile("/remove/MT5202.ftlx", msgId+".xml", map, "./send/remove/")>0){
return 1;
}else {
return 0;
}
}
}
}
... ...
... ... @@ -29,6 +29,11 @@
<ChangeReasonCode>9999</ChangeReasonCode>
<ConditionCode>10</ConditionCode>
</TransportContractDocument>
<#if mt.awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${mt.awba}_${mt.awbh}</ID>
</AssociatedTransportDocument>
</#if>
<LoadingLocation>
<ID>${mt.originstation}/${mt.customcode}</ID>
<LoadingDate>202001210605086</LoadingDate>
... ...
... ... @@ -27,6 +27,11 @@
<ID>${mt.awba}</ID>
<ConditionCode>10</ConditionCode>
</TransportContractDocument>
<#if mt.awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${mt.awba}_${mt.awbh}</ID>
</AssociatedTransportDocument>
</#if>
<LoadingLocation>
<ID>${mt.originstation}/${mt.customcode}</ID>
<LoadingDate>202001210605086</LoadingDate>
... ...
... ... @@ -18,18 +18,23 @@
</BorderTransportMeans>
<UnloadingLocation>
<ID>${mt.destinationstation}/${mt.customcode}</ID>
<ArrivalDate>${mt.arrivetime?string('yyyyMMdd')}</ArrivalDate>
<ArrivalDate>${mt.arrivetime?string('yyyyMMddHHmmss')}</ArrivalDate>
</UnloadingLocation>
<Consignment>
<TransportContractDocument>
<ID>${mt.awba}<#if (mt.awbh)??>_${mt.awbh}</#if></ID>
<ID>${mt.awba}</ID>
</TransportContractDocument>
<#if mt.awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${mt.awba}_${mt.awbh}</ID>
</AssociatedTransportDocument>
</#if>
<ConsignmentPackaging>
<QuantityQuantity>${mt.piece}</QuantityQuantity>
</ConsignmentPackaging>
<TotalGrossMassMeasure>${mt.weight}</TotalGrossMassMeasure>
<ConsignmentItem>
<SequenceNumeric>${sequencenumeric}</SequenceNumeric>
<SequenceNumeric>1</SequenceNumeric>
<Commodity>
<CargoDescription>${mt.goodsname}</CargoDescription>
</Commodity>
... ...
... ... @@ -22,6 +22,11 @@
<TransportContractDocument>
<ID>${mt.awba}</ID>
</TransportContractDocument>
<#if mt.awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${mt.awba}_${mt.awbh}</ID>
</AssociatedTransportDocument>
</#if>
<LoadingLocation>
<ID>${mt.originstation}/${mt.customcode}</ID>
<LoadingDate>${mt.loadingtime?string('yyyyMMddHHmmss')}</LoadingDate>
... ...
... ... @@ -15,22 +15,24 @@
<TypeCode>4</TypeCode>
<ID>${mt.carrier}${mt.flightno}</ID>
<Name>${mt.carrier}${mt.flightno}</Name>
<ActualDateTime>${mt.starttime?string('yyyyMMddHHmmssSSS')}</ActualDateTime>
<CompletedDateTime>${mt.endtime?string('yyyyMMddHHmmssSSS')}</CompletedDateTime>
<ActualDateTime>${mt.starttime?string('yyyyMMddHHmmss')}</ActualDateTime>
<CompletedDateTime>${mt.endtime?string('yyyyMMddHHmmss')}</CompletedDateTime>
<LoadingLocation>
<ID>${mt.originstation}/${mt.customcode}</ID>
</LoadingLocation>
</BorderTransportMeans>
<TallyParty>
<ID>???</ID>
<ID>${orgCode}</ID>
</TallyParty>
<Consignment>
<TransportContractDocument>
<ID>${mt.awba}</ID>
</TransportContractDocument>
<#if mt.awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${mt.awba}_${mt.awbh}</ID>
<ID>${mt.awba}_${mtawbh}</ID>
</AssociatedTransportDocument>
</#if>
<ConsignmentPackaging>
<QuantityQuantity>${mt.piece}</QuantityQuantity>
</ConsignmentPackaging>
... ...
... ... @@ -14,22 +14,25 @@
<Name>${orgCode}</Name>
</RepresentativePerson>
<BorderTransportMeans>
<JourneyID>${flightNo}</JourneyID>
<JourneyID>${flightNo}/${flightDate}</JourneyID>
</BorderTransportMeans>
<Consignment>
<TransportContractDocument>
<ID>${awba}</ID>
<ChangeReasonCode>9999</ChangeReasonCode>
</TransportContractDocument>
<#if awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${awba}_${awbh}</ID>
</AssociatedTransportDocument>
</#if>
</Consignment>
<AdditionalInformation>
<Reason>${reason}</Reason>
<ContactName>${contactName}</ContactName>
<ContactTel>${contactTel}</ContactTel>
<#if content ??>
<#if content?length gt 1>
<Content>${content}</Content>
<#else>
<Content></Content>
</#if>
</AdditionalInformation>
</Declaration>
... ...
<Manifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:Declaration:datamodel:standard:CN:MT3201:1">
<Head>
<MessageID>${msgId}</MessageID>
<FunctionCode>3</FunctionCode>
<MessageType>${msessageType}</MessageType>
<SenderID>${senderId}</SenderID>
<ReceiverID>${receiverID}</ReceiverID>
<SendTime>${sendTime}</SendTime>
<Version>1.0</Version>
</Head>
<Declaration>
<DeclarationOfficeID>${customCode}</DeclarationOfficeID>
<BorderTransportMeans>
<JourneyID>${flightNo}/${flightDate}</JourneyID>
</BorderTransportMeans>
<Consignment>
<TransportContractDocument>
<ID>${awba}</ID>
</TransportContractDocument>
<#if awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${awba}_${awbh}</ID>
</AssociatedTransportDocument>
</#if>
</Consignment>
<AdditionalInformation>
<Reason>${reason}</Reason>
<ContactName>${contactName}</ContactName>
<ContactTel>${contactTel}</ContactTel>
<#if content?length gt 1>
<Content>${content}</Content>
</#if>
</AdditionalInformation>
</Declaration>
</Manifest>
\ No newline at end of file
... ...
... ... @@ -10,17 +10,25 @@
</Head>
<Declaration>
<BorderTransportMeans>
<JourneyID>${carrier}${flightNo}/${flightDate}</JourneyID>
<JourneyID>${flightNo}/${flightDate}</JourneyID>
</BorderTransportMeans>
<Consignment>
<TransportContractDocument>
<ID>${awba}</ID>
</TransportContractDocument>
<#if awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${awba}_${awbh}</ID>
</AssociatedTransportDocument>
</#if>
</Consignment>
<AdditionalInformation>
<Reason>${reason}</Reason>
<ContactName>${contactName}</ContactName>
<ContactTel>${contactTel}</ContactTel>
<#if content?length gt 1>
<Content>${content}</Content>
</#if>
</AdditionalInformation>
</Declaration>
</Manifest>
\ No newline at end of file
... ...
<Manifest xmlns="urn:Declaration:datamodel:standard:CN:MT5202:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Head>
<MessageID>${msgId}</MessageID>
<FunctionCode>3</FunctionCode>
<MessageType>${msessageType}</MessageType>
<SenderID>${senderId}</SenderID>
<ReceiverID>${receiverID}</ReceiverID>
<SendTime>${sendTime}</SendTime>
<Version>1.0</Version>
</Head>
<Declaration>
<DeclarationOfficeID>${customCode}</DeclarationOfficeID>
<BorderTransportMeans>
<JourneyID>${flightNo}/${flightDate}</JourneyID>
</BorderTransportMeans>
<Consignment>
<TransportContractDocument>
<ID>${awba}</ID>
</TransportContractDocument>
<#if awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${awba}_${awbh}</ID>
</AssociatedTransportDocument>
</#if>
</Consignment>
<AdditionalInformation>
<Reason>${reason}</Reason>
<ContactName>${contactName}</ContactName>
<ContactTel>${contactTel}</ContactTel>
<#if content?length gt 1>
<Content>${content}</Content>
</#if>
</AdditionalInformation>
</Declaration>
</Manifest>
\ No newline at end of file
... ...
<Manifest xmlns="urn:Declaration:datamodel:standard:CN:MT5202:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Head>
<MessageID>${msgId}</MessageID>
<FunctionCode>3</FunctionCode>
<MessageType>${msessageType}</MessageType>
<SenderID>${senderId}</SenderID>
<ReceiverID>${receiverID}</ReceiverID>
<SendTime>${sendTime}</SendTime>
<Version>1.0</Version>
</Head>
<Declaration>
<DeclarationOfficeID>${customCode}</DeclarationOfficeID>
<BorderTransportMeans>
<JourneyID>${flightNo}/${flightDate}</JourneyID>
</BorderTransportMeans>
<Consignment>
<TransportContractDocument>
<ID>${awba}</ID>
</TransportContractDocument>
<#if awbh?length gt 1>
<AssociatedTransportDocument>
<ID>${awba}_${awbh}</ID>
</AssociatedTransportDocument>
</#if>
</Consignment>
<AdditionalInformation>
<Reason>${reason}</Reason>
<ContactName>${contactName}</ContactName>
<ContactTel>${contactTel}</ContactTel>
<#if content?length gt 1>
<Content>${content}</Content>
</#if>
</AdditionalInformation>
</Declaration>
</Manifest>
\ No newline at end of file
... ...