Veronique vor 4 Wochen
Ursprung
Commit
ac55e748fe

+ 4 - 5
conf/script/1000/business/BE_ERPLogin.groovy

@@ -10,6 +10,7 @@ import com.yinjie.heating.common.api.SysMessageService
 import com.yinjie.heating.common.datas.ERPModule
 import com.yinjie.heating.common.entity.base.DataBaseMultiItemEx
 import com.yinjie.heating.common.entity.base.ProcessEntityItem
+import com.yinjie.heating.common.entity.heating.HeatingApp
 import com.yinjie.heating.common.entity.site.ERPTokenUser
 import com.yinjie.heating.common.entity.site.LoginRequest
 import com.yinjie.heating.common.entity.site.LoginResult
@@ -79,7 +80,7 @@ class BE_ERPLogin implements BusinessExecutor<ProcessEntityItem<LoginRequest>, L
                     },
                     "login"        : { LoginRequest loginInfo, RMap mapParams, DataBaseMultiItemEx supplierItem ->
                         mapParams.put("companyId", 0L)
-                        LoginUser info = loginDao.login(mapParams, supplierItem.dataBaseAlias, Long.parseLong(supplierItem.shardingKey))
+                        HeatingApp info = loginDao.loginCompany(mapParams, supplierItem.dataBaseAlias, Long.parseLong(supplierItem.shardingKey))
 
                         if (info == null) {
                             return RetResult.<ERPTokenUser> errorT().retinfo("用户账号或密码错误,登录失败")
@@ -89,9 +90,9 @@ class BE_ERPLogin implements BusinessExecutor<ProcessEntityItem<LoginRequest>, L
                             return RetResult.<ERPTokenUser> errorT().retinfo("用户账号已冻结,登录失败")
                         }
 
-                        info.deptName = deptService.getRedisDeptName(info.getDeptId(), Long.parseLong(supplierItem.shardingKey))
+//                        info.deptName = deptService.getRedisDeptName(info.getDeptId(), Long.parseLong(supplierItem.shardingKey))
 
-                        sysMessageService.syncSysGroupMessage(info.getId(), Long.parseLong(supplierItem.shardingKey))
+//                        sysMessageService.syncSysGroupMessage(info.getId(), Long.parseLong(supplierItem.shardingKey))
                         return RetResult.<ERPTokenUser> successT().result(new ERPTokenUser(info))
                     },
                     "tokenKey"     : ssoERPTokenCommonKey
