commit aea5d30edb015102b1829aac6f4d7f4ab9b71e0d
Author: wangpengfei <1928057482@qq.com>
Date: Mon Jan 20 14:22:51 2025 +0800
初始化
diff --git a/external/pom.xml b/external/pom.xml
new file mode 100644
index 0000000..9ff5a6e
--- /dev/null
+++ b/external/pom.xml
@@ -0,0 +1,177 @@
+
+
+
+ externalInterface
+ com.yxt
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ com.yxt.external
+ external
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+ com.alibaba
+ easyexcel
+ 3.3.2
+
+
+ com.yxt
+ yxt-common-base
+ 0.0.1
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+ com.baomidou
+ mybatis-plus-annotation
+
+
+ org.projectlombok
+ lombok
+ 1.18.24
+ true
+
+
+
+ com.yxt
+ yxt-common-base
+ 0.0.1
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+ com.baomidou
+ mybatis-plus-annotation
+
+
+ junit
+ junit
+ compile
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ cn.dev33
+ sa-token-spring-boot-starter
+ 1.37.0
+
+
+ cn.hutool
+ hutool-all
+ 5.8.23
+
+
+ cn.hutool
+ hutool-core
+ 5.8.23
+
+
+ com.google.zxing
+ core
+ 3.5.2
+
+
+ io.springfox
+ springfox-swagger2
+ 2.9.2
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.8.0
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.5.6
+
+
+
+ repackage
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*Mapper.xml
+
+
+
+ src/main/resources
+
+ **/*.*
+
+ false
+
+
+
+
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/apiadmin/AdminHomeRest.java b/external/src/main/java/com/yxt/external/apiadmin/AdminHomeRest.java
new file mode 100644
index 0000000..e01d20b
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/AdminHomeRest.java
@@ -0,0 +1,10 @@
+package com.yxt.external.apiadmin;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController("com.yxt.wms.apiadmin.AdminHomeRest")
+@RequestMapping("/apiadmin/home")
+public class AdminHomeRest {
+
+}
diff --git a/external/src/main/java/com/yxt/external/apiadmin/aggregation/CrmCustomerTempRest.java b/external/src/main/java/com/yxt/external/apiadmin/aggregation/CrmCustomerTempRest.java
new file mode 100644
index 0000000..8a13f10
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/aggregation/CrmCustomerTempRest.java
@@ -0,0 +1,48 @@
+package com.yxt.external.apiadmin.aggregation;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;;
+import com.yxt.external.feign.crmcustomer.CrmCustomerFeign;
+import com.yxt.external.feign.crmcustomer.CrmCustomerTempQuery;
+import com.yxt.external.feign.crmcustomer.CrmCustomerTempVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Project: anrui-crm(客户管理)
+ * File: CrmCustomerTempFeignFallback.java
+ * Class: com.yxt.anrui.crm.biz.crmcustomertemp.CrmCustomerTempRest
+ * Description: 潜在客户信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:17
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Api(tags = "潜在客户信息")
+@RestController
+@RequestMapping("v1/crmcustomertemp")
+public class CrmCustomerTempRest {
+
+ @Autowired
+ private CrmCustomerFeign crmCustomerFeign;
+
+
+ @ApiOperation("根据orgSid查询客户数量")
+ @GetMapping("/getCustomerByOrgSid")
+ public ResultBean getCustomerByOrgSid(@RequestParam("orgSid") String orgSid) {
+ return crmCustomerFeign.getCustomerByOrgSid(orgSid);
+ }
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage1")
+ public ResultBean> listPage1(@RequestBody PagerQuery pq) {
+ return crmCustomerFeign.listPage1(pq);
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/apiadmin/aggregation/PurchaseBillRest.java b/external/src/main/java/com/yxt/external/apiadmin/aggregation/PurchaseBillRest.java
new file mode 100644
index 0000000..f4ccc41
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/aggregation/PurchaseBillRest.java
@@ -0,0 +1,58 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.apiadmin.aggregation;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.purchase.PurchaseBillDto;
+import com.yxt.external.feign.purchase.PurchaseBillFeign;
+import com.yxt.external.feign.purchase.PurchaseBillQuery;
+import com.yxt.external.feign.purchase.PurchaseBillVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "采购单")
+@RestController
+@RequestMapping("/apiadmin/purchasebill")
+public class PurchaseBillRest {
+
+ @Autowired
+ private PurchaseBillFeign purchaseBillFeign;
+
+ @ApiOperation("新增采购单")
+ @PostMapping("/savePurchase")
+ public ResultBean savePurchase(@RequestBody PurchaseBillDto dto){
+ return purchaseBillFeign.savePurchase(dto);
+ }
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage")
+ public ResultBean> listPage(@RequestBody PagerQuery pq){
+ return purchaseBillFeign.listPage(pq);
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/apiadmin/aggregation/PurchaseInventoryBillRest.java b/external/src/main/java/com/yxt/external/apiadmin/aggregation/PurchaseInventoryBillRest.java
new file mode 100644
index 0000000..6284fc7
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/aggregation/PurchaseInventoryBillRest.java
@@ -0,0 +1,30 @@
+package com.yxt.external.apiadmin.aggregation;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.purchaseinventorybill.PurchaseInventoryBillDto3;
+import com.yxt.external.feign.warehouse.purchaseinventorybill.PurchaseInventoryBillFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author wangpengfei
+ * @date 2024/8/1 17:46
+ */
+@Api(tags = "采购入库")
+@RestController
+@RequestMapping("/apiadmin/purchaseinventorybill")
+public class PurchaseInventoryBillRest {
+ @Autowired
+ PurchaseInventoryBillFeign purchaseInventoryBillFeign;
+
+ @ApiOperation("确认(对外)")
+ @PostMapping("/confirmByBill")
+ ResultBean confirmByBill(@RequestBody PurchaseInventoryBillDto3 dto) {
+ return purchaseInventoryBillFeign.confirmByBill(dto);
+ }
+
+}
diff --git a/external/src/main/java/com/yxt/external/apiadmin/aggregation/SmsSalesBillRest.java b/external/src/main/java/com/yxt/external/apiadmin/aggregation/SmsSalesBillRest.java
new file mode 100644
index 0000000..918542b
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/aggregation/SmsSalesBillRest.java
@@ -0,0 +1,69 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.apiadmin.aggregation;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.smssalesbill.SmsSalesBillDto;
+import com.yxt.external.feign.sales.smssalesbill.SmsSalesBillFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * Project: ss-sales(ss-sales)
+ * File: SmsSalesBillFeignFallback.java
+ * Class: com.yxt.sales.apiadmin.biz.smssalesbill.SmsSalesBillRest
+ * Description: 销售订单.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-07-04 15:18:10
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Api(tags = "销售订单")
+@RestController("com.yxt.sales.apiadmin.biz.smssalesbill.SmsSalesBillRest")
+@RequestMapping("v1/smssalesbill")
+public class SmsSalesBillRest {
+
+ @Autowired
+ private SmsSalesBillFeign smsSalesBillFeign;
+
+
+ @ApiOperation("新增销售单(对外)")
+ @PostMapping("/saveSales")
+ public ResultBean saveSales(@RequestBody SmsSalesBillDto dto){
+ return smsSalesBillFeign.saveSales(dto);
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/apiadmin/aggregation/SupplierInfoRest.java b/external/src/main/java/com/yxt/external/apiadmin/aggregation/SupplierInfoRest.java
new file mode 100644
index 0000000..0b8b7ac
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/aggregation/SupplierInfoRest.java
@@ -0,0 +1,81 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.apiadmin.aggregation;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoChoice;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoDetailsVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoQuery;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoVo;
+import com.yxt.external.feign.supplier.supplierinfo.SupplierInfoFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * Project: yxt-base(仓储基础信息供应商)
+ * File: BaseSupplierInfoFeignFallback.java
+ * Class: com.yxt.anrui.as.biz.basesupplierinfo.BaseSupplierInfoRest
+ * Description: 供应商信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-13 16:51:56
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Api(tags = "供应商信息")
+@RestController
+@RequestMapping("/apiadmin/supplierinfo")
+public class SupplierInfoRest {
+
+ @Autowired
+ private SupplierInfoFeign supplierInfoFeign;
+
+
+ @ApiOperation("供应商数量")
+ @GetMapping("/getSupplierCountByOrgSid")
+ public ResultBean getSupplierCountByOrgSid(@RequestParam("orgSid") String orgSid){
+ return supplierInfoFeign.getSupplierCountByOrgSid(orgSid);
+ }
+ @ApiOperation("根据SID获取一条记录")
+ @GetMapping("/fetchDetailsBySid/{sid}")
+ public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){
+ return supplierInfoFeign.fetchDetailsBySid(sid);
+ }
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage1")
+ public ResultBean> listPage1(@RequestBody PagerQuery pq){
+ ResultBean rb = ResultBean.fireFail();
+ return supplierInfoFeign.listPage1(pq);
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/apiadmin/aggregation/WarehouseInfoRest.java b/external/src/main/java/com/yxt/external/apiadmin/aggregation/WarehouseInfoRest.java
new file mode 100644
index 0000000..6637fd8
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiadmin/aggregation/WarehouseInfoRest.java
@@ -0,0 +1,87 @@
+package com.yxt.external.apiadmin.aggregation;
+
+import com.yxt.common.base.utils.StringUtils;
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoDetailsVo;
+import com.yxt.external.biz.func.warehouseinfo.*;
+import com.yxt.external.feign.supplier.supplierinfo.SupplierInfoFeign;
+import com.yxt.external.feign.warehouse.warehouseinfo.WarehouseInfoFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author wangpengfei
+ * @date 2024/2/27 16:14
+ */
+@Api(tags = "仓库信息")
+@RestController
+@RequestMapping("/apiadmin/warehouseinfo")
+public class WarehouseInfoRest {
+
+ @Autowired
+ WarehouseInfoFeign warehouseInfoFeign;
+ @Autowired
+ SupplierInfoFeign supplierInfoFeign;
+
+
+ @PostMapping("/list")
+ public ResultBean> list(@RequestBody WarehouseInfoMapQuery query) {
+ ResultBean rb =new ResultBean();
+ List vos=warehouseInfoFeign.list(query).getData();
+ for (ProjectDetailsVo vo : vos) {
+ if(StringUtils.isNotBlank(vo.getSupplierName())){
+ SupplierInfoDetailsVo v=supplierInfoFeign.fetchDetailsBySid(vo.getSupplierName()).getData();
+ vo.setSupplierName(v.getSupplierName());
+ vo.setSupplierType(v.getSupplierTypeName());
+ }
+ }
+ return rb.success().setData(vos);
+ }
+ @GetMapping("/getWarehouseBySid/{sid}")
+ public ResultBean getWarehouseBySid(@PathVariable("sid") String sid) {
+ ResultBean rb =new ResultBean().fail();
+ ProjectDetailsVo vo=warehouseInfoFeign.getWarehouseBySid(sid).getData();
+ for (GoodsDetailsVo goodsDetail : vo.getGoodsDetails()) {
+ String sidss =goodsDetail.getSupplierName();
+ if(StringUtils.isNotBlank(sidss)){
+ SupplierInfoDetailsVo v=supplierInfoFeign.fetchDetailsBySid(sidss).getData();
+ goodsDetail.setSupplierName(v.getSupplierName());
+ goodsDetail.setSupplierType(v.getSupplierTypeName());
+ }
+ }
+
+ return rb.success().setData(vo);
+ }
+ @PostMapping("/listPageN")
+ public ResultBean> listPageN(@RequestBody PagerQuery query) {
+ ResultBean rb =new ResultBean();
+ PagerVo vos=warehouseInfoFeign.listPageN(query).getData();
+ for (ProjectDetailsVo vo : vos.getRecords()) {
+ for (GoodsDetailsVo goodsDetail : vo.getGoodsDetails()) {
+ String sidss =goodsDetail.getSupplierName();
+ if(StringUtils.isNotBlank(sidss)){
+ SupplierInfoDetailsVo v=supplierInfoFeign.fetchDetailsBySid(sidss).getData();
+ goodsDetail.setSupplierName(v.getSupplierName());
+ goodsDetail.setSupplierType(v.getSupplierTypeName());
+ }
+ }
+ }
+ return rb.success().setData(vos);
+ }
+ @ApiOperation("初始化")
+ @GetMapping("/initialization/{sid}")
+ public ResultBean initialization(@PathVariable("sid") String sid) {
+ return warehouseInfoFeign.initialization(sid);
+ }
+ @ApiOperation("统计各省仓库")
+ @GetMapping("/getWarehouseCountByOrgSid")
+ public ResultBean> getWarehouseCountByOrgSid(@RequestParam("orgSid") String orgSid) {
+ return warehouseInfoFeign.getWarehouseCountByOrgSid(orgSid);
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/apiwx/WxHomeRest.java b/external/src/main/java/com/yxt/external/apiwx/WxHomeRest.java
new file mode 100644
index 0000000..67125f0
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/apiwx/WxHomeRest.java
@@ -0,0 +1,10 @@
+package com.yxt.external.apiwx;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController("com.yxt.wms.apiwx.WxHomeRest")
+@RequestMapping("/apiwx/home")
+public class WxHomeRest {
+
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchase/PurchaseBillDto.java b/external/src/main/java/com/yxt/external/biz/func/purchase/PurchaseBillDto.java
new file mode 100644
index 0000000..4f93a90
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchase/PurchaseBillDto.java
@@ -0,0 +1,106 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.purchase;
+
+
+import com.yxt.common.core.dto.Dto;
+import com.yxt.external.biz.func.purchaseappendix.PurchaseAppendixUrl;
+import com.yxt.external.biz.func.purchasebillamount.PurchaseBillAmountDto;
+import com.yxt.external.biz.func.purchasebilldetail.PurchaseBillDetailDto;
+import com.yxt.external.biz.func.purchasebillextend.PurchaseBillExtendDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@ApiModel(value = "采购单 数据传输对象", description = "采购单 数据传输对象")
+public class PurchaseBillDto implements Dto {
+
+ private String sid;
+
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("制单人sid")
+ private String createBySid;
+ @ApiModelProperty("制单人姓名")
+ private String createByName; // 制单人姓名
+ @ApiModelProperty("来源单sid(工单sid)")
+ private String sourceBillSid; // 来源单sid(工单sid)
+ @ApiModelProperty("来源单编号/外部编号")
+ private String sourceBillNo; // 来源单编号/外部编号
+ @ApiModelProperty("单据编号")
+ private String billNo; // 单据编号
+ @ApiModelProperty("采购类型Key")
+ private String purchaseTypeKey; // 采购类型Key
+ @ApiModelProperty("采购类型Value(厂家采购、外采、其他)")
+ private String purchaseTypeValue; // 采购类型Value(厂家采购、外采、其他)
+ @ApiModelProperty("采购原因key")
+ private String purchaseReasonKey; // 采购原因key
+ @ApiModelProperty("采购原因(储备/客户订单/在修车辆)")
+ private String purchaseReasonValue; // 采购原因(储备/客户订单/在修车辆)
+ @ApiModelProperty("付款方式key")
+ private String payTypeKey; // 付款方式key
+ @ApiModelProperty("付款方式value(预付款/月结/单笔付款)")
+ private String payTypeValue; // 付款方式value(预付款/月结/单笔付款)
+ @ApiModelProperty("供应商sid")
+ private String supplierSid; // 供应商sid
+ @ApiModelProperty("供应商名称")
+ private String supplierName; // 供应商名称
+ @ApiModelProperty("供应商联系电话")
+ private String supplierPhone; // 供应商联系电话
+ @ApiModelProperty("采购员sid(单选)")
+ private String purchaserSid; // 采购员sid(单选)
+ @ApiModelProperty("采购员姓名")
+ private String purchaserName; // 采购员姓名
+ @ApiModelProperty("预计到货日期")
+ private String deliveryDate; // 预计到货日期
+ @ApiModelProperty("仓库sid")
+ private String wareHouseSid;
+ @ApiModelProperty("仓库名称")
+ private String wareHouseName;
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid;
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ @ApiModelProperty("创建部门sid")
+ private String deptSid;
+ @ApiModelProperty("创建部门")
+ private String deptName;
+ @ApiModelProperty("组织编码")
+ private String orgCode;
+
+ @ApiModelProperty("采购单费用/预付款")
+ private PurchaseBillAmountDto purchaseBillAmount;
+ @ApiModelProperty("采购单扩展")
+ private PurchaseBillExtendDto purchaseBillExtend;
+ @ApiModelProperty("采购单商品明细")
+ private List purchaseBillDetailList;
+ @ApiModelProperty("附件")
+ private List purchaseAppendixList = new ArrayList<>();
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchaseappendix/PurchaseAppendixUrl.java b/external/src/main/java/com/yxt/external/biz/func/purchaseappendix/PurchaseAppendixUrl.java
new file mode 100644
index 0000000..1ba4311
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchaseappendix/PurchaseAppendixUrl.java
@@ -0,0 +1,53 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.purchaseappendix;
+
+
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: caigou(采购)
+ * File: PurchaseAppendixDto.java
+ * Class: com.yxt.purchase.api.purchaseappendix.PurchaseAppendixDto
+ * Description: 附件表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-07-03 14:44:55
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "附件表 数据传输对象", description = "附件表 数据传输对象")
+public class PurchaseAppendixUrl implements Dto {
+
+ @ApiModelProperty("附件路径")
+ private String url;
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchasebillamount/PurchaseBillAmountDto.java b/external/src/main/java/com/yxt/external/biz/func/purchasebillamount/PurchaseBillAmountDto.java
new file mode 100644
index 0000000..1826152
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchasebillamount/PurchaseBillAmountDto.java
@@ -0,0 +1,101 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.purchasebillamount;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Project: caigou(采购)
+ * File: PurchaseBillAmountDto.java
+ * Class: com.yxt.purchase.api.purchasebillamount.PurchaseBillAmountDto
+ * Description: 采购单-费用/预付款 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-07-03 14:44:55
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "采购单-费用/预付款 数据传输对象", description = "采购单-费用/预付款 数据传输对象")
+public class PurchaseBillAmountDto implements Dto {
+
+ private String sid; // sid
+
+ @ApiModelProperty("采购单sid")
+ private String billSid; // 采购单sid
+ @ApiModelProperty("误差调整金额")
+ private BigDecimal errorAmount; // 误差调整金额
+ @ApiModelProperty("优惠金额")
+ private BigDecimal discountAmount; // 优惠金额
+ @ApiModelProperty("应付金额")
+ private BigDecimal payableAmount; // 应付金额
+ @ApiModelProperty("采购运费")
+ private BigDecimal freight; // 采购运费
+ @ApiModelProperty("运费分摊方式Key")
+ private String freightShareTypeKey; // 运费分摊方式Key
+ @ApiModelProperty("运费分摊方式Value")
+ private String freightShareTypeValue; // 运费分摊方式Value
+ @ApiModelProperty("其它费用")
+ private BigDecimal otherAmount; // 其它费用
+ @ApiModelProperty("其他费用分摊方式Key")
+ private String otherShareTypeKey; // 其他费用分摊方式Key
+ @ApiModelProperty("其他费用分摊方式Value")
+ private String otherShareTypeValue; // 其他费用分摊方式Value
+ @ApiModelProperty("币种")
+ private String currencyKey;
+ @ApiModelProperty("币种")
+ private String currencyValue;
+ @ApiModelProperty("预付金额")
+ private BigDecimal prepayment; // 预付金额
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @ApiModelProperty("付款期限")
+ private Date paymentTerm; // 付款期限
+ @ApiModelProperty("收款开户行")
+ private String bankName; // 收款开户行
+ @ApiModelProperty("收款账户")
+ private String bankAccountName; // 收款账户
+ @ApiModelProperty("收款银行账号")
+ private String bankAccount; // 收款银行账号
+
+ @ApiModelProperty("付款账号(银行账号)")
+ private String payBankAccount;
+ @ApiModelProperty("结算账户key")
+ private String settleAccountKey;
+ @ApiModelProperty("结算账户value")
+ private String settleAccountValue;
+ @ApiModelProperty("本次付款")
+ private BigDecimal thisPayAmount;
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchasebilldetail/PurchaseBillDetailDto.java b/external/src/main/java/com/yxt/external/biz/func/purchasebilldetail/PurchaseBillDetailDto.java
new file mode 100644
index 0000000..01f9d40
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchasebilldetail/PurchaseBillDetailDto.java
@@ -0,0 +1,106 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.purchasebilldetail;
+
+
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "采购单据明细 数据传输对象", description = "采购单据明细 数据传输对象")
+public class PurchaseBillDetailDto implements Dto {
+
+ private String sid;
+
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("单据sid")
+ private String billSid;
+ @ApiModelProperty("商品基础信息Sid")
+ private String goodsSpuSid;
+ @ApiModelProperty("商品名称")
+ private String goodsSpuName;
+ @ApiModelProperty("商品Skusid")
+ private String goodsSkuSid;
+ @ApiModelProperty("商品Sku名称")
+ private String goodsSkuTitle;
+ @ApiModelProperty("商品编码")
+ private String goodsSkuCode;
+ @ApiModelProperty("商品条码")
+ private String goodsSN;
+ @ApiModelProperty("货号")
+ private String goodsNum;
+ @ApiModelProperty("规格型号")
+ private String goodsSkuOwnSpec;
+ @ApiModelProperty("商品图片")
+ private String goodsImgUrl;
+ @ApiModelProperty("计量单位")
+ private String unit;
+ @ApiModelProperty("单价")
+ private BigDecimal cost;
+ @ApiModelProperty("数量")
+ private BigDecimal count;
+ @ApiModelProperty("数量(pcs)")
+ private BigDecimal pcsCount;
+ @ApiModelProperty("吊牌价")
+ private BigDecimal tagPrice;
+ @ApiModelProperty("折扣率")
+ private BigDecimal discountRate;
+ @ApiModelProperty("折后单价")
+ private BigDecimal discountPrice;
+ @ApiModelProperty("分摊金额")
+ private BigDecimal shareAmount;
+ @ApiModelProperty("分配比例")
+ private BigDecimal shareRate;
+ @ApiModelProperty("采购金额")
+ private BigDecimal amount;
+ @ApiModelProperty("税率")
+ private BigDecimal taxRate;
+ @ApiModelProperty("未含税价")
+ private BigDecimal unTaxPrice;
+ @ApiModelProperty("未含税总价(未含税价*采购数量)")
+ private BigDecimal unTaxTotalAmount;
+ @ApiModelProperty("采购周期")
+ private Integer cycle;
+ @ApiModelProperty("预期到货日期")
+ private String deliveryDate;
+ @ApiModelProperty("总税额")
+ private BigDecimal taxAmount;
+
+ /*
+ * 商品扩展字段
+ * */
+ @ApiModelProperty("批次号")
+ private String batchNumber;
+ @ApiModelProperty("生产日期")
+ private String madeDate;
+ @ApiModelProperty("过期日期")
+ private String expireDate;
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchasebillextend/PurchaseBillExtendDto.java b/external/src/main/java/com/yxt/external/biz/func/purchasebillextend/PurchaseBillExtendDto.java
new file mode 100644
index 0000000..67d978c
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchasebillextend/PurchaseBillExtendDto.java
@@ -0,0 +1,59 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.purchasebillextend;
+
+
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "采购单扩展 数据传输对象", description = "采购单扩展 数据传输对象")
+public class PurchaseBillExtendDto implements Dto {
+
+ private String sid; // sid
+
+ @ApiModelProperty("采购单sid")
+ private String billSid; // 采购单sid
+ @ApiModelProperty("物流单号")
+ private String logisticsNum; // 物流单号
+ @ApiModelProperty("生产进度")
+ private String productProgress; // 生产进度
+ @ApiModelProperty("收货状态key")
+ private String receiveStateKey; // 收货状态
+ @ApiModelProperty("收货状态value")
+ private String receiveStateValue;
+ @ApiModelProperty("发货状态key")
+ private String deliveryStateKey; // 发货状态
+ @ApiModelProperty("发货状态value")
+ private String deliveryStateValue;
+
+ @ApiModelProperty("已发货数量")
+ private BigDecimal deliveryCount;
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchaseinventorybill/PurchaseInventoryBillDto3.java b/external/src/main/java/com/yxt/external/biz/func/purchaseinventorybill/PurchaseInventoryBillDto3.java
new file mode 100644
index 0000000..e782ded
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchaseinventorybill/PurchaseInventoryBillDto3.java
@@ -0,0 +1,42 @@
+package com.yxt.external.biz.func.purchaseinventorybill;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.external.biz.func.purchaseinventorybilldetail.PurchaseInventoryBillDetailDto2;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangpengfei
+ * @date 2024/8/27 14:35
+ */
+@Data
+public class PurchaseInventoryBillDto3 {
+
+ @ApiModelProperty("来源单sid")
+ private String sourceBillSid;
+ @ApiModelProperty("来源单号")
+ private String sourceBillNo;
+
+
+ @ApiModelProperty("操作员sid")
+ private String operatorSid;
+ @ApiModelProperty("操作员名称")
+ private String operatorName;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @ApiModelProperty("操作时间")
+ private String operatorTime;
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid;
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("商品列表")
+ private List list = new ArrayList<>();
+ private String userSid;
+ private String userName;
+ private String storageTime;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java b/external/src/main/java/com/yxt/external/biz/func/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java
new file mode 100644
index 0000000..1f29bbb
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java
@@ -0,0 +1,69 @@
+package com.yxt.external.biz.func.purchaseinventorybilldetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/4/15
+ **/
+@Data
+public class PurchaseInventoryBillDetailDto2 {
+ private String sid;
+ @ApiModelProperty("来源单sid")
+ private String sourceBillSid;
+ @ApiModelProperty("图示")
+ private String illustration;
+ @ApiModelProperty("商品spusid")
+ private String goodsSpuSid;
+ @ApiModelProperty("商品SpuName")
+ private String goodsSpuName;
+ @ApiModelProperty("商品skusid")
+ private String goodsSkuSid;
+ @ApiModelProperty("商品名称")
+ private String goodsSkuTitle;
+ @ApiModelProperty("商品编码")
+ private String goodsSkuCode;
+ @ApiModelProperty("商品条码")
+ private String goodsBarCode;
+ @ApiModelProperty("规格值")
+ private String specValue;
+ private String ownSpec;
+ @ApiModelProperty("箱条码")
+ private String boxBarCode;
+ @ApiModelProperty("箱规格")
+ private String boxSpec;
+
+ @ApiModelProperty("单位")
+ private String unit;
+ private String goodsUnitName;
+ @ApiModelProperty("成本单价")
+ private BigDecimal price;
+ private BigDecimal costPrice;
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+ @ApiModelProperty("数量")
+ private BigDecimal count;
+ @ApiModelProperty("辅助单位")
+ private String auxiliaryUnits;
+ @ApiModelProperty("序列号")
+ private String serialNumber;
+ @ApiModelProperty("生产批次号")
+ private String batch;
+
+ @ApiModelProperty("入库库位sid")
+ private String warehouseRackSid;
+ @ApiModelProperty("入库库位名")
+ private String warehouseRackName;
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid;
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ private String remarks;
+ private String warehouseName;
+ private String warehouseSid;
+
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/smssalesbill/AccountVo.java b/external/src/main/java/com/yxt/external/biz/func/smssalesbill/AccountVo.java
new file mode 100644
index 0000000..c05f5d4
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/smssalesbill/AccountVo.java
@@ -0,0 +1,21 @@
+package com.yxt.external.biz.func.smssalesbill;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Fan
+ * @description
+ * @date 2024/7/24 17:19
+ */
+@Data
+public class AccountVo {
+
+ @ApiModelProperty("结算账户")
+ private String bankAccount; // 结算账户
+ @ApiModelProperty("结算账户")
+ private String bankAccountKey; // 结算账户
+ @ApiModelProperty("结算金额")
+ private String amount; // 结算金额
+
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/smssalesbill/SmsSalesBillDto.java b/external/src/main/java/com/yxt/external/biz/func/smssalesbill/SmsSalesBillDto.java
new file mode 100644
index 0000000..2204404
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/smssalesbill/SmsSalesBillDto.java
@@ -0,0 +1,185 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.smssalesbill;
+
+
+import com.yxt.common.core.dto.Dto;
+import com.yxt.external.biz.func.smssalesbilldetail.SmsSalesBillDetailDetailsVo;
+import com.yxt.external.utils.FileQueryUrl;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Project: ss-sales(ss-sales)
+ * File: SmsSalesBillDto.java
+ * Class: com.yxt.sales.apiadmin.api.smssalesbill.SmsSalesBillDto
+ * Description: 销售订单 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-07-04 15:18:10
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "销售订单 数据传输对象", description = "销售订单 数据传输对象")
+public class SmsSalesBillDto implements Dto {
+
+ private String sid; // sid
+ @ApiModelProperty("制单人sid")
+ private String createBySid; // 制单人姓名
+ @ApiModelProperty("制单人姓名")
+ private String createByName; // 制单人姓名
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid; // 使用组织sid
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid; // 创建组织sid
+ @ApiModelProperty("制单部门sid")
+ private String deptSid; // 制单部门sid
+ @ApiModelProperty("制单部门")
+ private String deptName; // 制单部门
+ @ApiModelProperty("制单日期")
+ private String createTime; // 制单日期
+ @ApiModelProperty("单据类型key(线下订单/预售订单等)")
+ private String billTypeKey; // 单据类型key(线下订单/预售订单等)
+ @ApiModelProperty("单据类型value")
+ private String billTypeValue; // 单据类型value
+ @ApiModelProperty("仓库sid")
+ private String warehouseSid; // 仓库sid
+ @ApiModelProperty("仓库名称")
+ private String warehouseName; // 仓库名称
+ @ApiModelProperty("配送方式Key")
+ private String deliveryTypeKey; // 配送方式Key
+ @ApiModelProperty("配送方式Value")
+ private String deliveryTypeValue; // 配送方式Value
+ @ApiModelProperty("物流公司")
+ private String logisticsName; // 物流公司
+ @ApiModelProperty("销售用户sid单选)(销售用户sid)")
+ private String salesUserSid; // 销售用户sid单选)(销售用户sid)
+ @ApiModelProperty("销售姓名")
+ private String salesName; // 销售姓名
+ @ApiModelProperty("是否货到付款(1是,0否)")
+ private String isFirstPay; // 是否货到付款(1是,0否)
+ @ApiModelProperty("备注")
+ private String remarks; // 备注
+ @ApiModelProperty("开单价格Key(标准售价、吊牌价、批发价、上次购买价)")
+ private String billPriceTypeKey; // 开单价格Key(标准售价、吊牌价、批发价、上次购买价)
+ @ApiModelProperty("开单价格value")
+ private String billPriceTypeValue; // 开单价格value
+ //-------------- 客户信息 --------------------
+ @ApiModelProperty("客户sid")
+ private String customerSid; // 客户sid
+ @ApiModelProperty("客户名称")
+ private String customerName; // 客户名称
+ @ApiModelProperty("收货人姓名")
+ private String shipperName; // 收货人姓名
+ @ApiModelProperty("收货人手机")
+ private String shipperMob; // 收货人手机
+ @ApiModelProperty("收货省sid")
+ private String deliveryProvinceSid; // 收货省sid
+ @ApiModelProperty("收货省")
+ private String deliveryProvince; // 收货省
+ @ApiModelProperty("收货市sid")
+ private String deliveryCitySid; // 收货市sid
+ @ApiModelProperty("收货市")
+ private String deliveryCity; // 收货市
+ @ApiModelProperty("收货县区sid")
+ private String deliveryCountySid; // 收货县区sid
+ @ApiModelProperty("收货县区")
+ private String deliveryCounty; // 收货县区
+ @ApiModelProperty("收货详细地址")
+ private String deliveryAddress; // 收货详细地址
+ @ApiModelProperty("邮编 ")
+ private String postCode; // 邮编
+ //---------------发票信息------------
+ @ApiModelProperty("是否需要开发票(是1,否0)")
+ private String isInvoicing; // 是否需要开发票(是1,否0)
+ @ApiModelProperty("发票类型Key")
+ private String invoiceTypeKey; // 发票类型Key
+ @ApiModelProperty("发票类型")
+ private String invoiceType; // 发票类型
+ @ApiModelProperty("开票名称")
+ private String invoiceTitle; // 开票名称
+ @ApiModelProperty("税号")
+ private String taxpayerNo; // 税号
+ @ApiModelProperty("税率")
+ private String taxRate; // 税率
+ //商品信息
+ @ApiModelProperty("商品列表")
+ private List goodsList; // 商品列表
+
+ //费用信息
+ @ApiModelProperty("折扣率")
+ private String discountRate; // 折扣率
+ @ApiModelProperty("整体优惠券")
+ private String coupon; // 整体优惠券
+ @ApiModelProperty("整体优惠金额")
+ private String discountAmount; // 整体优惠金额
+ @ApiModelProperty("优惠后金额")
+ private String amount; // 优惠后金额
+ @ApiModelProperty("应收合计")
+ private String dueAmount; // 应收合计
+ @ApiModelProperty("运费")
+ private String freight; // 运费
+ @ApiModelProperty("本次收款")
+ private String thisPay; // 本次收款
+ @ApiModelProperty("本次欠款")
+ private String thisDebt; // 本次欠款
+ @ApiModelProperty("总欠款")
+ private String totalDebt; // 总欠款
+ @ApiModelProperty("预收款余额")
+ private String advanceBalance; // 预收款余额
+ //结算
+ @ApiModelProperty("结算账户")
+ private List accounts;
+ @ApiModelProperty("结算账户")
+ private String bankAccount; // 结算账户
+ @ApiModelProperty("结算账户")
+ private String bankAccountKey; // 结算账户
+ @ApiModelProperty("付款凭证")
+ private List files = new ArrayList<>(); // 付款凭证
+
+
+ //-------------补充-------------
+ @ApiModelProperty("快递公司sid")
+ private String logisticsNameSid; // 快递公司sid
+ @ApiModelProperty("收货人sid")
+ private String shipperSid; // 收货人sid
+ @ApiModelProperty("固定电话")
+ private String phone; // 固定电话
+ @ApiModelProperty("店铺sid")
+ private String shopSid; // 店铺sid
+ @ApiModelProperty("店铺名称")
+ private String shopName; // 店铺名称
+ @ApiModelProperty("订单号")
+ private String billNo; // 订单号
+
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/smssalesbilldetail/SmsSalesBillDetailDetailsVo.java b/external/src/main/java/com/yxt/external/biz/func/smssalesbilldetail/SmsSalesBillDetailDetailsVo.java
new file mode 100644
index 0000000..cc5bfd3
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/smssalesbilldetail/SmsSalesBillDetailDetailsVo.java
@@ -0,0 +1,114 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.smssalesbilldetail;
+
+
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Project: ss-sales(ss-sales)
+ * File: SmsSalesBillDetailVo.java
+ * Class: com.yxt.sales.apiadmin.api.smssalesbilldetail.SmsSalesBillDetailVo
+ * Description: 销售订单-商品清单 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-07-04 15:18:10
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "销售订单-商品清单 视图数据详情", description = "销售订单-商品清单 视图数据详情")
+public class SmsSalesBillDetailDetailsVo implements Vo {
+
+
+
+ @ApiModelProperty("商品基础信息Sid")
+ private String goodSpuSid; // 商品基础信息Sid
+ @ApiModelProperty("商品名称")
+ private String goodsSpuName; // 商品名称
+ @ApiModelProperty("商品Skusid")
+ private String goodsSkuSid; // 商品Skusid
+ @ApiModelProperty("商品Sku名称")
+ private String goodsSkuTitle; // 商品Sku名称
+ @ApiModelProperty("商品编码")
+ private String goodsSkuCode; // 商品编码
+ @ApiModelProperty("规格型号")
+ private String goodsSkuOwnSpec; // 规格型号
+ @ApiModelProperty("重量(kg)")
+ private String weight; // 重量(kg)
+ @ApiModelProperty("体积(立方米)")
+ private String volume; // 体积(立方米)
+ @ApiModelProperty("计量单位")
+ private String unit; // 计量单位
+ @ApiModelProperty("辅单位数量")
+ private String auxiliaryUnit; // 辅单位数量
+ @ApiModelProperty("销售单价")
+ private String price; // 销售单价
+ @ApiModelProperty("数量")
+ private String count; // 数量
+ @ApiModelProperty("折扣率")
+ private String discountRtate; // 折扣率
+ @ApiModelProperty("折后单价")
+ private String discountPrice; // 折后单价
+ @ApiModelProperty("应收款")
+ private String dueAmount; // 应收款
+ @ApiModelProperty("商品成本")
+ private String cost; // 商品成本
+ @ApiModelProperty("分摊优惠")
+ private String discountAmount; // 分摊优惠
+ @ApiModelProperty("惠后金额")
+ private String amount; // 惠后金额
+ @ApiModelProperty("库存数量")
+ private String inventoryCount; // 库存数量
+ @ApiModelProperty("备注")
+ private String remarks; // 备注
+
+ @ApiModelProperty("批次号")
+ private String batchNumber; // 批次号
+ @ApiModelProperty("税率")
+ private String taxRate; // 库存数量
+ @ApiModelProperty("税额")
+ private String taxAmount; // 税额
+ @ApiModelProperty("未含税价")
+ private String unTaxPrice; // 未含税价
+ @ApiModelProperty("总税额(未含税总额)")
+ private String taxTotalAmount; // 总税额(未含税总额)
+ @ApiModelProperty("图片")
+ private String goodsImgUrl; // 图片
+
+ /**
+ * 图片
+ */
+ private List pic = new ArrayList<>();
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfo.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfo.java
new file mode 100644
index 0000000..1ef525b
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfo.java
@@ -0,0 +1,112 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: yxt-base(供应商管理)
+ * File: BaseSupplierInfo.java
+ * Class: com.yxt.base.api.basesupplierinfo.BaseSupplierInfo
+ * Description: 供应商信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-18 13:33:13
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "供应商信息", description = "供应商信息")
+@TableName("base_supplier_info")
+public class SupplierInfo extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("编码")
+ private String supplierCode; // 编码
+ @ApiModelProperty("供应商名称")
+ private String supplierName; // 供应商名称
+ @ApiModelProperty("供应商名称拼音")
+ private String supplierPY; // 供应商名称拼音
+ @ApiModelProperty("供应商类型sid")
+ private String supplierTypeSid; // 供应商类型sid
+ @ApiModelProperty("供应商类型")
+ private String supplierTypeName; // 供应商类型
+ @ApiModelProperty("省sid")
+ private String provinceSid; // 省sid
+ @ApiModelProperty("province")
+ private String province; //
+ @ApiModelProperty("市sid")
+ private String citySid; // 市sid
+ @ApiModelProperty("city")
+ private String city; //
+ @ApiModelProperty("收货县区sid")
+ private String countySid; // 收货县区sid
+ @ApiModelProperty("county")
+ private String county; //
+ @ApiModelProperty("详细地址")
+ private String address; // 详细地址
+ @ApiModelProperty("手机")
+ private String contactMobile; // 手机
+ @ApiModelProperty("电话")
+ private String contactTelePhone; // 电话
+ @ApiModelProperty("联系人")
+ private String contactName; // 联系人
+ @ApiModelProperty("传真")
+ private String fax; // 传真
+ @ApiModelProperty("邮编")
+ private String zipCode; // 邮编
+ @ApiModelProperty("电子邮件")
+ private String email; // 电子邮件
+ @ApiModelProperty("网址")
+ private String website; // 网址
+ @ApiModelProperty("开票公司名称")
+ private String billingCompanyName; // 开票公司名称
+ @ApiModelProperty("税号")
+ private String registNum; // 税号
+ @ApiModelProperty("法人")
+ private String legalName; // 法人
+ @ApiModelProperty("采购员")
+ private String purchaser; // 采购员
+ @ApiModelProperty("排序")
+ private Integer sortNo; // 排序
+ @ApiModelProperty("开票类型key")
+ private String billingTypeKey; // 开票类型key
+ @ApiModelProperty("开票类型value")
+ private String billingTypeValue; // 开票类型value
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid; // 使用组织sid
+ @ApiModelProperty("创建组织名称")
+ private String createOrgName; // 创建组织名称
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid; // 创建组织sid
+ private double taxRate;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoChoice.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoChoice.java
new file mode 100644
index 0000000..c8dea3f
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoChoice.java
@@ -0,0 +1,54 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: yxt-base(供应商管理)
+ * File: BaseSupplierInfoVo.java
+ * Class: com.yxt.base.api.basesupplierinfo.BaseSupplierInfoVo
+ * Description: 供应商信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-18 13:33:13
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "供应商信息 视图数据对象", description = "供应商信息 视图数据对象")
+public class SupplierInfoChoice implements Vo {
+
+ private String sid;
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoDetailsVo.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoDetailsVo.java
new file mode 100644
index 0000000..a93db1d
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoDetailsVo.java
@@ -0,0 +1,118 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+
+import com.yxt.common.core.vo.Vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Project: yxt-base(供应商管理)
+ * File: BaseSupplierInfoVo.java
+ * Class: com.yxt.base.api.basesupplierinfo.BaseSupplierInfoVo
+ * Description: 供应商信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-18 13:33:13
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "供应商信息 视图数据详情", description = "供应商信息 视图数据详情")
+public class SupplierInfoDetailsVo implements Vo {
+
+ private String sid; // sid
+
+ @ApiModelProperty("编码")
+ private String supplierCode; // 编码
+ @ApiModelProperty("供应商名称")
+ private String supplierName; // 供应商名称
+ @ApiModelProperty("供应商名称拼音")
+ private String supplierPY; // 供应商名称拼音
+ @ApiModelProperty("供应商类型sid")
+ private String supplierTypeSid; // 供应商类型sid
+ @ApiModelProperty("供应商类型")
+ private String supplierTypeName; // 供应商类型
+ @ApiModelProperty("省sid")
+ private String provinceSid; // 省sid
+ @ApiModelProperty("province")
+ private String province; //
+ @ApiModelProperty("市sid")
+ private String citySid; // 市sid
+ @ApiModelProperty("city")
+ private String city; //
+ @ApiModelProperty("收货县区sid")
+ private String countySid; // 收货县区sid
+ @ApiModelProperty("county")
+ private String county; //
+ @ApiModelProperty("详细地址")
+ private String address; // 详细地址
+ @ApiModelProperty("手机")
+ private String contactMobile; // 手机
+ @ApiModelProperty("电话")
+ private String contactTelePhone; // 电话
+ @ApiModelProperty("联系人")
+ private String contactName; // 联系人
+ @ApiModelProperty("传真")
+ private String fax; // 传真
+ @ApiModelProperty("邮编")
+ private String zipCode; // 邮编
+ @ApiModelProperty("电子邮件")
+ private String email; // 电子邮件
+ @ApiModelProperty("网址")
+ private String website; // 网址
+ @ApiModelProperty("开票公司名称")
+ private String billingCompanyName; // 开票公司名称
+ @ApiModelProperty("税号")
+ private String registNum; // 税号
+ @ApiModelProperty("法人")
+ private String legalName; // 法人
+ @ApiModelProperty("采购员")
+ private String purchaser; // 采购员
+ @ApiModelProperty("排序")
+ private Integer sortNo; // 排序
+ @ApiModelProperty("开票类型key")
+ private String billingTypeKey; // 开票类型key
+ @ApiModelProperty("开票类型value")
+ private String billingTypeValue; // 开票类型value
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid; // 使用组织sid
+ @ApiModelProperty("创建组织名称")
+ private String createOrgName; // 创建组织名称
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid; // 创建组织sid
+ @ApiModelProperty("供应商开户行")
+// private List baseSupplierBankList;
+ private double taxRate;
+ private String remarks;
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoDto.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoDto.java
new file mode 100644
index 0000000..1600da2
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoDto.java
@@ -0,0 +1,121 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+
+import com.yxt.common.core.dto.Dto;
+//import com.yxt.oms.biz.func.supplierbank.SupplierBankDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Project: yxt-base(供应商管理)
+ * File: BaseSupplierInfoDto.java
+ * Class: com.yxt.base.api.basesupplierinfo.BaseSupplierInfoDto
+ * Description: 供应商信息 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-18 13:33:13
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "供应商信息 数据传输对象", description = "供应商信息 数据传输对象")
+public class SupplierInfoDto implements Dto {
+
+ private String sid; // sid
+
+ @ApiModelProperty("编码")
+ private String supplierCode; // 编码
+ @ApiModelProperty("供应商名称")
+ private String supplierName; // 供应商名称
+ @ApiModelProperty("供应商名称拼音")
+ private String supplierPY; // 供应商名称拼音
+ @ApiModelProperty("供应商类型sid")
+ private String supplierTypeSid; // 供应商类型sid
+ @ApiModelProperty("供应商类型")
+ private String supplierTypeName; // 供应商类型
+ @ApiModelProperty("省sid")
+ private String provinceSid; // 省sid
+ @ApiModelProperty("province")
+ private String province; //
+ @ApiModelProperty("市sid")
+ private String citySid; // 市sid
+ @ApiModelProperty("city")
+ private String city; //
+ @ApiModelProperty("收货县区sid")
+ private String countySid; // 收货县区sid
+ @ApiModelProperty("county")
+ private String county; //
+ @ApiModelProperty("详细地址")
+ private String address; // 详细地址
+ @ApiModelProperty("手机")
+ private String contactMobile; // 手机
+ @ApiModelProperty("电话")
+ private String contactTelePhone; // 电话
+ @ApiModelProperty("联系人")
+ private String contactName; // 联系人
+ @ApiModelProperty("传真")
+ private String fax; // 传真
+ @ApiModelProperty("邮编")
+ private String zipCode; // 邮编
+ @ApiModelProperty("电子邮件")
+ private String email; // 电子邮件
+ @ApiModelProperty("网址")
+ private String website; // 网址
+ @ApiModelProperty("开票公司名称")
+ private String billingCompanyName; // 开票公司名称
+ @ApiModelProperty("税号")
+ private String registNum; // 税号
+ @ApiModelProperty("法人")
+ private String legalName; // 法人
+ @ApiModelProperty("采购员")
+ private String purchaser; // 采购员
+ @ApiModelProperty("排序")
+ private Integer sortNo; // 排序
+ @ApiModelProperty("开票类型key")
+ private String billingTypeKey; // 开票类型key
+ @ApiModelProperty("开票类型value")
+ private String billingTypeValue; // 开票类型value
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid; // 使用组织sid
+ @ApiModelProperty("创建组织名称")
+ private String createOrgName; // 创建组织名称
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid; // 创建组织sid
+ @ApiModelProperty("开户行信息")
+// private List baseSupplierBankList;
+ private String userSid;
+ private String orgPath;
+ private double taxRate;
+ private String remarks;
+ private String orgSid;
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoMapper.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoMapper.java
new file mode 100644
index 0000000..0364bcc
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoMapper.java
@@ -0,0 +1,67 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * Project: yxt-base(仓储基础信息供应商)
+ * File: BaseSupplierInfoMapper.java
+ * Class: com.yxt.anrui.as.biz.basesupplierinfo.BaseSupplierInfoMapper
+ * Description: 供应商信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-13 16:51:56
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Mapper
+public interface SupplierInfoMapper extends BaseMapper {
+
+ IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw);
+
+ List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw);
+
+ @Select("select * from base_supplier_info")
+ List selectListVo();
+
+ @Update("update base_supplier_info set isDelete = '1' where sid = #{sid}")
+ int updateBySidIsDelete(String sid);
+
+ @Select("select * from base_supplier_info")
+ List choiceSupplierInfo(String createOrgSid);
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoQuery.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoQuery.java
new file mode 100644
index 0000000..ae1348a
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoQuery.java
@@ -0,0 +1,70 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: yxt-base(供应商管理)
+ * File: BaseSupplierInfoQuery.java
+ * Class: com.yxt.base.api.basesupplierinfo.BaseSupplierInfoQuery
+ * Description: 供应商信息 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-18 13:33:13
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "供应商信息 查询条件", description = "供应商信息 查询条件")
+public class SupplierInfoQuery implements Query {
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+ @ApiModelProperty("供应商类型")
+ private String supplierTypeName;
+ @ApiModelProperty("电话")
+ private String contactTelePhone;
+ @ApiModelProperty("联系人")
+ private String contactName;
+
+ @ApiModelProperty("其他查询条件")
+ private String otherQuery;
+ private String orgLevelKey;//权限等级
+ @ApiModelProperty("菜单路由")
+ private String menuUrl;
+ @ApiModelProperty("组织全路径sid")
+ private String orgPath;
+ @ApiModelProperty("用户sid")
+ private String userSid;
+ private int index;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoService.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoService.java
new file mode 100644
index 0000000..0c13932
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoService.java
@@ -0,0 +1,37 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+@Service
+public class SupplierInfoService {
+
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoVo.java b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoVo.java
new file mode 100644
index 0000000..bbf5010
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/supplierinfo/SupplierInfoVo.java
@@ -0,0 +1,67 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.biz.func.supplierinfo;
+
+
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Project: yxt-base(供应商管理)
+ * File: BaseSupplierInfoVo.java
+ * Class: com.yxt.base.api.basesupplierinfo.BaseSupplierInfoVo
+ * Description: 供应商信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-18 13:33:13
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel(value = "供应商信息 视图数据对象", description = "供应商信息 视图数据对象")
+public class SupplierInfoVo implements Vo {
+
+ private String sid; // sid
+
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+ @ApiModelProperty("供应商类型")
+ private String supplierTypeName;
+ @ApiModelProperty("详细地址")
+ private String address;
+ @ApiModelProperty("电话")
+ private String contactTelePhone;
+ @ApiModelProperty("联系人")
+ private String contactName;
+ @ApiModelProperty("手机")
+ private String contactMobile;
+ private double taxRate;
+ private String remarks;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/GoodsDetailsVo.java b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/GoodsDetailsVo.java
new file mode 100644
index 0000000..9031b31
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/GoodsDetailsVo.java
@@ -0,0 +1,14 @@
+package com.yxt.external.biz.func.warehouseinfo;
+
+import lombok.Data;
+
+/**
+ * @author wangpengfei
+ * @date 2024/11/8 16:56
+ */
+@Data
+public class GoodsDetailsVo {
+ private String goodsDetail;
+ private String supplierName;
+ private String supplierType;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/ProjectDetailsVo.java b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/ProjectDetailsVo.java
new file mode 100644
index 0000000..b543a45
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/ProjectDetailsVo.java
@@ -0,0 +1,31 @@
+package com.yxt.external.biz.func.warehouseinfo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangpengfei
+ * @date 2024/10/17 15:17
+ */
+@Data
+public class ProjectDetailsVo {
+ private String sid;
+ private String warehouseName;//仓库名称
+ private String warehouseCode;//仓库编码
+ private String contacts;//联系人
+ private String mob;//手机
+ private String telephone;//联系电话
+ private String manager;//主管
+ private String address;//地址
+ private String lngAndLat;//经纬度
+ private String longitude;//经度
+ private String latitude;//纬度
+ private String squareMeter;//平方米
+ private String supplierName;
+ private String supplierType;
+ private String goodsDetail;
+ private List goodsDetails=new ArrayList<>();
+ private String remarks;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfo.java b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfo.java
new file mode 100644
index 0000000..ca33ffc
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfo.java
@@ -0,0 +1,32 @@
+package com.yxt.external.biz.func.warehouseinfo;
+
+import com.yxt.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author wangpengfei
+ * @date 2024/2/26 13:36
+ */
+@Data
+public class WarehouseInfo extends BaseEntity {
+
+ private String warehouseName;//仓库名称
+ private String warehouseCode;//仓库编码
+ private String contacts;//联系人
+ private String mob;//手机
+ private String telephone;//联系电话
+ private String manager;//主管
+ private String areaSid;//地区sid
+ private String address;//地址
+ private String belongingPlace;//归属地
+ private String lngAndLat;//经纬度
+ private String longitude;//经度
+ private String latitude;//纬度
+ private String warehouseTypeKey;//仓库类型Key
+ private String warehouseTypeValue;//仓库类型value
+ private Integer usageStatus;//使用状态,0停用 1正常
+ private String squareMeter;//平方米
+ private Integer sortNo;//排序
+ private String useOrgSid;//创建组织sid
+ private String createOrgSid;//创建组织sid
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoMapQuery.java b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoMapQuery.java
new file mode 100644
index 0000000..c5d8586
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoMapQuery.java
@@ -0,0 +1,24 @@
+package com.yxt.external.biz.func.warehouseinfo;
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author wangpengfei
+ * @date 2024/8/29 11:52
+ */
+@Data
+public class WarehouseInfoMapQuery implements Query {
+ private String name;//仓库名称
+ @ApiModelProperty("组织sid")
+ private String orgPath;
+ private List sids;
+ private String warehouseName;
+ private String address;
+ private String warehouseCode;
+ private String belongingPlace;
+ private String endTime;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoVo.java b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoVo.java
new file mode 100644
index 0000000..cf09d6e
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoVo.java
@@ -0,0 +1,49 @@
+package com.yxt.external.biz.func.warehouseinfo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.vo.Vo;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangpengfei
+ * @date 2024/2/26 13:37
+ */
+@Data
+public class WarehouseInfoVo implements Vo {
+ private String id;
+ private String sid;
+ private String lockVersion;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+ private String remarks;
+ private Integer isEnable;
+ private Integer state;
+ private Integer isDelete;
+ private String warehouseName;//仓库名称
+ private String warehouseCode;//仓库编码
+ private String contacts;//联系人
+ private String mob;//手机
+ private String telephone;//联系电话
+ private String manager;//主管
+ private String areaSid;//地区sid
+ private String address;//地址
+ private String belongingPlace;//归属地
+ private String lngAndLat;//经纬度
+ private String longitude;//经度
+ private String latitude;//纬度
+ private String warehouseTypeKey;//仓库类型Key
+ private String warehouseTypeValue;//仓库类型value
+ private Integer usageStatus;//使用状态,0停用 1正常
+ private String squareMeter;//平方米
+ private Integer sortNo;//排序
+ private String useOrgSid;//创建组织sid
+ private String createOrgSid;//创建组织sid
+ private String userSid;
+ private String orgPath;
+ private String gsd;
+}
diff --git a/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoVoSheng.java b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoVoSheng.java
new file mode 100644
index 0000000..036ccfc
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/func/warehouseinfo/WarehouseInfoVoSheng.java
@@ -0,0 +1,16 @@
+package com.yxt.external.biz.func.warehouseinfo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangpengfei
+ * @date 2024/9/12 14:08
+ */
+@Data
+public class WarehouseInfoVoSheng {
+ private String belongingPlace;//归属地
+ List list=new ArrayList<>();
+}
diff --git a/external/src/main/java/com/yxt/external/biz/package-info.java b/external/src/main/java/com/yxt/external/biz/package-info.java
new file mode 100644
index 0000000..a54ce07
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/biz/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 宇信通 仓库管理 项目后台逻辑和接口
+ */
+package com.yxt.external.biz;
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/config/SaTokenConfigure.java b/external/src/main/java/com/yxt/external/config/SaTokenConfigure.java
new file mode 100644
index 0000000..3881019
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/config/SaTokenConfigure.java
@@ -0,0 +1,114 @@
+package com.yxt.external.config;//package com.yxt.wms.config;
+//
+//import cn.dev33.satoken.interceptor.SaInterceptor;
+//import cn.dev33.satoken.stp.StpUtil;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+//
+///**
+// * @author wangpengfei
+// * @date 2023/5/16 14:43
+// */
+//@Configuration
+//public class SaTokenConfigure implements WebMvcConfigurer {
+// @Value("${image.url.prefix:http://127.0.0.1:8080/upload/}")
+// private String urlPrefix;
+// // 注册 Sa-Token 拦截器
+// @Override
+// public void addInterceptors(InterceptorRegistry registry) {
+// // 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
+//
+// registry.addInterceptor(new SaInterceptor(handler -> StpUtil.checkLogin()))
+// .addPathPatterns("/**")
+// .excludePathPatterns("/sysuser/doLogin")
+// .excludePathPatterns("/lpkgiftcard/gifCardByCustomerSid")
+// .excludePathPatterns("/empcardgift/gifCardByCustomerSid")
+// .excludePathPatterns("/empcard/getEmpCardByCustomerSid")
+// .excludePathPatterns("/lpkgiftcard/getGifCardBySid/**")
+// .excludePathPatterns("/empcardgift/getGifCardBySid/**")
+// .excludePathPatterns("/empcard/getEmpCardBySid/**")
+// .excludePathPatterns("/lpkgiftcard/isSaturAndSun/**")
+// .excludePathPatterns("/empcardgift/isSaturAndSun/**")
+// .excludePathPatterns("/empcard/isSaturAndSun/**")
+// .excludePathPatterns("/lpkgiftcard/getReservationBySid/**")
+// .excludePathPatterns("/lpksreservoorder/submission")
+// .excludePathPatterns("/lpksreservoorder/exportExcelByStore")
+// .excludePathPatterns("/empsreservoorder/createNewUserBagOrder")
+// .excludePathPatterns("/lpksreservoorders/submission")
+// .excludePathPatterns("/empsreservoorder/ordersList")
+// .excludePathPatterns("/empsreservoorder/submission")
+// .excludePathPatterns("/empsreservoorder/submissionEmp")
+// .excludePathPatterns("/empcardgift/generateCard")
+// .excludePathPatterns("/lpkgiftcard/bindCard")
+// .excludePathPatterns("/empcard/bindCard")
+// .excludePathPatterns("/lpksreservoorder/orderByCardSid/**")
+// .excludePathPatterns("/lpksreservoorder/orderListByUserSid/**")
+// .excludePathPatterns("/lpksreservoorder/orderDetails/**")
+// .excludePathPatterns("/newcomerrecorecord/recommendNewUsers")
+// .excludePathPatterns("/newcomerrecorecord/recommendedAssistance")
+// .excludePathPatterns("/newcomerrecorecord/recordList/**")
+// .excludePathPatterns("/transferrecords/transferRecordsList")
+// .excludePathPatterns("/empsreservoorder/createVegeOrder")
+// .excludePathPatterns("/empsreservoorder/OrderDetails/**")
+// .excludePathPatterns("/empsreservoorder/changePayState/**")
+// .excludePathPatterns("/lpkgoods/goodsDetails/**")
+// .excludePathPatterns("/lpkstore/getAllStoreByQuery")
+// .excludePathPatterns("/vegetablecellar/receiveTransferGoods")
+// .excludePathPatterns("/transferrecords/submission")
+// .excludePathPatterns("/lpkgiftcard/getCardByBank")
+// .excludePathPatterns("/empcard/getEmpCard")
+// .excludePathPatterns("/empcardgift/shareEmpCard/**")
+// .excludePathPatterns("/empcardgift/generateEmpCardGift")
+// .excludePathPatterns("/empcardgift/generateEmpCard")
+// .excludePathPatterns("/lpkcustomer/wxSilentLogin")
+// .excludePathPatterns("/lpkgiftcard/gifCardsByCustomerSid")
+// .excludePathPatterns("/lpkgoods/getAllGiftBag")
+// .excludePathPatterns("/appletgiftbag/getGiftBagBySid/**")
+// .excludePathPatterns("/appletgiftbag/appletGiftBagList")
+// .excludePathPatterns("/lpkgiftcard/cardShareDetail/**")
+// .excludePathPatterns("/lpkgiftcard/cardShareGoodsDetail/**")
+// .excludePathPatterns("/empcardgift/generateTopEmpCard/**")
+// .excludePathPatterns("/empsreservoorder/createOrder")
+// .excludePathPatterns("/appletgiftbag/recommendRecord/**")
+// //2024-01-17
+// .excludePathPatterns("/lpkgiftcard/getAllGoodsType/**")
+// .excludePathPatterns("/appletnotice/getNotice")
+// .excludePathPatterns("/empsreservoorder/getPreOrder")
+// .excludePathPatterns("/lpkgoods/getAllGoodsType/**")
+// .excludePathPatterns("/transferrecords/submission")
+// .excludePathPatterns("/vegetablecellar/receiveTransferGoods")
+// .excludePathPatterns("/customerstore/isSaturAndSun")
+// .excludePathPatterns("/lpkgiftcard/getGoodsByType/**")
+// .excludePathPatterns("/lpkgoods/getGoodsTypeAndBrand")
+// .excludePathPatterns("/lpkgoods/getGoodsByType")
+// .excludePathPatterns("/lpksreservoorders/orderListByUserSid")
+// .excludePathPatterns("/appletgiftbag/newUserQuota")
+// .excludePathPatterns("/shoppingcart/addShoppingCart")
+// .excludePathPatterns("/shoppingcart/getGoodsWeight")
+// .excludePathPatterns("/shoppingcart/shoppingCartList")
+// .excludePathPatterns("/shoppingcart/delShoppingCart/**")
+// .excludePathPatterns("/lpkgoods/vegeCellarTypeList")
+// .excludePathPatterns("/vegetablecellar/addGoods/**")
+// .excludePathPatterns("/lpkgoods/vegeCellarList")
+// .excludePathPatterns("/customerstore/getStoreBySid/**")
+// .excludePathPatterns("/lpkgiftcard/bindAllCard")
+// .excludePathPatterns("/lpkcustomer/customerInfo/**")
+// .excludePathPatterns("/vegetablecellar/saveGoods")
+// .excludePathPatterns("/transferrecords/getTransferByCode/**")
+// //2024-01-18
+// .excludePathPatterns("/lpkcustomer/getCustomerInfo/**")
+// .excludePathPatterns("/lpkcustomer/modifyUserNickName")
+// .excludePathPatterns("/lpkcustomer/modifyHeadImage")
+// .excludePathPatterns("/upload/**")
+// .excludePathPatterns("/lpkcustomer/getPhoneNumber")
+// .excludePathPatterns("/lpkcustomer/getRealInfo/**")
+// .excludePathPatterns("/lpkcustomer/saveRealInfo")
+// .excludePathPatterns("/pms/PmsBrand/getList")
+// .excludePathPatterns("/LpkCustomerBank/getBankList")
+// .excludePathPatterns("/lpkcustomer/updateCustomerBank")
+// .excludePathPatterns("//wxapi/**")
+// ;
+// }
+//}
diff --git a/external/src/main/java/com/yxt/external/config/SaTokenGloableException.java b/external/src/main/java/com/yxt/external/config/SaTokenGloableException.java
new file mode 100644
index 0000000..8e25041
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/config/SaTokenGloableException.java
@@ -0,0 +1,67 @@
+package com.yxt.external.config;
+
+import com.yxt.common.base.config.handler.GlobalExceptionHandler;
+import com.yxt.common.core.result.ResultBean;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.BindException;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+/**
+ * @author dimengzhe
+ * @date 2020/9/12 3:23
+ * @description 全局异常处理
+ */
+@RestControllerAdvice
+public class SaTokenGloableException extends GlobalExceptionHandler {
+
+ private static final Logger L = LoggerFactory.getLogger(GlobalExceptionHandler.class);
+
+ public SaTokenGloableException() {
+ }
+ @ExceptionHandler({Exception.class})
+ public ResultBean handleException(Exception e) {
+ if(null !=e.getMessage()){
+ if(e.getMessage().contains("token 无效:")){
+ L.error(e.getMessage(), e);
+ return ResultBean.fireFail().setCode("5000").setMsg("系统异常::" + e.getMessage());
+ }
+ if(e.getMessage().contains("未能读取到有效 token")){
+// L.error(e.getMessage(), e);
+ return ResultBean.fireFail().setMsg("系统异常::" + e.getMessage());
+ }
+ }
+
+ L.error(e.getMessage(), e);
+ return ResultBean.fireFail().setMsg("系统异常::" + e.getMessage());
+ }
+ @ExceptionHandler({NoHandlerFoundException.class})
+ public ResultBean handlerNoFoundException(Exception e) {
+ L.error(e.getMessage(), e);
+ return ResultBean.fireFail().setCode("404").setMsg("路径不存在,请检查路径是否正确");
+ }
+
+// @ExceptionHandler({Exception.class})
+// public ResultBean handleException(Exception e) {
+// L.error(e.getMessage(), e);
+// return ResultBean.fireFail().setMsg("系统异常::" + e.getMessage());
+// }
+
+ @ExceptionHandler({BindException.class})
+ public ResultBean validatedBindException(BindException e) {
+ L.error(e.getMessage(), e);
+ String message = ((ObjectError)e.getAllErrors().get(0)).getDefaultMessage();
+ return ResultBean.fireFail().setCode("405").setMsg(message);
+ }
+
+ @ExceptionHandler({MethodArgumentNotValidException.class})
+ public ResultBean validExceptionHandler(MethodArgumentNotValidException e) {
+ L.error(e.getMessage(), e);
+ String message = e.getBindingResult().getFieldError().getDefaultMessage();
+ return ResultBean.fireFail().setCode("405").setMsg(message);
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/config/Swagger2Configuration.java b/external/src/main/java/com/yxt/external/config/Swagger2Configuration.java
new file mode 100644
index 0000000..1b61ed7
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/config/Swagger2Configuration.java
@@ -0,0 +1,42 @@
+package com.yxt.external.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @author wangpengfei
+ * @date 2024/7/1 15:48
+ */
+
+@Configuration
+@EnableSwagger2
+public class Swagger2Configuration {
+ @Bean
+ public Docket createRestApi(){
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(apiInfo())
+ .select()
+// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
+ .apis(RequestHandlerSelectors.basePackage("com.yxt.wms.apiadmin.aggregation"))
+ .paths(PathSelectors.any())
+ .build();
+ }
+
+ //基本信息的配置,信息会在api文档上显示
+ private ApiInfo apiInfo(){
+ return new ApiInfoBuilder()
+ .title("zg测试的接口文档")
+ .description("xx相关接口的文档")
+ .termsOfServiceUrl("http://localhost:8080/hello")
+ .version("1.0")
+ .build();
+ }
+
+}
diff --git a/external/src/main/java/com/yxt/external/config/package-info.java b/external/src/main/java/com/yxt/external/config/package-info.java
new file mode 100644
index 0000000..7c7dbe8
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/config/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 宇信通监管项目-光伏(山海新能源)项目后台逻辑和接口-接口声明
+ */
+package com.yxt.external.config;
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/externalApplication.java b/external/src/main/java/com/yxt/external/externalApplication.java
new file mode 100644
index 0000000..3dedf53
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/externalApplication.java
@@ -0,0 +1,24 @@
+package com.yxt.external;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * @author wangpengfei
+ * @date ${DATE} ${TIME}
+ */
+@SpringBootApplication(scanBasePackages = {
+ "com.yxt.common.base.config",
+ "com.yxt.external"
+})
+@EnableDiscoveryClient
+@EnableScheduling
+@EnableFeignClients
+public class externalApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(externalApplication.class, args);
+ }
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerFeign.java b/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerFeign.java
new file mode 100644
index 0000000..4dbb34c
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerFeign.java
@@ -0,0 +1,24 @@
+package com.yxt.external.feign.crmcustomer;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(
+ contextId = "ss-common-purchase-CrmCustomer",
+ name = "ss-common-customer",
+ path = "v1/crmcustomertemp")
+public interface CrmCustomerFeign {
+ @ApiOperation("根据orgSid查询客户数量")
+ @GetMapping("/getCustomerByOrgSid")
+ public ResultBean getCustomerByOrgSid(@RequestParam("orgSid") String orgSid);
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage1")
+ public ResultBean> listPage1(@RequestBody PagerQuery pq);
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerTempQuery.java b/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerTempQuery.java
new file mode 100644
index 0000000..3638a6d
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerTempQuery.java
@@ -0,0 +1,76 @@
+package com.yxt.external.feign.crmcustomer;
+
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Project: anrui-crm(客户管理)
+ * File: CrmCustomerTempQuery.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempQuery
+ * Description: 潜在客户信息 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "潜在客户信息 查询条件", description = "潜在客户信息 查询条件")
+@Data
+public class CrmCustomerTempQuery implements Query {
+
+ @ApiModelProperty(value = "组织全路径")
+ private String orgSidPath;
+
+ @ApiModelProperty("客户类型key(自然人/法人)")
+ private String customerTypeKey;
+
+ @ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
+ private String levelKey;
+
+ @ApiModelProperty("客户名称")
+ private String name;
+
+ @ApiModelProperty("联系电话")
+ private String mobile;
+
+ @ApiModelProperty("提醒开始日期")
+ private String remindStartDay;
+
+ @ApiModelProperty("提醒结束日期")
+ private String remindEndDay;
+
+ @ApiModelProperty("业务员sid")
+ private String staffSid;
+
+
+
+ @ApiModelProperty("客户sid")
+ private List customerSidList;
+
+ @ApiModelProperty("创建开始日期")
+ private String createStartDate;
+
+ @ApiModelProperty("创建结束日期")
+ private String createEndDate;
+
+ @ApiModelProperty("销售专员")
+ private String staffName;
+ private String useOrgSid;
+
+ private String orgLevelKey;//权限等级
+ @ApiModelProperty("菜单路由")
+ private String menuUrl;
+ @ApiModelProperty("组织全路径sid")
+ private String orgPath;
+ @ApiModelProperty("用户sid")
+ private String userSid;
+ private int index;
+ private String customerName;
+}
diff --git a/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerTempVo.java b/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerTempVo.java
new file mode 100644
index 0000000..6b624b5
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/crmcustomer/CrmCustomerTempVo.java
@@ -0,0 +1,192 @@
+package com.yxt.external.feign.crmcustomer;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Project: anrui-crm(客户管理)
+ * File: CrmCustomerTempVo.java
+ * Class: com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo
+ * Description: 潜在客户信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-01-12 11:21:16
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "潜在客户信息 视图数据对象", description = "潜在客户信息 视图数据对象")
+@Data
+public class CrmCustomerTempVo implements Vo {
+
+ @ApiModelProperty("潜在客户sid")
+ private String sid;
+
+ @ApiModelProperty("分公司名称")
+ private String createOrgName;
+
+ @ApiModelProperty("业务员名称")
+ private String staffName;
+
+ @ApiModelProperty("部门名称")
+ private String deptName;
+
+ @ApiModelProperty("创建人sid")
+ private String createBySid;
+
+ @ApiModelProperty("登记日期")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date createTime;
+
+ @ApiModelProperty("客户编号(部门编码+客户类型(1位,0个人,1企业)+部门内部流水号(6位))")
+ private String customerNo;
+
+ @ApiModelProperty("客户类型(自然人/法人)")
+ private String customerType;
+
+ @ApiModelProperty("客户类型key")
+ private String customerTypeKey;
+
+ @ApiModelProperty("客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)")
+ private String customerClass;
+
+ @ApiModelProperty("客户分类key")
+ private String customerClassKey;
+
+ @ApiModelProperty("客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)")
+ private String source;
+
+ @ApiModelProperty("客户来源key")
+ private String sourceKey;
+
+ @ApiModelProperty("客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)")
+ private String level;
+
+ @ApiModelProperty("客户级别key")
+ private String levelKey;
+
+ @ApiModelProperty("客户名称")
+ private String name;
+
+ @ApiModelProperty("证件类型key")
+ private String certificateTypeKey;
+
+ @ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
+ private String certificateType;
+
+ @ApiModelProperty("证件号码(个人为身份证号/企业为统一社会信用代码)")
+ private String IDNumber;
+
+ @ApiModelProperty("证件有效期")
+ private String endDate;
+
+ @ApiModelProperty("行政区划代码(省)")
+ private String address_province;
+
+ @ApiModelProperty("行政区划代码(市)")
+ private String address_city;
+
+ @ApiModelProperty("行政区划代码(县)")
+ private String address_county;
+
+ @ApiModelProperty("省")
+ private String province;
+
+ @ApiModelProperty("市")
+ private String city;
+
+ @ApiModelProperty("县")
+ private String county;
+
+ @ApiModelProperty("客户地址")
+ private String address;
+
+ @ApiModelProperty("邮编")
+ private String zipCode;
+
+ @ApiModelProperty("电子邮箱")
+ private String e_mail;
+
+ @ApiModelProperty("联系人")
+ private String contacts;
+
+ @ApiModelProperty("联系电话")
+ private String mobile;
+
+ @ApiModelProperty("紧急联系电话")
+ private String emergencyContact;
+
+ @ApiModelProperty("紧急联系电话")
+ private String emergencyMobile;
+
+ @ApiModelProperty("微信号码")
+ private String weixin;
+
+ @ApiModelProperty("业务人员sid")
+ private String staffSid;
+
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+
+ @ApiModelProperty("性别")
+ private String sex;
+
+ @ApiModelProperty("性别key")
+ private String sexKey;
+
+ @ApiModelProperty("客户生日")
+ private String birthday;
+
+ @ApiModelProperty("所在公司名称")
+ private String companyName;
+
+ @ApiModelProperty("跟进状态key")
+ private String follow_state_key;
+
+ @ApiModelProperty("跟进状态")
+ private String follow_state;
+
+ @ApiModelProperty("是否开启提醒key(1开启,0不开启)")
+ private String isOnRemindkey;
+
+ @ApiModelProperty("是否开启提醒(1开启,0不开启)")
+ private String isOnRemind;
+
+ @ApiModelProperty("提醒日期")
+ private String remind_day;
+
+ @ApiModelProperty("提醒备注")
+ private String remind_remark;
+
+ @ApiModelProperty("客户头像")
+ private String customerPhoto;
+
+ @ApiModelProperty("见面方式key")
+ private String visitWayKey;
+
+ @ApiModelProperty("见面方式(到店/电话/拜访)")
+ private String visitWay;
+
+ @ApiModelProperty("备注")
+ private String remarks;
+
+ @ApiModelProperty("意向车型数量")
+ private String yxcounts;
+
+ @ApiModelProperty("跟进记录数量")
+ private String gjcounts;
+
+
+
+ private String useOrgSid;
+ private String customerOrgSid;
+ private String customerOrgName;
+
+}
diff --git a/external/src/main/java/com/yxt/external/feign/package-info.java b/external/src/main/java/com/yxt/external/feign/package-info.java
new file mode 100644
index 0000000..2e3320c
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 宇信通监管项目-光伏(山海新能源)项目后台逻辑和接口-接口声明
+ */
+package com.yxt.external.feign;
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillFeign.java b/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillFeign.java
new file mode 100644
index 0000000..c9b2c29
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillFeign.java
@@ -0,0 +1,23 @@
+package com.yxt.external.feign.purchase;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.purchase.PurchaseBillDto;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+@FeignClient(
+ contextId = "ss-common-purchase-PurchaseBill",
+ name = "ss-common-purchase",
+ path = "/apiadmin/purchasebill")
+public interface PurchaseBillFeign {
+ @ApiOperation("新增采购单")
+ @PostMapping("/savePurchase")
+ public ResultBean savePurchase(@RequestBody PurchaseBillDto dto);
+
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage")
+ public ResultBean> listPage(@RequestBody PagerQuery pq);
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillQuery.java b/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillQuery.java
new file mode 100644
index 0000000..9679334
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillQuery.java
@@ -0,0 +1,71 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.feign.purchase;
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "采购单 查询条件", description = "采购单 查询条件")
+public class PurchaseBillQuery implements Query {
+
+ @ApiModelProperty("创建开始日期")
+ private String createStartTime;
+ @ApiModelProperty("创建结束日期")
+ private String createEndTime;
+ @ApiModelProperty("供应商名称")
+ private String supplierSid;
+ @ApiModelProperty("仓库名称")
+ private String wareHouseSid;
+ @ApiModelProperty("收货状态key")
+ private String receiveStateKey;
+ @ApiModelProperty("物流单号")
+ private String logisticsNum;
+ @ApiModelProperty("单据编号")
+ private String billNo;
+ @ApiModelProperty("采购员")
+ private String purchaserName;
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("发货状态key")
+ private String deliveryStateKey;
+ @ApiModelProperty("商品sid")
+ private String goodsSid;
+
+ private String orgLevelKey;//权限等级
+ @ApiModelProperty("菜单路由")
+ private String menuUrl;
+ @ApiModelProperty("组织全路径sid")
+ private String orgPath;
+ @ApiModelProperty("用户sid")
+ private String userSid;
+ private int index;
+
+ @ApiModelProperty("审核状态key")
+ private String examineStateKey;
+}
diff --git a/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillVo.java b/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillVo.java
new file mode 100644
index 0000000..691e17c
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/purchase/PurchaseBillVo.java
@@ -0,0 +1,91 @@
+/*********************************************************
+ *********************************************************
+ ******************** *******************
+ ************* ************
+ ******* _oo0oo_ *******
+ *** o8888888o ***
+ * 88" . "88 *
+ * (| -_- |) *
+ * 0\ = /0 *
+ * ___/`---'\___ *
+ * .' \\| |// '. *
+ * / \\||| : |||// \ *
+ * / _||||| -:- |||||- \ *
+ * | | \\\ - /// | | *
+ * | \_| ''\---/'' |_/ | *
+ * \ .-\__ '-' ___/-. / *
+ * ___'. .' /--.--\ `. .'___ *
+ * ."" '< `.___\_<|>_/___.' >' "". *
+ * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
+ * \ \ `_. \_ __\ /__ _/ .-` / / *
+ * =====`-.____`.___ \_____/___.-`___.-'===== *
+ * `=---=' *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
+ *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
+ *********************************************************/
+package com.yxt.external.feign.purchase;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "采购单 视图数据对象", description = "采购单 视图数据对象")
+public class PurchaseBillVo implements Vo {
+
+ private String sid; // sid
+
+ @ApiModelProperty("审核状态")
+ private String state;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @ApiModelProperty("业务日期")
+ private Date createTime;
+ @ApiModelProperty("单据编号")
+ private String billNo;
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+ @ApiModelProperty("采购员姓名")
+ private String purchaserName;
+ @ApiModelProperty("仓库名称")
+ private String wareHouseName;
+ @ApiModelProperty("收货状态value")
+ private String receiveStateValue;
+ @ApiModelProperty("商品总额")
+ private String amountTotal;
+ @ApiModelProperty("采购运费")
+ private BigDecimal freight;
+ @ApiModelProperty("其它费用")
+ private BigDecimal otherAmount;
+ @ApiModelProperty("预付金额")
+ private BigDecimal prepayment;
+ @ApiModelProperty("总税额")
+ private BigDecimal taxAmount;
+ @ApiModelProperty("物流单号")
+ private String logisticsNum;
+ @ApiModelProperty("生产进度")
+ private String productProgress;
+ @ApiModelProperty("未含税总价(未含税价*采购数量)")
+ private BigDecimal unTaxTotalAmount;
+ @ApiModelProperty("总采购数量")
+ private String countTotal;
+ @ApiModelProperty("已入库数量")
+ private BigDecimal enterWareCount;
+ @ApiModelProperty("已入库金额")
+ private BigDecimal enterWareAmount;
+ @ApiModelProperty("已发货数量")
+ private BigDecimal deliveryCount;
+ @ApiModelProperty("发货状态value")
+ private String deliveryStateValue;
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("制单人姓名")
+ private String createByName;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @ApiModelProperty("最后修改时间")
+ private Date modifyTime;
+}
diff --git a/external/src/main/java/com/yxt/external/feign/sales/smssalesbill/SmsSalesBillFeign.java b/external/src/main/java/com/yxt/external/feign/sales/smssalesbill/SmsSalesBillFeign.java
new file mode 100644
index 0000000..6c9d7e9
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/sales/smssalesbill/SmsSalesBillFeign.java
@@ -0,0 +1,27 @@
+package com.yxt.external.feign.sales.smssalesbill;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.smssalesbill.SmsSalesBillDto;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @description:
+ * @author: fzz
+ * @date: 2024/7/4
+ **/
+@FeignClient(
+ contextId = "ss-common-sales-SmsSalesBill",
+ name = "ss-common-sales",
+ path = "/v1/smssalesbill")
+public interface SmsSalesBillFeign {
+
+ @ApiOperation("新增销售单(对外)")
+ @PostMapping("/saveSales")
+ public ResultBean saveSales(@RequestBody SmsSalesBillDto dto);
+}
diff --git a/external/src/main/java/com/yxt/external/feign/supplier/supplierinfo/SupplierInfoFeign.java b/external/src/main/java/com/yxt/external/feign/supplier/supplierinfo/SupplierInfoFeign.java
new file mode 100644
index 0000000..b04ff50
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/supplier/supplierinfo/SupplierInfoFeign.java
@@ -0,0 +1,43 @@
+package com.yxt.external.feign.supplier.supplierinfo;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoChoice;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoDetailsVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoQuery;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoVo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * Project: anrui_portal(门户建设)
+ * File: SysRoleFeign.java
+ * Class: com.yxt.anrui.portal.api.sysrole.SysRoleFeign
+ * Description: 角色.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:29
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@FeignClient(
+ contextId = "ss-common-supplier-SupplierInfo",
+ name = "ss-common-supplier",
+ path = "/apiadmin/supplierinfo")
+public interface SupplierInfoFeign {
+ @ApiOperation("供应商数量")
+ @GetMapping("/getSupplierCountByOrgSid")
+ public ResultBean getSupplierCountByOrgSid(@RequestParam("orgSid") String orgSid);
+ @ApiOperation("根据SID获取一条记录")
+ @GetMapping("/fetchDetailsBySid/{sid}")
+ public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid);
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage1")
+ public ResultBean> listPage1(@RequestBody PagerQuery pq);
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/supplier/supplierinfo/SupplierInfoFeignFallback.java b/external/src/main/java/com/yxt/external/feign/supplier/supplierinfo/SupplierInfoFeignFallback.java
new file mode 100644
index 0000000..b04b90d
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/supplier/supplierinfo/SupplierInfoFeignFallback.java
@@ -0,0 +1,45 @@
+package com.yxt.external.feign.supplier.supplierinfo;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoChoice;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoDetailsVo;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoQuery;
+import com.yxt.external.biz.func.supplierinfo.SupplierInfoVo;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * Project: anrui_portal(门户建设)
+ * File: SysRoleFeignFallback.java
+ * Class: com.yxt.anrui.portal.api.sysrole.SysRoleFeignFallback
+ * Description: 角色.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:29
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Component
+public class SupplierInfoFeignFallback implements SupplierInfoFeign {
+
+
+ @Override
+ public ResultBean> getSupplierCountByOrgSid(String useOrgSid) {
+ return null;
+ }
+
+ @Override
+ public ResultBean fetchDetailsBySid(String sid) {
+ return null;
+ }
+
+ @Override
+ public ResultBean> listPage1(PagerQuery pq) {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/warehouse/purchaseinventorybill/PurchaseInventoryBillFeign.java b/external/src/main/java/com/yxt/external/feign/warehouse/purchaseinventorybill/PurchaseInventoryBillFeign.java
new file mode 100644
index 0000000..3e51e19
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/warehouse/purchaseinventorybill/PurchaseInventoryBillFeign.java
@@ -0,0 +1,23 @@
+package com.yxt.external.feign.warehouse.purchaseinventorybill;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.purchaseinventorybill.PurchaseInventoryBillDto3;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "预期到货通知单")
+@FeignClient(
+ contextId = "ss-common-warehouse-PurchaseInventoryBill",
+ name = "ss-common-warehouse",
+ path = "/apiadmin/purchaseinventorybill")
+public interface PurchaseInventoryBillFeign {
+
+ @ApiOperation("确认(对外)")
+ @PostMapping("/confirmByBill")
+ ResultBean confirmByBill(@RequestBody PurchaseInventoryBillDto3 dto);
+
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/feign/warehouse/warehouseinfo/WarehouseInfoFeign.java b/external/src/main/java/com/yxt/external/feign/warehouse/warehouseinfo/WarehouseInfoFeign.java
new file mode 100644
index 0000000..35f038c
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/feign/warehouse/warehouseinfo/WarehouseInfoFeign.java
@@ -0,0 +1,33 @@
+package com.yxt.external.feign.warehouse.warehouseinfo;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import com.yxt.external.biz.func.warehouseinfo.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = "仓库信息")
+@FeignClient(
+ contextId = "ss-common-warehouse-WarehouseInfo",
+ name = "ss-common-warehouse",
+ path = "/apiadmin/warehouseinfo")
+public interface WarehouseInfoFeign {
+
+ @PostMapping("/list")
+ public ResultBean> list(@RequestBody WarehouseInfoMapQuery query);
+ @GetMapping("/getWarehouseBySid/{sid}")
+ public ResultBean getWarehouseBySid(@PathVariable("sid") String sid);
+ @ApiOperation("初始化")
+ @GetMapping("/initialization/{sid}")
+ public ResultBean initialization(@PathVariable("sid") String sid);
+ @ApiOperation("统计各省仓库")
+ @GetMapping("/getWarehouseCountByOrgSid")
+ public ResultBean> getWarehouseCountByOrgSid(@RequestParam("orgSid") String orgSid);
+ @PostMapping("/listPageN")
+ public ResultBean> listPageN(@RequestBody PagerQuery query);
+}
\ No newline at end of file
diff --git a/external/src/main/java/com/yxt/external/utils/DoubleUtils.java b/external/src/main/java/com/yxt/external/utils/DoubleUtils.java
new file mode 100644
index 0000000..059c331
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/utils/DoubleUtils.java
@@ -0,0 +1,93 @@
+package com.yxt.external.utils;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wangpengfei
+ * @date 2024/1/24 8:53
+ */
+public class DoubleUtils {
+
+ /**
+ * 对double数据进行取精度.
+ * @param value double数据.
+ * @param scale 精度位数(保留的小数位数).
+ * @param roundingMode 精度取值方式.
+ * @return 精度计算后的数据.
+ */
+ public static double round(double value, int scale,
+ int roundingMode) {
+ BigDecimal bd = BigDecimal.valueOf(value);
+ bd = bd.setScale(scale, roundingMode);
+ double d = bd.doubleValue();
+ bd = null;
+ return d;
+ }
+
+
+ /**
+ * double 相加
+ * @param d1
+ * @param d2
+ * @return
+ */
+ public static double sum(double d1,double d2){
+ BigDecimal bd1 = BigDecimal.valueOf(d1);
+ BigDecimal bd2 = BigDecimal.valueOf(d2);
+ return bd1.add(bd2).doubleValue();
+ }
+
+
+ /**
+ * double 相减
+ * @param d1
+ * @param d2
+ * @return
+ */
+ public static double sub(double d1,double d2){
+ BigDecimal bd1 = BigDecimal.valueOf(d1);
+ BigDecimal bd2 = BigDecimal.valueOf(d2);
+ return bd1.subtract(bd2).doubleValue();
+ }
+
+ /**
+ * double 乘法
+ * @param d1
+ * @param d2
+ * @return
+ */
+ public static double mul(double d1, double d2){
+ BigDecimal bd1 = BigDecimal.valueOf(d1);
+ BigDecimal bd2 = BigDecimal.valueOf(d2);
+ return bd1.multiply(bd2).doubleValue();
+ }
+
+
+ /**
+ * double 除法
+ * @param d1
+ * @param d2
+ * @param scale 四舍五入 小数点位数
+ * @return
+ */
+ public static double div(double d1,double d2,int scale){
+ BigDecimal bd1 = BigDecimal.valueOf(d1);
+ BigDecimal bd2 = BigDecimal.valueOf(d2);
+ return bd1.divide
+ (bd2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
+ }
+ /**
+ * 去除多余.0
+ * @param num
+ * @return
+ */
+ public static String removeZeros(String num) {
+ if (num.indexOf(".") > 0) {
+ // 去掉多余的0
+ num = num.replaceAll("0+?$", "");
+ // 如果最后一位是. 则去掉
+ num = num.replaceAll("[.]$", "");
+ }
+ return num;
+ }
+}
diff --git a/external/src/main/java/com/yxt/external/utils/ExcelUtil.java b/external/src/main/java/com/yxt/external/utils/ExcelUtil.java
new file mode 100644
index 0000000..e8b7e96
--- /dev/null
+++ b/external/src/main/java/com/yxt/external/utils/ExcelUtil.java
@@ -0,0 +1,171 @@
+package com.yxt.external.utils;
+
+
+//import org.apache.log4j.Logger;
+import com.yxt.common.core.result.ResultBean;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.apache.poi.ss.usermodel.CellType.NUMERIC;
+import static org.apache.poi.ss.usermodel.CellType.STRING;
+
+
+/**
+ * @author wangpengfei
+ * @date 2024/4/23 13:53
+ */
+public class ExcelUtil {
+// private static Logger logger = Logger.getLogger(ExcelUtil.class);
+ private final static String xls = "xls";
+ private final static String xlsx = "xlsx";
+
+ /**
+ * 读入excel文件,解析后返回
+ *
+ * @param file
+ * @throws IOException
+ */
+ public static List readExcel(MultipartFile file) throws IOException {
+ //检查文件
+ checkFile(file);
+ //获得Workbook工作薄对象
+ Workbook workbook = getWorkBook(file);
+ //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回
+ List list = new ArrayList();
+ if (workbook != null) {
+ for (int sheetNum = 0; sheetNum < workbook.getNumberOfSheets(); sheetNum++) {
+ //获得当前sheet工作表
+ Sheet sheet = workbook.getSheetAt(sheetNum);
+ if (sheet == null) {
+ continue;
+ }
+ //获得当前sheet的开始行
+ int firstRowNum = sheet.getFirstRowNum();
+ //获得当前sheet的结束行
+ int lastRowNum = sheet.getLastRowNum();
+ int arrLength = sheet.getRow(firstRowNum).getPhysicalNumberOfCells();
+ int rowNumb=firstRowNum + 1;
+ //循环除了第一行的所有行
+ for (int rowNum = rowNumb; rowNum <= lastRowNum; rowNum++) {
+ //获得当前行
+ Row row = sheet.getRow(rowNum);
+ if (row == null) {
+ continue;
+ }
+ //获得当前行的开始列
+ int firstCellNum = row.getFirstCellNum();
+ //获得当前行的列数
+ int lastCellNum = row.getPhysicalNumberOfCells();
+ String[] cells = new String[arrLength];
+ //循环当前行
+ for(int i =0 ;i
+
+
+
+ com.yxt
+ yxt-parent
+ 0.0.1
+
+
+ 4.0.0
+
+ ss-gateway-api
+ ss-gateway-api
+ 0.0.1
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-gateway
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ org.projectlombok
+ lombok
+ 1.18.24
+ true
+
+
+ org.springframework
+ spring-webmvc
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+ redis.clients
+ jedis
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.11.0
+
+
+ io.jsonwebtoken
+ jjwt
+ 0.9.0
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+ com.alibaba
+ fastjson
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.5.6
+
+
+
+ repackage
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*Mapper.xml
+
+
+
+ src/main/resources
+
+ **/*.*
+
+ false
+
+
+
+
+
diff --git a/externalgateway/src/main/java/com/yxt/external/AuthFilter.java b/externalgateway/src/main/java/com/yxt/external/AuthFilter.java
new file mode 100644
index 0000000..513dc73
--- /dev/null
+++ b/externalgateway/src/main/java/com/yxt/external/AuthFilter.java
@@ -0,0 +1,173 @@
+package com.yxt.external;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yxt.external.authutils.CacheConstants;
+import com.yxt.external.authutils.IgnoreWhiteProperties;
+import com.yxt.external.authutils.StringUtils;
+import com.yxt.external.utils.ResultBean;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.stereotype.Component;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.nio.CharBuffer;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author dimengzhe
+ * @description 网关鉴权
+ */
+@Component
+public class AuthFilter implements GlobalFilter, Ordered {
+
+ private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
+
+ @Autowired
+ private IgnoreWhiteProperties ignoreWhite;
+
+ @Autowired
+ private Signature signature;
+
+ @Override
+ public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+ String url = exchange.getRequest().getURI().getPath();
+ // 1. URI 白名单过滤:如果请求路径在白名单中,直接放行
+ if (isWhitelisted(url)) {
+ return chain.filter(exchange);
+ }
+
+ // 2. 提取请求参数并进行验证
+ return extractParameters(exchange)
+ .flatMap(parameters -> {
+ // 校验请求参数
+ ResultBean validationResult = signature.validate(parameters);
+ // 校验失败,返回 401 Unauthorized 错误响应
+ if (!validationResult.getSuccess()) {
+ return setUnauthorizedResponse(exchange, validationResult.getMsg());
+ }
+
+ // 3. 如果需要,可以从参数中提取信息并添加到请求头
+ ServerHttpRequest mutableReq = exchange.getRequest().mutate()
+ .header(CacheConstants._APP, parameters.get("_app"))
+ .build();
+ ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build();
+ // 4. 继续执行后续过滤器链
+ return chain.filter(mutableExchange);
+ });
+ }
+
+ // 提取请求参数方法:根据请求类型 (GET 或 POST) 提取参数
+ private Mono