Browse Source

修改bug

duyong mac 1 year ago
parent
commit
3af31b335c

+ 5 - 3
internal/pcmserver/bus/cabinet_pkg/service.go

@@ -107,7 +107,7 @@ func SetCabinetNumber(cabinetId int) error {
 }
 
 // EnableOpenDoor 允许开门
-func EnableOpenDoor(cabinetId int) error {
+func EnableOpenDoor(cabinetId int, uptMem bool) error {
 
 	cab, err := cabinetPreCheck(cabinetId)
 	if err != nil {
@@ -147,7 +147,9 @@ func EnableOpenDoor(cabinetId int) error {
 	}
 
 	//更新内存柜子信息未允许开启状态
-	cab.memInfo.IsAllowOpen = true
+	if uptMem {
+		cab.memInfo.IsAllowOpen = true
+	}
 
 	// 发送获取柜子所有消息的指令
 	go func() {
@@ -565,7 +567,7 @@ func sendCabinetDoorControl(cabinetId int) error {
 		return fmt.Errorf("sendCabinetNum err,remoteId %d not found", cabinetId)
 	}
 	if cab.memInfo.IsAllowOpen {
-		if err := EnableOpenDoor(cabinetId); err != nil {
+		if err := EnableOpenDoor(cabinetId, true); err != nil {
 			return err
 		}
 	} else {

+ 28 - 0
internal/pcmserver/bus/service/bus_config.go

@@ -6,6 +6,7 @@ import (
 	"dy-admin/internal/pcmserver/common"
 	"dy-admin/internal/pcmserver/global"
 	"dy-admin/internal/pcmserver/pkg/code"
+	"dy-admin/pkg/log"
 	"dy-admin/pkg/rescode"
 	"encoding/json"
 )
@@ -31,6 +32,33 @@ func (s *BusConfigService) GetBusConfig() (config *model.CabinetConfig, err erro
 }
 
 func (s *BusConfigService) UpdateConfig(cabinetConfig *model.CabinetConfig) (err error) {
+	cabs := cabinet_pkg.GetCabinets()
+	if cabinetConfig.ManageModel == 1 {
+		// 如果切换为强制管理,需要根据当前柜子的状态,分别下发禁止开还是允许开
+		for _, cab := range cabs {
+			if cab.IsAllowOpen {
+				err = cabinet_pkg.EnableOpenDoor(cab.CabinetID, true)
+				if err != nil {
+					log.Error(err.Error())
+				}
+			} else {
+				err = cabinet_pkg.DisableOpenDoor(cab.CabinetID)
+				if err != nil {
+					log.Error(err.Error())
+				}
+			}
+		}
+
+	} else if cabinetConfig.ManageModel == 2 {
+		// 如果切换为人性化管理,无论柜子当前平台状态是什么,全部下发允许开指令
+		for _, cab := range cabs {
+			err = cabinet_pkg.EnableOpenDoor(cab.CabinetID, false)
+			if err != nil {
+				log.Error(err.Error())
+			}
+		}
+	}
+
 	config, err := json.Marshal(cabinetConfig)
 	if err != nil {
 		return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrEncodingFailedCode])

+ 1 - 1
internal/pcmserver/bus/service/cabinet.go

@@ -241,7 +241,7 @@ func (cs *CabinetService) ChangeCabinetStatus(cabinetId int, status string) (err
 		return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
 	}
 	if status == "允许开启" {
-		err = cabinet_pkg.EnableOpenDoor(cabinetId)
+		err = cabinet_pkg.EnableOpenDoor(cabinetId, true)
 		if err != nil {
 			return err
 		}

+ 1 - 1
internal/pcmserver/bus/service/cabinet_time.go

@@ -131,7 +131,7 @@ func (s *CabinetTimeService) GetCabinetTimeList(info request.CabinetTimeSearch)
 	if err != nil {
 		return
 	}
-	if err = db.Order("id asc").Limit(limit).Offset(offset).Find(&list).Error; err != nil {
+	if err = db.Order("id asc").Limit(limit).Offset(offset).Where("cabinet_id = ?", info.CabinetID).Find(&list).Error; err != nil {
 		return list, total, rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
 	}
 	return

+ 33 - 26
internal/pcmserver/bus/service/work_time_cron_job.go

@@ -81,6 +81,8 @@ func processSpecTime(cabinetIds []int, specTime *model.SpecialTime, nowDataTime
 		isStart, isEnd, isWork bool
 		errs                   []error
 		execRes                string
+		suc                    []int
+		fail                   []int
 	)
 	// 例外时间的开始时间=当前时间
 	if specTime.StartTimeStr == nowDataTime {
@@ -98,43 +100,41 @@ func processSpecTime(cabinetIds []int, specTime *model.SpecialTime, nowDataTime
 	if isStart {
 		if isWork {
 			// 开始时间 工作日 不允许开
-			errs = DisableCabinets(cabinetIds)
+			suc, fail, errs = DisableCabinets(cabinetIds)
 		} else {
 			// 开始时间 非工作日 允许开
-			errs = EnableCabinets(cabinetIds)
+			suc, fail, errs = EnableCabinets(cabinetIds)
 		}
 	}
 
 	if isEnd {
 		if isWork {
 			// 结束时间 工作日 允许开
-			errs = EnableCabinets(cabinetIds)
+			suc, fail, errs = EnableCabinets(cabinetIds)
 		} else {
 			// 结束时间 非工作日 不允许开
-			errs = DisableCabinets(cabinetIds)
+			suc, fail, errs = DisableCabinets(cabinetIds)
 		}
 	}
 
 	if len(errs) != 0 {
-
 		for _, err := range errs {
 			if err != nil {
-				execRes = fmt.Sprintf("processSpecTime err.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,specTime.StartTimeStr:%s,nowDataTime:%s,specTime.WorkDay:%s,err:%s",
-					isStart, isEnd, isWork, cabinetIds, specTime.StartTimeStr, nowDataTime, specTime.WorkDay, err.Error())
-				log.Error(execRes)
+				log.Error(err.Error())
 			}
 		}
-		return execRes
 	}
 
 	if isStart || isEnd {
-		execRes = fmt.Sprintf("processSpecTime success.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,specTime.StartTimeStr:%s,nowDataTime:%s,specTime.WorkDay:%s",
-			isStart, isEnd, isWork, cabinetIds, specTime.StartTimeStr, nowDataTime, specTime.WorkDay)
+		execRes = fmt.Sprintf("processSpecTime success.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,"+
+			"specTime.StartTimeStr:%s,nowDataTime:%s,specTime.WorkDay:%s,suc:%v,fail:%v", isStart, isEnd, isWork,
+			cabinetIds, specTime.StartTimeStr, nowDataTime, specTime.WorkDay, suc, fail)
 
 		return execRes
 	}
 
-	execRes = fmt.Sprintf("processSpecTime do nothing.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,nowDataTime:%s", isStart, isEnd, isWork, cabinetIds, nowDataTime)
+	execRes = fmt.Sprintf("processSpecTime do nothing.isStart:%t,isEnd:%t,isWork:%t,"+
+		"cabinetIds:%v,nowDataTime:%s,,suc:%v,fail:%v", isStart, isEnd, isWork, cabinetIds, nowDataTime, suc, fail)
 
 	return execRes
 }
@@ -145,6 +145,10 @@ func processWorkTime(cabinetIds []int, weekDay string, timeStr string) string {
 	var err error
 	var errs []error
 	var execRes string
+	var (
+		suc  []int
+		fail []int
+	)
 	err = global.DB.Where("week_day like ?", weekDay+"%").Find(&workTimes).Error
 	if err != nil {
 		log.Error("find workTime err", zap.Error(err))
@@ -169,20 +173,20 @@ func processWorkTime(cabinetIds []int, weekDay string, timeStr string) string {
 	if isEnd {
 		if isWork {
 			// 结束时间 工作日 允许开
-			errs = EnableCabinets(cabinetIds)
+			suc, fail, errs = EnableCabinets(cabinetIds)
 		} else {
 			// 结束时间 非工作日 不允许开
-			errs = DisableCabinets(cabinetIds)
+			suc, fail, errs = DisableCabinets(cabinetIds)
 		}
 	}
 
 	if isStart {
 		if isWork {
 			// 开始时间 工作日 不允许开
-			errs = DisableCabinets(cabinetIds)
+			suc, fail, errs = DisableCabinets(cabinetIds)
 		} else {
 			// 开始时间 非工作日  允许开
-			errs = EnableCabinets(cabinetIds)
+			suc, fail, errs = EnableCabinets(cabinetIds)
 		}
 
 	}
@@ -190,40 +194,43 @@ func processWorkTime(cabinetIds []int, weekDay string, timeStr string) string {
 	if len(errs) != 0 {
 		for _, err := range errs {
 			if err != nil {
-				execRes = fmt.Sprintf("processWorkTime err.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,weekDay:%s,timeStr:%s,err:%s",
-					isStart, isEnd, isWork, cabinetIds, weekDay, timeStr, err.Error())
-				log.Error(execRes)
-				return execRes
+				log.Error(err.Error())
 			}
 		}
 	}
 
 	if isStart || isEnd {
-		execRes = fmt.Sprintf("processWorkTime success.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,weekDay:%s,timeStr:%s",
-			isStart, isEnd, isWork, cabinetIds, weekDay, timeStr)
+		execRes = fmt.Sprintf("processWorkTime success.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,weekDay:%s,timeStr:%s,suc:%v,fail:%v",
+			isStart, isEnd, isWork, cabinetIds, weekDay, timeStr, suc, fail)
 		return execRes
 	}
-	execRes = fmt.Sprintf("processWorkTime do nothing.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,weekDay:%s,timeStr:%s",
-		isStart, isEnd, isWork, cabinetIds, weekDay, timeStr)
+	execRes = fmt.Sprintf("processWorkTime do nothing.isStart:%t,isEnd:%t,isWork:%t,cabinetIds:%v,weekDay:%s,timeStr:%s,suc:%v,fail:%v",
+		isStart, isEnd, isWork, cabinetIds, weekDay, timeStr, suc, fail)
 
 	return execRes
 }
 
-func EnableCabinets(cabinetIds []int) (errs []error) {
+func EnableCabinets(cabinetIds []int) (suc []int, fail []int, errs []error) {
 	for _, cabinetId := range cabinetIds {
 		err := ServicesGroupApp.CabinetService.ChangeCabinetStatus(cabinetId, "允许开启")
 		if err != nil {
 			errs = append(errs, err)
+			fail = append(fail, cabinetId)
+		} else {
+			suc = append(suc, cabinetId)
 		}
 	}
 	return
 }
 
-func DisableCabinets(cabinetIds []int) (errs []error) {
+func DisableCabinets(cabinetIds []int) (suc []int, fail []int, errs []error) {
 	for _, cabinetId := range cabinetIds {
 		err := ServicesGroupApp.CabinetService.ChangeCabinetStatus(cabinetId, "禁止开启")
 		if err != nil {
 			errs = append(errs, err)
+			fail = append(fail, cabinetId)
+		} else {
+			suc = append(suc, cabinetId)
 		}
 	}
 	return

+ 1 - 1
internal/pcmserver/pkg/crontab/crontab.go

@@ -179,7 +179,7 @@ func (cj *CronJobs) GetJobs() []*JobInfo {
 		jobInfo := &JobInfo{
 			JobName:  jobName,
 			JobId:    string(rune(entry.ID)),
-			NextTime: entry.Next.String(),
+			NextTime: entry.Next.UTC().String(),
 			Valid:    entry.Valid(),
 		}
 		jobInfos = append(jobInfos, jobInfo)