@@ -112,8 +113,6 @@ class BE_ERPLogin implements BusinessExecutor<ProcessEntityItem<LoginRequest>, L
     RetResult<LoginResult> execute(ProcessEntityItem<LoginRequest> source) {
         //直接定义Resource不好使,还是需要赋值
         loginStrategies.get("0").tokenKey = ssoERPTokenCommonKey
-        loginStrategies.get("80").tokenKey = ssoStoreTokenCommonKey
-        loginStrategies.get("81").tokenKey = ssoStoreTokenCommonKey
 
         if (source.inputItem == null) {
             return RetResult.<LoginResult> errorT().retinfo("未传入用户信息")

+ 149 - 0
conf/script/1000/callThird/BE_Call_ViewBillFile.groovy

@@ -0,0 +1,149 @@
+import com.dySweetFishPlugin.tool.lang.Holder
+import com.sweetfish.convert.json.JsonConvert
+import com.sweetfish.service.RetResult
+import com.yinjie.heating.common.api.BusinessExecutor
+import com.yinjie.heating.common.datas.ERPModule
+import com.yinjie.heating.common.entity.base.ProcessMapItem
+import com.yinjie.heating.common.entity.callthird.ViewBillResponse
+import com.yinjie.heating.common.entity.heating.BankBill
+import com.yinjie.heating.common.entity.heating.HeatingApp
+import org.apache.commons.lang3.StringUtils
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.Logger
+import org.rex.RMap
+
+import javax.annotation.Resource
+import java.nio.charset.StandardCharsets
+import java.nio.file.Files
+import java.nio.file.Path
+import java.nio.file.Paths
+import java.util.stream.Stream
+
+class BE_Call_ViewBillFile implements BusinessExecutor<ProcessMapItem, ViewBillResponse> {
+    private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
+
+    @Resource
+    private JsonConvert jsonConvert
+
+    @Resource(name = "property.downloadBillRoot")
+    private String downloadBillRoot
+
+    @Override
+    String scriptName() {
+        return "后台页面调用-查看账单"
+    }
+
+    @Override
+    ERPModule module() {
+        return ERPModule.CALL_THIRD
+    }
+
+    static List<BankBill> readBillFile(Path scriptFile, boolean trimed, Logger logger) {
+        final List<BankBill> billList = new ArrayList<>()
+
+        try {
+            Integer iIndex = 0
+            Holder<Integer> prefix = Holder.of(iIndex)
+            try (Stream<String> lines = Files.lines(scriptFile, StandardCharsets.UTF_8)) {
+                lines.each { line ->
+                    line = (trimed) ? line.trim() : line
+                    if (!line.isEmpty()) {
+                        if (prefix.get() == 0) {
+                            //第一行不要,因为是统计行
+//                            buf.append((trimed) ? line.trim() : line)
+
+                        } else {
+                            //解析单行数据
+                            String[] billParams = line.split("\\|")
+                            //交易日期|银行交易流水号|平台交易号|机表号|交易金额|合同号(同机表号)|手续费|扣除手续费之后的金额
+
+                            BankBill bankBill = new BankBill()
+                            bankBill.paymentDate = billParams[0]
+                            bankBill.bankBillNO = billParams[1]
+                            bankBill.plateBillNO = billParams[2]
+                            bankBill.paymentClientCode = billParams[3]
+                            bankBill.paymentAmount = new BigDecimal(billParams[4])
+                            bankBill.serviceFee = new BigDecimal(billParams[6])
+                            bankBill.settlementFee = new BigDecimal(billParams[7])
+
+                            billList.add(bankBill)
+                        }
+
+                        prefix.set(1)
+                    }
+                }
+            }
+
+        } catch (IOException e) {
+            logger.error(e.getMessage(), e)
+        }
+
+        return billList
+    }
+
+    RetResult<ViewBillResponse> execute(ProcessMapItem source) {
+        RMap params = source.itemData
+        String dataSourceId = source.dataSourceId
+        long supplierCode = source.supplierCode
+
+        String payDate = params.getString("payDate")
+        HeatingApp app = params.get("app") as HeatingApp
+
+        params.remove("app")//避免影响下面验签
+
+        //接口均返回正确,错误放在result里
+        if (app == null) {
+            logger.error("下载对账单传入app为空")
+            return RetResult.<ViewBillResponse> successT().result(new ViewBillResponse.Builder()
+                    .respCode("DEF0010")
+                    .respMsg("用户不存在")
+                    .timeStamp((new Date()).time as String)
+                    .build())
+        }
+
+        if (StringUtils.isBlank(payDate)) {
+            logger.error("下载对账单传入参数不正确")
+            return RetResult.<ViewBillResponse> successT().result(new ViewBillResponse.Builder()
+                    .respCode("DEF0006")
+                    .respMsg("系统错误")
+                    .timeStamp((new Date()).time as String)
+                    .build())
+        }
+
+        //查找对应日期的文件夹是否存在
+
+        Path dirPath = Paths.get(downloadBillRoot + File.separator + payDate)
+        if (Files.exists(dirPath) && (Files.isDirectory(dirPath))) {
+            Path filePath = Paths.get(downloadBillRoot + File.separator + payDate + File.separator + "GD_" + payDate + "_" + app.upperChannelAppId + ".txt")
+            if (Files.exists(filePath)) {
+                //读取文件内容
+                List<BankBill> billList = readBillFile(filePath, true, logger)
+
+                return RetResult.<ViewBillResponse> successT().result(new ViewBillResponse.Builder()
+                        .respCode("00000")
+                        .respMsg("success")
+                        .appId(app.appId)
+                        .billList(billList)
+                        .timeStamp((new Date()).time as String)
+                        .build())
+
+            } else {
+                logger.error("找不到对账单" + filePath.toString())
+                return RetResult.<ViewBillResponse> successT().result(new ViewBillResponse.Builder()
+                        .respCode("DEF0020")
+                        .respMsg("该日期账单文件暂未生成")
+                        .timeStamp((new Date()).time as String)
+                        .build())
+            }
+        } else {
+            logger.error("找不到对账单日期" + payDate + "的目录")
+            return RetResult.<ViewBillResponse> successT().result(new ViewBillResponse.Builder()
+                    .respCode("DEF0020")
+                    .respMsg("该日期账单文件暂未生成")
+                    .timeStamp((new Date()).time as String)
+                    .build())
+        }
+
+
+    }
+}

+ 7 - 1
conf/sqlroot/com/yinjie/heating/business/dao/LoginDao.dql

@@ -13,4 +13,10 @@ WHERE loginName = #{loginName} AND password = #{password};
 SELECT
  *
 FROM $table$
-WHERE loginAccount = #{loginName} AND loginPass = #{password};
+WHERE loginAccount = #{loginName} AND loginPass = #{password};
+
+-- [loginCompany]
+SELECT
+ *
+FROM $table$
+WHERE appId = #{loginName} AND loginPass = #{password};

+ 7 - 1
yjBusiness/src/main/java/com/yinjie/heating/business/dao/LoginDao.java

@@ -1,7 +1,8 @@
 package com.yinjie.heating.business.dao;
 
-import com.yinjie.heating.common.entity.system.LoginUser;
 import com.dySweetFishPlugin.sql.dao.*;
+import com.yinjie.heating.common.entity.heating.HeatingApp;
+import com.yinjie.heating.common.entity.system.LoginUser;
 import org.rex.RMap;
 
 @SuppressWarnings("rawtypes")
@@ -12,4 +13,9 @@ public interface LoginDao extends DaoRepository {
     @SqlId(clazz = LoginDao.class, sql = "login", table = "tbUser", params = {1})
     LoginUser login(RMap params, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
 
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.QUERY, owait = OperatorWait.AWAIT)
+    @SqlId(clazz = LoginDao.class, sql = "loginCompany", table = "htHeatingApp", params = {1})
+    HeatingApp loginCompany(RMap params, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
 }

+ 19 - 0
yjBusiness/src/main/java/com/yinjie/heating/business/service/ConfigServiceImpl.java

@@ -5,6 +5,8 @@ import com.yinjie.heating.common.api.ConfigService;
 import com.yinjie.heating.common.api.NoSqlKeysService;
 import com.yinjie.heating.common.base.BaseService;
 import com.yinjie.heating.common.datas.RedisKeys;
+import com.yinjie.heating.common.entity.base.InvokeCallParams;
+import com.yinjie.heating.common.entity.base.InvokeCallResult;
 import com.yinjie.heating.common.entity.site.ERPTokenUser;
 import com.yinjie.heating.common.entity.system.ConfigValue;
 import com.yinjie.heating.common.entity.system.PageTableColumn;
@@ -386,4 +388,21 @@ public class ConfigServiceImpl extends BaseService implements ConfigService {
     }
 
     //endregion
+
+
+    public RetResult<InvokeCallResult> callConfig(InvokeCallParams source, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        if (source == null) {
+            return RetResult.<InvokeCallResult>errorT().retinfo("无效的参数信息");
+        }
+
+        if (StringUtils.isEmpty(source.getBusinessMethod())) {
+            return RetResult.<InvokeCallResult>errorT().retinfo("无效的参数方法[businessMethod]信息");
+        }
+
+        source.setCurrentUser(currentUser);
+        source.setDataSourceId(dataSourceId);
+        source.setSupplierCode(supplierCode);
+
+        return callScript(source.getBusinessMethod(), source, currentUser, dataSourceId, supplierCode);
+    }
 }

+ 1 - 0
yjBusiness/src/main/java/com/yinjie/heating/business/service/ERPServiceImpl.java

@@ -81,4 +81,5 @@ public class ERPServiceImpl extends BaseService implements ERPService {
 
         return jsonConvert.convertFrom(DataBaseMultiItemEx.class, json);
     }
+
 }

+ 13 - 0
yjBusiness/src/main/java/com/yinjie/heating/business/service/heating/CallThirdAppServiceImpl.java

@@ -11,6 +11,7 @@ import com.yinjie.heating.common.entity.base.ProcessMapItem;
 import com.yinjie.heating.common.entity.callthird.BaseResponse;
 import com.yinjie.heating.common.entity.callthird.DownloadBillResponse;
 import com.yinjie.heating.common.entity.callthird.QueryFeeResponse;
+import com.yinjie.heating.common.entity.callthird.ViewBillResponse;
 import com.yinjie.heating.common.entity.heating.HeatingApp;
 import org.rex.RMap;
 
@@ -64,4 +65,16 @@ public class CallThirdAppServiceImpl extends BaseService implements CallThirdApp
                         .supplierCode(supplierCode)
                         .build());
     }
