Selaa lähdekoodia

修改导出pdf 默认为false 不显示湿度为空判断

huangyan 1 viikko sitten
vanhempi
commit
9f4ce5def7

+ 7 - 0
Z_Build.bat

@@ -0,0 +1,7 @@
+cd %~dp0
+set GOARCH=amd64
+set GOOS=linux
+set GOPATH=E:\gopath
+set GO111MODULE=auto
+
+go build -o cold-logistics6270 main.go

+ 5 - 6
app/admin/controller/address.go

@@ -5,7 +5,6 @@ import (
 	"cold-logistics/app/admin/service"
 	"cold-logistics/app/admin/service/dto"
 	"cold-logistics/common/actions"
-	"errors"
 	"github.com/gin-gonic/gin"
 	"github.com/gin-gonic/gin/binding"
 	"gogs.baozhida.cn/zoie/OAuth-core/api"
@@ -43,11 +42,11 @@ func (e AddressController) GetPage(c *gin.Context) {
 		return
 	}
 
-	if req.AddressType != model.AddressTypeConsignee && req.AddressType != model.AddressTypeSender {
-		err = errors.New("地址类型错误")
-		e.Error(500, err, err.Error())
-		return
-	}
+	//if req.AddressType != model.AddressTypeConsignee && req.AddressType != model.AddressTypeSender {
+	//	err = errors.New("地址类型错误")
+	//	e.Error(500, err, err.Error())
+	//	return
+	//}
 
 	//数据权限检查
 	p := actions.GetPermissionFromContext(c)

+ 40 - 7
app/admin/controller/waybill.go

@@ -982,6 +982,41 @@ func (e WaybillController) CustomerInsert(c *gin.Context) {
 	e.OK(req.GetId(), "添加成功")
 }
 
+// Transfer 运单转箱
+// @Summary 运单转箱
+// @Description 运单转箱
+// @Tags 运单
+// @Accept  application/json
+// @Product application/json
+// @Param data body dto.WaybillInsertReq true "data"
+// @Success 200 {string} string	"{"code": 200, "message": "添加成功"}"
+// @Success 200 {string} string	"{"code": -1, "message": "添加失败"}"
+// @Router /api/waybill/transfer [post]
+// @Security Bearer
+func (e WaybillController) Transfer(c *gin.Context) {
+	s := service.Waybill{}
+	userSvc := service.SysUser{}
+	req := dto.WaybillTransfer{}
+	err := e.MakeContext(c).
+		MakeOrm().
+		Bind(&req, binding.JSON).
+		MakeService(&s.Service).
+		MakeService(&userSvc.Service).
+		Errors
+	if err != nil {
+		e.Logger.Error(err)
+		e.Error(500, err, err.Error())
+		return
+	}
+	p := actions.GetPermissionFromContext(c)
+	err = s.TransferBox(&req, p)
+	if err != nil {
+		e.Error(500, err, err.Error())
+		return
+	}
+	e.OK(req.OldCoolerBoxId, "转箱成功")
+}
+
 // Import 导入运单
 // @Summary 导入运单
 // @Description 导入运单
@@ -1122,7 +1157,7 @@ func (e WaybillController) ExportTemplate(c *gin.Context) {
 		return
 	}
 
-	filePath := "./ofile/运单导入模板.xlsx"
+	filePath := "/ofile/运单导入模板.xlsx"
 	//打开文件
 	fileTmp, errByOpenFile := os.Open(filePath)
 	defer fileTmp.Close()
@@ -1180,6 +1215,7 @@ func (e WaybillController) TemperaturePDF(c *gin.Context) {
 		e.Error(500, err, err.Error())
 		return
 	}
+	req.HumidityShow = false
 	filename, filePath, err := PDF(s, waybill, company, req.WaybillTaskIds, req.HumidityShow)
 	defer func() {
 		os.Remove(filePath)
@@ -1187,6 +1223,7 @@ func (e WaybillController) TemperaturePDF(c *gin.Context) {
 
 	c.Header("Content-Disposition", "attachment; filename="+url.PathEscape(filename))
 	c.Header("Content-Transfer-Encoding", "binary")
+	c.Header("Content-Type", "application/pdf")
 	c.File(filePath)
 
 }
@@ -1309,7 +1346,6 @@ func PDF(s service.Waybill, waybill model.Waybill, company model.SysDept, waybil
 		// 平均湿度
 		avgHumidity = totalHumidity / float32(len(DeviceSensor_data))
 	}
-
 	// -------------------获取最高温湿度、温蒂温湿度、平均温湿度结束
 
 	pdf := &gopdf.GoPdf{}
@@ -1638,8 +1674,7 @@ func PDF(s service.Waybill, waybill model.Waybill, company model.SysDept, waybil
 	}
 
 	filename = "运单" + waybill.WaybillNo + "温度记录" + time.Now().Format("20060102150405") + ".pdf"
-	filePath = "ofile/" + filename
-
+	filePath = "./ofile/" + filename
 	err = pdf.WritePdf(filePath)
 	if err != nil {
 		return
@@ -2084,13 +2119,11 @@ func DeviceDataTemperatureJPG(startTime, endTime string, waybillPDF []service.Wa
 	//	chart.Legend(&graph),
 	//}
 
-	filepath := "ofile/" + "temperature" + deviceSensorList[0].T_sn + ".jpg"
+	filepath := "./ofile/" + "temperature" + deviceSensorList[0].T_sn + ".jpg"
 	f, _ := os.Create(filepath)
 	defer f.Close()
 	graph.Render(chart.PNG, f)
-
 	return filepath, nil
-
 }
 
 // getZWFont 加载字体

+ 2 - 0
app/admin/model/waybill.go

@@ -14,6 +14,7 @@ var (
 	WaybillStatusWaitVanning  = 9  // 待装箱
 	WaybillStatusVanning      = 10 // 已装箱
 	WaybillStatusVanningOut   = 11 // 已出箱
+	WaybillStatusTransfer     = 12 // 转箱
 	WaybillStatusMap          = map[int]string{
 		WaybillStatusWaitDelivery: "待派单",
 		WaybillStatusWaitTruck:    "待装车",
@@ -26,6 +27,7 @@ var (
 		WaybillStatusWaitVanning:  "待装箱",
 		WaybillStatusVanning:      "已装箱",
 		WaybillStatusVanningOut:   "已出箱",
+		WaybillStatusTransfer:     "已转箱",
 	}
 )
 

+ 1 - 0
app/admin/router/waybill.go

@@ -46,6 +46,7 @@ func registerWaybillRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle
 		r.POST("/temperature-pdf", cont.TemperaturePDF) // 导出温湿度pdf
 		r.GET("/waybill-pdf", cont.WaybillPDF)          // 导出运单pdf
 		r.POST("/send-mail", cont.SendMail)             // 发送温湿度邮件
+		r.POST("/transfer", cont.Transfer)              // 转移保温箱
 	}
 }
 

+ 6 - 0
app/admin/service/dto/waybill.go

@@ -163,6 +163,12 @@ type WaybillGetReq struct {
 	WaybillNo string `uri:"waybillNo"`
 }
 
+// 运单转箱
+type WaybillTransfer struct {
+	OldCoolerBoxId int `json:"OldCoolerBoxId"`
+	NewCoolerBoxId int `json:"NewCoolerBoxId"`
+}
+
 type WaybillDeleteReq struct {
 	Id               int `json:"id"`
 	common.ControlBy `swaggerignore:"true"`

+ 85 - 2
app/admin/service/waybill.go

@@ -592,6 +592,89 @@ func (e *Waybill) Remove(c *dto.WaybillDeleteReq, p *actions.DataPermission) err
 	return nil
 }
 
+// TransferBox 运单转箱
+func (e *Waybill) TransferBox(c *dto.WaybillTransfer, p *actions.DataPermission) error {
+	var err error
+	tx := e.Orm.Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+		} else {
+			tx.Commit()
+		}
+	}()
+	if c.OldCoolerBoxId == c.NewCoolerBoxId {
+		return errors.New("转箱失败,新保温箱与旧保温箱相同")
+	}
+	//查询运单是否存在
+	var waybillModel []model.Waybill
+	err = tx.Scopes(actions.Permission(model.Waybill{}.TableName(), p)).Where("cooler_box_id = ?", c.OldCoolerBoxId).Where("status = ?", model.WaybillStatusVanning).Find(&waybillModel).Error
+	if err != nil {
+		e.Log.Errorf("该保温箱不存在订单%v %s", c.OldCoolerBoxId, err)
+		return errors.New(fmt.Sprintf("该保温箱不存在订单%v", c.OldCoolerBoxId))
+	}
+	//查询coolerbox是否存在
+	var coolerBox = model.CoolerBox{}
+	err = tx.Scopes(actions.Permission(coolerBox.TableName(), p)).Where("id = ?", c.NewCoolerBoxId).Where("status = ?", 2).First(&coolerBox).Error
+	if err != nil {
+		e.Log.Errorf("该保温箱不可使用: %s", err)
+		return errors.New("该保温箱不可使用")
+	}
+	for i, _ := range waybillModel {
+		waybillModel[i].CoolerBoxId = c.NewCoolerBoxId
+		err = tx.Save(&waybillModel).Error
+		if err != nil {
+			e.Log.Errorf("转箱失败: %s", err)
+			return errors.New("转箱失败")
+		}
+		//查询已装箱物流信息
+		var logistics = model.WaybillLogistics{}
+		var logis = model.WaybillLogistics{}
+		err = tx.Scopes(actions.Permission(logistics.TableName(), p)).Where("waybill_no = ?", waybillModel[i].WaybillNo).Where("status = ?", model.WaybillStatusVanning).First(&logistics).Error
+		if err != nil {
+			e.Log.Errorf("db error: %s", err)
+			return errors.New("获取物流信息失败")
+		}
+		//更新物流信息
+		logis.CoolerBoxId = c.NewCoolerBoxId
+		logis.Status = model.WaybillStatusVanning
+		logis.WarehouseId = logistics.WarehouseId
+		logis.CarId = logistics.CarId
+		logis.UserId = logistics.UserId
+		logis.Lng = logistics.Lng
+		logis.Lat = logistics.Lat
+		logis.Address = logistics.Address
+		logis.CreateBy = logistics.CreateBy
+		logis.UpdateBy = p.UserId
+		logis.DeptId = logistics.DeptId
+		logis.WaybillNo = logistics.WaybillNo
+		err = tx.Create(&logis).Error
+		if err != nil {
+			e.Log.Errorf("db error: %s", err)
+			return errors.New("更新物流信息失败")
+		}
+		var waybillTask = model.WaybillTask{}
+		waybillTask.WaybillNo = logistics.WaybillNo
+		waybillTask.UserId = logistics.UserId
+		waybillTask.Sn = coolerBox.Sn
+		waybillTask.StartTime = model2.Time(time.Now())
+		waybillTask.DeptId = logistics.DeptId
+		waybillTask.CoolerBoxId = c.NewCoolerBoxId
+		err = tx.Create(&waybillTask).Error
+		if err != nil {
+			e.Log.Errorf("db error: %s", err)
+			return errors.New("添加任务失败")
+		}
+		//更新旧保温箱结束时间
+		err = tx.Model(model.WaybillTask{}).Where("waybill_no = ?", logistics.WaybillNo).Where("cooler_box_id = ?", c.OldCoolerBoxId).Update("end_time", model2.Time(time.Now())).Error
+		if err != nil {
+			e.Log.Errorf("db error: %s", err)
+			return errors.New("更新运单任务失败")
+		}
+	}
+	return nil
+}
+
 func (e *Waybill) WarehouseIn(c *dto.WaybillInOutReq, p *actions.DataPermission) error {
 	var err error
 
@@ -932,7 +1015,7 @@ func (e *Waybill) CarIn(c *dto.WaybillInOutReq, p *actions.DataPermission) error
 		Where("user_id = ?", p.UserId).
 		First(&car).Error
 	if err != nil {
-		e.Log.Errorf("db error: %s", err)
+		e.Log.Errorf("获取车辆绑定信息失败: %s", err)
 		return errors.New("获取车辆绑定信息失败")
 	}
 
@@ -943,7 +1026,7 @@ func (e *Waybill) CarIn(c *dto.WaybillInOutReq, p *actions.DataPermission) error
 			Where("waybill_no = ?", waybillNo).
 			First(&waybillModel).Error
 		if err != nil {
-			e.Log.Errorf("db error: %s", err)
+			e.Log.Errorf("运单号不存在: %s", err)
 			if errors.Is(err, gorm.ErrRecordNotFound) {
 				return errors.New(fmt.Sprintf("运单号%s不存在", waybillNo))
 			}