Browse Source

Update:优化运输登记表

zoie 9 months ago
parent
commit
c4fc6c273a
3 changed files with 58 additions and 12 deletions
  1. 37 2
      controllers/stock_template.go
  2. 10 8
      routers/stock.go
  3. 11 2
      services/stock_template.go

+ 37 - 2
controllers/stock_template.go

@@ -2070,7 +2070,6 @@ func (c StockTemplateController) TransportRecordPdf(reqData models.TransportReco
 		utils.RectFillColorMultiCell(pdf, header2[i], 9, x, y, cols2[i], h, 0, 0, 0, gopdf.Center, gopdf.Middle)
 		x += cols2[i]
 	}
-	y = pdf.GetY()
 	y += h
 	pdf.SetNewY(y, h)
 	if pdf.GetY() < 30 {
@@ -2140,6 +2139,7 @@ func (c StockTemplateController) TransportRecordPdf(reqData models.TransportReco
 		pdf.SetY(30)
 	}
 	pdf.SetX(curx)
+	pdf.SetFont("simsun", "", 10)
 	pdf.Text("启运至到达行驶里程数:_________千米")
 
 	y = pdf.GetY()
@@ -2831,6 +2831,7 @@ func (c StockTemplateController) StockRefundOutTransportRecordPdf(reqData models
 		pdf.SetY(30)
 	}
 	pdf.SetX(curx)
+	pdf.SetFont("simsun", "", 10)
 	pdf.Text("运输温度记录:")
 	header2 := []string{"项目", "日期/时间", "储存温度", "冰排状态", "环境温度"}
 	cols2 := []float64{55, 210, 105, 94, 91}
@@ -2844,17 +2845,19 @@ func (c StockTemplateController) StockRefundOutTransportRecordPdf(reqData models
 	y = pdf.GetY()
 	pdf.SetX(curx)
 	x = curx
+	pdf.SetFont("simsun", "", 9)
 	for i := 0; i < len(header2); i++ {
 		utils.RectFillColorMultiCell(pdf, header2[i], 9, x, y, cols2[i], h, 0, 0, 0, gopdf.Center, gopdf.Middle)
 		x += cols2[i]
 	}
-	y = pdf.GetY()
 	y += h
 	pdf.SetNewY(y, h)
 	if pdf.GetY() < 30 {
 		pdf.SetY(30)
 	}
 	pdf.SetX(curx)
+	pdf.SetFont("simsun", "", 9)
+
 	row2 := [][]string{
 		{"启运", "______年___月___日___时___分", "________℃", "", "________℃"},
 		{"途中", "______年___月___日___时___分", "________℃", "————", "________℃"},
@@ -2918,6 +2921,8 @@ func (c StockTemplateController) StockRefundOutTransportRecordPdf(reqData models
 		pdf.SetY(30)
 	}
 	pdf.SetX(curx)
+	pdf.SetFont("simsun", "", 10)
+
 	pdf.Text("启运至到达行驶里程数:_________千米")
 
 	y = pdf.GetY()
@@ -3072,6 +3077,32 @@ func (c StockTemplateController) StockRefundOutTransportRecordExport() {
 
 }
 
+// TransportRecordExport 运输记录表
+// @Summary 收发登记表word
+// @Description 收发登记表word
+// @Tags 库存
+// @Param body body dto.TransportRecordWordReq true "body"
+// @Success 200 {object} response.Page "{"code": 200, "data": [...]}"
+// @Router /stock-template/inventory/list [post]
+// @Security Bearer
+func (c StockTemplateController) StockRefundOutTransportRecordExportList() {
+	s := services.StockTemplate{}
+	reqData := models.TransportRecord{}
+	if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
+		c.Error(global.ParseFormErr, err, err.Error())
+		return
+	}
+	deptId := beegouser.GetDeptId(c.Ctx)
+	models.InitBasicData(deptId)
+
+	list, err := s.StockRefundOutTransportRecordPdf(&reqData, deptId)
+	if err != nil {
+		c.Error(500, err, err.Error())
+		return
+	}
+	c.PageOK(list, 0, 0, 0, "查询成功")
+}
+
 func (c StockTemplateController) GetRefundOutBarCodeInfo() {
 	barcodeSvc := services.Barcode{}
 	s := services.StockTemplate{}
@@ -3236,6 +3267,10 @@ func (c StockTemplateController) StockRefundOutExport() {
 	pdf.SetY(60)
 	pdf.Text(code)
 
+	imgPath2 := "ofile/img/" + code + ".jpg"
+	png2j.Con2jpg(imgPath, imgPath2)
+	pdf.Image(imgPath2, 640, 15, &gopdf.Rect{W: 200, H: 35})
+
 	titleStr := reqData.DeptName + "退货单"
 	pdf.SetFont("simsun", "", 25)
 	textw, _ := pdf.MeasureTextWidth(titleStr)

+ 10 - 8
routers/stock.go

@@ -32,14 +32,16 @@ func init() {
 		beego.NSRouter("/refund/batch-in", &controllers.StockTemplateController{}, "*:BatchStockTemplateRefundIn"),        // 批量退货入库
 		beego.NSRouter("/refund/scan-code-in", &controllers.StockTemplateController{}, "*:StockTemplateRefundInScanCode"), // 扫码退货入库
 
-		beego.NSRouter("/refund/out/list", &controllers.StockTemplateController{}, "*:StockTemplateRefundOutList"),                             // 退货/报废出库列表
-		beego.NSRouter("/refund/out", &controllers.StockTemplateController{}, "*:StockTemplateRefundOut"),                                      // 退货/报废出库
-		beego.NSRouter("/refund/batch-out", &controllers.StockTemplateController{}, "*:BatchStockTemplateRefundOut"),                           // 批量退货/报废出库
-		beego.NSRouter("/refund/scan-code-out", &controllers.StockTemplateController{}, "*:StockTemplateRefundOutScanCode"),                    // 扫码退货/报废出库
-		beego.NSRouter("/refund/out/transport-record/export", &controllers.StockTemplateController{}, "*:StockRefundOutTransportRecordExport"), // 退货出库运输温度记录表
-		beego.NSRouter("/refund/out/barcode-info", &controllers.StockTemplateController{}, "*:GetRefundOutBarCodeInfo"),                        // 退货出库二维码信息
-		beego.NSRouter("/refund/out/export", &controllers.StockTemplateController{}, "*:StockRefundOutExport"),                                 // 退货单
-		beego.NSRouter("/scrap/out/export", &controllers.StockTemplateController{}, "*:StockScrapOutExport"),                                   // 退货单
+		beego.NSRouter("/refund/out/list", &controllers.StockTemplateController{}, "*:StockTemplateRefundOutList"),                               // 退货/报废出库列表
+		beego.NSRouter("/refund/out", &controllers.StockTemplateController{}, "*:StockTemplateRefundOut"),                                        // 退货/报废出库
+		beego.NSRouter("/refund/batch-out", &controllers.StockTemplateController{}, "*:BatchStockTemplateRefundOut"),                             // 批量退货/报废出库
+		beego.NSRouter("/refund/scan-code-out", &controllers.StockTemplateController{}, "*:StockTemplateRefundOutScanCode"),                      // 扫码退货/报废出库
+		beego.NSRouter("/refund/out/transport-record/export", &controllers.StockTemplateController{}, "*:StockRefundOutTransportRecordExport"),   // 退货出库运输温度记录表
+		beego.NSRouter("/refund/out/transport-record/list", &controllers.StockTemplateController{}, "*:StockRefundOutTransportRecordExportList"), // 运输登记表产品明细
+
+		beego.NSRouter("/refund/out/barcode-info", &controllers.StockTemplateController{}, "*:GetRefundOutBarCodeInfo"), // 退货出库二维码信息
+		beego.NSRouter("/refund/out/export", &controllers.StockTemplateController{}, "*:StockRefundOutExport"),          // 退货单
+		beego.NSRouter("/scrap/out/export", &controllers.StockTemplateController{}, "*:StockScrapOutExport"),            // 退货单
 
 	)
 	stock := beego.NewNamespace("/api/stock",

+ 11 - 2
services/stock_template.go

@@ -421,11 +421,14 @@ func (e *StockTemplate) StockTemplateInScanCode(req *dto.BatchStockTemplateInIns
 	//var err error
 	tx := db.DB.Begin()
 
-	for _, c := range req.StockInList {
+	for i, c := range req.StockInList {
 		mi := make(map[string]interface{})
 		for k, v := range c.MedicineInfo {
 			mi[k] = v
 		}
+		if qrcode, ok := c.MedicineInfo["qrcode"].(string); ok && len(qrcode) > 0 && len(req.StockInList[i].Qrcode) == 0 {
+			c.Qrcode = qrcode
+		}
 		// 检查药品信息是否已存在
 		err := e.FirstOrCreateMedicineInfo(req.DeptId, req.CreateBy, &c.MedicineInfo)
 		if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
@@ -1324,6 +1327,7 @@ func (e *StockTemplate) BatchStockTemplateOut(req *dto.BatchStockTemplateOutInse
 			ReceivingUnit: c.ReceivingUnit,
 			Date:          c.Date,
 			Number:        number,
+			State:         req.State,
 			ControlBy: model2.ControlBy{
 				DeptId:   req.DeptId,
 				CreateBy: req.CreateBy,
@@ -2319,6 +2323,7 @@ func (e *StockTemplate) StockTemplateTransportRecordWord(c *models.TransportReco
 	err = db.DB.Table("stock_out").
 		Select("stock_out.*,stock_out.id as stock_out_id," + mtable + ".*," + mtable + ".id as medicine_id").
 		Joins("left join " + mtable + " on stock_out.medicine_id = " + mtable + ".id").
+		Order("stock_out.date desc,stock_out.id desc").
 		Where(whereSql).
 		Scan(&list).Error
 	if err != nil {
@@ -2327,6 +2332,9 @@ func (e *StockTemplate) StockTemplateTransportRecordWord(c *models.TransportReco
 	}
 	models.InitBasicData(deptId)
 	for i := 0; i < len(list); i++ {
+		list[i]["unit_price"] = utils.ToFloat64(list[i]["unit_price"])
+		// 金额
+		list[i]["money"] = utils.ToFloat64(list[i]["unit_price"]) * utils.ToFloat64(list[i]["quantity"])
 		if id, ok := list[i][models.FieldProductID]; ok {
 			list[i][models.FieldProductName] = models.Read_Product_Get(utils.ToInt(id))
 		}
@@ -2369,8 +2377,9 @@ func (e *StockTemplate) StockRefundOutTransportRecordPdf(c *models.TransportReco
 		whereSql += " AND stock_out.id in (" + strings.Join(utils.IntArrayToStringArray(c.StockOutIds), ",") + ")"
 	}
 	err = db.DB.Table("stock_out").
-		Select("stock_out.*,stock_out.id as stock_out_id," + mtable + ".*," + mtable + ".id as medicine_id").
+		Select(mtable + ".*," + "stock_out.*,stock_out.id as stock_out_id," + mtable + ".id as medicine_id").
 		Joins("left join " + mtable + " on stock_out.medicine_id = " + mtable + ".id").
+		Order("stock_out.date desc,stock_out.id desc").
 		Where(whereSql).
 		Scan(&list).Error
 	if err != nil {