+
+    @Override
+    public RetResult<ViewBillResponse> callViewBill(RMap params, HeatingApp heatingApp, String dataSourceId, long supplierCode) {
+        params.put("app", heatingApp);
+
+        return handleScript("Call_ViewBillFile", ERPModule.CALL_THIRD, dataSourceId, supplierCode,
+                () -> ProcessMapItem.newBuilder()
+                        .itemData(params)
+                        .dataSourceId(dataSourceId)
+                        .supplierCode(supplierCode)
+                        .build());
+    }
 }

+ 14 - 0
yjCommon/pom.xml

@@ -97,6 +97,20 @@
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
             <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-codec</groupId>
+                    <artifactId>commons-codec</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-io</groupId>
+                    <artifactId>commons-io</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
 

+ 4 - 0
yjCommon/src/main/java/com/yinjie/heating/common/api/ConfigService.java

@@ -1,5 +1,7 @@
 package com.yinjie.heating.common.api;
 
+import com.yinjie.heating.common.entity.base.InvokeCallParams;
+import com.yinjie.heating.common.entity.base.InvokeCallResult;
 import com.yinjie.heating.common.entity.site.ERPTokenUser;
 import com.yinjie.heating.common.entity.system.ConfigValue;
 import com.yinjie.heating.common.entity.system.PageTableColumn;
