3
2
lining 6 gadi atpakaļ
vecāks
revīzija
f247891bfc

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

@@ -125,5 +125,7 @@ const (
 	DAYT_REPORTHEATINGFURNACE_DETAIL string = "DAYT.ReportHeatingFurnace.Detail"
 	// 可燃气体检测报警器检定证书
 	DAYT_REPORTALERTORKRGASDETECT_REPORT string= "DAYT.ReportAlertorKRGasDetect.Report"
+	// 石油专用管材钻杆检验记录
+	DAYT_PIPEDRILLPIPE_DETAIL string = "DAYT.PipeDrillPipe.Detail"
 
 )

+ 3 - 0
src/dashoo.cn/backend/api/business/limspipedrillpipe/limspipedrillpipe.go

@@ -4,6 +4,9 @@ import "time"
 
 type LimsPipeDrillPipe struct {
 	Id                int       `xorm:"not null pk autoincr INT(10)"`
+	EId               int       `xorm:" INT(10)"`
+	TaskBalanceId     int       `xorm:" INT(10)"`
+	DataEntryId       int       `xorm:" INT(10)"`
 	Product           string    `xorm:"comment('产品名称') VARCHAR(50)"`
 	Specifications    string    `xorm:"comment('规格型号') VARCHAR(50)"`
 	SamplingBase      int       `xorm:"comment('抽样基数') INT(10)"`

+ 221 - 1
src/dashoo.cn/backend/api/business/limspipedrillpipe/limspipedrillpipeService.go

@@ -1,8 +1,16 @@
 package limspipedrillpipe
 
 import (
-	"github.com/go-xorm/xorm"
+	"dashoo.cn/backend/api/business/limsdataentry"
 	. "dashoo.cn/backend/api/mydb"
+	"dashoo.cn/utils"
+	"github.com/360EntSecGroup-Skylar/excelize"
+	"github.com/go-xorm/xorm"
+	. "github.com/linxGnu/goseaweedfs"
+	"os"
+	"strconv"
+	"strings"
+	"time"
 )
 
 type LimsPipeDrillPipeService struct {
@@ -14,3 +22,215 @@ func GetLimsPipeDrillPipeService(xormEngine *xorm.Engine) *LimsPipeDrillPipeServ
 	s.DBE = xormEngine
 	return s
 }
+
+/**
+ * 数据录入导出
+ */
+func (s *LimsPipeDrillPipeService) DocDataToExcel(entrustMainEntity limsdataentry.DataEntryEntrustModel, dataentrymainlist limsdataentry.LimsDateEntry, LimsPipeDrillPipeName string, seqStr string, retUrl string) (reportUrl string, err error) {
+	var dataentrylist []LimsPipeDrillPipe
+	s.GetEntitysByWhere(LimsPipeDrillPipeName, " DataEntryId='"+utils.ToStr(dataentrymainlist.Id)+"'", &dataentrylist)
+	//模板下载到服务器
+	_dir := utils.Cfg.MustValue("file", "tmplateDir") + utils.ToStr(dataentrymainlist.Id)
+	fileurl := strings.Split(retUrl, "|")
+	utils.DownloadFile("http://"+fileurl[0], fileurl[1], _dir)
+
+	xlsx, err := excelize.OpenFile(utils.Cfg.MustValue("file", "tmplateDir") + utils.ToStr(dataentrymainlist.Id) + "/" + fileurl[1])
+	if err != nil {
+		utils.LogError(err)
+		return "", err
+	}
+	tmpDocName := utils.ToStr(dataentrymainlist.Id) + "_" + strconv.Itoa(time.Now().Nanosecond()) + ".xlsx"
+	//提前生成文件在服务器的存储路径
+	_pdir := utils.Cfg.MustValue("file", "docDir") + utils.ToStr(dataentrymainlist.Id) + "/"
+	exist, _ := utils.PathExists(_pdir)
+	var dirErr error
+	if !exist {
+		dirErr = os.Mkdir(_pdir, os.ModePerm)
+	}
+	if dirErr != nil {
+		utils.LogError(err)
+		return "", dirErr
+	}
+	excelrow := 16
+	var copysheetssnum = 1
+	if (len(dataentrylist) > excelrow) {
+		if (len(dataentrylist)%excelrow > 0) {
+			copysheetssnum = len(dataentrylist)/excelrow + 1
+		} else {
+			copysheetssnum = len(dataentrylist) / excelrow
+		}
+		sheetIdx := 3
+		for i := 1; i < copysheetssnum; i++ {
+			xlsx.NewSheet(1+sheetIdx, "Sheet"+strconv.Itoa(1+sheetIdx))
+			err = xlsx.CopySheet(1, 1+sheetIdx)
+			xlsx.NewSheet(2+sheetIdx, "Sheet"+strconv.Itoa(2+sheetIdx))
+			err = xlsx.CopySheet(2, 2+sheetIdx)
+			xlsx.NewSheet(3+sheetIdx, "Sheet"+strconv.Itoa(3+sheetIdx))
+			// index := xlsx.NewSheet("Sheet" + strconv.Itoa(sheetIdx))
+			err = xlsx.CopySheet(3, 3+sheetIdx)
+			sheetIdx += 3
+		}
+	}
+	sheetIdx1 := 1
+	sheetIdx2 := 2
+	sheetIdx3 := 3
+	startIdx := 0
+	for  i := 0; i < copysheetssnum; i++ {
+		step := 0
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "C5", dataentrymainlist.Product)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "L5", dataentrymainlist.Spec)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "C7", dataentrymainlist.SamplingBase)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "L7", dataentrymainlist.Spec)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "C43", dataentrymainlist.Appearance)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "C45", dataentrymainlist.Remark)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "C5", dataentrymainlist.Product)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "H5", dataentrymainlist.Spec)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "C7", dataentrymainlist.SamplingBase)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "H7", dataentrymainlist.Spec)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "C43", dataentrymainlist.Appearance)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "C45", dataentrymainlist.Remark)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "C5", dataentrymainlist.Product)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "K5", dataentrymainlist.Spec)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "C7", dataentrymainlist.SamplingBase)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "K7", dataentrymainlist.Spec)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "C43", dataentrymainlist.Appearance)
+		xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "C45", dataentrymainlist.Remark)
+
+
+		for ; startIdx < (len(dataentrylist)); startIdx++ {
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "A"+strconv.Itoa(11+step), dataentrylist[i].SampleNumber)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "B"+strconv.Itoa(11+step), dataentrylist[i].CloseDistanceOut)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "C"+strconv.Itoa(11+step), dataentrylist[i].CloseDistanceIn)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "D"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceOut)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "E"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceOut)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "F"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceIn)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "G"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceIn)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "H"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceOut)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "I"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceOut)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "J"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceIn)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "K"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceIn)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "L"+strconv.Itoa(11+step), dataentrylist[i].ShoulderSurface)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "N"+strconv.Itoa(11+step), dataentrylist[i].EndFace)
+
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "A"+strconv.Itoa(11+step), dataentrylist[i].SampleNumber)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "B"+strconv.Itoa(11+step), dataentrylist[i].TubeDiameter)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "C"+strconv.Itoa(11+step), dataentrylist[i].TubeDiameter)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "D"+strconv.Itoa(11+step), dataentrylist[i].LPC)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "E"+strconv.Itoa(11+step), dataentrylist[i].DF)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "F"+strconv.Itoa(11+step), dataentrylist[i].QC)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "G"+strconv.Itoa(11+step), dataentrylist[i].LPB)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "H"+strconv.Itoa(11+step), dataentrylist[i].LB)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "I"+strconv.Itoa(11+step), dataentrylist[i].TubeLength)
+
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "A"+strconv.Itoa(11+step), dataentrylist[i].SampleNumber)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "B"+strconv.Itoa(11+step), dataentrylist[i].InnerDiameter)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "C"+strconv.Itoa(11+step), dataentrylist[i].WallThickness)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "D"+strconv.Itoa(11+step), dataentrylist[i].WallThickness)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "E"+strconv.Itoa(11+step), dataentrylist[i].WallThickness)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "F"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterM)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "G"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterM)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "H"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterF)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "I"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterF)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "J"+strconv.Itoa(11+step), dataentrylist[i].WallDifF)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "K"+strconv.Itoa(11+step), dataentrylist[i].WallDifM)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "L"+strconv.Itoa(11+step), dataentrylist[i].OuterDiameterF)
+			xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "M"+strconv.Itoa(11+step), dataentrylist[i].OuterDiameterM)
+			step+=2
+			if (startIdx+1)%excelrow == 0 {
+				sheetIdx1 = sheetIdx1 + 3
+				sheetIdx2 = sheetIdx2 + 3
+				sheetIdx3 = sheetIdx3 + 3
+				startIdx++
+				step = 0
+				break
+			}
+		}
+	}
+
+	//xlsx.SetCellValue("Sheet1", "C5", dataentrymainlist.Product)
+	//xlsx.SetCellValue("Sheet1", "L5", dataentrymainlist.Spec)
+	//xlsx.SetCellValue("Sheet1", "C7", dataentrymainlist.SamplingBase)
+	//xlsx.SetCellValue("Sheet1", "L7", dataentrymainlist.Spec)
+	//xlsx.SetCellValue("Sheet1", "C43", dataentrymainlist.Appearance)
+	//xlsx.SetCellValue("Sheet1", "C45", dataentrymainlist.Remark)
+	//xlsx.SetCellValue("Sheet2", "C5", dataentrymainlist.Product)
+	//xlsx.SetCellValue("Sheet2", "H5", dataentrymainlist.Spec)
+	//xlsx.SetCellValue("Sheet2", "C7", dataentrymainlist.SamplingBase)
+	//xlsx.SetCellValue("Sheet2", "H7", dataentrymainlist.Spec)
+	//xlsx.SetCellValue("Sheet2", "C43", dataentrymainlist.Appearance)
+	//xlsx.SetCellValue("Sheet2", "C45", dataentrymainlist.Remark)
+	//xlsx.SetCellValue("Sheet3", "C5", dataentrymainlist.Product)
+	//xlsx.SetCellValue("Sheet3", "K5", dataentrymainlist.Spec)
+	//xlsx.SetCellValue("Sheet3", "C7", dataentrymainlist.SamplingBase)
+	//xlsx.SetCellValue("Sheet3", "K7", dataentrymainlist.Spec)
+	//xlsx.SetCellValue("Sheet3", "C43", dataentrymainlist.Appearance)
+	//xlsx.SetCellValue("Sheet3", "C45", dataentrymainlist.Remark)
+	//sheetIdx1 := 1
+	//sheetIdx2 := 2
+	//sheetIdx3 := 3
+	//step := 0
+	//for i := 0; i < (len(dataentrylist)); i++ {
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "A"+strconv.Itoa(11+step), dataentrylist[i].SampleNumber)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "B"+strconv.Itoa(11+step), dataentrylist[i].CloseDistanceOut)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "C"+strconv.Itoa(11+step), dataentrylist[i].CloseDistanceIn)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "D"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceOut)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "E"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceOut)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "F"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceIn)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "G"+strconv.Itoa(11+step), dataentrylist[i].TaperToleranceIn)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "H"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceOut)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "I"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceOut)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "J"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceIn)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "K"+strconv.Itoa(11+step), dataentrylist[i].PitchToleranceIn)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "L"+strconv.Itoa(11+step), dataentrylist[i].ShoulderSurface)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx1), "N"+strconv.Itoa(11+step), dataentrylist[i].EndFace)
+	//
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "A"+strconv.Itoa(11+step), dataentrylist[i].SampleNumber)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "B"+strconv.Itoa(11+step), dataentrylist[i].TubeDiameter)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "C"+strconv.Itoa(11+step), dataentrylist[i].TubeDiameter)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "D"+strconv.Itoa(11+step), dataentrylist[i].LPC)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "E"+strconv.Itoa(11+step), dataentrylist[i].DF)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "F"+strconv.Itoa(11+step), dataentrylist[i].QC)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "G"+strconv.Itoa(11+step), dataentrylist[i].LPB)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "H"+strconv.Itoa(11+step), dataentrylist[i].LB)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx2), "I"+strconv.Itoa(11+step), dataentrylist[i].TubeLength)
+	//
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "A"+strconv.Itoa(11+step), dataentrylist[i].SampleNumber)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "B"+strconv.Itoa(11+step), dataentrylist[i].InnerDiameter)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "C"+strconv.Itoa(11+step), dataentrylist[i].WallThickness)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "D"+strconv.Itoa(11+step), dataentrylist[i].WallThickness)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "E"+strconv.Itoa(11+step), dataentrylist[i].WallThickness)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "F"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterM)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "G"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterM)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "H"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterF)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "I"+strconv.Itoa(11+step), dataentrylist[i].JointDiameterF)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "J"+strconv.Itoa(11+step), dataentrylist[i].WallDifF)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "K"+strconv.Itoa(11+step), dataentrylist[i].WallDifM)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "L"+strconv.Itoa(11+step), dataentrylist[i].OuterDiameterF)
+	//	xlsx.SetCellValue("Sheet"+strconv.Itoa(sheetIdx3), "M"+strconv.Itoa(11+step), dataentrylist[i].OuterDiameterM)
+	//	step+=2
+	//	if (i+1)%excelrow == 0 {
+	//		sheetIdx1 = sheetIdx1 + 3
+	//		sheetIdx2 = sheetIdx2 + 3
+	//		sheetIdx3 = sheetIdx3 + 3
+	//		step = 0
+	//	}
+	//}
+
+	//4. 将文件保存到服务器相关目录上
+	xlsx.SaveAs(utils.Cfg.MustValue("file", "docDir") + utils.ToStr(dataentrymainlist.Id) + "/" + tmpDocName)
+
+	//5. 上传文件到文件服务器
+	DocFilePath := utils.Cfg.MustValue("file", "docDir") + utils.ToStr(dataentrymainlist.Id) + "/" + tmpDocName
+	var sw *Seaweed
+	var filer []string
+	if _filer := os.Getenv("GOSWFS_FILER_URL"); _filer != "" {
+		filer = []string{_filer}
+	}
+	sw = NewSeaweed("http", utils.Cfg.MustValue("file", "upFileHost"), filer, 2*1024*1024, 5*time.Minute)
+	_, _, fID, err := sw.UploadFile(DocFilePath, "", "")
+	retDocUrl := utils.Cfg.MustValue("file", "downFileHost") + "/" + fID
+	//6. 删除本地文件,释放空间
+	os.Remove(DocFilePath)
+	//7. 保存住报告URL(由controller层调用生成或修改生成报告记录)
+	return retDocUrl, err
+}

