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
+