@@ -169,4 +171,6 @@ public interface ConfigService extends ScriptService {
     RetResult<List<PageTableColumn>> getPageTableColumn(String pageName, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 
     //endregion
+
+    RetResult<InvokeCallResult> callConfig(InvokeCallParams source, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 }

+ 1 - 0
yjCommon/src/main/java/com/yinjie/heating/common/api/ERPService.java

@@ -30,4 +30,5 @@ public interface ERPService extends Service {
     DataBaseMultiItemEx getERPSupplierInfo(long id);
 
     DataBaseMultiItemEx getERPSupplierInfoByCode(long code);
+
 }

+ 3 - 0
yjCommon/src/main/java/com/yinjie/heating/common/api/heating/CallThirdAppService.java

@@ -6,6 +6,7 @@ import com.yinjie.heating.common.api.ScriptService;
 import com.yinjie.heating.common.entity.callthird.BaseResponse;
 import com.yinjie.heating.common.entity.callthird.DownloadBillResponse;
 import com.yinjie.heating.common.entity.callthird.QueryFeeResponse;
+import com.yinjie.heating.common.entity.callthird.ViewBillResponse;
 import com.yinjie.heating.common.entity.heating.HeatingApp;
 import org.rex.RMap;
 
@@ -23,4 +24,6 @@ public interface CallThirdAppService extends ScriptService {
 
     RetResult<DownloadBillResponse> callDownloadBill(RMap params, HeatingApp heatingApp, String dataSourceId, long supplierCode);
 
+    RetResult<ViewBillResponse> callViewBill(RMap params, HeatingApp heatingApp, String dataSourceId, long supplierCode);
+
 }

+ 109 - 0
yjCommon/src/main/java/com/yinjie/heating/common/entity/callthird/ViewBillResponse.java

@@ -0,0 +1,109 @@
+package com.yinjie.heating.common.entity.callthird;
+
+import com.yinjie.heating.common.entity.heating.BankBill;
+
+import java.util.Date;
+import java.util.List;
+
+public class ViewBillResponse extends BaseResponse {
+    private List<BankBill> billList;
+
+    private ViewBillResponse(Builder builder) {
+        setCreateBy(builder.createBy);
+        setCreateTime(builder.createTime);
+        setCreateTimeLong(builder.createTimeLong);
+        setUpdateBy(builder.updateBy);
+        setUpdateTime(builder.updateTime);
+        setUpdateTimeLong(builder.updateTimeLong);
+        setAppId(builder.appId);
+        setRespCode(builder.respCode);
+        setRespMsg(builder.respMsg);
+        setTimeStamp(builder.timeStamp);
+        setBillList(builder.billList);
+    }
+
+    public List<BankBill> getBillList() {
+        return billList;
+    }
+
+    public void setBillList(List<BankBill> billList) {
+        this.billList = billList;
+    }
+
+
+    public static final class Builder {
+        private long createBy;
+        private Date createTime;
+        private long createTimeLong;
+        private long updateBy;
+        private Date updateTime;
+        private long updateTimeLong;
+        private String appId;
+        private String respCode;
+        private String respMsg;
+        private String timeStamp;
+        private List<BankBill> billList;
+
+        public Builder() {
+        }
+
+        public Builder createBy(long val) {
+            createBy = val;
+            return this;
+        }
+
+        public Builder createTime(Date val) {
+            createTime = val;
+            return this;
+        }
+
+        public Builder createTimeLong(long val) {
+            createTimeLong = val;
+            return this;
+        }
+
+        public Builder updateBy(long val) {
+            updateBy = val;
+            return this;
+        }
+
+        public Builder updateTime(Date val) {
+            updateTime = val;
+            return this;
+        }
+
+        public Builder updateTimeLong(long val) {
+            updateTimeLong = val;
+            return this;
+        }
+
+        public Builder appId(String val) {
+            appId = val;
+            return this;
+        }
+
+        public Builder respCode(String val) {
+            respCode = val;
+            return this;
+        }
+
+        public Builder respMsg(String val) {
+            respMsg = val;
+            return this;
+        }
+
+        public Builder timeStamp(String val) {
+            timeStamp = val;
+            return this;
+        }
+
+        public Builder billList(List<BankBill> val) {
+            billList = val;
+            return this;
+        }
+
+        public ViewBillResponse build() {
+            return new ViewBillResponse(this);
+        }
+    }
+}

+ 79 - 0
yjCommon/src/main/java/com/yinjie/heating/common/entity/heating/BankBill.java

@@ -0,0 +1,79 @@
+package com.yinjie.heating.common.entity.heating;
+
+import com.sweetfish.util.Comment;
+import com.yinjie.heating.common.entity.base.BaseEntity;
+
+import java.math.BigDecimal;
+
+public class BankBill extends BaseEntity {
+    @Comment("交易日期")
+    private String paymentDate;
+    @Comment("银行交易流水")
+    private String bankBillNO;
+    @Comment("平台交易流水")
+    private String plateBillNO;
+    @Comment("缴费户号")
+    private String paymentClientCode;
+    @Comment("缴费金额")
+    private BigDecimal paymentAmount;
+    @Comment("手续费")
+    private BigDecimal serviceFee;
+    @Comment("实际到账金额")
+    private BigDecimal settlementFee;
+
+    public String getPaymentDate() {
+        return paymentDate;
+    }
+
+    public void setPaymentDate(String paymentDate) {
+        this.paymentDate = paymentDate;
+    }
+
+    public String getBankBillNO() {
+        return bankBillNO;
+    }
+
+    public void setBankBillNO(String bankBillNO) {
+        this.bankBillNO = bankBillNO;
+    }
+
+    public String getPlateBillNO() {
+        return plateBillNO;
+    }
+
+    public void setPlateBillNO(String plateBillNO) {
+        this.plateBillNO = plateBillNO;
+    }
+
+    public String getPaymentClientCode() {
+        return paymentClientCode;
+    }
+
+    public void setPaymentClientCode(String paymentClientCode) {
+        this.paymentClientCode = paymentClientCode;
+    }
+
+    public BigDecimal getPaymentAmount() {
+        return paymentAmount;
+    }
+
+    public void setPaymentAmount(BigDecimal paymentAmount) {
+        this.paymentAmount = paymentAmount;
+    }
+
+    public BigDecimal getServiceFee() {
+        return serviceFee;
+    }
+
+    public void setServiceFee(BigDecimal serviceFee) {
+        this.serviceFee = serviceFee;
+    }
+
+    public BigDecimal getSettlementFee() {
+        return settlementFee;
+    }
+
+    public void setSettlementFee(BigDecimal settlementFee) {
+        this.settlementFee = settlementFee;
+    }
+}

+ 10 - 1
yjCommon/src/main/java/com/yinjie/heating/common/entity/site/ERPTokenUser.java

@@ -1,8 +1,9 @@
 package com.yinjie.heating.common.entity.site;
 
-import com.yinjie.heating.common.datas.TokenUserFrom;
 import com.sweetfish.convert.ConvertColumn;
 import com.sweetfish.util.Comment;
+import com.yinjie.heating.common.datas.TokenUserFrom;
+import com.yinjie.heating.common.entity.heating.HeatingApp;
 
 /**
  * Created by jlutt on 2020-07-27
@@ -78,6 +79,14 @@ public class ERPTokenUser {
         this.idBindOrg = userInfo.getIdBindOrg();
     }
 
+    public ERPTokenUser(HeatingApp userInfo) {
+        this.id = userInfo.getId();
+        this.userName = userInfo.getAppName();
+        this.account = userInfo.getAppId();
+        this.userFrom = TokenUserFrom.PC_ADMIN.getValue();
+        this.idBindOrg = Long.parseLong(userInfo.getUpperChannelAppId());
+    }
+
     public long getSupplierCode() {
         return supplierCode;
     }

+ 35 - 8
yjWebCore/src/main/java/com/yinjie/heating/webcore/rest/ERPRest.java

@@ -1,17 +1,17 @@
 package com.yinjie.heating.webcore.rest;
 
-import com.yinjie.heating.common.api.ERPService;
-import com.yinjie.heating.common.base.BaseService;
-import com.yinjie.heating.common.entity.base.DataBaseMultiItemEx;
-import com.yinjie.heating.common.entity.site.ERPTokenUser;
 import com.dySweetFishPlugin.sql.RMapUtils;
-import com.sweetfish.net.http.RestMapping;
-import com.sweetfish.net.http.RestParam;
-import com.sweetfish.net.http.RestService;
-import com.sweetfish.net.http.WebApiBean;
+import com.sweetfish.net.http.*;
 import com.sweetfish.service.Local;
 import com.sweetfish.service.RetResult;
 import com.sweetfish.util.AutoLoad;
+import com.yinjie.heating.common.api.ERPService;
+import com.yinjie.heating.common.base.BaseService;
+import com.yinjie.heating.common.datas.ERPHeader;
+import com.yinjie.heating.common.datas.HttpCode;
+import com.yinjie.heating.common.entity.base.DataBaseMultiItemEx;
+import com.yinjie.heating.common.entity.site.ERPTokenUser;
+import org.apache.commons.lang3.StringUtils;
 import org.rex.RMap;
 
 import javax.annotation.Resource;
@@ -86,4 +86,31 @@ public class ERPRest extends BaseService {
                 }, getExecutor()
         );
     }
+
+    @RestMapping(name = "getERPSupplierInfoByCode", sort = 3, comment = "通过编号获取平台工厂客户信息_中心服务", methods = {"GET", "POST"})
+    @WebApiBean(type = DataBaseMultiItemEx.class, result = true)
+    public CompletableFuture<RMap> getERPSupplierInfoByCode(
+            HttpRequest httpRequest,
+            @RestParam(name = "code", comment = "平台工厂客户code", required = false) String code,
+            @RestParam(name = "&", comment = "当前用户,不需要传入") ERPTokenUser currentUser) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    String host = httpRequest.getHost();
+
+                    //客户自己的域名,不要,但是开发没法调试。。。因为开发或者独立域名是在nginx中配置的
+                    //从nginx的头中获取
+                    String supplierCode = httpRequest.getHeader(ERPHeader.HTTPHEADER_SUPPLIER, "");
+                    if (StringUtils.isEmpty(supplierCode)) {
+                        return RMapUtils.error(HttpCode.NOT_FOUND.value(), "无效的编号");
+                    } else {
+                        DataBaseMultiItemEx item = erpService.getERPSupplierInfoByCode(Long.parseLong(supplierCode));
+                        if (item == null) {
+                            return RMapUtils.error(HttpCode.NOT_FOUND.value(), "无效的编号");
+                        }
+                        return RMapUtils.successV2(item, null, null);
+                    }
+
+                }, getExecutor()
+        );
+    }
 }

+ 19 - 7
yjWebCore/src/main/java/com/yinjie/heating/webcore/rest/ThirdCallAppRest.java

@@ -1,20 +1,18 @@
 package com.yinjie.heating.webcore.rest;
 
-import com.dySweetFishPlugin.sql.RMapUtils;
-import com.sweetfish.net.http.*;
+import com.sweetfish.net.http.RestBody;
+import com.sweetfish.net.http.RestHeader;
+import com.sweetfish.net.http.RestMapping;
+import com.sweetfish.net.http.RestService;
 import com.sweetfish.service.Local;
 import com.sweetfish.service.RetResult;
 import com.sweetfish.util.AutoLoad;
 import com.yinjie.heating.common.api.heating.CallThirdAppService;
 import com.yinjie.heating.common.api.heating.HeatingDocService;
 import com.yinjie.heating.common.base.BaseService;
-import com.yinjie.heating.common.datas.ERPHeader;
-import com.yinjie.heating.common.datas.HttpCode;
-import com.yinjie.heating.common.entity.callthird.BaseResponse;
 import com.yinjie.heating.common.entity.callthird.DownloadBillResponse;
-import com.yinjie.heating.common.entity.callthird.QueryFeeResponse;
+import com.yinjie.heating.common.entity.callthird.ViewBillResponse;
 import com.yinjie.heating.common.entity.heating.HeatingApp;
-import com.yinjie.heating.common.entity.site.ERPTokenUser;
 import org.rex.RMap;
 
 import javax.annotation.Resource;
@@ -54,4 +52,18 @@ public class ThirdCallAppRest extends BaseService {
                 }, getExecutor()
         );
     }
+
+    @RestMapping(name = "viewBill", sort = 10, auth = true, methods = {"POST"})
+    public CompletableFuture<ViewBillResponse> viewBill(
+            @RestHeader(name = "appId") String appId,
+            @RestBody RMap params) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    HeatingApp app = heatingDocService.getRedisHeatingApp(appId, SUPPLIER_CODE);
+
+                    RetResult<ViewBillResponse> result = callThirdAppService.callViewBill(params, app, DATA_SOURCE_ID, SUPPLIER_CODE);
+                    return result.getResult(); //这里直接返回,有什么错误在脚本中处理完
+                }, getExecutor()
+        );
+    }
 }