Sfoglia il codice sorgente

feature: 修改创建经销商参数校验,修改统计逻辑

liuyaqi 2 anni fa
parent
commit
4a3224ab86

+ 0 - 3
opms_parent/app/handler/base/distributor.go

@@ -35,9 +35,6 @@ func (p *DistributorHandler) GetList(ctx context.Context, req *model.BaseDistrib
 
 // Swagger:Distributor 经销商代理商 新增
 func (p *DistributorHandler) Create(ctx context.Context, req *model.AddDistributor, rsp *comm_def.CommonMsg) error {
-	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
-	}
 	distributorServer, err := server.NewDistributorService(ctx)
 	if err != nil {
 		return err

+ 19 - 0
opms_parent/app/service/base/base_distributor.go

@@ -149,6 +149,25 @@ func (s *distributorService) getDistributorCode(distCode string) (string, error)
 
 // Create 经销商创建
 func (s *distributorService) Create(ctx context.Context, req *model.AddDistributor) (int64, error) {
+	if req.DistType == "10" {
+		if req.DistName == "" {
+			return 0, myerrors.TipsError("经销商名称不能为空")
+		}
+		if req.ProvinceId == 0 {
+			return 0, myerrors.TipsError("所属省份Id不能为空")
+		}
+		if req.ProvinceDesc == "" {
+			return 0, myerrors.TipsError("所属省份名称不能为空")
+		}
+		if req.RegisterDistrict == "" {
+			return 0, myerrors.TipsError("注册地不能为空")
+		}
+	} else {
+		if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
+			return 0, err
+		}
+	}
+
 	DistributorData := new(model.BaseDistributor)
 	if err := gconv.Struct(req, DistributorData); err != nil {
 		return 0, err

+ 14 - 10
opms_parent/app/service/home/home.go

@@ -2,6 +2,10 @@ package home
 
 import (
 	"context"
+	"encoding/json"
+	"fmt"
+	"time"
+
 	contDao "dashoo.cn/micro/app/dao/contract"
 	custDao "dashoo.cn/micro/app/dao/cust"
 	platDao "dashoo.cn/micro/app/dao/plat"
@@ -11,8 +15,6 @@ import (
 	"dashoo.cn/micro/app/service"
 	server "dashoo.cn/micro/app/service/plat"
 	projSrv "dashoo.cn/micro/app/service/proj"
-	"encoding/json"
-	"fmt"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/os/gtime"
 	"github.com/gogf/gf/util/gconv"
@@ -139,7 +141,6 @@ func (s *HomeService) getNumStatisticsData(id int64, params *map[string]interfac
 	businessDao := projDao.NewProjBusinessDao(s.Tenant)
 	busDynamicsDao := projDao.NewProjBusinessDynamicsDao(s.Tenant)
 	contractDao := contDao.NewCtrContractDao(s.Tenant)
-	collectionPlanDao := contDao.NewCtrContractCollectionPlanDao(s.Tenant)
 	taskDao := platDao.NewPlatTaskDao(s.Tenant)
 	currentTime := gtime.Now()
 	monthStart := currentTime.StartOfMonth()
@@ -208,17 +209,20 @@ func (s *HomeService) getNumStatisticsData(id int64, params *map[string]interfac
 			Fields(busDynamicsDao.C.BusId).DataScope(s.Ctx, "sale_id", "bus").Distinct().Count()
 		return gconv.String(count), err
 
-	case 10014: //计划回款金额
-		count, err := collectionPlanDao.LeftJoin(contractDao.Table, "contract", "contract.id=ctr_contract_collection_plan.contract_id").
-			DataScope(s.Ctx, "incharge_id", "contract").Sum(collectionPlanDao.C.PlanAmount)
+	case 10014: //签约未回款总金额,数据=全部历史合同中未回款金额,过程中有实际回款时数据实时扣减
+		count, err := contractDao.DataScope(s.Ctx, "incharge_id").Sum(contractDao.C.ContractAmount + " - " + contractDao.C.CollectedAmount)
 		return gconv.String(count), err
 
-	case 10015: //未开票金额
-		count, err := contractDao.DataScope(s.Ctx, "incharge_id").Sum(contractDao.C.ContractAmount + " - " + contractDao.C.InvoiceAmount)
+	case 10015: //当年未开票金额,数据=2023年未开票金额
+		count, err := contractDao.DataScope(s.Ctx, "incharge_id").
+			Where("year(contract_sign_time) = ?", time.Now().Year()).
+			Sum(contractDao.C.ContractAmount + " - " + contractDao.C.InvoiceAmount)
 		return gconv.String(count), err
 
-	case 10016: //未回款金额
-		count, err := contractDao.DataScope(s.Ctx, "incharge_id").Sum(contractDao.C.ContractAmount + " - " + contractDao.C.CollectedAmount)
+	case 10016: //当年签约未回款金额,数据=2023年合同中未回款金额,过程中有实际回款时数据
+		count, err := contractDao.DataScope(s.Ctx, "incharge_id").
+			Where("year(contract_sign_time) = ?", time.Now().Year()).
+			Sum(contractDao.C.ContractAmount + " - " + contractDao.C.CollectedAmount)
 		return gconv.String(count), err
 	}
 	return "", nil

+ 3 - 3
opms_parent/schema/tmp.sql

@@ -126,6 +126,6 @@ CREATE TABLE `base_distributor_target` (
 ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMMENT = '代理商业务指标';
 -- alter table base_distributor_contact modify `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键';
 
-alter table base_distributor add `appro_item` varchar(255) COMMENT '审批项名称: 创建代理商 经销商转代理商 代理商续签 代理商转经销商' after contract_url
-alter table base_distributor add `appro_data` text COMMENT '审核数据' after appro_item
-alter table base_distributor add `appro_status` varchar(4) COMMENT '审核状态 20 待审核 30 审核已同意 40 审核已拒绝 50 审核已撤销' after appro_data
+alter table base_distributor add `appro_item` varchar(255) COMMENT '审批项名称: 创建代理商 经销商转代理商 代理商续签 代理商转经销商' after contract_url;
+alter table base_distributor add `appro_data` text COMMENT '审核数据' after appro_item;
+alter table base_distributor add `appro_status` varchar(4) COMMENT '审核状态 20 待审核 30 审核已同意 40 审核已拒绝 50 审核已撤销' after appro_data;