|
|
- // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
-
- package implments
-
- import (
- "errors"
- dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/me"
- "leit.com/LAPP_CHEERSSON_BACKEND/db"
- "leit.com/LAPP_CHEERSSON_BACKEND/global"
- "leit.com/LAPP_CHEERSSON_BACKEND/grmi"
- meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/me"
- model_base "leit.com/LAPP_CHEERSSON_BACKEND/models/base"
- model "leit.com/LAPP_CHEERSSON_BACKEND/models/me"
- "leit.com/LAPP_CHEERSSON_BACKEND/utils"
- "strings"
- )
-
- /******************************************************************************
- *
- * @Description : Project的默认查询条件
- *
- * @Author : 代码生成器创建
- *
- * @Date : 2021-10-08 09:45:06
- *
- ******************************************************************************/
- var DefaultConditionOfProject = grmi.NewCondition(
- map[string]grmi.ConditionItem{
- meta.Project_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.Project_ProjectId, grmi.Equal, true),
- meta.Project_Descr.UrlParameterName: grmi.NewConditionItem(meta.Project_Descr, grmi.Equal, false),
- meta.Project_CustomerId.UrlParameterName: grmi.NewConditionItem(meta.Project_CustomerId, grmi.Equal, false),
- meta.Project_SOP.UrlParameterName: grmi.NewConditionItem(meta.Project_SOP, grmi.Approximate, false),
- meta.Project_EOP.UrlParameterName: grmi.NewConditionItem(meta.Project_EOP, grmi.Approximate, false),
- meta.Project_ProjectDate1.UrlParameterName: grmi.NewConditionItem(meta.Project_ProjectDate1, grmi.Approximate, false),
- meta.Project_ProjectDate2.UrlParameterName: grmi.NewConditionItem(meta.Project_ProjectDate2, grmi.Approximate, false),
- meta.Project_ProjectDate3.UrlParameterName: grmi.NewConditionItem(meta.Project_ProjectDate3, grmi.Approximate, false),
- meta.Project_ProjectDate4.UrlParameterName: grmi.NewConditionItem(meta.Project_ProjectDate4, grmi.Approximate, false),
- meta.Project_AlertDaysBeforeEOP.UrlParameterName: grmi.NewConditionItem(meta.Project_AlertDaysBeforeEOP, grmi.Equal, false),
- meta.Project_CtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.Project_CtrlPara1, grmi.Equal, false),
- meta.Project_CtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.Project_CtrlPara2, grmi.Equal, false),
- meta.Project_CtrlStr1.UrlParameterName: grmi.NewConditionItem(meta.Project_CtrlStr1, grmi.Equal, false),
- meta.Project_CtrlStr2.UrlParameterName: grmi.NewConditionItem(meta.Project_CtrlStr2, grmi.Equal, false),
- meta.Project_CtrlTime1.UrlParameterName: grmi.NewConditionItem(meta.Project_CtrlTime1, grmi.Approximate, false),
- meta.Project_CtrlTime2.UrlParameterName: grmi.NewConditionItem(meta.Project_CtrlTime2, grmi.Approximate, false),
- meta.Project_LastModify.UrlParameterName: grmi.NewConditionItem(meta.Project_LastModify, grmi.Approximate, false),
- meta.Project_LastUser.UrlParameterName: grmi.NewConditionItem(meta.Project_LastUser, grmi.Equal, false),
- meta.Project_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.Project_CreateTime, grmi.Approximate, false),
- },
- nil,
- )
-
- /******************************************************************************
- *
- * @Description : Project的默认分页查询条件
- *
- * @Author : 代码生成器创建
- *
- * @Date : 2021-10-08 09:45:06
- *
- ******************************************************************************/
- var DefaultConditionOfProjectAndPaging = grmi.NewCondition(
- DefaultConditionOfProject.Items,
- grmi.NewPaging(),
- )
-
- /******************************************************************************
- *
- * @Struct Name : ProjectServiceImplement
- *-----------------------------------------------------------------------------
- *
- * @Description : Project的服务实现
- *
- * @Author : 代码生成器创建
- *
- * @Date : 2021-10-08 09:45:06
- *
- ******************************************************************************/
- type ProjectServiceImplement struct {
- }
-
- /******************************************************************************
- *
- * @Function Name : NewProjectDAOImplement
- *-----------------------------------------------------------------------------
- *
- * @Description : 创建一个ProjectDAOImplement实例
- *
- * @Return Value : ProjectDAOImplement实例
- *
- * @Author : 代码生成器创建
- *
- * @Date : 2021-10-08 09:45:06
- *
- ******************************************************************************/
- func NewProjectServiceImplement() *ProjectServiceImplement {
- return &ProjectServiceImplement{}
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.InsertOne
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) InsertOne(user *global.User, entity *model.Project) error {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "InsertOneProject", "插入一个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
- record, err := dao.SelectOne(entity.ProjectId)
- if err != nil {
- return err
- }
- if record != nil {
- return grmi.NewBusinessError("已经存在相同主键的记录!")
- }
- err = dao.InsertOne(entity)
- if err != nil {
- return err
- }
- return nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.DeleteOne
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) DeleteOne(user *global.User, projectId string) error {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "DeleteOneProject", "删除一个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
- record, err := dao.SelectOne(projectId)
- if err != nil {
- return err
- }
- if record == nil {
- return grmi.NewBusinessError("不存在指定记录!")
- }
- err = dao.DeleteOne(projectId)
- if err != nil {
- return err
- }
- return nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.SelectOne
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) SelectOne(user *global.User, projectId string) (*model.Project, error) {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "SelectOneProject", "查询一个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
- result, err := dao.SelectOne(projectId)
- if err != nil {
- return nil, err
- }
- return result, nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.UpdateOne
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) UpdateOne(user *global.User, entity *model.Project) error {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "UpdateOneProject", "修改一个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
- record, err := dao.SelectOne(entity.ProjectId)
- if err != nil {
- return err
- }
- if record == nil {
- return grmi.NewBusinessError("不存在指定记录!")
- }
- err = dao.UpdateOne(entity)
- if err != nil {
- return err
- }
- return nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.Insert
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) Insert(user *global.User, entities *[]model.Project) error {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "InsertProject", "插入多个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
-
- for _, entity := range *entities {
- record, err := dao.SelectOne(entity.ProjectId)
- if err != nil {
- return err
- }
- if record != nil {
- return grmi.NewBusinessError("已经存在相同主键的记录!")
- }
- }
-
- err := dao.Insert(entities)
- if err != nil {
- return err
- }
- return nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.Delete
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) Delete(user *global.User, entities *[]model.Project) error {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "DeleteProject", "删除多个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
-
- for _, entity := range *entities {
- record, err := dao.SelectOne(entity.ProjectId)
- if err != nil {
- return err
- }
- if record == nil {
- return grmi.NewBusinessError("不存在指定记录!")
- }
- }
-
- err := dao.Delete(entities)
- if err != nil {
- return err
- }
- return nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.Select
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) Select(user *global.User, urlParameters map[string]string) ([]model.Project, error) {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "SelectProject", "查询Project")
-
- condition := DefaultConditionOfProjectAndPaging
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- predicates, err := condition.BuildPredicates(urlParameters)
- if err != nil {
- return nil, err
- }
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
- result, err := dao.Select(predicates, condition.OrderByFields)
- if err != nil {
- return nil, err
- }
- return result, nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.SelectAndPaging
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) SelectAndPaging(user *global.User, urlParameters map[string]string) (grmi.PagingResult, error) {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "SelectProject", "查询Project")
-
- condition := DefaultConditionOfProjectAndPaging
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- predicates, err := condition.BuildPredicates(urlParameters)
- if err != nil {
- return grmi.EmptyPagingResult, err
- }
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
- condition.Fill(urlParameters)
- result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields)
- if err != nil {
- return grmi.EmptyPagingResult, err
- }
- return result, nil
- }
-
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/me/ProjectService.Update
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) Update(user *global.User, entities *[]model.Project) error {
-
- grmi.Log(user, "/services/me/implments/Project.service.impl.go", "UpdateProject", "修改多个Project")
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer session.Close()
- dao := dal.NewProjectDAO(session, user.PlantNr, user.UserId)
-
- for _, entity := range *entities {
- record, err := dao.SelectOne(entity.ProjectId)
- if err != nil {
- return err
- }
- if record == nil {
- return grmi.NewBusinessError("不存在指定记录!")
- }
- }
-
- err := dao.Update(entities)
- if err != nil {
- return err
- }
- return nil
- }
- /******************************************************************************
- *
- * @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/ap/CustDemandVerHeadService.ImportProject
- *
- ******************************************************************************/
- func (impl *ProjectServiceImplement) ImportProject(FieldKeysStr string, listData [][]interface{}) error {
-
- engine := db.Eloquent.Master()
- session := engine.NewSession()
- defer func() { //在panic前声明defer,能捕获异常
- if err := recover(); err != nil {
- session.Rollback()
-
- }
- }()
- _ = session.Begin()
- defer session.Close()
-
- dao := dal.NewProjectDAO(session, model_base.PlantNr, "System")
-
- FieldKeys := strings.Split(FieldKeysStr, ",")
- if len(listData) == 0 {
- return errors.New("同步数据为空!")
- }
- //第一步,先处理数据,按照客户分类
- for _, valData := range listData {
- valMap := make(map[string]interface{})
- for k, val := range valData {
- key := FieldKeys[k]
- valMap[key] = val
- }
- projectId := utils.ValueToString(valMap["FNumber"],"")
- //第二步,删除客户维护关系
- err := dao.DeleteWhere([]grmi.Predicate{meta.Project_ProjectId.NewPredicate(grmi.Equal, projectId)})
- if err != nil {
- return err
- }
- status := utils.ValueToString(valMap["FDocumentStatus"], "")
- if status != "C"{
- continue
- }
- //第三步,添加客户物料
- oneData := new(model.Project)
- oneData.PlantNr = model_base.PlantNr
- oneData.ProjectId = projectId
- oneData.Descr = utils.ValueToString(valMap["FName"], "")
- err = dao.InsertOne(oneData)
- if err != nil {
- return err
- }
-
- }
-
- session.Commit()
- return nil
- }
|