lining 6 tahun lalu
induk
melakukan
c8a94ea807

+ 8 - 0
src/dashoo.cn/backend/api/business/codecsequence/codecsequenceService.go

@@ -475,4 +475,12 @@ func (s *CodecSequenceService)GetReportScrewPump(accCode string) string{
 	sequence := s.GetSequenceByName(accCode, seqName)
 	seqStr := "J能QC3.2-"+ strconv.Itoa(time.Now().Year()) + "-" + fmt.Sprintf("%03s", strconv.Itoa(sequence))
 	return seqStr
+}
+
+// 离心泵
+func (s *CodecSequenceService)GetReportLiquidTransportation(accCode string) string{
+	seqName := "PistonLiquidTran"
+	sequence := s.GetSequenceByName(accCode, seqName)
+	seqStr := "J能QP2.1-"+ strconv.Itoa(time.Now().Year()) + "-" + fmt.Sprintf("%03s", strconv.Itoa(sequence))
+	return seqStr
 }

+ 2 - 0
src/dashoo.cn/backend/api/business/limsdoctemplate/limstemplateenum.go

@@ -143,4 +143,6 @@ const (
 	DAYT_REPORTPISTONPUMPUNIT_REPORT string = "DAYT.ReportPistonPumpUnit.Report"
 	// 螺杆泵节能监测报告
 	DAYT_LIMSREPORTSCREWPUMP_REPORT string = "DAYT.LimsReportScrewPump.Report"
+	// 离心泵机组
+	DAYT_LIQUIDTRANSPORTATION_REPORT string = "DAYT.LiquidTransportation.Report"
 )

+ 133 - 2
src/dashoo.cn/backend/api/business/limsreportliquidtransportation/limsreportliquidtransportationService.go

@@ -1,8 +1,15 @@
 package limsreportliquidtransportation
 
 import (
-. "dashoo.cn/backend/api/mydb"
-"github.com/go-xorm/xorm"
+	"dashoo.cn/backend/api/business/limsentrust"
+	"dashoo.cn/backend/api/business/workflow"
+	. "dashoo.cn/backend/api/mydb"
+	"dashoo.cn/utils"
+	"fmt"
+	"github.com/go-xorm/xorm"
+	"math"
+	"strconv"
+	"strings"
 )
 
 type LimsReportLiquidTransportationService struct {
@@ -14,3 +21,127 @@ func GetLimsReportLiquidTransportationService(xormEngine *xorm.Engine) *LimsRepo
 	s.DBE = xormEngine
 	return s
 }