+ 10 - 0
src/dashoo.cn/backend/api/controllers/lims/limsdataentry.go

@@ -1,6 +1,7 @@
 package lims
 
 import (
+	"dashoo.cn/backend/api/business/limspipedrillpipe"
 	"encoding/base64"
 	"encoding/json"
 	"errors"
@@ -2433,6 +2434,15 @@ func (this *LimsDataEntryController) exportdatatoexcel(fileurl string, dataentry
 			DocUrl = ""
 			err = errors.New("")
 		}
+	case limsdoctemplate.DAYT_PIPEDRILLPIPE_DETAIL:
+		//seqStr := codecSvc.GetReportLeakProtectSequence(this.User.AccCode)
+		svc := limspipedrillpipe.GetLimsPipeDrillPipeService(utils.DBE)
+		//检测结论
+		//err = svc.GetTestCheck(this.User.AccCode+LimsReportLeakProtectName, dataentrylist.Id)
+		//获取校核人签名
+		//var userlist limsdataentry.UserModel
+		//svc.GetEntityByWhere(BaseUserName, "Id = '"+utils.ToStr(dataentrylist.JHUserId)+"'", &userlist)
+		DocUrl, err = svc.DocDataToExcel(entrustlist[0], dataentrylist, this.User.AccCode+LimsPipeDrillPipeName, "", fileurl)
 	}
 	return DocUrl, err
 }

