|
|
@@ -14,6 +14,7 @@ import (
|
|
|
sysdao "dashoo.cn/micro/app/dao/sys"
|
|
|
model "dashoo.cn/micro/app/model/contract"
|
|
|
proj "dashoo.cn/micro/app/model/proj"
|
|
|
+ "dashoo.cn/micro/app/service"
|
|
|
|
|
|
"dashoo.cn/opms_libary/micro_srv"
|
|
|
"dashoo.cn/opms_libary/myerrors"
|
|
|
@@ -138,72 +139,74 @@ func (s CtrContractService) DynamicsList(ctx context.Context, req *model.CtrCont
|
|
|
return total, ret, err
|
|
|
}
|
|
|
|
|
|
-func (s CtrContractService) List(ctx context.Context, req *model.CtrContractListReq) (int, []*model.CtrContract, error) {
|
|
|
- dao := &s.Dao.CtrContractDao
|
|
|
+func (s CtrContractService) List(ctx context.Context, req *model.CtrContractListReq) (int, []*model.CtrContractListRsp, error) {
|
|
|
+ dao := s.Dao.DB.Table("ctr_contract a").
|
|
|
+ LeftJoin("cust_customer b", "a.cust_id=b.id").
|
|
|
+ Unscoped().Where("a.deleted_time is null")
|
|
|
if req.SearchText != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.SearchText)
|
|
|
- dao = dao.Where("(contract_code LIKE ? || contract_name LIKE ? || cust_name LIKE ? || nbo_name LIKE ?)", likestr, likestr, likestr, likestr)
|
|
|
+ dao = dao.Where("(a.contract_code LIKE ? || a.contract_name LIKE ? || a.cust_name LIKE ? || a.nbo_name LIKE ?)", likestr, likestr, likestr, likestr)
|
|
|
}
|
|
|
if req.ContractCode != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.ContractCode)
|
|
|
- dao = dao.Where("contract_code like ?", likestr)
|
|
|
+ dao = dao.Where("a.contract_code like ?", likestr)
|
|
|
}
|
|
|
if req.ContractName != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.ContractName)
|
|
|
- dao = dao.Where("contract_name like ?", likestr)
|
|
|
+ dao = dao.Where("a.contract_name like ?", likestr)
|
|
|
}
|
|
|
if req.CustId != 0 {
|
|
|
- dao = dao.Where("cust_id = ?", req.CustId)
|
|
|
+ dao = dao.Where("a.cust_id = ?", req.CustId)
|
|
|
}
|
|
|
if req.CustName != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.CustName)
|
|
|
- dao = dao.Where("cust_name like ?", likestr)
|
|
|
+ dao = dao.Where("a.cust_name like ?", likestr)
|
|
|
}
|
|
|
if req.NboId != 0 {
|
|
|
- dao = dao.Where("nbo_id = ?", req.NboId)
|
|
|
+ dao = dao.Where("a.nbo_id = ?", req.NboId)
|
|
|
}
|
|
|
if req.NboName != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.NboName)
|
|
|
- dao = dao.Where("nbo_name like ?", likestr)
|
|
|
+ dao = dao.Where("a.nbo_name like ?", likestr)
|
|
|
}
|
|
|
if req.ApproStatus != "" {
|
|
|
- dao = dao.Where("appro_status = ?", req.ApproStatus)
|
|
|
+ dao = dao.Where("a.appro_status = ?", req.ApproStatus)
|
|
|
}
|
|
|
if req.ContractType != "" {
|
|
|
- dao = dao.Where("contract_type = ?", req.ContractType)
|
|
|
+ dao = dao.Where("a.contract_type = ?", req.ContractType)
|
|
|
}
|
|
|
// if req.ContractStartTime != nil {
|
|
|
- // dao = dao.Where("contract_start_time > ?", req.ContractStartTime)
|
|
|
+ // dao = dao.Where("a.contract_start_time > ?", req.ContractStartTime)
|
|
|
// }
|
|
|
// if req.ContractEndTime != nil {
|
|
|
- // dao = dao.Where("contract_end_time < ?", req.ContractEndTime)
|
|
|
+ // dao = dao.Where("a.contract_end_time < ?", req.ContractEndTime)
|
|
|
// }
|
|
|
if req.InchargeId != 0 {
|
|
|
- dao = dao.Where("incharge_id = ?", req.InchargeId)
|
|
|
+ dao = dao.Where("a.incharge_id = ?", req.InchargeId)
|
|
|
}
|
|
|
if req.InchargeName != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.InchargeName)
|
|
|
- dao = dao.Where("incharge_name like ?", likestr)
|
|
|
+ dao = dao.Where("a.incharge_name like ?", likestr)
|
|
|
}
|
|
|
if req.SignatoryId != 0 {
|
|
|
- dao = dao.Where("signatory_id = ?", req.SignatoryId)
|
|
|
+ dao = dao.Where("a.signatory_id = ?", req.SignatoryId)
|
|
|
}
|
|
|
if req.SignatoryName != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.SignatoryName)
|
|
|
- dao = dao.Where("signatory_name like ?", likestr)
|
|
|
+ dao = dao.Where("a.signatory_name like ?", likestr)
|
|
|
}
|
|
|
if req.DistributorId != 0 {
|
|
|
- dao = dao.Where("distributor_id = ?", req.DistributorId)
|
|
|
+ dao = dao.Where("a.distributor_id = ?", req.DistributorId)
|
|
|
}
|
|
|
if req.DistributorName != "" {
|
|
|
likestr := fmt.Sprintf("%%%s%%", req.DistributorName)
|
|
|
- dao = dao.Where("distributor_name like ?", likestr)
|
|
|
+ dao = dao.Where("a.distributor_name like ?", likestr)
|
|
|
}
|
|
|
if req.BeginTime != "" {
|
|
|
- dao = dao.Where("created_time > ?", req.BeginTime)
|
|
|
+ dao = dao.Where("a.created_time > ?", req.BeginTime)
|
|
|
}
|
|
|
if req.EndTime != "" {
|
|
|
- dao = dao.Where("created_time < ?", req.EndTime)
|
|
|
+ dao = dao.Where("a.created_time < ?", req.EndTime)
|
|
|
}
|
|
|
|
|
|
total, err := dao.Count()
|
|
|
@@ -213,14 +216,14 @@ func (s CtrContractService) List(ctx context.Context, req *model.CtrContractList
|
|
|
if req.PageNum != 0 {
|
|
|
dao = dao.Page(req.GetPage())
|
|
|
}
|
|
|
- orderby := "created_time desc"
|
|
|
+ orderby := "a.created_time desc"
|
|
|
if req.OrderBy != "" {
|
|
|
orderby = req.OrderBy
|
|
|
}
|
|
|
dao = dao.Order(orderby)
|
|
|
|
|
|
- ents := []*model.CtrContract{}
|
|
|
- err = dao.Structs(&ents)
|
|
|
+ ents := []*model.CtrContractListRsp{}
|
|
|
+ err = dao.Fields("a.*, b.cust_province_id as CustProvinceId, b.cust_province as CustProvince, b.cust_city_id as CustCityId, b.cust_city as CustCity").Structs(&ents)
|
|
|
if err != nil && err != sql.ErrNoRows {
|
|
|
return 0, nil, err
|
|
|
}
|
|
|
@@ -306,8 +309,12 @@ func (s CtrContractService) Add(ctx context.Context, req *model.CtrContractAddRe
|
|
|
return 0, myerrors.TipsError(validErr.Current().Error())
|
|
|
}
|
|
|
|
|
|
+ sequence, err := service.Sequence(s.Dao.DB, "contract_code")
|
|
|
+ if err != nil {
|
|
|
+ return 0, err
|
|
|
+ }
|
|
|
if req.ContractCode == "" {
|
|
|
- req.ContractCode = "HT" + time.Now().Format("20060102150405")
|
|
|
+ req.ContractCode = fmt.Sprintf("DS%s%s%s", req.ContractType, time.Now().Format("0601"), sequence)
|
|
|
}
|
|
|
|
|
|
c, err := s.Dao.Where("contract_code = ?", req.ContractCode).One()
|
|
|
@@ -354,6 +361,7 @@ func (s CtrContractService) Add(ctx context.Context, req *model.CtrContractAddRe
|
|
|
InchargeName: req.InchargeName,
|
|
|
SignatoryId: req.SignatoryId,
|
|
|
SignatoryName: req.SignatoryName,
|
|
|
+ SignatoryType: req.SignatoryType,
|
|
|
CustSignatoryId: req.CustSignatoryId,
|
|
|
CustSignatoryName: req.CustSignatoryName,
|
|
|
DistributorId: req.DistributorId,
|
|
|
@@ -477,6 +485,9 @@ func (s CtrContractService) Update(ctx context.Context, req *model.CtrContractUp
|
|
|
if req.SignatoryName != "" {
|
|
|
toupdate["signatory_name"] = req.SignatoryName
|
|
|
}
|
|
|
+ if req.SignatoryType != "" {
|
|
|
+ toupdate["signatory_type"] = req.SignatoryType
|
|
|
+ }
|
|
|
if req.CustSignatoryId != 0 {
|
|
|
toupdate["cust_signatory_id"] = req.CustSignatoryId
|
|
|
}
|