+
+/**
+ * 生成报告
+ */
+func (s *LimsReportLiquidTransportationService) DataToExcelReport(entrustMainEntity limsentrust.LimsEntrustMain, dateentryname string, createreportname string, tablename string, seqStr string, retUrl string, entrustId string, dataentryIds string) (reportUrl string, err error) {
+	var reportList []LimsReportLiquidTransportation
+	s.GetEntitysByOrderbyWhere(tablename, "DataEntryId in ("+dataentryIds+")", "DataEntryId", &reportList)
+	//模板下载到服务器
+	//_dir := utils.Cfg.MustValue("file", "tmplateDir") + entrustId
+	fileurl := strings.Split(retUrl, "|")
+	templateUrl := "http://" + fileurl[0]
+	fileName := fileurl[1]
+
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	datamap := make(map[string]interface{})
+	g := 9.8
+	limitval1 := 66.00
+	limitval2 := 46.00
+	limitval3 := 6.00
+	limitval4 := 0.87
+
+	pn := float64(reportList[0].MotorPower)                            // 电动机额定功率
+	qn := float64(reportList[0].Flow1)                                 // 泵额定流量
+	q := float64(reportList[0].TrafficRecord / 3600)                   // 泵实际流量
+	pgr := float64(reportList[0].MotorPowerRecord)                     // 电机输入功率
+	c1 := float64(reportList[0].Inhalation / 1000)                     // 泵吸入管道周长
+	d1 := float64(reportList[0].Imported / 1000)                       // 壁厚
+	p1 := float64(reportList[0].PumpSuctionRecord * math.Pow(10, 6))   //压力
+	c2 := float64(reportList[0].Discharge / 1000)                      // 泵排出管道周长
+	d2 := float64(reportList[0].Exit / 1000)                           // 壁厚
+	p2 := float64(reportList[0].PumpDischargeRecord * math.Pow(10, 6)) //压力
+	c3 := float64(reportList[0].ThrottleValve / 1000)                  // 节阀后管道
+	d3 := float64(reportList[0].AfterValve / 1000)                     // 壁厚
+	p3 := float64(reportList[0].ThrottleRecord * math.Pow(10, 6))      //压力
+	z1 := float64(reportList[0].InhalationPressure / 1000)             // 吸入压力测点距基准面
+	z2 := float64(reportList[0].DischargePressure / 1000)              // 排出压力测点距基准面
+	z3 := float64(reportList[0].ThrottlePressure / 1000)               // 节阀后压力测点距基准面
+	cosphi := float64(reportList[0].MotorFactorRecord)
+	rho := float64(reportList[0].LiquidDensity) // 液体密度
+	v1 := 0.00
+	v2 := 0.00
+	v3 := 0.00
+	if (math.Pow(c1/(2*math.Pi)-d3, 2) != 0) { //  泵吸入点流速
+		v1, err = strconv.ParseFloat(fmt.Sprintf("%.3f", q/math.Pow(c1/(2*math.Pi)-d1, 2)), 64)
+	} else {
+		v1 = 0.00
+	}
+	if (math.Pow(c2/(2*math.Pi)-d2, 2) != 0) { // 泵排出点流速
+		v2, err = strconv.ParseFloat(fmt.Sprintf("%.3f", q/math.Pow(c1/(2*math.Pi)-d2, 2)), 64)
+	} else {
+		v2 = 0.00
+	}
+	if (math.Pow(c3/(2*math.Pi)-d3, 2) != 0) { // 泵节阀后流速
+		v3, err = strconv.ParseFloat(fmt.Sprintf("%.3f", q/math.Pow(c1/(2*math.Pi)-d3, 2)), 64)
+	} else {
+		v3 = 0.00
+	}
+
+	h, err := strconv.ParseFloat(fmt.Sprintf("%.3f", p2-p1/(rho*g)+z2-z1+(v2*v2-v1*v1)/(2*g)), 64)  // 总扬程
+	etag, err := strconv.ParseFloat(fmt.Sprintf("%.3f", rho*g*h*q*math.Pow(10, -3)/pgr/100), 64)        // 泵机组效率
+	h1, err := strconv.ParseFloat(fmt.Sprintf("%.3f", (p2-p1)/rho*g+z2-z3+(v2*v2+v3+v3)/2*g), 64)   // 调节阀引起的扬程损失
+	etasys, err := strconv.ParseFloat(fmt.Sprintf("%.3f", rho*g*(h-h1)*q*math.Pow(10, -3)/pgr/100), 64) // 泵机组系统效率
+	etaj := 0.00                                                                                    // 节流损失率
+
+	datamap["pn	"] = pn
+	datamap["qn"] = qn
+	datamap["q"] = q
+	datamap["pgr"] = pgr
+	datamap["c1"] = c1
+	datamap["d1"] = d1
+	datamap["p1"] = p1
+	datamap["c2"] = c2
+	datamap["d2"] = d2
+	datamap["p2"] = p2
+	datamap["c3"] = c3
+	datamap["d3"] = d3
+	datamap["p3"] = p3
+	datamap["z1"] = z1
+	datamap["z2"] = z2
+	datamap["z3"] = z3
+	datamap["v1"] = v1
+	datamap["v2"] = v2
+	datamap["v3"] = v3
+	datamap["h"] = h
+	datamap["etag"] = etag
+	datamap["h1"] = h1
+	datamap["etasys"] = etasys
+
+	if (etag >= limitval1) {
+		datamap["res1"] = "合格"
+	} else {
+		datamap["res1"] = "不合格"
+	}
+	if (etasys >= limitval2) {
+		datamap["res2"] = "合格"
+	} else {
+		datamap["res2"] = "不合格"
+	}
+	if (etaj >= limitval3) {
+		datamap["res3"] = "合格"
+	} else {
+		datamap["res3"] = "不合格"
+	}
+	if (cosphi >= limitval4) {
+		datamap["res4"] = "合格"
+	} else {
+		datamap["res4"] = "不合格"
+	}
+
+	datamap["code"] = seqStr
+	datamap["company"] = reportList[0].TestDepart
+	datamap["jcnum"] = reportList[0].CreateOn.Format("2006-01-02")
+	datamap["jcdate"] = reportList[0].CreateOn.Format("2006年01月02日")
+	datamap["spec"] = reportList[0].Model1
+	//datamap["number"] = reportList[0].DeviceName
+	datamap["place"] = reportList[0].InstalPosition
+	//datamap["instr"] = reportList[0].MonitoringInstrument
+	datamap["limit1"] = limitval1
+	datamap["limit2"] = limitval2
+	datamap["limit3"] = limitval3
+	reportUrl = svcActiviti.FillWordTemplate(datamap, templateUrl, fileName)
+
+	return reportUrl, err
+}

+ 8 - 0
src/dashoo.cn/backend/api/controllers/lims/limscreatereport.go

