作者 陈志颖

fix:共创申请审核字段缺失

... ... @@ -202,6 +202,7 @@ func (cooperationApplicationService *CooperationApplicationService) ApprovalCoop
}
cooperationApplication.CooperationApplicationVerifier = verifier
cooperationApplication.CooperationApplicationVerifyTime = time.Now()
if err := cooperationApplication.Update(tool_funs.SimpleStructToMap(approvalCooperationApplicationCommand)); err != nil {
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
... ... @@ -279,6 +280,7 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova
cooperationApplications[i].CooperationApplicationStatus = 3
}
cooperationApplications[i].CooperationApplicationVerifier = verifier
cooperationApplications[i].CooperationApplicationVerifyTime = time.Now()
}
cooperationApplicationsApproved, err := cooperationApplicationRepository.UpdateMany(cooperationApplications)
if err != nil {
... ... @@ -311,6 +313,7 @@ func (cooperationApplicationService *CooperationApplicationService) OneClickAppr
defer func() {
_ = transactionContext.RollbackTransaction()
}()
// 共创申请仓储初始化
var cooperationApplicationRepository domain.CooperationApplicationRepository
if value, err := factory.CreateCooperationApplicationRepository(map[string]interface{}{
... ... @@ -320,6 +323,23 @@ func (cooperationApplicationService *CooperationApplicationService) OneClickAppr
} else {
cooperationApplicationRepository = value
}
// 用户REST服务初始化
var userService service.UserService
if value, err := factory.CreateUserService(map[string]interface{}{}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
userService = value
}
// 获取审核人
var verifier *domain.User
if data, err := userService.UserFrom(oneClickApprovalCooperationApplicationCommand.CompanyId, oneClickApprovalCooperationApplicationCommand.OrgId, oneClickApprovalCooperationApplicationCommand.UserId); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取申请人失败")
} else {
verifier = data
}
// 查询共创申请
oneClickApprovalCooperationApplicationCommand.CooperationApplicationStatus = 1 // 待审核
if count, cooperationApplications, err := cooperationApplicationRepository.Find(tool_funs.SimpleStructToMap(oneClickApprovalCooperationApplicationCommand)); err != nil {
... ... @@ -332,7 +352,9 @@ func (cooperationApplicationService *CooperationApplicationService) OneClickAppr
} else if oneClickApprovalCooperationApplicationCommand.Action == 2 {
cooperationApplications[i].CooperationApplicationStatus = 3
}
cooperationApplications[i].CooperationApplicationDescription = oneClickApprovalCooperationApplicationCommand.CooperationApplicationVerifyDescription
cooperationApplications[i].CooperationApplicationVerifyDescription = oneClickApprovalCooperationApplicationCommand.CooperationApplicationVerifyDescription
cooperationApplications[i].CooperationApplicationVerifier = verifier
cooperationApplications[i].CooperationApplicationVerifyTime = time.Now()
}
cooperationApplicationsApproved, err := cooperationApplicationRepository.UpdateMany(cooperationApplications)
if err != nil {
... ...
... ... @@ -279,7 +279,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 返回信息表头定义
var tableHeader = map[string]interface{}{
"failReason": "错误详情",
"failReason": "失败原因",
"originalOrderNum": "来源单号",
"dividendsCustomerName": "客户名称",
"orderGoodName": "产品名称",
... ... @@ -308,7 +308,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
for i, dividendsOrder := range importDividendsOrderCommand.DividendsOrderData {
rowCnt++
nullCell := make([]interface{}, 0)
var myRow []string
//var myRow []string
var myRow []interface{}
t := reflect.TypeOf(dividendsOrder)
v := reflect.ValueOf(dividendsOrder)
for k := 0; k < t.NumField(); k++ {
... ... @@ -324,9 +325,21 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
if nullFlag {
s := strconv.Itoa(i + 1)
b := strings.Replace(strings.Trim(fmt.Sprint(nullCell), "[]"), " ", ",", -1)
myRow = append(myRow, "第"+s+"行的第"+b+"列必填项为空") // 错误信息
myRow = append(myRow, s) // 行号
myRow = append(myRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//myRow = append(myRow, "第"+s+"行的第"+b+"列必填项为空") // 错误信息
//myRow = append(myRow, s) // 行号
//myRow = append(myRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
myRow = append(myRow, map[string]interface{}{
"failReason": "第" + s + "行第" + b + "列订单日期格式错误,请输入正确的订单日期",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
nullCellError = append(nullCellError, myRow)
nullFlag = false
}
... ... @@ -346,23 +359,36 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 单元格类型校验
typeError := make([]interface{}, 0)
for i, dividendsOrder := range importDividendsOrderCommand.DividendsOrderData { // 行
var myRow []string
var myRow []interface{}
//var myRow []string
t := reflect.TypeOf(dividendsOrder)
v := reflect.ValueOf(dividendsOrder)
for k := 0; k < t.NumField(); k++ { // 列
r := strconv.Itoa(i + 1)
col := strconv.Itoa(k + 1)
switch k {
case 3: // 订单日期校验
{
regexpStr := `(\d{4})/(\d{2})/(\d{2})`
ok := regexp.MustCompile(regexpStr).MatchString(fmt.Sprintf("%v", v.Field(k).Interface()))
if !ok {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列订单日期格式错误,请输入正确的订单日期") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列订单日期格式错误,请输入正确的订单日期") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列订单日期格式错误,请输入正确的订单日期",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
myRow = tmpRow
}
}
... ... @@ -371,18 +397,44 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
//参数类型转换
orderGoodQuantity, err := strconv.ParseInt(fmt.Sprintf("%v", v.Field(k).Interface()), 10, 64)
if err != nil {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品数量格式错误,产品数量必须整数") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品数量格式错误,产品数量必须整数") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列产品数量格式错误,产品数量必须整数",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
myRow = tmpRow
}
// 正负判断
if orderGoodQuantity < 0 {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品数量必须大于0,请重新填写") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品数量必须大于0,请重新填写") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列产品数量必须大于0,请重新填写",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
myRow = tmpRow
}
}
... ... @@ -391,19 +443,46 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 参数类型转换
univalent, typeErr := strconv.ParseFloat(fmt.Sprintf("%v", v.Field(k).Interface()), 64)
if typeErr != nil {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品价格格式错误,产品价格必须为数字类型") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品价格格式错误,产品价格必须为数字类型") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列产品价格格式错误,产品价格必须为数字类型",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
myRow = tmpRow
}
// 长度校验
if univalent >= 1e16 {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品价格超过最大限制,产品价格小数点前面不能超过十六位数字,并保留两位小数") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列产品价格超过最大限制,产品价格小数点前面不能超过十六位数字,并保留两位小数") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface()))
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列产品价格超过最大限制,产品价格小数点前面不能超过十六位数字,并保留两位小数",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
// 错误行数据
myRow = tmpRow
}
}
... ... @@ -413,19 +492,45 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 参数类型转换
univalent, typeErr := strconv.ParseFloat(fmt.Sprintf("%v", v.Field(k).Interface()), 64)
if typeErr != nil {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列费用格式错误,费用必须为数字类型") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列费用格式错误,费用必须为数字类型") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列费用格式错误,费用必须为数字类型",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
myRow = tmpRow
}
// 长度校验
if univalent >= 1e16 {
var tmpRow []string
tmpRow = append(tmpRow, "第"+r+"行第"+col+"列费用超过最大限制,费用小数点前面不能超过十六位数字,并保留两位小数") // 错误信息
tmpRow = append(tmpRow, r) // 行号
tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
//var tmpRow []string
//tmpRow = append(tmpRow, "第"+r+"行第"+col+"列费用超过最大限制,费用小数点前面不能超过十六位数字,并保留两位小数") // 错误信息
//tmpRow = append(tmpRow, r) // 行号
//tmpRow = append(tmpRow, fmt.Sprintf("%v", v.Interface())) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + r + "行第" + col + "列费用超过最大限制,费用小数点前面不能超过十六位数字,并保留两位小数",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
myRow = tmpRow
}
}
... ... @@ -456,20 +561,27 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
hashValue := md5.Sum([]byte(dividendsOrder.OriginalOrderNum))
hashString := hex.EncodeToString(hashValue[:])
if _, ok := dividendsOrderCommands[hashString]; !ok {
// 来源单号
dividendsOrderCommands[hashString].DividendsOriginalOrderNum = dividendsOrder.OriginalOrderNum
// 客户名称
dividendsOrderCommands[hashString].CustomerName = dividendsOrder.DividendsCustomerName
// 订单日期时间格式转换
timeValue, err := time.ParseInLocation("2006/01/02", dividendsOrder.OrderTime, time.Local)
if err != nil {
var tmpRow []string
tmpRow = append(tmpRow, "无效的订单日期") // 错误信息
//var tmpRow []string
//tmpRow = append(tmpRow, "无效的订单日期") // 错误信息
s := strconv.Itoa(i + 1)
tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, dividendsOrder.OriginalOrderNum) // TODO 错误行数据
//tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, dividendsOrder.OriginalOrderNum)
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + s + "行无效的订单日期",
"originalOrderNum": dividendsOrder.OriginalOrderNum,
"dividendsCustomerName": dividendsOrder.DividendsCustomerName,
"orderGoodName": dividendsOrder.OrderGoodName,
"orderTime": dividendsOrder.OrderTime,
"regionName": dividendsOrder.RegionName,
"orderGoodQuantity": dividendsOrder.OrderGoodQuantity,
"orderGoodPrice": dividendsOrder.OrderGoodPrice,
"expense": dividendsOrder.Expense,
"cooperationContractNumber": dividendsOrder.CooperationContractNumber,
})
aggregateErrorList = append(aggregateErrorList, tmpRow)
break
}
... ... @@ -592,20 +704,46 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
for _, errorData := range errorDataList {
if len(errorData.GoodLine) == 0 { // 订单错误
for _, line := range errorData.LineNumbers {
var tmpRow []string
tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
//var tmpRow []string5
//tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
s := strconv.Itoa(line + 1)
tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, importDividendsOrderCommand.DividendsOrderData[line]...) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + s + "行数据校验错误:" + errorData.Error.Error(),
"originalOrderNum": importDividendsOrderCommand.DividendsOrderData[line].OriginalOrderNum,
"dividendsCustomerName": importDividendsOrderCommand.DividendsOrderData[line].DividendsCustomerName,
"orderGoodName": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodName,
"orderTime": importDividendsOrderCommand.DividendsOrderData[line].OrderTime,
"regionName": importDividendsOrderCommand.DividendsOrderData[line].RegionName,
"orderGoodQuantity": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodQuantity,
"orderGoodPrice": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodPrice,
"expense": importDividendsOrderCommand.DividendsOrderData[line].Expense,
"cooperationContractNumber": importDividendsOrderCommand.DividendsOrderData[line].CooperationContractNumber,
})
failureDataList = append(failureDataList, tmpRow)
}
} else if len(errorData.GoodLine) > 0 { // 订单产品错误
for line := range errorData.GoodLine {
var tmpRow []string
tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
//var tmpRow []string
//tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
s := strconv.Itoa(line + 1)
tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, importDividendsOrderCommand.DividendsOrderData[line]...) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + s + "行订单产品信息错误:" + errorData.Error.Error(),
"originalOrderNum": importDividendsOrderCommand.DividendsOrderData[line].OriginalOrderNum,
"dividendsCustomerName": importDividendsOrderCommand.DividendsOrderData[line].DividendsCustomerName,
"orderGoodName": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodName,
"orderTime": importDividendsOrderCommand.DividendsOrderData[line].OrderTime,
"regionName": importDividendsOrderCommand.DividendsOrderData[line].RegionName,
"orderGoodQuantity": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodQuantity,
"orderGoodPrice": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodPrice,
"expense": importDividendsOrderCommand.DividendsOrderData[line].Expense,
"cooperationContractNumber": importDividendsOrderCommand.DividendsOrderData[line].CooperationContractNumber,
})
failureDataList = append(failureDataList, tmpRow)
}
}
... ... @@ -621,7 +759,6 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 批量导入创建分红订单
for _, dividendsOrder := range createDividendsOrderCommands {
// 生成分红订单号
dividendsOrderNumber, err := dividendsOrderDao.GenerateDividendsOrderNumber()
if err != nil {
... ... @@ -641,6 +778,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
return nil, application.ThrowError(application.TRANSACTION_ERROR, "新增分红订单异常")
}
// 校验共创合约是否合法
// 新增订单产品
var orderGoods []*domain.OrderGood
var dividendsOrderAmount float64
... ... @@ -668,7 +807,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 订单时间转换
orderTimeInt, err := strconv.ParseInt(dividendsOrder.OrderTime, 10, 64)
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "订单时间错误")
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "订单日期转换错误")
}
orderTime := utils.TransformTimestampToTime(orderTimeInt)
... ... @@ -723,20 +862,46 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
for _, errorData := range errorDataList {
if len(errorData.GoodLine) == 0 { // 订单错误
for _, line := range errorData.LineNumbers {
var tmpRow []string
tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
//var tmpRow []string
//tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
s := strconv.Itoa(line + 1)
tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, importDividendsOrderCommand.DividendsOrderData[line]...) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + s + "行订单数据新增错误:" + errorData.Error.Error(),
"originalOrderNum": importDividendsOrderCommand.DividendsOrderData[line].OriginalOrderNum,
"dividendsCustomerName": importDividendsOrderCommand.DividendsOrderData[line].DividendsCustomerName,
"orderGoodName": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodName,
"orderTime": importDividendsOrderCommand.DividendsOrderData[line].OrderTime,
"regionName": importDividendsOrderCommand.DividendsOrderData[line].RegionName,
"orderGoodQuantity": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodQuantity,
"orderGoodPrice": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodPrice,
"expense": importDividendsOrderCommand.DividendsOrderData[line].Expense,
"cooperationContractNumber": importDividendsOrderCommand.DividendsOrderData[line].CooperationContractNumber,
})
failureDataList = append(failureDataList, tmpRow)
}
} else if len(errorData.GoodLine) > 0 { // 订单产品错误
for line := range errorData.GoodLine {
var tmpRow []string
tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
//var tmpRow []string
//tmpRow = append(tmpRow, errorData.Error.Error()) // 错误信息
s := strconv.Itoa(line + 1)
tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, s) // 行号
//tmpRow = append(tmpRow, importDividendsOrderCommand.DividendsOrderData[line]...) // 错误行数据
var tmpRow []interface{}
tmpRow = append(tmpRow, map[string]interface{}{
"failReason": "第" + s + "行订单数据新增错误:" + errorData.Error.Error(),
"originalOrderNum": importDividendsOrderCommand.DividendsOrderData[line].OriginalOrderNum,
"dividendsCustomerName": importDividendsOrderCommand.DividendsOrderData[line].DividendsCustomerName,
"orderGoodName": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodName,
"orderTime": importDividendsOrderCommand.DividendsOrderData[line].OrderTime,
"regionName": importDividendsOrderCommand.DividendsOrderData[line].RegionName,
"orderGoodQuantity": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodQuantity,
"orderGoodPrice": importDividendsOrderCommand.DividendsOrderData[line].OrderGoodPrice,
"expense": importDividendsOrderCommand.DividendsOrderData[line].Expense,
"cooperationContractNumber": importDividendsOrderCommand.DividendsOrderData[line].CooperationContractNumber,
})
failureDataList = append(failureDataList, tmpRow)
}
}
... ...
... ... @@ -9,10 +9,10 @@ import (
type (
ImportDividendsReturnedOrderData struct {
//退货客户名称
DividendsReturnedCustomerName string `json:"dividendsReturnedCustomerName"`
//来源单号,源单号,订单号
OriginalOrderNum string `json:"originalOrderNum"`
//退货客户名称
DividendsReturnedCustomerName string `json:"dividendsReturnedCustomerName"`
//订单产品名称
OrderGoodName string `json:"orderGoodName"`
//退货日期
... ...
... ... @@ -26,7 +26,6 @@ type ListDividendsReturnedOrderQuery struct {
}
func (listDividendsReturnedOrderQuery *ListDividendsReturnedOrderQuery) Valid(validation *validation.Validation) {
//validation.SetError("CustomValid", "未实现的自定义认证")
}
func (listDividendsReturnedOrderQuery *ListDividendsReturnedOrderQuery) ValidateQuery() error {
... ...
... ... @@ -317,7 +317,18 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
}
// 返回信息表头定义
var tableHeader = []string{"错误详情", "行号", "来源单号", "客户名称", "产品名称", "退货日期", "订单日期", "订单区域", "退货数量", "退货价格", "项目合约编号"}
var tableHeader = map[string]interface{}{
"failReason": "错误详情",
"originalOrderNum": "来源单号",
"dividendsReturnedCustomerName": "客户名称",
"orderGoodName": "产品名称",
"dividendsReturnedDate": "退货日期",
"regionName": "订单日期",
"orderGoodPrice": "订单区域",
"orderGoodQuantity": "退货数量",
"cooperationContractNumber": "退货价格",
"orderTime": "项目合约编号",
}
// 空文件校验
if len(importDividendsReturnedOrderCommand.DividendsReturnedOrderData) == 0 {
... ... @@ -365,8 +376,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
return map[string]interface{}{
"successCount": 0,
"fail": map[string]interface{}{
"tableHeader": tableHeader,
"tableData": nullCellError,
"header": tableHeader,
"body": nullCellError,
},
}, nil
}
... ... @@ -459,8 +470,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
return map[string]interface{}{
"successCount": 0,
"fail": map[string]interface{}{
"tableHeader": tableHeader,
"tableData": typeError,
"header": tableHeader,
"body": typeError,
},
}, nil
}
... ... @@ -559,8 +570,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
return map[string]interface{}{
"successCount": 0,
"fail": map[string]interface{}{
"tableHeader": tableHeader,
"tableData": aggregateErrorList,
"header": tableHeader,
"body": aggregateErrorList,
},
}, nil
}
... ... @@ -622,8 +633,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
return map[string]interface{}{
"successCount": successDataCount,
"fail": map[string]interface{}{
"tableHeader": tableHeader,
"tableData": failureDataList,
"header": tableHeader,
"body": failureDataList,
},
}, nil
}
... ... @@ -762,8 +773,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
return map[string]interface{}{
"successCount": successDataCount,
"fail": map[string]interface{}{
"tableHeader": tableHeader,
"tableData": failureDataList,
"header": tableHeader,
"body": failureDataList,
},
}, nil
}
... ...
... ... @@ -259,23 +259,25 @@ func (repository *CooperationApplicationRepository) Find(queryOptions map[string
if count, err := query.SelectAndCount(); err != nil {
return 0, cooperationApplications, err
} else {
for _, cooperationApplicationModel := range cooperationApplicationModels {
// 获取共创项目
cooperationProjectModel := new(models.CooperationProject)
cooperationProjectQuery := tx.Model(cooperationProjectModel)
if err := cooperationProjectQuery.Where("cooperation_project_number = ?", cooperationApplicationModel.CooperationProjectNumber).First(); err != nil {
return 0, nil, err
}
// 获取共创模式
cooperationModeModel := new(models.CooperationMode)
cooperationModeQuery := tx.Model(cooperationModeModel)
if err := cooperationModeQuery.Where("cooperation_mode_number = ?", cooperationProjectModel.CooperationModeNumber).First(); err != nil {
return 0, nil, err
}
if cooperationApplication, err := transform.TransformToCooperationApplicationDomainModelFromPgModels(cooperationApplicationModel, cooperationProjectModel, cooperationModeModel); err != nil {
return 0, cooperationApplications, err
} else {
cooperationApplications = append(cooperationApplications, cooperationApplication)
if count > 0 {
for _, cooperationApplicationModel := range cooperationApplicationModels {
// 获取共创项目
cooperationProjectModel := new(models.CooperationProject)
cooperationProjectQuery := tx.Model(cooperationProjectModel)
if err := cooperationProjectQuery.Where("cooperation_project_number = ?", cooperationApplicationModel.CooperationProjectNumber).First(); err != nil {
return 0, nil, err
}
// 获取共创模式
cooperationModeModel := new(models.CooperationMode)
cooperationModeQuery := tx.Model(cooperationModeModel)
if err := cooperationModeQuery.Where("cooperation_mode_number = ?", cooperationProjectModel.CooperationModeNumber).First(); err != nil {
return 0, nil, err
}
if cooperationApplication, err := transform.TransformToCooperationApplicationDomainModelFromPgModels(cooperationApplicationModel, cooperationProjectModel, cooperationModeModel); err != nil {
return 0, cooperationApplications, err
} else {
cooperationApplications = append(cooperationApplications, cooperationApplication)
}
}
}
return int64(count), cooperationApplications, nil
... ...
... ... @@ -1013,47 +1013,49 @@ func (repository *CooperationContractRepository) Find(queryOptions map[string]in
if count, err := query.SelectAndCount(); err != nil {
return 0, cooperationContracts, err
} else {
for _, cooperationContractModel := range cooperationContractModels {
// 获取共创模式
cooperationModeModel := new(models.CooperationMode)
cooperationModeQuery := tx.Model(cooperationModeModel)
if err := cooperationModeQuery.Where("cooperation_mode_number = ?", cooperationContractModel.CooperationModeNumber).First(); err != nil {
return 0, nil, err
}
// 获取分红激励规则列表
var dividendsIncentivesRuleModels []*models.DividendsIncentivesRule
dividendsIncentivesRuleQuery := tx.Model(&dividendsIncentivesRuleModels)
if err := dividendsIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
// 获取金额激励规则列表
var moneyIncentivesRuleModels []*models.MoneyIncentivesRule
moneyIncentivesRuleQuery := tx.Model(&moneyIncentivesRuleModels)
if err := moneyIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
// 获取承接人列表
var cooperationContractUndertakerModels []*models.CooperationContractUndertaker
cooperationContractUndertakerQuery := tx.Model(&cooperationContractUndertakerModels)
if err := cooperationContractUndertakerQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
// 获取相关人列表
var cooperationContractRelevantModels []*models.CooperationContractRelevant
cooperationContractRelevantQuery := tx.Model(&cooperationContractRelevantModels)
if err := cooperationContractRelevantQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
if cooperationContract, err := transform.TransformToCooperationContractDomainModelFromPgModels(
cooperationContractModel,
cooperationModeModel,
dividendsIncentivesRuleModels,
moneyIncentivesRuleModels,
cooperationContractRelevantModels,
cooperationContractUndertakerModels); err != nil {
return 0, cooperationContracts, err
} else {
cooperationContracts = append(cooperationContracts, cooperationContract)
if count > 0 {
for _, cooperationContractModel := range cooperationContractModels {
// 获取共创模式
cooperationModeModel := new(models.CooperationMode)
cooperationModeQuery := tx.Model(cooperationModeModel)
if err := cooperationModeQuery.Where("cooperation_mode_number = ?", cooperationContractModel.CooperationModeNumber).First(); err != nil {
return 0, nil, err
}
// 获取分红激励规则列表
var dividendsIncentivesRuleModels []*models.DividendsIncentivesRule
dividendsIncentivesRuleQuery := tx.Model(&dividendsIncentivesRuleModels)
if err := dividendsIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
// 获取金额激励规则列表
var moneyIncentivesRuleModels []*models.MoneyIncentivesRule
moneyIncentivesRuleQuery := tx.Model(&moneyIncentivesRuleModels)
if err := moneyIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
// 获取承接人列表
var cooperationContractUndertakerModels []*models.CooperationContractUndertaker
cooperationContractUndertakerQuery := tx.Model(&cooperationContractUndertakerModels)
if err := cooperationContractUndertakerQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
// 获取相关人列表
var cooperationContractRelevantModels []*models.CooperationContractRelevant
cooperationContractRelevantQuery := tx.Model(&cooperationContractRelevantModels)
if err := cooperationContractRelevantQuery.Where("cooperation_contract_number = ?", cooperationContractModel.CooperationContractNumber).Select(); err != nil {
return 0, nil, err
}
if cooperationContract, err := transform.TransformToCooperationContractDomainModelFromPgModels(
cooperationContractModel,
cooperationModeModel,
dividendsIncentivesRuleModels,
moneyIncentivesRuleModels,
cooperationContractRelevantModels,
cooperationContractUndertakerModels); err != nil {
return 0, cooperationContracts, err
} else {
cooperationContracts = append(cooperationContracts, cooperationContract)
}
}
}
return int64(count), cooperationContracts, nil
... ...
... ... @@ -25,6 +25,7 @@ func (repository *CooperationContractUndertakerRepository) nextIdentify() (int64
id, err := IdWorker.NextId()
return id, err
}
func (repository *CooperationContractUndertakerRepository) Save(cooperationContractUndertaker *domain.CooperationContractUndertaker) (*domain.CooperationContractUndertaker, error) {
sqlBuildFields := []string{
"cooperation_contract_undertaker_id",
... ... @@ -150,6 +151,7 @@ func (repository *CooperationContractUndertakerRepository) Save(cooperationContr
}
return cooperationContractUndertaker, nil
}
func (repository *CooperationContractUndertakerRepository) Remove(cooperationContractUndertaker *domain.CooperationContractUndertaker) (*domain.CooperationContractUndertaker, error) {
tx := repository.transactionContext.PgTx
cooperationContractUndertakerModel := new(models.CooperationContractUndertaker)
... ... @@ -159,6 +161,7 @@ func (repository *CooperationContractUndertakerRepository) Remove(cooperationCon
}
return cooperationContractUndertaker, nil
}
func (repository *CooperationContractUndertakerRepository) FindOne(queryOptions map[string]interface{}) (*domain.CooperationContractUndertaker, error) {
tx := repository.transactionContext.PgTx
cooperationContractUndertakerModel := new(models.CooperationContractUndertaker)
... ... @@ -177,6 +180,7 @@ func (repository *CooperationContractUndertakerRepository) FindOne(queryOptions
return transform.TransformToCooperationContractUndertakerDomainModelFromPgModels(cooperationContractUndertakerModel)
}
}
func (repository *CooperationContractUndertakerRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.CooperationContractUndertaker, error) {
tx := repository.transactionContext.PgTx
var cooperationContractUndertakerModels []*models.CooperationContractUndertaker
... ... @@ -216,6 +220,7 @@ func (repository *CooperationContractUndertakerRepository) Find(queryOptions map
return int64(count), cooperationContractUndertakers, nil
}
}
func NewCooperationContractUndertakerRepository(transactionContext *pgTransaction.TransactionContext) (*CooperationContractUndertakerRepository, error) {
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
... ...
... ... @@ -428,18 +428,20 @@ func (repository *DividendsOrderRepository) Find(queryOptions map[string]interfa
if count, err := query.SelectAndCount(); err != nil {
return 0, dividendsOrders, err
} else {
for _, dividendsOrderModel := range dividendsOrderModels {
//获取订单产品
var orderGoodModels []*models.OrderGood
orderGoodModelQuery := tx.Model(&orderGoodModels)
if err := orderGoodModelQuery.Where("dividends_order_number = ?", dividendsOrderModel.DividendsOrderNumber).Select(); err != nil {
return 0, nil, err
}
// 聚合分红订单
if dividendsOrder, err := transform.TransformToDividendsOrderDomainModelFromPgModels(dividendsOrderModel, orderGoodModels); err != nil {
return 0, dividendsOrders, err
} else {
dividendsOrders = append(dividendsOrders, dividendsOrder)
if count > 0 {
for _, dividendsOrderModel := range dividendsOrderModels {
//获取订单产品
var orderGoodModels []*models.OrderGood
orderGoodModelQuery := tx.Model(&orderGoodModels)
if err := orderGoodModelQuery.Where("dividends_order_number = ?", dividendsOrderModel.DividendsOrderNumber).Select(); err != nil {
return 0, nil, err
}
// 聚合分红订单
if dividendsOrder, err := transform.TransformToDividendsOrderDomainModelFromPgModels(dividendsOrderModel, orderGoodModels); err != nil {
return 0, dividendsOrders, err
} else {
dividendsOrders = append(dividendsOrders, dividendsOrder)
}
}
}
return int64(count), dividendsOrders, nil
... ...
... ... @@ -430,17 +430,19 @@ func (repository *DividendsReturnedOrderRepository) Find(queryOptions map[string
if count, err := query.SelectAndCount(); err != nil {
return 0, dividendsReturnedOrders, err
} else {
for _, dividendsReturnedOrderModel := range dividendsReturnedOrderModels {
// 获取订单产品
var orderGoodModels []*models.OrderGood
orderGoodModelQuery := tx.Model(&orderGoodModels)
if err := orderGoodModelQuery.Where("dividends_returned_order_number = ?", dividendsReturnedOrderModel.DividendsReturnedOrderNumber).Select(); err != nil {
return 0, nil, err
}
if dividendsReturnedOrder, err := transform.TransformToDividendsReturnedOrderDomainModelFromPgModels(dividendsReturnedOrderModel, orderGoodModels); err != nil {
return 0, dividendsReturnedOrders, err
} else {
dividendsReturnedOrders = append(dividendsReturnedOrders, dividendsReturnedOrder)
if count > 0 {
for _, dividendsReturnedOrderModel := range dividendsReturnedOrderModels {
// 获取订单产品
var orderGoodModels []*models.OrderGood
orderGoodModelQuery := tx.Model(&orderGoodModels)
if err := orderGoodModelQuery.Where("dividends_returned_order_number = ?", dividendsReturnedOrderModel.DividendsReturnedOrderNumber).Select(); err != nil {
return 0, nil, err
}
if dividendsReturnedOrder, err := transform.TransformToDividendsReturnedOrderDomainModelFromPgModels(dividendsReturnedOrderModel, orderGoodModels); err != nil {
return 0, dividendsReturnedOrders, err
} else {
dividendsReturnedOrders = append(dividendsReturnedOrders, dividendsReturnedOrder)
}
}
}
return int64(count), dividendsReturnedOrders, nil
... ...