diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileBusinessCmd.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileBusinessCmd.java new file mode 100644 index 0000000000000000000000000000000000000000..682cb2c9ef6b59624d6736a1a3de080403dd42a1 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileBusinessCmd.java @@ -0,0 +1,17 @@ +package com.seasky.ledgerincome.application.command.dto; + +import lombok.Data; + +@Data +public class FileBusinessCmd { + public String businessID ; + + public String fileID ; + + public String systemID; + + public String businessType ; + + public String businessCode ; + +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileContentCmd.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileContentCmd.java new file mode 100644 index 0000000000000000000000000000000000000000..da77f1b11fea4eff96d678bdb9b668e207e4e0ce --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileContentCmd.java @@ -0,0 +1,18 @@ +package com.seasky.ledgerincome.application.command.dto; + +import lombok.Data; + +@Data +public class FileContentCmd { + public byte[] fileStream; + public String fileID; + + public String fileName; + + public String fileExtension ; + + public String fileContent ; + + public Integer fileTypeID ; + public boolean isPrint ; +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileFiltBusinessCmd.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileFiltBusinessCmd.java new file mode 100644 index 0000000000000000000000000000000000000000..57f152c2aaf504092f9134ad20a63e5df8e0f283 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileFiltBusinessCmd.java @@ -0,0 +1,19 @@ +package com.seasky.ledgerincome.application.command.dto; + +import lombok.Data; + +@Data +public class FileFiltBusinessCmd { + public String systemID ; + + public String businessType ; + + public String businessCode ; + + public String relateBusinessType ; + + public String relateBusinessCode ; + public String Key; + + public String Token ; +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileSaveFileInfoCmd.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileSaveFileInfoCmd.java new file mode 100644 index 0000000000000000000000000000000000000000..dd6ce04bd5f6a349ac5ec9c2749c2705cf93c2bf --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/FileSaveFileInfoCmd.java @@ -0,0 +1,19 @@ +package com.seasky.ledgerincome.application.command.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class FileSaveFileInfoCmd { + public FileBusinessCmd fileBusiness; + + public FileContentCmd fileContent ; + + public String Key; + + public String UserName; + + public String Token ; + +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/SendInvoiceCmd.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/SendInvoiceCmd.java index 7d155022fbf3509c5ffba16a832d206d9888a704..e5bc8b9585bf294f24494278e30dd3b93283889c 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/SendInvoiceCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/application/command/dto/SendInvoiceCmd.java @@ -7,4 +7,6 @@ import lombok.Data; public class SendInvoiceCmd { @ApiModelProperty(value = "鍙戠エid",required = true) public Long invoiceId; + @ApiModelProperty(value = "鍥炲崟鍗曞彿",required = true) + public String billNo; } diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountClaimController.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountClaimController.java index 2fc1c7b6f6fc9855a02d4f0ac95fe494c0438fbe..03ba3590a560add668a5081fe2ecae26b3f162a3 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountClaimController.java +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountClaimController.java @@ -14,6 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("accountClaim") public interface AccountClaimController { @ApiOperation("鍒拌处璁ら鏌ヨ") - @PostMapping("/getAccountClaimOutList") + @PostMapping("pc/v1/getAccountClaimOutList") Result<AccountClaimOut> getAccountClaimOutList(@RequestBody AccountClaimQry qry); } diff --git a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountEntryManageController.java b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountEntryManageController.java index 0c7db7dd4559ad86ce4677dadafc1dc50350f253..53bb136f96023efa69a6adcfeae2b15b267d8b87 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountEntryManageController.java +++ b/ServiceSite/facade/src/main/java/com/seasky/ledgerincome/interfaces/controller/api/AccountEntryManageController.java @@ -35,6 +35,10 @@ public interface AccountEntryManageController { @PostMapping("/selectInvoiceTackleEntryApplicationPage") Result<InvoiceTackleEntryApplicationOut> selectInvoiceTackleEntryApplicationPage(@RequestBody EntryApplicationQry qry); @ApiOperation("鍙戦€佸紑绁�") - @PostMapping("pc/v1/sendInvoice") + @PostMapping("/sendInvoice") Result<Object> sendInvoice(@RequestBody SendInvoiceCmd cmd); + @ApiOperation("鏌ヨ寮€绁�") + @PostMapping("/queryInvoice") + Result<Object> queryInvoice(@RequestBody SendInvoiceCmd cmd); + } diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/FileCommandServiceImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/FileCommandServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fb15c1b3e48fca9d32f005c597350d4de6d1a3b1 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/FileCommandServiceImpl.java @@ -0,0 +1,75 @@ +package com.seasky.ledgerincome.application.command; + +import com.alibaba.fastjson.JSONObject; +import com.seasky.core.common.Error; +import com.seasky.core.common.ResponseCode; +import com.seasky.core.exception.DataBusinessException; +import com.seasky.core.util.ExceptionUtil; +import com.seasky.ledgerincome.application.command.api.FileCommandService; +import com.seasky.ledgerincome.application.command.dto.FileFiltBusinessCmd; +import com.seasky.ledgerincome.application.command.dto.FileSaveFileInfoCmd; +import com.seasky.ledgerincome.utils.HttpClientUtil; +import com.seasky.ledgerincome.utils.PropertyUtil; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Objects; + +public class FileCommandServiceImpl implements FileCommandService { + @Resource + PropertyUtil propertyUtil; + @Override + public void SaveFileInfo(FileSaveFileInfoCmd cmd) { + String fileUrl=propertyUtil.getFileUrl(); + String fileKey = propertyUtil.getFileKey(); + String fileSecre=propertyUtil.getFileSecre(); + if(Objects.isNull(fileUrl)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛鍦板潃fileUrl锛�"); + if(Objects.isNull(fileKey)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛fileKey锛�"); + if(Objects.isNull(fileSecre)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛fileSecre锛�"); + String url = fileUrl+ "/FileInfo/SaveFileInfo"; + cmd.setKey(fileKey); + LocalDateTime currentDate = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH"); + String formattedDate = currentDate.plusHours(1).format(formatter); + String token=fileKey+"|"+formattedDate+"|"+fileSecre; + cmd.setToken(token); + String s = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(cmd)); + JSONObject stationObj = JSONObject.parseObject(s); + if (stationObj.getString("isSuccess") == null || !"true".equals(stationObj.getString("isSuccess"))) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null?"淇濆瓨闄勪欢澶辫触!":stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + } + + @Override + public void SaveFiltRelateBusiness(FileFiltBusinessCmd cmd) { + String fileUrl=propertyUtil.getFileUrl(); + String fileKey = propertyUtil.getFileKey(); + String fileSecre=propertyUtil.getFileSecre(); + if(Objects.isNull(fileUrl)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛鍦板潃fileUrl锛�"); + if(Objects.isNull(fileKey)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛fileKey锛�"); + if(Objects.isNull(fileSecre)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛fileSecre锛�"); + String url = fileUrl+ "/FileInfo/SaveFiltRelateBusiness"; + cmd.setKey(fileKey); + LocalDateTime currentDate = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH"); + String formattedDate = currentDate.plusHours(1).format(formatter); + String token=fileKey+"|"+formattedDate+"|"+fileSecre; + cmd.setToken(token); + String s = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(cmd)); + JSONObject stationObj = JSONObject.parseObject(s); + if (stationObj.getString("isSuccess") == null || !"true".equals(stationObj.getString("isSuccess"))) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null?"淇濆瓨闄勪欢鍏宠仈鍏崇郴澶辫触!":stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + } +} diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/InvoiceCommandServieceImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/InvoiceCommandServieceImpl.java index e04a666840cb2405cfdd8979a9a82e56025b76a5..f90a9f72c2953996c9dc1238b3dafae115fce540 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/InvoiceCommandServieceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/InvoiceCommandServieceImpl.java @@ -1,7 +1,10 @@ package com.seasky.ledgerincome.application.command; import com.alibaba.fastjson.JSONObject; +import com.seasky.core.common.Error; +import com.seasky.core.common.ResponseCode; import com.seasky.core.ddd.base.api.BaseCommandAbstractService; +import com.seasky.core.exception.DataBusinessException; import com.seasky.core.util.ExceptionUtil; import com.seasky.ledgerincome.annotation.NullableField; import com.seasky.ledgerincome.application.command.api.InvoiceCommandServiece; @@ -12,8 +15,11 @@ import com.seasky.ledgerincome.domain.aggregate.invoice.InvoiceDetailEntity; import com.seasky.ledgerincome.domain.aggregate.invoice.InvoiceRepository; import com.seasky.ledgerincome.domain.enums.BillTypeEnum; import com.seasky.ledgerincome.interfaces.controller.excel.InvoiceTemplate; +import com.seasky.ledgerincome.utils.FileUtil; +import com.seasky.ledgerincome.utils.HttpClientUtil; import com.seasky.ledgerincome.utils.PropertyUtil; import com.seasky.ledgerincome.utils.StringToMd5Hash; +import com.sun.org.apache.bcel.internal.generic.NEW; import io.seata.common.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -24,10 +30,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.lang.reflect.Field; import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call; @@ -40,6 +45,7 @@ public class InvoiceCommandServieceImpl extends BaseCommandAbstractService<Invoi InvoiceRepository invoiceRepository; @Resource PropertyUtil propertyUtil; + @Override public void createInvoice(CreateInvoiceCmd cmd) { InvoiceAggergate invoiceAggergate = InvoiceAssembler.toInvoiceAggergate(cmd); @@ -129,22 +135,81 @@ public class InvoiceCommandServieceImpl extends BaseCommandAbstractService<Invoi InvoiceAggergate invoice=findById(cmd.getInvoiceId()); if(invoice==null) throw ExceptionUtil.getException(null,"鍙戠エ涓嶅瓨鍦�!"); + LocalDateTime invoiceDate= LocalDateTime.now(); Map<String, Object> kpxx = new HashMap<>(); - kpxx.put("DDH",invoice.getInvoiceId());//鍙戠エ璁㈠崟鍙� + kpxx.put("DDH",invoice.getInvoiceId().toString());//鍙戠エ璁㈠崟鍙� kpxx.put("GHFMC",invoice.getBuyerName());//璐揣鏂瑰悕绉� kpxx.put("KPDW",invoice.getSellerName());//寮€绁ㄥ崟浣嶏紙閿€鍞柟鍚嶇О锛� - kpxx.put("FPLX",invoice.getBillType().equals(BillTypeEnum.澧炲€肩◣涓撶敤鍙戠エ.getValue())?61:62);//鍙戠エ绫诲瀷 - Map<String, Object> kpmx = new HashMap<>(); + kpxx.put("FPLX",invoice.getBillType().equals(BillTypeEnum.澧炲€肩◣涓撶敤鍙戠エ.getValue())?"61":"62");//鍙戠エ绫诲瀷 + kpxx.put("GHF_NSRSBH","");//璐揣鏂圭撼绋庝汉璇嗗埆鍙� + kpxx.put("GHF_EMAIL","");//璐揣鏂归偖绠憋紙鐢ㄤ簬鎺ユ敹鍙戠エ鏂囦欢锛� + kpxx.put("GHF_SJ","");//璐揣鏂规墜鏈� + kpxx.put("GHF_DZ","");//璐揣鏂瑰湴鍧€ + kpxx.put("GHF_GDDH","");//璐揣鏂瑰浐瀹氱數璇� + kpxx.put("GHF_YHZH","");//璐揣鏂归摱琛岃处鍙� + kpxx.put("KPMXXX",""); + kpxx.put("BZ",""); + kpxx.put("KPY",""); + kpxx.put("LSH",""); + kpxx.put("FPZF",false); + kpxx.put("KPSJ", invoiceDate.toString()); + kpxx.put("ZFFPHM",""); + kpxx.put("ZFFPDM",""); + kpxx.put("InvoiceTypeUrl",""); + kpxx.put("InvoiceType",15); + kpxx.put("FPDM",""); + kpxx.put("FPHM",""); + kpxx.put("KPPayOrderNo",""); + kpxx.put("FPMSG",""); + kpxx.put("FIN_FILE",""); + kpxx.put("InvoiceTypeName",""); + kpxx.put("Extends",""); + kpxx.put("SKRXM",""); + kpxx.put("FHRXM",""); + kpxx.put("KPRXM",""); + kpxx.put("EMail",""); + kpxx.put("Reduuid",""); + List<Map<String, Object>> kpmx = new ArrayList<>(); for (InvoiceDetailEntity en: invoice.getInvoiceDetailEntity()) { - kpmx.put("SL",en.getRate());//绋庣巼 - kpmx.put("SPBM",en.getItemCode());//绋庡姟缂栫爜锛堥」鐩紪鐮侊級 - kpmx.put("XMDJ",en.getPrice());//椤圭洰鍗曚环 - kpmx.put("XMMC",en.getItemName());//椤圭洰鍚嶇О - kpmx.put("XMSL",en.getUnit());//椤圭洰鏁伴噺 + Map<String, Object> mx=new HashMap<>(); + mx.put("SL",en.getRate().toString());//绋庣巼 + mx.put("SPBM",en.getItemCode());//绋庡姟缂栫爜锛堥」鐩紪鐮侊級 + mx.put("XMDJ",en.getPrice().toString());//椤圭洰鍗曚环 + mx.put("XMMC",en.getItemName());//椤圭洰鍚嶇О + mx.put("XMSL",en.getUnit());// + mx.put("GGXH",en.getStandards());//鍨嬪彿 + mx.put("XMDW","");//鍗曚綅 + mx.put("LSLBS","");// 绋庣巼鏍囪瘑<br />锛堢┖:闈為浂绋庣巼,1:鍏嶇◣,2:涓嶅緛绋�,3:鏅€氶浂绋庣巼锛� + mx.put("XMBZ",""); + mx.put("ZZSTSGL",""); + mx.put("XMXH",""); + kpmx.add(mx); } + kpxx.put("KPXMXX",kpmx); Map<String, Object> ExtendMods = new HashMap<>(); - ExtendMods.put("Extend1",2);//璐揣鏂圭被鍨嬶紙榛樿锛�2锛� 1:涓汉 2:鍗曚綅 + ExtendMods.put("Extend1","2");//璐揣鏂圭被鍨嬶紙榛樿锛�2锛� 1:涓汉 2:鍗曚綅 + ExtendMods.put("Extend2",""); +// ExtendMods.put("Extend3",""); +// ExtendMods.put("Extend4",""); +// ExtendMods.put("Extend5",""); +// ExtendMods.put("KPID",""); +// ExtendMods.put("Extend6",""); +// ExtendMods.put("Extend7",""); +// ExtendMods.put("Extend8",""); +// ExtendMods.put("Extend9",""); +// ExtendMods.put("Extend10",""); +// ExtendMods.put("Extend11",""); +// ExtendMods.put("Extend12",""); +// ExtendMods.put("Extend13",""); +// ExtendMods.put("Extend14",""); +// ExtendMods.put("Extend15",""); +// ExtendMods.put("Extend16",""); +// ExtendMods.put("Extend17",""); +// ExtendMods.put("Extend18",""); +// ExtendMods.put("Extend19",""); +// ExtendMods.put("Extend20",""); + kpxx.put("ExtendMods",ExtendMods); String signature= StringToMd5Hash.toMD5(invoice.getInvoiceId()+"|"+sppDzpjKey); String kpxxpara= JSONObject.toJSONString(kpxx); String kpmxpara= JSONObject.toJSONString(kpmx); @@ -153,14 +218,35 @@ public class InvoiceCommandServieceImpl extends BaseCommandAbstractService<Invoi Call call = (Call) service.createCall(); String endpoint = sppDzpjUrl; call.setTargetEndpointAddress(new java.net.URL(endpoint)); - call.setOperationName(new QName("http://tempuri.org/", "Kp")); - call.addParameter("kpxx", org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); - call.addParameter("kpmx", org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); - call.addParameter("signature", org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); + call.setOperationName(new QName("http://tempuri.org/", "WB_Kp")); + call.addParameter(new QName("http://tempuri.org/", "kpxx"), org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "kpmx"), org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "signature"), org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); call.setUseSOAPAction(true); - call.setSOAPActionURI("http://tempuri.org/Kp"); + call.setSOAPActionURI("http://tempuri.org/WB_Kp"); String res = (String) call.invoke(new Object[]{kpxxpara, kpmxpara, signature}); + JSONObject stationObj = JSONObject.parseObject(res); + + if (stationObj.getString("Success") == null || !"true".equals(stationObj.getString("Success"))) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("Message") == null?"寮€绁ㄥけ璐�!":stationObj.getString("Message")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + + String invoiceingId=stationObj.getString("Lsh"); + if(Objects.isNull(invoiceingId)) + throw new DataBusinessException( + Error.builder() + .message("寮€绁ㄥけ璐�!") + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + invoice.changeIsSend("鏄�",invoiceingId,invoiceDate.toString()); + invoiceRepository.save(invoice); }catch (Exception exception) { throw ExceptionUtil.getException(null,exception.getMessage()); @@ -168,6 +254,142 @@ public class InvoiceCommandServieceImpl extends BaseCommandAbstractService<Invoi } + @Override + public void queryInvoice(SendInvoiceCmd cmd,String code) { + String sppDzpjUrl = propertyUtil.getSppDzpjUrl(); + String sppDzpjKey = propertyUtil.getSppDzpjKey(); + if (StringUtils.isEmpty(sppDzpjUrl)) + throw ExceptionUtil.getException(null, "璇烽厤缃紑绁ㄦ帴鍙e湴鍧€url!"); + if (StringUtils.isEmpty(sppDzpjKey)) + throw ExceptionUtil.getException(null, "璇烽厤缃紑绁ㄦ帴鍙g閽ey!"); + InvoiceAggergate invoice = findById(cmd.getInvoiceId()); + if (invoice == null) + throw ExceptionUtil.getException(null, "鍙戠エ涓嶅瓨鍦�!"); + try { + org.apache.axis.client.Service service = new org.apache.axis.client.Service(); + Call call = (Call) service.createCall(); + String endpoint = sppDzpjUrl; + call.setTargetEndpointAddress(new java.net.URL(endpoint)); + call.setOperationName(new QName("http://tempuri.org/", "WB_Xz")); + call.addParameter(new QName("http://tempuri.org/", "ddh"), org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "lsh"), org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "signature"), org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN); + call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); + call.setUseSOAPAction(true); + call.setSOAPActionURI("http://tempuri.org/WB_Xz"); + String res = (String) call.invoke(new Object[]{invoice.getInvoiceId(), invoice.getInvoicingId(), sppDzpjKey}); + JSONObject stationObj = JSONObject.parseObject(res); + + if (stationObj.getString("RETURNCODE") == null || !"999999".equals(stationObj.getString("RETURNCODE"))) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("RETURNMESSAGE") == null ? "寮€绁ㄥけ璐�!" : stationObj.getString("RETURNMESSAGE")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + if (Objects.isNull(invoice.invoiceCode) || Objects.isNull(invoice.invoiceNo)) { + String invoiceNo = stationObj.getString("FP_HM"); + String invoiceCode = stationObj.getString("FP_DM"); + if (Objects.isNull(invoiceNo) || Objects.isNull(invoiceCode)) + throw new DataBusinessException( + Error.builder() + .message("鏌ヨ澶辫触!") + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + + String pdfFile = stationObj.getString("PDF_URL"); + if (Objects.isNull(pdfFile)) { + throw new DataBusinessException( + Error.builder() + .message("鍙戠エ鏂囦欢涓嬭浇澶辫触!") + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + byte[] bytes = FileUtil.getFile(pdfFile); + if(bytes.length==0) + throw new DataBusinessException( + Error.builder() + .message("鍙戠エ鏂囦欢涓嬭浇澶辫触!") + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + invoice.changeInvoiceInfo(invoiceNo, invoiceCode); + invoice.changeState(); + invoiceRepository.save(invoice); + //鏌ヨ鍚庯紝淇濆瓨鍒板奖鍍忓簱銆� + FileSaveFileInfoCmd fileSaveFileInfoCmd = new FileSaveFileInfoCmd(); + String fileUrl = propertyUtil.getFileUrl(); + String fileKey = propertyUtil.getFileKey(); + String fileSecre = propertyUtil.getFileSecre(); + if (Objects.isNull(fileUrl)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛鍦板潃fileUrl锛�"); + if (Objects.isNull(fileKey)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛fileKey锛�"); + if (Objects.isNull(fileSecre)) throw ExceptionUtil.getException(null, "璇烽厤缃奖鍍忓簱鎺ュ彛fileSecre锛�"); + String url = fileUrl + "/FileInfo/SaveFileInfo"; + + fileSaveFileInfoCmd.setKey(fileKey); + LocalDateTime currentDate = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH"); + String formattedDate = currentDate.plusHours(1).format(formatter); + String token = fileKey + "|" + formattedDate + "|" + fileSecre; + fileSaveFileInfoCmd.setToken(token); + FileBusinessCmd fileBusinessCmd = new FileBusinessCmd(); + fileBusinessCmd.setBusinessCode(invoice.getInvoiceId().toString()); + fileBusinessCmd.setBusinessType("鏀舵鍏ヨ处绯荤粺"); + fileBusinessCmd.setSystemID("77777777-7777-7777-7777-111111111111"); + + fileSaveFileInfoCmd.setFileBusiness(fileBusinessCmd); + //**淇濆瓨鏂囦欢 + FileContentCmd fileContentCmd = new FileContentCmd(); + fileContentCmd.setFileStream(bytes); + fileContentCmd.setFileName(invoice.getInvoiceId().toString()); + fileContentCmd.setFileContent(stationObj.toJSONString()); + fileContentCmd.setFileExtension(""); + fileContentCmd.setFileTypeID(invoice.getBillType().equals(BillTypeEnum.澧炲€肩◣涓撶敤鍙戠エ)?212:209); + fileContentCmd.setPrint(false); + fileSaveFileInfoCmd.setFileContent(fileContentCmd); + fileSaveFileInfoCmd.setUserName(code); + + String filses = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(fileSaveFileInfoCmd)); + JSONObject stationFObj = JSONObject.parseObject(filses); + if (stationFObj.getString("isSuccess") == null || !"true".equals(stationFObj.getString("isSuccess"))) { + throw new DataBusinessException( + Error.builder() + .message(stationFObj.getString("errorMessage") == null ? "淇濆瓨闄勪欢澶辫触!" : stationFObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + //**淇濆瓨鍏宠仈鍏崇郴銆� + + FileFiltBusinessCmd fileFiltBusinessCmd=new FileFiltBusinessCmd(); + fileFiltBusinessCmd.setBusinessCode(invoice.getInvoiceId().toString()); + fileFiltBusinessCmd.setBusinessType("鏀舵鍏ヨ处绯荤粺"); + fileFiltBusinessCmd.setSystemID("77777777-7777-7777-7777-111111111111"); + fileFiltBusinessCmd.setRelateBusinessCode(cmd.billNo); + fileFiltBusinessCmd.setRelateBusinessType("閾惰鍥炲崟"); + fileFiltBusinessCmd.setKey(fileKey); + fileFiltBusinessCmd.setToken(token); + + String furl = fileUrl + "/FileInfo/SaveFileInfo"; + String f = HttpClientUtil.doPostJson(furl, JSONObject.toJSONString(fileFiltBusinessCmd)); + JSONObject obj = JSONObject.parseObject(f); + if (obj.getString("isSuccess") == null || !"true".equals(obj.getString("isSuccess"))) { + throw new DataBusinessException( + Error.builder() + .message(obj.getString("errorMessage") == null ? "淇濆瓨闄勪欢澶辫触!" : obj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + //淇濆瓨鏈湴闄勪欢琛� + } + } catch (Exception exception) { + throw ExceptionUtil.getException(null, exception.getMessage()); + } + } private Map<Integer, String> checkImport(List<InvoiceTemplate> list){ Map<Integer, String> resMap = new HashMap<>(); List<String> billTypeList = BillTypeEnum.getList(); diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/FileCommandService.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/FileCommandService.java new file mode 100644 index 0000000000000000000000000000000000000000..b121bb211e3952db2695105ebe3d961d8f36efac --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/FileCommandService.java @@ -0,0 +1,9 @@ +package com.seasky.ledgerincome.application.command.api; + +import com.seasky.ledgerincome.application.command.dto.FileFiltBusinessCmd; +import com.seasky.ledgerincome.application.command.dto.FileSaveFileInfoCmd; + +public interface FileCommandService { + void SaveFileInfo(FileSaveFileInfoCmd cmd); + void SaveFiltRelateBusiness(FileFiltBusinessCmd cmd); +} diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/InvoiceCommandServiece.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/InvoiceCommandServiece.java index 318d9dd9f2d4bafbbdc5a0dc52c5d22dbf052456..3d1c415be8839db71fef6d790e2628efa67c886c 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/InvoiceCommandServiece.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/api/InvoiceCommandServiece.java @@ -16,4 +16,5 @@ public interface InvoiceCommandServiece { void removeInvoice(RemoveInvoiceCmd cmd); Map<Integer, String> importExcel(List<InvoiceTemplate> list); void sendInvoice(SendInvoiceCmd cmd); + void queryInvoice(SendInvoiceCmd cmd,String code); } diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/query/api/LoginQueryService.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/query/api/LoginQueryService.java index e726ff3648d0874d80e01c9ee34a2536bdab8885..28916a72245980fac4fe06b43c480af3fbcdc7c4 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/query/api/LoginQueryService.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/query/api/LoginQueryService.java @@ -14,8 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody; import java.util.List; public interface LoginQueryService { - List<LoginInfoOut> GetLogInfo(@RequestBody LoginQry qry); - String SfpLoginVerify(@RequestBody LoginQry qry); - UserInfoOut GetLoginToken(@RequestBody LoginTokenQry qry); + List<LoginInfoOut> GetLogInfo( LoginQry qry); + String SfpLoginVerify( LoginQry qry); + UserInfoOut GetLoginToken( LoginTokenQry qry); List<MenuOut> GetMenuList(MenuQry qry) ; } diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/invoice/InvoiceAggergate.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/invoice/InvoiceAggergate.java index 493b14c9452b3fd7fb7137892fbb52c128a01cd0..1a1e642fa3c0b9f2ac4a1007aa2e5bd014b21685 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/invoice/InvoiceAggergate.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/invoice/InvoiceAggergate.java @@ -16,6 +16,7 @@ import org.apache.poi.openxml4j.util.ZipSecureFile; import org.apache.xmlbeans.impl.xb.xsdschema.Public; import java.util.ArrayList; +import java.util.Date; import java.util.List; @Data @@ -65,10 +66,24 @@ public class InvoiceAggergate extends BaseAggregate { { this.invoiceState=invoiceType.equals(InvoiceTypeEnum.棰勫紑绁�.getValue())? InvoiceStateEnum.宸插紑.getValue(): InvoiceStateEnum.寰呭紑.getValue(); + + } + public void changeState() + { + this.invoiceState="宸插紑"; + } + public void changeInvoiceInfo(String invoiceNo,String invoiceCode) + { + + this.invoiceCode=invoiceCode; + this.invoiceNo=invoiceNo; } - public void changeIsSend(String isSend) + public void changeIsSend(String isSend,String invoicingId,String invoiceDate) { + + this.invoiceDate=invoiceDate; this.isSend=isSend; + this.invoicingId=invoicingId; } public void changeInvoicingId(String invoicingId) { @@ -100,15 +115,15 @@ public class InvoiceAggergate extends BaseAggregate { this.billType=billType; } - public InvoiceAggergate(Long id, String buyerName,String buyerCode,String sellerName,String sellerCode, - String remark,String invoiceCode,String invoiceNo, - String invoiceDate,String voucherCode,String voucherDate,String acceptCode, - String applyOrgName,String billType,List<InvoiceDetailEntity> invoiceDetailEntity) + public InvoiceAggergate(Long id, String buyerName, String buyerCode, String sellerName, String sellerCode, + String remark, String invoiceCode, String invoiceNo, + Date invoiceDate, String voucherCode, Date voucherDate, String acceptCode, + String applyOrgName, String billType, List<InvoiceDetailEntity> invoiceDetailEntity) { this.applyOrgName=applyOrgName; this.invoiceCode=invoiceCode; - this.invoiceDate=invoiceDate; + this.invoiceDate=invoiceDate==null?"": String.format("yyyy-MM-dd",invoiceDate); this.invoiceNo=invoiceNo; this.acceptCode=acceptCode; this.buyerCode=buyerCode; @@ -117,7 +132,7 @@ public class InvoiceAggergate extends BaseAggregate { this.sellerCode=sellerCode; this.sellerName=sellerName; this.voucherCode=voucherCode; - this.voucherDate=voucherDate; + this.voucherDate=voucherDate==null?"": String.format("yyyy-MM-dd",voucherDate);; this.invoiceId=id; this.billType=billType; this.invoiceDetailEntity=invoiceDetailEntity; diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/convert/InvoiceConvert.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/convert/InvoiceConvert.java index 3f20be56f767f1e92d97fc62f924be92584c78ca..4d5de5090b1be9a6bb812c3fea1a73f0531b82f6 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/convert/InvoiceConvert.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/convert/InvoiceConvert.java @@ -14,6 +14,7 @@ import com.seasky.ledgerincome.infrastructure.po.InvoiceTackleEntryApplicationPo import com.seasky.ledgerincome.utils.DateUtil; import com.seasky.ledgerincome.utils.PropertyUtil; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -38,13 +39,12 @@ public class InvoiceConvert { public static InvoiceAggergate toInvoiceAggergate(InvoicePo invoicePo,List<InvoiceDetailPo> invoiceDetailPos) { List<InvoiceDetailEntity> detailEntityList = invoiceDetailPos.stream().map(InvoiceConvert::toInvoiceDetailEntity).collect(Collectors.toList()); - return new InvoiceAggergate(invoicePo.getId(), invoicePo.getBuyerName(),invoicePo.getBuyerCode(),invoicePo.getSellerName(), - invoicePo.getSellerCode(),invoicePo.getRemark(),invoicePo.getInvoiceType(), - invoicePo.getInvoiceCode(),invoicePo.getInvoiceNo(), - invoicePo.getInvoiceDate().toString() - , - invoicePo.getVoucherCode(), invoicePo.getVoucherDate().toString(),invoicePo.getAcceptCode() - ,invoicePo.getApplyOrgName(),detailEntityList); + return new InvoiceAggergate(invoicePo.getId(), invoicePo.getBuyerName(),invoicePo.getBuyerCode() + , invoicePo.getSellerName(), invoicePo.getSellerCode(), + invoicePo.getRemark(), invoicePo.getInvoiceCode(), invoicePo.getInvoiceNo(), + invoicePo.getInvoiceDate(), invoicePo.getVoucherCode(), invoicePo.getVoucherDate(), invoicePo.getAcceptCode(), + invoicePo.getApplyOrgName(), invoicePo.getBillType(), detailEntityList) + ; } public static InvoiceDetailEntity toInvoiceDetailEntity(InvoiceDetailPo detailPo) { return new InvoiceDetailEntity(detailPo.getInvoiceId(),detailPo.getRowIndex(), diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/AccountEntryManageControllerImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/AccountEntryManageControllerImpl.java index a4eb6ccfb65df7f36f725641707ace4ebb19ea6a..771bff47b39b2c334a7ab14a32c28f3e7afa9866 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/AccountEntryManageControllerImpl.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/AccountEntryManageControllerImpl.java @@ -1,7 +1,9 @@ package com.seasky.ledgerincome.interfaces.controller; +import com.seasky.core.common.Response; import com.seasky.core.common.ResponseCode; import com.seasky.core.common.Result; +import com.seasky.ledgerincome.application.command.api.InvoiceCommandServiece; import com.seasky.ledgerincome.application.command.dto.SendInvoiceCmd; import com.seasky.ledgerincome.application.query.api.AccountEntryManageQueryService; import com.seasky.ledgerincome.application.query.api.IncomeQueryService; @@ -18,9 +20,11 @@ import org.springframework.web.bind.annotation.RestController; import static com.seasky.core.common.Response.ok; @RestController -public class AccountEntryManageControllerImpl implements AccountEntryManageController { +public class AccountEntryManageControllerImpl extends BaseControllerImpl implements AccountEntryManageController { @Autowired AccountEntryManageQueryService accountEntryManageQueryService; + @Autowired + InvoiceCommandServiece invoiceCommandServiece; @Override public Result<IncomeOut> selectIncomePage(IncomeQry qry) { return ok(ResponseCode.SUCCESS, accountEntryManageQueryService.selectIncomePage(qry,"")); @@ -33,16 +37,23 @@ public class AccountEntryManageControllerImpl implements AccountEntryManageContr @Override public Result<IncomeEntryApplicationOut> selectIncomeEntryApplicationPage(EntryApplicationQry qry) { - return ok(ResponseCode.SUCCESS, accountEntryManageQueryService.selectIncomeEntryApplicationPage(qry,"")); + return ok(ResponseCode.SUCCESS, accountEntryManageQueryService.selectIncomeEntryApplicationPage(qry,getLoginInfoOut().getUserName())); } @Override public Result<InvoiceTackleEntryApplicationOut> selectInvoiceTackleEntryApplicationPage(EntryApplicationQry qry) { - return ok(ResponseCode.SUCCESS, accountEntryManageQueryService.selectInvoiceTackleEntryApplicationPage(qry,"")); + return ok(ResponseCode.SUCCESS, accountEntryManageQueryService.selectInvoiceTackleEntryApplicationPage(qry,getLoginInfoOut().getUserName())); } @Override public Result<Object> sendInvoice(SendInvoiceCmd cmd) { - return null; + invoiceCommandServiece.sendInvoice(cmd); + return Response.success(); + } + + @Override + public Result<Object> queryInvoice(SendInvoiceCmd cmd) { + invoiceCommandServiece.queryInvoice(cmd,this.getLoginInfoOut().getUserName()); + return Response.success(); } } diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/BaseControllerImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/BaseControllerImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6235193160cc9f20ab3ca10bd8efcae5ab6eeb7d --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/BaseControllerImpl.java @@ -0,0 +1,47 @@ +package com.seasky.ledgerincome.interfaces.controller; + +import com.seasky.ledgerincome.application.query.api.LoginQueryService; +import com.seasky.ledgerincome.application.query.dto.LoginQry; +import com.seasky.ledgerincome.application.query.dto.LoginTokenQry; +import com.seasky.ledgerincome.application.query.dto.out.LoginInfoOut; +import com.seasky.ledgerincome.application.query.dto.out.UserInfoOut; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; + +@RestController +public class BaseControllerImpl { + + + @Autowired + LoginQueryService loginQueryService; + public UserInfoOut getLoginInfoOut() { + RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes(); + HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); + LoginTokenQry qry=new LoginTokenQry(); + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if(cookie.getName().equals("SFP_Verify_Cookie")) + { + qry.setToken(cookie.getValue()); + break; + } + } + + } + + UserInfoOut loginInfoOut= loginQueryService.GetLoginToken(qry); + if(loginInfoOut==null) + loginInfoOut=new UserInfoOut(); + return loginInfoOut; + } +} + + + diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/EmployeeControllerImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/EmployeeControllerImpl.java index 4363508f6346035238dbd707c1058cc2a800e929..d6bfdb78d334215e92790a17bc19528a8e96799a 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/EmployeeControllerImpl.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/interfaces/controller/EmployeeControllerImpl.java @@ -14,7 +14,7 @@ import java.util.List; import static com.seasky.core.common.Response.ok; @RestController -public class EmployeeControllerImpl implements EmployeeController { +public class EmployeeControllerImpl implements EmployeeController { @Autowired EmployeeQueryService employeeQueryService; @Override diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..9178b03b86c77456b83d03c42dde49ef8111e3c0 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java @@ -0,0 +1,37 @@ +package com.seasky.ledgerincome.utils; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; + +public class FileUtil { + public static byte[] getFile(String url) { + //瀵规湰鍦版枃浠跺懡鍚� + String fileName = url.substring(url.lastIndexOf("."), url.length()); + File file = null; + byte[] buffer=null; + URL urlfile; + try { + // 鍒涘缓涓€涓复鏃惰矾寰� + file = File.createTempFile("file", fileName); + //涓嬭浇 + urlfile = new URL(url); + + try (InputStream inStream = urlfile.openStream(); + OutputStream os = new FileOutputStream(file);) { + int bytesRead = 0; + buffer = new byte[8192]; + while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) { + os.write(buffer, 0, bytesRead); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return buffer; + } + + +} diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/PropertyUtil.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/PropertyUtil.java index c62bacfa5e582544566d8f671416ce626b77a1dd..6fd681ac3b1bf67720117a640c5ee565e99ed3dc 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/PropertyUtil.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/PropertyUtil.java @@ -22,4 +22,11 @@ public class PropertyUtil { private String sppDzpjUrl; @Value("${spp.dzpj.key}") private String sppDzpjKey; + @Value("${file.url}") + private String fileUrl; + @Value("${file.key}") + private String fileKey; + @Value("${file.secre}") + private String fileSecre; + } diff --git a/ServiceSite/src/main/resources/application-dev.properties b/ServiceSite/src/main/resources/application-dev.properties index d13506351378850bb1e14944654145762c811298..f25668f49605a24f80ad5fe5f75ef0972fc942ba 100644 --- a/ServiceSite/src/main/resources/application-dev.properties +++ b/ServiceSite/src/main/resources/application-dev.properties @@ -41,7 +41,11 @@ innerinterface.systemid=11111111-1111-1111-1111-111111111111 innerinterface.secret=OGZmNTU3OGZiZTJkMDk3ZDY0MzI0OWIyNzFjYzQyNzc= sellercode='' sellername='' -spp.dzpj.url='' -spp.dzpj.key='' +spp.dzpj.url=http://demo.seaskysh.com/kp_hx/SPP_DZPJ_QD_PP.asmx +spp.dzpj.key=xxskdfjk +file.url=http://192.168.2.47:8082/FileService/ +file.key=14aa7d95-365d-4fc8-86da-425b62a8b1cd +file.secre=425b62a8ba7d95365d +