@@ -3,6 +3,7 @@ package lims
 import (
 	"dashoo.cn/backend/api/business/limsreportalerkrgas"
 	"dashoo.cn/backend/api/business/limsreportelecpumpwell"
+	"dashoo.cn/backend/api/business/limsreportliquidtransportation"
 	"dashoo.cn/backend/api/business/limsreportmotor"
 	"dashoo.cn/backend/api/business/limsreportdetHSgas"
 	"dashoo.cn/backend/api/business/limsreportdetelectoxygen"
@@ -1003,10 +1004,17 @@ func (this *CreateReportController) generateExcelReportN(entrustMain limsentrust
 		svc := limsreportpistonpumpunit.GetLimsReportPistonPumpUnitService(utils.DBE)
 		reportUrl, err = svc.DataToExcelReport(entrustMain, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsCreateReportName, this.User.AccCode+LimsReportPistonPumpUnitName, seqStr, docTemplate.FileURL, entrustId, dataentryIds)
 	case limsdoctemplate.DAYT_LIMSREPORTSCREWPUMP_REPORT:
+		// 螺杆泵节能监测
 		codecSvc := codecsequence.GetCodecSequenceService(utils.DBE)
 		seqStr := codecSvc.GetReportScrewPump(this.User.AccCode)
 		svc := limsreportscrewpump.GetLimsReportScrewPumpService(utils.DBE)
 		reportUrl, err = svc.DataToExcelReport(entrustMain, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsCreateReportName, this.User.AccCode+LimsReportScrewPumpName, seqStr, docTemplate.FileURL, entrustId, dataentryIds)
+	case limsdoctemplate.DAYT_LIQUIDTRANSPORTATION_REPORT:
+		// 离心泵机组
+		codecSvc := codecsequence.GetCodecSequenceService(utils.DBE)
+		seqStr := codecSvc.GetReportLiquidTransportation(this.User.AccCode)
+		svc := limsreportliquidtransportation.GetLimsReportLiquidTransportationService(utils.DBE)
+		reportUrl, err = svc.DataToExcelReport(entrustMain, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsCreateReportName, this.User.AccCode+LimsReportLiquidTransportationName, seqStr, docTemplate.FileURL, entrustId, dataentryIds)
 	}
 
 	return reportUrl, UnHGReportUrl, err

+ 5 - 4
src/dashoo.cn/backend/api/controllers/lims/limsreportliquidtransportation.go

@@ -12,6 +12,7 @@ import (
 	"strconv"
 	"strings"
 	"time"
+	svccustomer "dashoo.cn/backend/api/business/customer"
 )
 
 type LimsReportLiquidTransportationController struct {
@@ -521,15 +522,15 @@ func (this *LimsReportLiquidTransportationController) GetDictList() {
 	dictList := make(map[string]interface{})
 	//dictSvc := items.GetItemsService(utils.DBE)
 	userSvc := baseUser.GetBaseUserService(utils.DBE)
-	//customerSvc := svccustomer.GetCustomerService(utils.DBE)
+	customerSvc := svccustomer.GetCustomerService(utils.DBE)
 	//dictList["WellNo"] = dictSvc.GetKeyValueItems("WellNo", this.User.AccCode)
 	var userEntity userRole.Base_User
 	userSvc.GetEntityById(this.User.Id, &userEntity)
 	dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid)
 
-	//var dictCustomer []svccustomer.Customer
-	//customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer)
-	//dictList["EntrustCorp"] = &dictCustomer
+	var dictCustomer []svccustomer.Customer
+	customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer)
+	dictList["EntrustCorp"] = &dictCustomer
 
 	var datainfo DataInfo
 	datainfo.Items = dictList

+ 33 - 10
src/dashoo.cn/frontend_web/src/pages/lims/reportliquidtransportation/_opera/operation.vue

@@ -31,8 +31,11 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="被测单位" label-width="120px">
-              <el-input v-model.trim="formData.TestDepart" placeholder="请输入" style="width: 100%"
-                        :disabled="DataStatus != 0 && DataStatus != 5 && DataStatus != 3"></el-input>
+              <el-select disabled ref="selectEntrustCorp" v-model="formData.TestDepartId" filterable placeholder="请选择"
+                         style="width: 100%">
+                <el-option v-for="item in EntrustCorpOptions" :key="item.Id" :label="item.CustomerName" :value="item.Id">
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -512,6 +515,7 @@
     mapGetters
   } from 'vuex'
   import api from '@/api/lims/reportliquidtransportation'
