4
0
Просмотр исходного кода

修复蜜蜂所前端bug,提交后台样本条码生成规则方法

jianglw 4 лет назад
Родитель
Сommit
ffaa1d42e0

+ 55 - 0
src/dashoo.cn/backend/api/business/samplesinfo/samplesinfoService.go

@@ -135,6 +135,61 @@ func (s *SamplesInfoService) GetPagingEntitiesWithTb(acccode string, pageIndex,
 	return total, List
 }
 
+type BarcodeRules struct {
+	Id         int    `orm:"Id,primary" json:"id"`         //
+	SampleCode string `orm:"SampleCode" json:"sampleCode"` // 样本编码
+	Count      int    `orm:"Count"      json:"count"`      // 计数
+}
+
+// GetBarcodeRules 获取样本条码自动生成信息
+func GetBarcodeRules(sampleCode string) (countStr string, id int, err error) {
+	barcodeRulesEntity := make([]BarcodeRules, 0)
+	// 查询样本编码对应的计数
+	sql := "select id, samplecode, count from b_bj_bee.barcode_rules where SampleCode = '" + sampleCode + "'"
+	fmt.Println(sql)
+	err = utils.DBE.Sql(sql).Find(&barcodeRulesEntity)
+	if err != nil {
+		return "", 0,  err
+	}
+	if len(barcodeRulesEntity) == 0 {
+		var newBarcodeRules BarcodeRules
+		newBarcodeRules.Count =  1
+		newBarcodeRules.SampleCode = sampleCode
+		// 没有则更新一条
+		insertSql := "insert into b_bj_bee.barcode_rules (SampleCode, count) values('"+ sampleCode + "','" +
+			strconv.Itoa(newBarcodeRules.Count) + "')"
+		_, err = utils.DBE.Exec(insertSql)
+		if err != nil {
+			return "", 0, err
+		}
+		return "01", 0,  nil
+	}
+	count := barcodeRulesEntity[0].Count + 1
+	return count2string(count), barcodeRulesEntity[0].Id, nil
+	//return "", nil
+}
+
+// UpdateBarcodeRules 更新样本条码规则
+func UpdateBarcodeRules(id int) error{
+	// 更新计数加一
+	updateSql := "update b_bj_bee.barcode_rules set Count = Count + 1 where Id = " +
+		strconv.Itoa(id)
+	_, err := utils.DBE.Exec(updateSql)
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+func count2string (count int) (countStr string) {
+	if count < 10 {
+		countStr = "0" + strconv.Itoa(count)
+	} else {
+		countStr = strconv.Itoa(count)
+	}
+	return countStr
+}
+
 func (s *SamplesInfoService) GetPagingEntitiesWithDonorsTb(acccode string, pageIndex, itemsPerPage int64, tbldonor, order, where string) (int64, []SamplesInfoList) {
 	var err error
 	var total int64

+ 36 - 10
src/dashoo.cn/backend/api/controllers/samplesinfo/samplespreinput.go

@@ -3,6 +3,7 @@ package samplesinfo
 import (
 	"encoding/json"
 	"fmt"
+	"github.com/gogf/gf/frame/g"
 	"math"
 	"strconv"
 	"strings"
@@ -17,7 +18,6 @@ import (
 	"dashoo.cn/backend/api/business/samplesgroup"
 	"dashoo.cn/backend/api/business/samplesinfo"
 	"dashoo.cn/backend/api/business/samplessource"
-	"dashoo.cn/backend/api/business/samplesubpackage"
 	"dashoo.cn/backend/api/business/sampletype"
 	. "dashoo.cn/backend/api/controllers"
 	"dashoo.cn/utils"
@@ -38,6 +38,20 @@ type AutoCodeStruct struct {
 	NextSampleCode string `json:"nextsamplecode"`
 }
 
+//type BarcodeRules struct {
+//	Id         int    `orm:"Id,primary" json:"id"`         //
+//	SampleCode string `orm:"SampleCode" json:"sampleCode"` // 样本编码
+//	Count      int    `orm:"Count"      json:"count"`      // 计数
+//}
+//
+//var beeService client.XClient
+//
+//func init() {
+//
+//
+//	beeService = micro_srv.InitMicroSrvClient("Dict", beego.AppConfig.String("micro_srv.bee"))
+//}
+
 // @Title get
 // @Success 200 {object} controllers.Request
 // @router /list [get]
@@ -580,13 +594,25 @@ func (this *SamplespreinputController) Subpackage() {
 
 	var err error
 	var datamainold samplesinfo.SamplesMain
-	wheremain := " SampleCode='" + datamain.SampleCode + "'"
-	has := svcSample.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, wheremain, &datamainold)
-	if has { //如果存在,表示添加新管,主信息不允许修改
-		if datadetail.BarCode == "" {
-			subSvc := samplesubpackage.GetSampleSubpackageService(utils.DBE)
-			datadetail.BarCode = subSvc.AutoGetBarCodeAnimal(this.User.AccCode, datamainold.SampleCode, timecode)
+	//wheremain := " SampleCode='" + datamain.SampleCode + "'"
+	//has := svcSample.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, wheremain, &datamainold)
+	count, id, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+	if err != nil {
+		g.Log().Info("添加样本失败")
+		return
+	}
+	if count != "01" { //如果存在,表示添加新管,主信息不允许修改
+		if count != "01"{
+			if err = samplesinfo.UpdateBarcodeRules(id); err != nil {
+				g.Log().Info("添加样本失败")
+				return
+			}
 		}
+		//if datadetail.BarCode == "" {
+			//subSvc := samplesubpackage.GetSampleSubpackageService(utils.DBE)
+			//datadetail.BarCode = subSvc.AutoGetBarCodeAnimal(this.User.AccCode, datamainold.SampleCode, timecode)
+		datadetail.BarCode = datadetail.SampleCode + count + "-" + timecode
+		//}
 		datamain.MModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
 		datamain.MModifiedBy = this.User.Realname
 		var cols []string = []string{"Name", "MModifiedUserId", "MModifiedBy"}
@@ -603,9 +629,9 @@ func (this *SamplespreinputController) Subpackage() {
 			cols, datamainold.MId, &mainempty, this.User.AccCode+SamplesLogtbName, this.User.AccCode, utils.ToStr(this.User.Id), this.User.Realname, datamainold.SampleCode, datamainold.SampleType)
 
 	} else { //如果不存在,表示完全新增
-		if datadetail.BarCode == "" {
-			datadetail.BarCode = datamain.SampleCode + "01" + "-" + timecode
-		}
+		//if datadetail.BarCode == "" {
+		datadetail.BarCode = datamain.SampleCode + "01" + "-" + timecode
+		//}
 		datamain.AccCode = this.User.AccCode
 		datamain.MCreateUserId = datadetail.CreateUserId
 		datamain.MCreateBy = datadetail.CreateBy

+ 86 - 14
src/dashoo.cn/backend/api/controllers/samplesinfo/samplesubpackage.go

@@ -1,6 +1,10 @@
 package samplesinfo
 
 import (
+	"dashoo.cn/backend/api/business/samplesinfo"
+	"github.com/gogf/gf/frame/g"
+
+	//"dashoo.cn/micro_common_definition/comm_def"
 	"encoding/json"
 	"fmt"
 	"math"
@@ -383,9 +387,19 @@ func (this *SampleSubpackageController) Subpackage() {
 
 			var err error
 			if datadetail.Capacity > 0 {
-				if datadetail.BarCode == "" {
-					datadetail.BarCode = datamain.SampleCode + "01"
+				//datadetail.BarCode = datamain.SampleCode + rsp.Data
+				count, id, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+				if err != nil {
+					g.Log().Info("添加样本失败")
+					return
+				}
+				if count != "01"{
+					if err = samplesinfo.UpdateBarcodeRules(id); err != nil {
+						g.Log().Info("添加样本失败")
+						return
+					}
 				}
+				datadetail.BarCode = datamain.SampleCode + count + "-" + timecode
 				datamain.AccCode = this.User.AccCode
 				datamain.MCreateUserId, _ = utils.StrTo(this.User.Id).Int()
 				datamain.MCreateBy = this.User.Realname
@@ -398,11 +412,18 @@ func (this *SampleSubpackageController) Subpackage() {
 				datamain.MCreateBy = this.User.Realname
 				datamain.ReceiveDate = time.Unix(dataother.ReceiveDateint/1000, 0)
 
-				var modelmain samplesubpackage.SamplesMain
-				where_main := "SampleCode = '" + datamain.SampleCode + "'"
-				has := svc.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, where_main, &modelmain)
+				//var modelmain samplesubpackage.SamplesMain
+				//where_main := "SampleCode = '" + datamain.SampleCode + "'"
+				//has := svc.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, where_main, &modelmain)
+
+				count, _, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+				if err != nil {
+					g.Log().Info("添加样本失败")
+					return
+				}
+				datadetail.BarCode = datamain.SampleCode + count + "-" + timecode
 
-				if !has {
+				if count == "01" {
 					_, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesMaintbName, &datamain)
 				} else {
 					err = nil
@@ -414,7 +435,22 @@ func (this *SampleSubpackageController) Subpackage() {
 					datadetailnew.IState = 2
 					datadetailnew.Capacity = Subpackagecapacity
 					datadetailnew.InitCapacity, _ = utils.StrTo(utils.ToStr(subpackagecapacity)).Float32()
-					datadetailnew.BarCode = svc.AutoGetBarCodeAnimal(this.User.AccCode, datamainnew.SampleCode, timecode)
+
+					//datadetailnew.BarCode = datamain.SampleCode + rsp.Data + "-" + timecode
+
+					//datadetailnew.BarCode = svc.AutoGetBarCodeAnimal(this.User.AccCode, datamainnew.SampleCode, timecode)
+					count, id, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+					if err != nil {
+						g.Log().Info("添加样本失败")
+						return
+					}
+					if count != "01"{
+						if err = samplesinfo.UpdateBarcodeRules(id); err != nil {
+							g.Log().Info("添加样本失败")
+							return
+						}
+					}
+					datadetailnew.BarCode = datamain.SampleCode + count + "-" + timecode
 					datadetailnew.SampleCode = datamain.SampleCode
 					datadetailnew.ParentBarCode = datadetail.BarCode
 					datadetailnew.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
@@ -454,9 +490,20 @@ func (this *SampleSubpackageController) Subpackage() {
 		var err error
 		fmt.Println("ddddddddd", datadetail.Capacity)
 		if datadetail.Capacity > 0 {
-			if datadetail.BarCode == "" {
-				datadetail.BarCode = datamain.SampleCode + "01" + "-" + timecode
+
+			//datadetail.BarCode = datamain.SampleCode + rsp.Data + "-" + timecode
+			count, id, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+			if err != nil {
+				g.Log().Info("添加样本失败")
+				return
 			}
+			if count != "01"{
+				if err = samplesinfo.UpdateBarcodeRules(id); err != nil {
+					g.Log().Info("添加样本失败")
+					return
+				}
+			}
+			datadetail.BarCode = datamain.SampleCode + count + "-" + timecode
 			datamain.AccCode = this.User.AccCode
 			datamain.MCreateUserId, _ = utils.StrTo(this.User.Id).Int()
 			datamain.MCreateBy = this.User.Realname
@@ -469,22 +516,47 @@ func (this *SampleSubpackageController) Subpackage() {
 			datamain.MCreateBy = this.User.Realname
 			datamain.ReceiveDate = time.Unix(dataother.ReceiveDateint/1000, 0)
 
-			var modelmain samplesubpackage.SamplesMain
-			where_main := "SampleCode = '" + datamain.SampleCode + "'"
-			has := svc.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, where_main, &modelmain)
+			//var modelmain samplesubpackage.SamplesMain
+			//where_main := "SampleCode = '" + datamain.SampleCode + "'"
+			//has := svc.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, where_main, &modelmain)
 
-			if !has {
+			count, _, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+			if err != nil {
+				g.Log().Info("添加样本失败")
+				return
+			}
+			if count == "01" {
 				_, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesMaintbName, &datamain)
 			} else {
 				err = nil
 			}
+			//if rsp.Data == "01" {
+			//	_, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesMaintbName, &datamain)
+			//} else {
+			//	err = nil
+			//}
 		}
 		if Subpackagenum > 1 && Subpackagecapacity > 0 {
 			for subcapacity := Subpackagenum; subcapacity > 0; subcapacity-- {
 				datadetailnew.IState = 2
 				datadetailnew.Capacity = Subpackagecapacity
 				datadetailnew.InitCapacity, _ = utils.StrTo(utils.ToStr(subpackagecapacity)).Float32()
-				datadetailnew.BarCode = svc.AutoGetBarCodeAnimal(this.User.AccCode, datamainnew.SampleCode, timecode)
+				//datadetailnew.BarCode = svc.AutoGetBarCodeAnimal(this.User.AccCode, datamainnew.SampleCode, timecode)
+
+
+				count, id, err := samplesinfo.GetBarcodeRules(datamain.SampleCode)
+				if err != nil {
+					g.Log().Info("添加样本失败")
+					return
+				}
+				if count != "01"{
+					if err = samplesinfo.UpdateBarcodeRules(id); err != nil {
+						g.Log().Info("添加样本失败")
+						return
+					}
+				}
+				datadetailnew.BarCode = datamain.SampleCode + count + "-" + timecode
+
 				datadetailnew.ParentBarCode = datadetail.BarCode
 				datadetailnew.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
 				datadetailnew.CreateBy = this.User.Realname

+ 17 - 1
src/dashoo.cn/frontend_animal/src/pages/samples/archived/index.vue

@@ -760,11 +760,21 @@ export default {
           this.checkAll = true
         }
       }
+      this.$nextTick(() => {
+        this.$refs.multipleTable.doLayout()
+      })
+    },
+    // 显示列拖拽
+    visibleDrag() {
     },
     handleCheckAllChange (val) {
       for (var i = 0; i < this.showcolumn.length; i++) {
         this.showcolumn[i].show = val
       }
+      this.initData()
+      this.$nextTick(() => {
+        this.$refs.multipleTable.doLayout()
+      })
     },
     // 自定义显示列保存操作
     saveshowfiled () {
@@ -774,7 +784,13 @@ export default {
         type: 'success',
         message: '自定义显示列设置成功'
       })
-      this.initData()
+      this.showcolumn = JSON.parse(JSON.stringify(this.showcolumn))
+    },
+    reload () {
+      this.isRouterAlive = false
+      this.$nextTick(function(){
+        this.isRouterAlive = true
+      })
     },
     header_dragend (newWidth, oldWidth, column, event) {
       for (var i = 0; i < this.showcolumn.length; i++) {

+ 3 - 0
src/dashoo.cn/frontend_animal/src/pages/samples/prerecorded/index.vue

@@ -929,6 +929,9 @@
             this.checkAll = true
           }
         }
+        this.$nextTick(() => {
+          this.$refs.multipleTable.doLayout()
+        })
       },
       handleCheckAllChange (val) {
         for (var i = 0; i < this.showcolumn.length; i++) {