+ 18 - 1
src/dashoo.cn/backend/api/controllers/limswzjys/limspipedrillpipe.go

@@ -35,6 +35,9 @@ func (this *LimsPipeDrillPipeController) GetEntityList() {
 		}
 	}
 	Id := this.GetString("Id")
+	EId := this.GetString("EId")
+	TaskBalanceId := this.GetString("TaskBalanceId")
+	DataEntryId := this.GetString("DataEntryId")
 	Product := this.GetString("Product")
 	Specifications := this.GetString("Specifications")
 	SamplingBase := this.GetString("SamplingBase")
@@ -77,9 +80,20 @@ func (this *LimsPipeDrillPipeController) GetEntityList() {
 	ModifiedBy := this.GetString("ModifiedBy")
 
 	if Id != "" {
-		where = where + " and Id like '%" + Id + "%'"
+		where = where + " and Id =" + Id
 	}
 
+	if EId != "" {
+		where = where + " and EId =" + EId
+	}
+
+	if TaskBalanceId != "" {
+		where = where + " and TaskBalanceId =" + TaskBalanceId
+	}
+
+	if DataEntryId != "" {
+		where = where + " and DataEntryId =" + DataEntryId
+	}
 
 	if Product != "" {
 		where = where + " and Product like '%" + Product + "%'"
@@ -399,6 +413,9 @@ func (this *LimsPipeDrillPipeController) UpdateEntity() {
 	cols := []string{
 
 		"Id",
+		"EId",
+		"TaskBalanceId",
+		"DataEntryId",
 		"Product",
 		"Specifications",
 		"SamplingBase",

+ 7 - 0
src/dashoo.cn/frontend_web/src/pages/lims/dataentry/tacktodo.vue

@@ -932,6 +932,13 @@
               query: queryParams
             })
             break
+          // 石油专用管材钻杆
+          case 'DAYT.PipeDrillPipe.Detail':
+            this.$router.push({
+              path: '/lims/wzjys/reportpipedrillpipe/datalist',
+              query: queryParams
+            })
+            break
           default:
             this.$message.warning('无模板类型相匹配,请重试')
         }

+ 190 - 24
src/dashoo.cn/frontend_web/src/pages/lims/wzjys/reportpipedrillpipe/_opera/datalist.vue

@@ -487,7 +487,44 @@
         <el-button size="mini" type="primary" @click="handleSearch">查 询</el-button>
       </span>
     </el-dialog>
-
+    <el-dialog title="提交校核" :visible.sync="ProoFreadShow" top="5vh">
+      <el-form :model="shenhesubmitForm" label-width="130px" ref="shenhesubmitForm">
+        <el-row>
+          <el-form-item label="校核人" prop="AuthorUser">
+            <el-select ref="consigneeselect" v-model="shenhesubmitForm.AuditorUserId" placeholder="请选择校核人" style="width: 100%;">
+              <el-option v-for="item in acceptUsers" :key="item.id" :label="item.realname" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label="说明">
+            <el-input type="textarea" v-model="shenhesubmitForm.AuditorRemark" placeholder="请输入说明"></el-input>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer" style="margin-top: -25px">
+        <el-button size="small" @click="ProoFreadShow = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="makesure()">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="校核信息" :visible.sync="jiaoheshow" top="5vh">
+      <el-form :model="jiaoheForm" label-width="130px" ref="jiaoheForm">
+        <el-form-item label="校核状态">
+          <template>
+            <el-radio class="radio" v-model="jiaoheForm.SuccessStatus" :label="2">校核通过</el-radio>
+            <el-radio class="radio" v-model="jiaoheForm.SuccessStatus" :label="3">校核未通过</el-radio>
+          </template>
+        </el-form-item>
+        <el-form-item label="说明">
+          <el-input type="textarea" v-model="jiaoheForm.AuditorRemark" placeholder="请输入校核说明"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer" style="margin-top: -25px">
+        <el-button size="small" @click="jiaoheshow = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="jiaohemakesure()">确 定</el-button>
+      </div>
+    </el-dialog>
     <data-opera ref="DataoperaCompoment" :DataEntryId="DataEntryId+''" :TaskBalanceId="TaskBalanceId+''" :EId="EId+''"
       @init-data="initDatas"></data-opera>
 
@@ -510,11 +547,19 @@
     components: {
       DataOpera
     },
-    data() {
+    data () {
       return {
         dialogVisible: false,
-        activeName: '1',
+        Id: '',
+        EId: '',
+        TaskBalanceId: '',
+        DataEntryId: '',
+        ProoFreadShow: false,
+        jiaoheshow: false,
+        sign: '2',
+        ischeck: 0,
         DataStatus: 0,
+        acceptUsers: [],
         // 列表数据
         entityList: [],
         // 分页参数
@@ -527,6 +572,7 @@
           Prop: ''
         },
         formDataMain: {
+          Id: '',
           Product: '',
           Spec: '',
           SamplingBase: '',
@@ -541,6 +587,7 @@
         searchFormReset: {},
         searchForm: {
           Id: '',
+          DataEntryId: '',
           Product: '',
           Specifications: '',
           SamplingBase: '',
@@ -580,14 +627,26 @@
           ModifiedOn: '',
           ModifiedUserId: '',
           ModifiedBy: ''
+        },
+        // 校核提交
+        shenhesubmitForm: {
+          AuditorUserId: '',
+          DataEntryId: '',
+          SuccessStatus: 1,
+          AuditorRemark: ''
+        },
+        jiaoheForm: {
+          SuccessStatus: 2,
+          AuditorRemark: '',
+          DataEntryId: 0
         }
       }
     },
-    created() {
+    created () {
       this.EId = this.$route.query.eid
       this.TaskBalanceId = this.$route.query.tbid
       this.DataEntryId = this.$route.query.deid
-      this.DataStatus = 0 // parseInt(this.$route.query.datastatus)
+      this.DataStatus = parseInt(this.$route.query.datastatus)
       this.DataDocId = this.$route.query.datadocId
       this.sign = this.$route.query.sign
       this.ischeck = this.$route.query.ischeck
@@ -596,10 +655,11 @@
       // 查询列表
       this.getDataEntry()
       this.initDatas()
+      this.getUsersByRole()
       // this.getDictOptions()
     },
     methods: {
-      saveMainInfo() {
+      saveMainInfo () {
         this.$refs['formDataMain'].validate((valid) => {
           if (valid) {
             this.$axios.post('/limsdataentry/updateEntity/' + this.DataEntryId, this.formDataMain).then(res => {
@@ -621,7 +681,7 @@
           }
         })
       },
-      getDataEntry() {
+      getDataEntry () {
         this.$axios.get('/limsdataentry/getdataentry/' + this.DataEntryId).then(res => {
           this.formDataMain = res.data
           // this.params.Id = res.data.Id
@@ -629,10 +689,10 @@
           console.log(error)
         })
       },
-      getDataHistory() {
+      getDataHistory () {
 
       },
-      initDatas() {
+      initDatas () {
         // 分页及列表条件
         let params = {
           _currentPage: this.currentPage,
@@ -650,8 +710,10 @@
         //   myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
         // }
         // 查询条件
+        this.searchForm.DataEntryId = this.DataEntryId
         Object.assign(params, this.searchForm)
         // 访问接口
+        console.log(params, 'params')
         api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
@@ -659,17 +721,122 @@
           console.error(err)
         })
       },
-      addDataEntity() {
+      addDataEntity () {
         // 刷新子列表
         this.$refs['DataoperaCompoment'].resetFormData()
         this.$refs['DataoperaCompoment'].dialogVisible = true
       },
 
-      setProoFreadShow() {
-
+      // 获取校核人列表
+      getUsersByRole () {
+        // request
+        this.$axios.get('/limsdataentry/getuserlistbyjhrole/', {})
+          .then(res => {
+            if (res.data instanceof Array && res.data.length > 0) {
+              this.acceptUsers = res.data
+            }
+          })
+          .catch(err => {
+            // handle error
+            console.error(err)
+          })
+      },
+      setProoFreadShow () {
+        // if (this.formData.PositionCheckId === '') {
+        //   this.$message.warning('检测地点为空,不允许提交!')
+        //   return
+        // }
+        this.ProoFreadShow = true
+      },
+      // 打开校核弹窗
+      jiaoheshowdialog () {
+        this.jiaoheForm.DataEntryId = this.DataEntryId
+        this.jiaoheshow = true
+      },
+      checkstatus () {
+        this.shenhesubmitForm.SuccessStatus = 1
+        this.shenhesubmitForm.DataEntryId = parseInt(this.DataEntryId)
+        let params = this.shenhesubmitForm
+        this.$axios.put('/limsdataentry/checksubmit/', params)
+          .then(res => {
+            // response
+            if (res.data.code === 0) {
+              this.$message({
+                type: 'success',
+                message: res.data.message
+
+              })
+              this.DataStatus = 1
+              // this.initDatas()
+            } else {
+              this.$message({
+                type: 'warning',
+                message: '校核提交错误!'
+              })
+            }
+          })
+          .catch(err => {
+            // handle error
+            console.error(err)
+          })
+      },
+      // 提交校核
+      makesure () {
+        console.log(this.formDataMain.Id, '====')
+        if (!this.formDataMain.Id || this.formDataMain.Id < 0) {
+          this.$message.warning('没有保存,不能提交!')
+          return
+        }
+        this.$confirm('确定提交校核!', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        })
+          .then(() => {
+            this.ProoFreadShow = false
+            console.log('1')
+            this.checkstatus()
+          })
+          .catch(() => {})
+      },
+      jiaohecheckstatus () {
+        let params = this.jiaoheForm
+        this.$axios.put('/limsdataentry/jiaohe/', params)
+          .then(res => {
+            // response
+            if (res.data.code === 0) {
+              this.ischeck = '0'
+              this.$message({
+                type: 'success',
+                message: res.data.message
+              })
+              // this.initdata2()
+            } else {
+              this.$message({
+                type: 'warning',
+                message: '校核错误,请先确定您已经录入内容并且录入的内容已经保存'
+              })
+            }
+          })
+          .catch(err => {
+            // handle error
+            console.error(err)
+          })
+      },
+      jiaohemakesure () {
+        this.$confirm('确认校核!', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        })
+          .then(() => {
+            this.jiaoheshow = false
+            this.jiaohecheckstatus()
+          })
+          .catch(() => {})
       },
 
-      getDictOptions() {
+      getDictOptions () {
         api.getDictList(this.$axios).then(res => {
 
         }).catch(err => {
@@ -677,7 +844,7 @@
         })
       },
 
-      searchCommand(command) {
+      searchCommand (command) {
         if (command === 'search') {
           this.dialogVisible = true
         } else if (command === 'clear') {
@@ -685,7 +852,7 @@
         }
       },
       // 列表排序功能
-      orderby(column) {
+      orderby (column) {
         if (column.order === 'ascending') {
           this.Column.Order = 'asc'
         } else if (column.order === 'descending') {
@@ -694,27 +861,27 @@
         this.Column.Prop = column.prop
         this.initDatas()
       },
-      clearSearch() {
+      clearSearch () {
         Object.assign(this.searchForm, this.searchFormReset)
         // this.searchForm = this.searchFormReset;
         this.CreateOn = ''
         this.initDatas()
       },
-      handleSearch() {
+      handleSearch () {
         this.currentPage = 1
         this.dialogVisible = false
         this.initDatas()
       },
-      handleCurrentChange(value) {
+      handleCurrentChange (value) {
         this.currentPage = value
         this.initDatas()
       },
-      handleSizeChange(value) {
+      handleSizeChange (value) {
         this.size = value
         this.currentPage = 1
         this.initDatas()
       },
-      deleteEntity(row) {
+      deleteEntity (row) {
         row.deleteConfirmFlag = false
         api.deleteEntity(row.Id, this.$axios).then(res => {
           if (res.data.code === 0) {
@@ -733,12 +900,12 @@
           console.error(err)
         })
       },
-      EditEntity(row) {
+      EditEntity (row) {
         this.$refs['DataoperaCompoment'].subListEditEntity(row.Id)
         this.$refs['DataoperaCompoment'].dialogVisible = true
       },
 
-      jstimehandle(val) {
+      jstimehandle (val) {
         if (val === '') {
           return '----'
         } else if (val === '0001-01-01T08:00:00+08:00') {
@@ -751,7 +918,7 @@
         }
       },
 
-      formatDateTime(date) {
+      formatDateTime (date) {
         var y = date.getFullYear()
         var m = date.getMonth() + 1
         m = m < 10 ? ('0' + m) : m
@@ -764,7 +931,6 @@
       }
     }
   }
-
 </script>
 
 <style lang="scss">

+ 18 - 14
src/dashoo.cn/frontend_web/src/pages/lims/wzjys/reportpipedrillpipe/_opera/operation.vue

@@ -223,7 +223,7 @@
       DataEntryId: String
     },
 
-    data() {
+    data () {
       return {
         saveBtnName: '新增',
         continueInsertChecked: false,
@@ -232,6 +232,9 @@
         historyData: {},
         formData: {
           Id: '',
+          EId: '',
+          TaskBalanceId: '',
+          DataEntryId: '',
           Product: '',
           Specifications: '',
           SamplingBase: '',
@@ -274,7 +277,7 @@
         }
       }
     },
-    created() {
+    created () {
       this.getDictOptions()
 
       if (this.serviceId > 0) {
@@ -291,7 +294,7 @@
       Object.assign(this.historyData, this.formData)
     },
     methods: {
-      initDatas() {
+      initDatas () {
         if (this.formData.Id) {
           api.getEntity(this.formData.Id, this.$axios).then(res => {
             console.log('initDatas')
@@ -305,7 +308,7 @@
           })
         }
       },
-      resetFormData() {
+      resetFormData () {
         Object.assign(this.formData, this.historyData)
         this.saveBtnName = '新增'
         this.formData.Id = 0
@@ -313,7 +316,7 @@
         this.formData.TaskBalanceId = this.TaskBalanceId
         this.formData.DataEntryId = this.DataEntryId
       },
-      subListEditEntity(entityId) {
+      subListEditEntity (entityId) {
         this.serviceId = entityId
         this.formData.Id = this.serviceId
         this.saveBtnName = '修改' // 修改
@@ -321,7 +324,7 @@
         this.initDatas()
       },
 
-      getDictOptions() {
+      getDictOptions () {
         api.getDictList(this.$axios).then(res => {
 
         }).catch(err => {
@@ -330,9 +333,11 @@
       },
 
       // 保存信息
-      saveEntity() {
-        console.log(this.formData, '===========')
+      saveEntity () {
         this.$refs['EntityForm'].validate((valid) => {
+          this.formData.EId = parseInt(this.formData.EId)
+          this.formData.DataEntryId = parseInt(this.formData.DataEntryId)
+          this.formData.TaskBalanceId = parseInt(this.formData.TaskBalanceId)
           if (valid) {
             if (!this.formData.Id) {
               this.addEntity()
@@ -344,7 +349,7 @@
           }
         })
       },
-      addEntity() {
+      addEntity () {
         api.addEntity(this.formData, this.$axios).then(res => {
           if (res.data.code === 0) {
             // 保存成功后,初始化数据,变成修改
@@ -365,7 +370,7 @@
           console.error(err)
         })
       },
-      updateEntity() {
+      updateEntity () {
         api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
           if (res.data.code === 0) {
             // 保存成功后,初始化数据,变成修改
@@ -384,11 +389,11 @@
           console.error(err)
         })
       },
-      continueInsertChange() {
+      continueInsertChange () {
         this.formData.Id = 0
         this.saveBtnName = '新增'
       },
-      jstimehandle(val) {
+      jstimehandle (val) {
         if (val === '') {
           return '----'
         } else if (val === '0001-01-01T08:00:00+08:00') {
@@ -401,7 +406,7 @@
         }
       },
 
-      formatDateTime(date) {
+      formatDateTime (date) {
         var y = date.getFullYear()
         var m = date.getMonth() + 1
         m = m < 10 ? ('0' + m) : m
@@ -414,7 +419,6 @@
       }
     }
   }
-
 </script>
 
 <style lang="scss">