+  import entrustApi from '@/api/lims/limsentrust'
 
   export default {
     computed: {
@@ -532,6 +536,7 @@
         ischeck: 0,
         DataStatus: '0',
         acceptUsers: [],
+        EntrustCorpOptions: [],
         formData: {
           Id: '',
           EId: '',
@@ -643,9 +648,11 @@
       this.formData.DataEntryId = parseInt(this.$route.query.deid)
       this.initData()
       this.getUsersByRole()
+      this.getDictOptions()
     },
     methods: {
       saveEntity () {
+        this.formData.TestDepart = this.$refs.selectEntrustCorp.selectedLabel + ''
         this.$refs['formData'].validate((valid) => {
           if (valid) {
             this.formData.DataEntryId = parseInt(this.DataEntryId)
@@ -702,6 +709,22 @@
             this.formData = res.data.item
           } else {
           }
+          this.getEntrustInfo(this.EId)
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      getEntrustInfo (EId) {
+        entrustApi.getEntrustInfo(EId, this.$axios).then(res => {
+          this.formData.TestDepartId = res.data.CustomerId
+        }).catch(err => {
+          // handle error
+          console.error(err)
+        })
+      },
+      getDictOptions () {
+        api.getDictList(this.$axios).then(res => {
+          this.EntrustCorpOptions = res.data.items['EntrustCorp']
         }).catch(err => {
           console.error(err)
         })
@@ -817,28 +840,28 @@
       },
 
       getTrafficRecord () {
-        this.formData.TrafficRecord = Number((Number(this.formData.TrafficTest1) + Number(this.formData.TrafficTest2) + Number(this.formData.TrafficTest3)).toFixed(2))
+        this.formData.TrafficRecord = Number(((Number(this.formData.TrafficTest1) + Number(this.formData.TrafficTest2) + Number(this.formData.TrafficTest3)) / 3).toFixed(3))
       },
       getPumpSuctionRecord () {
-        this.formData.PumpSuctionRecord = Number((Number(this.formData.PumpSuction1) + Number(this.formData.PumpSuction2) + Number(this.formData.PumpSuction3)).toFixed(2))
+        this.formData.PumpSuctionRecord = Number(((Number(this.formData.PumpSuction1) + Number(this.formData.PumpSuction2) + Number(this.formData.PumpSuction3)) / 3).toFixed(3))
       },
       getPumpDischargeRecord () {
-        this.formData.PumpDischargeRecord = Number((Number(this.formData.PumpDischarge1) + Number(this.formData.PumpDischarge2) + Number(this.formData.PumpDischarge3)).toFixed(2))
+        this.formData.PumpDischargeRecord = Number(((Number(this.formData.PumpDischarge1) + Number(this.formData.PumpDischarge2) + Number(this.formData.PumpDischarge3)) / 3).toFixed(3))
       },
       getThrottleRecord () {
-        this.formData.ThrottleRecord = Number((Number(this.formData.ThrottlePressure1) + Number(this.formData.ThrottlePressure2) + Number(this.formData.ThrottlePressure3)).toFixed(2))
+        this.formData.ThrottleRecord = Number(((Number(this.formData.ThrottlePressure1) + Number(this.formData.ThrottlePressure2) + Number(this.formData.ThrottlePressure3)) / 3).toFixed(3))
       },
       getTestVolRecord () {
-        this.formData.TestVolRecord = Number((Number(this.formData.TestVoltage1) + Number(this.formData.TestVoltage2) + Number(this.formData.TestVoltage3)).toFixed(2))
+        this.formData.TestVolRecord = Number(((Number(this.formData.TestVoltage1) + Number(this.formData.TestVoltage2) + Number(this.formData.TestVoltage3)) / 3).toFixed(3))
       },
       getTestCurrentRecord () {
-        this.formData.TestCurrentRecord = Number((Number(this.formData.TestCurrent1) + Number(this.formData.TestCurrent2) + Number(this.formData.TestCurrent3)).toFixed(2))
+        this.formData.TestCurrentRecord = Number(((Number(this.formData.TestCurrent1) + Number(this.formData.TestCurrent2) + Number(this.formData.TestCurrent3)) / 3).toFixed(3))
       },
       getMotorFactorRecord () {
-        this.formData.MotorFactorRecord = Number((Number(this.formData.MotorFactor1) + Number(this.formData.MotorFactor2) + Number(this.formData.MotorFactor3)).toFixed(2))
+        this.formData.MotorFactorRecord = Number(((Number(this.formData.MotorFactor1) + Number(this.formData.MotorFactor2) + Number(this.formData.MotorFactor3)) / 3).toFixed(3))
       },
       getMotorPowerRecord () {
-        this.formData.MotorPowerRecord = Number((Number(this.formData.MotorPower1) + Number(this.formData.MotorPower2) + Number(this.formData.MotorPower3)).toFixed(2))
+        this.formData.MotorPowerRecord = Number(((Number(this.formData.MotorPower1) + Number(this.formData.MotorPower2) + Number(this.formData.MotorPower3)) / 3).toFixed(3))
       }
     }
   }