package controllers

import (
	"XT_New/enums"
	"XT_New/models"
	"XT_New/service"
	"encoding/json"
	"fmt"
	"os"
	"path"
	"runtime"
	"strconv"
	"strings"
	"time"

	"github.com/astaxie/beego"
)

type PublicApiController struct {
	BaseAPIController
}

//var f_a *os.File
//
//
//	func init() {
//		org_id, _ := beego.AppConfig.Int64("org_id")
//		miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
//		Mkdir(miConfig.OrgName+"日志")
//		month := time.Unix(1557042972, 0).Format("1")
//		year := time.Now().Format("2006")
//		month = time.Now().Format("01")
//		day := time.Now().Format("02")
//		file := strconv.FormatInt( org_id, 10) + "_"+ year + month + day + "_log"
//		file_name := file + ".txt"
//		file_path := miConfig.OrgName+"日志" + "/" + file_name
//		exist, _ := PathExists(file_path)
//		if exist {//存在
//			f_a, _ := os.OpenFile(file_path,os.O_WRONLY,0644)
//			content := "新的日志内容吧"
//			n, _ := f_a.Seek(0,2)
//			f_a.WriteAt([]byte(content),n)
//
//		} else { //不存在
//			fmt.Println("文件不存在,创建文件")
//			f, err := os.Create(miConfig.OrgName+"日志" + "/" + file_name)
//			defer f.Close()
//			if err !=nil {
//			} else {
//				_,err=f.Write([]byte("记录日志"))
//			}
//		}
//
//	}

func PublicApiRegistRouters() {
	beego.Router("/api/public/getadviceconfig", &PublicApiController{}, "Get:GetDoctorAdviceConfig")
	beego.Router("/api/public/servertime", &PublicApiController{}, "Get:GetServerTime")
	beego.Router("/api/app/release", &PublicApiController{}, "Get:AppRelease")
	beego.Router("/api/get", &PublicApiController{}, "Get:GetJson")
	beego.Router("/api/public/handledata", &PublicApiController{}, "get:HandleData")
	beego.Router("/api/public/handlestockdata", &PublicApiController{}, "get:HandleStockData")
	beego.Router("/api/public/handlecomdata", &PublicApiController{}, "get:HandleComData")
	beego.Router("/hello", &PublicApiController{}, "get:HandleComData")
	beego.Router("/handel", &PublicApiController{}, "get:HandleHIS")
	beego.Router("/groupno", &PublicApiController{}, "get:HandleGroupNo")
	beego.Router("/handle10215", &PublicApiController{}, "get:Handle10215")
	beego.Router("/handelOrder", &PublicApiController{}, "get:HandleOrder")
	beego.Router("/handelHis", &PublicApiController{}, "get:HandleHisTwo")
	beego.Router("/handelProject", &PublicApiController{}, "get:HandleProject")
	beego.Router("/handelsettledata", &PublicApiController{}, "get:HandleSettleData")
	beego.Router("/handelhispatient", &PublicApiController{}, "get:HandleHisPatient")
	//beego.Router("/handelOrder", &PublicApiController{}, "get:HandleOrder")
	beego.Router("/handleExportData", &PublicApiController{}, "get:HandleExportAllData")
	beego.Router("/handleExportData10138", &PublicApiController{}, "get:HandleExportData10138")

	beego.Router("/handleData10265", &PublicApiController{}, "get:HandleData10265")
	beego.Router("/handleData10265two", &PublicApiController{}, "get:HandleData10265two")

	beego.Router("/handleData10106", &PublicApiController{}, "get:HandleData10106")
	beego.Router("/handleData10318", &PublicApiController{}, "get:HandleData10318")

	beego.Router("/handleOne", &PublicApiController{}, "get:HandleOne")

	beego.Router("/handelschedule", &PublicApiController{}, "get:HandleSchedule")
	//beego.Router("/handelscheduleTwo", &PublicApiController{}, "get:HandleScheduleTwo")
	//
	//
	//
	//beego.Router("/handelhispatienttwo", &PublicApiController{}, "get:HandleHisPatientTwo")

	//beego.Router("/handleorderinfo", &PublicApiController{}, "get:HandleOrderInfoData")
	//
	//beego.Router("/hande10138", &PublicApiController{}, "get:HandleOrderInfoData10138")
	//935887
	beego.Router("/handle10210", &PublicApiController{}, "get:Handle10210")
	beego.Router("/handle10210", &PublicApiController{}, "get:Handle10210")
	//beego.Router("/handle10028", &PublicApiController{}, "get:Handle10028")
	beego.Router("/handleTeamData", &PublicApiController{}, "get:HandleTeamData")

	beego.Router("/handleHisPatientTwo", &PublicApiController{}, "get:HandleHisPatientTwo")

}
func (c *PublicApiController) Handlelldata() {
	//service.GetOrderInfoBytime
}

func (c *PublicApiController) HandleTeamData() {

	teams, _ := service.GetAllProjectTeam(10191)
	var hisProjectList []*models.XtHisProjectList
	for _, item := range teams {
		ids := strings.Split(item.ItemId, ",")
		project, _ := service.GetProjectHisListByIds(ids)
		for _, sp := range project {
			sp.PN = item.ProjectTeam
		}
		hisProjectList = append(hisProjectList, project...)
	}
	c.ServeSuccessJSON(map[string]interface{}{
		"ps": hisProjectList,
	})
}

type ResultFiveT struct {
	Balc                   float64 `json:"balc"`
	CvlservFlag            string  `json:"cvlserv_flag"`
	EmpName                string  `json:"emp_name"`
	InsuplcAdmdvs          string  `json:"insuplc_admdvs"`
	Insutype               string  `json:"insutype"`
	PausInsuDansuplcAdmdvs string  `json:"paus_insu_dansuplc_admdvs"`
	PausInsuDate           string  `json:"paus_insu_date"`
	PsnInsuDate            string  `json:"psn_insu_date"`
	PsnInsuStas            string  `json:"psn_insu_stas"`
	PsnType                string  `json:"psn_type"`
}

func (c *PublicApiController) HandleSchedule() {
	//fmt.Println("~~~~~~")
	service.GetLongSolution()

}

//func (c *PublicApiController) Handle10028() {
//	HisPrescriptionTemplates, _ := service.GetHisPrescriptionTemplatesListTwo()
//	for _, item := range HisPrescriptionTemplates {
//		prescription, _ := service.GetHisPrescriptionTemplatetwo(item.ID)
//		for _, subitem := range prescription {
//			subitem.Status = 1
//			service.CreateHisPrescriptionInfoTemplate(subitem)
//		}
//	}
//
//}

func (c *PublicApiController) Handle10210() {

	doctor_advices, _ := service.GetHisDoctorAdviceInfothree(10210, 1683561600)
	for _, item := range doctor_advices {
		strs := strings.Split(item.FeedetlSn, "-")
		news := strs[0] + "-" + strs[1] + "-" + strconv.FormatInt(item.ID, 10)
		item.FeedetlSn = news
		service.SaveHisDoctorAdvice(item)
	}

	projects, _ := service.GetHisPrescriptionProjectByIDFour(10210, 1683561600)
	for _, item := range projects {
		strs := strings.Split(item.FeedetlSn, "-")
		news := strs[0] + "-" + strs[1] + "-" + strconv.FormatInt(item.ID, 10)
		item.FeedetlSn = news
		service.SaveHisProject(item)
	}

	//doctor, _ := service.GetHisDoctorAdviceInfotwo(935886)
	//index := 0
	//total := 100
	//for index = 0; index < total; index++ {
	//	doctor.ID = 0
	//	service.SaveHisDoctorAdvice(&doctor)
	//}

	//doctor2, _ := service.GetHisDoctorAdviceInfotwo(935887)
	//index2 := 0
	//total2 := 100
	//for index2 = 0; index2 < total2; index2++ {
	//	doctor2.ID = 0
	//	service.SaveHisDoctorAdvice(&doctor2)
	//}

	//p, _ := service.GetHisPrescriptionProjectByID(2242486)
	//index3 := 0
	//total3 := 50
	//for index3 = 0; index3 < total3; index3++ {
	//	p.ID = 0
	//	service.SaveHisProject(&p)
	//}

	//p2, _ := service.GetHisPrescriptionProjectByIDThree(2242487)
	//index4 := 0
	//total4 := 100
	//for index4 = 0; index4 < total4; index4++ {
	//	p2.ID = 0
	//	service.SaveHisProject(&p2)
	//}
	//
	//p3, _ := service.GetHisPrescriptionProjectByIDThree(2242488)
	//index5 := 0
	//total5 := 100
	//for index5 = 0; index5 < total5; index5++ {
	//	p3.ID = 0
	//	service.SaveHisProject(&p3)
	//}
	//
	//p4, _ := service.GetHisPrescriptionProjectByIDThree(2242489)
	//index6 := 0
	//total6 := 100
	//for index6 = 0; index6 < total6; index6++ {
	//	p4.ID = 0
	//	service.SaveHisProject(&p4)
	//}
}

func (c *PublicApiController) HandleOne() {
	//fmt.Println("~~~~~~")
	//start_time := c.GetString("start_time")
	//end_time := c.GetString("end_time")
	//
	//timeLayout := "2006-01-02"
	//loc, _ := time.LoadLocation("Local")
	//startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	//if err != nil {
	//}
	//startRecordDateTime := startTime.Unix()
	//endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	//if err != nil {
	//}
	//endRecordDateTime := endTime.Unix()
	//orders, _ := service.GetHisOrderDetailOne(startRecordDateTime, endRecordDateTime)
	//c.ServeSuccessJSON(map[string]interface{}{
	//	"order": orders,
	//})
}

//func (c *PublicApiController) HandleScheduleTwo() {
//	models, _ := service.GetAllSchMode()
//	for _, item := range models {
//		if item.Mode == 1 {
//			templates, _ := service.GetOrgPatientScheduleTemplateIDs(item.OrgID)
//			thisTime := time.Now()
//			_, theWeek := thisTime.ISOWeek()
//			templates[0].Week = theWeek
//			service.UpdateTemplateItemWeek(templates[0].OrgID, templates[0].ID, int8(templates[0].Week))
//		} else if item.Mode == 2 {
//			templates, _ := service.GetOrgPatientScheduleTemplateIDs(item.OrgID)
//			now := time.Now()
//			nextSecWeek := now.AddDate(0, 0, 14)
//			nextWeek := now.AddDate(0, 0, 7)
//			if item.ExecuteTimes%2 == 0 { //下第二周生成的是
//				templates[0].Week = service.GetWeeks(nextWeek.Format("2006-01-02 15:04:05"))
//				templates[1].Week = service.GetWeeks(nextSecWeek.Format("2006-01-02 15:04:05"))
//				service.UpdateTemplateItemWeek(templates[0].OrgID, templates[0].ID, int8(templates[0].Week))
//				service.UpdateTemplateItemWeek(templates[1].OrgID, templates[1].ID, int8(templates[1].Week))
//
//			} else if item.ExecuteTimes%2 == 1 {
//				templates[0].Week = service.GetWeeks(nextSecWeek.Format("2006-01-02 15:04:05"))
//				templates[1].Week = service.GetWeeks(nextWeek.Format("2006-01-02 15:04:05"))
//				service.UpdateTemplateItemWeek(templates[0].OrgID, templates[0].ID, int8(templates[0].Week))
//				service.UpdateTemplateItemWeek(templates[1].OrgID, templates[1].ID, int8(templates[1].Week))
//
//			}
//
//		}
//	}
//
//}

func (c *PublicApiController) HandleHisPatientTwo() {
	ps, _ := service.GetHisPatient4444555()
	for _, item := range ps {
		var rf []*ResultFiveT
		json.Unmarshal([]byte(item.Iinfo), &rf)
		var insuplc_admdvs string
		var emp_name string

		var insutype string
		var is390 int = 0
		var is310 int = 0
		var insutypes []*ResultFiveT

		for _, item := range rf {
			if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
				insutypes = append(insutypes, item)
			}
		}

		fmt.Println(insutypes)
		if len(insutypes) == 1 {
			insutype = insutypes[0].Insutype
			is390 = 1
			fmt.Println("111111")
			//insuplc_admdvs = insutypes[0].InsuplcAdmdvs
		} else {
			fmt.Println("222222")

			for _, i := range insutypes {
				if i.Insutype == "390" {
					is390 = 1
				}

				if i.Insutype == "310" {
					is310 = 1
				}
			}
		}

		if is390 == 1 {
			insutype = "390"
		}

		if is310 == 1 {
			insutype = "310"
		}

		if len(insutypes) == 0 {
			insutype = "390"
		}
		for _, item := range rf {
			if item.Insutype == insutype {
				insuplc_admdvs = item.InsuplcAdmdvs
				emp_name = item.EmpName
			}
		}
		item.InsuplcAdmdvs = insuplc_admdvs
		item.Emp = emp_name
		service.Savehis(item)

		//service.SaveHisTwo(item)
	}
}

func (c *PublicApiController) HandleHisPatient() {
	ps, _ := service.GetHisPatient11111(10215)
	for _, item := range ps {
		var rf []*ResultFiveT
		json.Unmarshal([]byte(item.Iinfo), &rf)
		var insuplc_admdvs string
		var insutype string
		var is390 int = 0
		var is310 int = 0
		var insutypes []*ResultFiveT

		for _, item := range rf {
			if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
				insutypes = append(insutypes, item)
			}
		}

		fmt.Println(insutypes)
		if len(insutypes) == 1 {
			insutype = insutypes[0].Insutype
			is390 = 1
			fmt.Println("111111")
			//insuplc_admdvs = insutypes[0].InsuplcAdmdvs
		} else {
			fmt.Println("222222")

			for _, i := range insutypes {
				if i.Insutype == "390" {
					is390 = 1
				}

				if i.Insutype == "310" {
					is310 = 1
				}
			}
		}

		if is390 == 1 {
			insutype = "390"
		}

		if is310 == 1 {
			insutype = "310"
		}

		if len(insutypes) == 0 {
			insutype = "390"
		}
		for _, item := range rf {
			if item.Insutype == insutype {
				insuplc_admdvs = item.InsuplcAdmdvs
			}
		}
		item.InsuplcAdmdvs = insuplc_admdvs

		service.SaveHP(item)
	}
}

//func (c *PublicApiController) HandleHisPatientTwo() {
//
//	ps, _ := service.GetHisPatient2222(10188)
//	for _, item := range ps {
//		var rf []*ResultFiveT
//		json.Unmarshal([]byte(item.Iinfo), &rf)
//		var insuplc_admdvs string
//
//		for _, subItem := range rf {
//			if subItem.Insutype == item.Insutype {
//				insuplc_admdvs = subItem.InsuplcAdmdvs
//			}
//		}
//		item.InsuplcAdmdvs = insuplc_admdvs
//		service.SaveHPtWO(item)
//	}
//}

func (c *PublicApiController) HandleSettleData() {
	start_time := c.GetString("start_time")
	end_time := c.GetString("end_time")
	org_id, _ := c.GetInt64("org_id", 0)
	orders, _ := service.GetHisOrderDetailThree(start_time, end_time, org_id)
	c.ServeSuccessJSON(map[string]interface{}{
		"order": orders,
	})
}

//func (c *PublicApiController) HandleData10106() {
//	start_time := c.GetString("start_time")
//	end_time := c.GetString("end_time")
//
//	timeLayout := "2006-01-02"
//	loc, _ := time.LoadLocation("Local")
//	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
//	if err != nil {
//
//	}
//	startRecordDateTime := startTime.Unix()
//
//	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
//	if err != nil {
//
//	}
//	endRecordDateTime := endTime.Unix()
//	fmt.Println(startRecordDateTime)
//	fmt.Println(endRecordDateTime)
//
//	orders, _ := service.GetHisOrderDetail10106(startRecordDateTime, endRecordDateTime)
//	c.ServeSuccessJSON(map[string]interface{}{
//		"order": orders,
//	})
//}

func (c *PublicApiController) HandleData10106() {
	start_time := c.GetString("start_time")
	end_time := c.GetString("end_time")

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	if err != nil {

	}
	startRecordDateTime := startTime.Unix()
	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	if err != nil {

	}
	endRecordDateTime := endTime.Unix()
	fmt.Println(startRecordDateTime)
	fmt.Println(endRecordDateTime)

	orders, _ := service.GetHisOrderDetail10106(startRecordDateTime, endRecordDateTime)
	c.ServeSuccessJSON(map[string]interface{}{
		"order": orders,
	})
}

func (c *PublicApiController) HandleData10318() {
	start_time := c.GetString("start_time")
	end_time := c.GetString("end_time")

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	if err != nil {

	}
	startRecordDateTime := startTime.Unix()
	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
	if err != nil {

	}
	endRecordDateTime := endTime.Unix()
	fmt.Println(startRecordDateTime)
	fmt.Println(endRecordDateTime)

	orders, _ := service.GetHisOrderDetail10318(startRecordDateTime, endRecordDateTime)
	c.ServeSuccessJSON(map[string]interface{}{
		"order": orders,
	})
}

func (c *PublicApiController) HandleProject() {
	prescriptions := service.GetAllProjectPrescription()
	for _, item := range prescriptions {
		ps := service.GetAllProject(item.ID)
		for _, subItem := range ps {
			subItem.Status = 0
			service.SaveHisProject(subItem)
		}
	}
}

func (c *PublicApiController) HandleHisTwo() {
	hiss := service.GetAllPrivateHis(10215)
	for _, item := range hiss {
		patient, _ := service.GetPatientByID(10215, item.PatientId)
		item.Gender = patient.Gender
		service.SaveHis(item)
	}

}
func (c *PublicApiController) GetDoctorAdviceConfig() {
	drugs, _, _ := service.GetPublicDrugDics()
	drugways, _, _ := service.GetPublicDrugWayDics()
	efs, _, _ := service.GetPublicExecutionFrequencyDics()

	c.ServeSuccessJSON(map[string]interface{}{
		"drugs":    drugs,
		"drugways": drugways,
		"efs":      efs,
	})
}

func (c *PublicApiController) GetServerTime() {
	timeNow := time.Now()
	timeNowStamp := timeNow.Unix()
	timeNowStr := timeNow.Format("2006-01-02 15:04:05")
	c.ServeSuccessJSON(map[string]interface{}{
		"time":      timeNowStr,
		"timestamp": timeNowStamp,
	})
}

func (c *PublicApiController) AppRelease() {
	// appId := c.GetString("appid")
	version := c.GetString("version")
	appType, _ := c.GetInt64("app_type", 0)

	appVersion, err := service.GetAppVersionByAppType(appType)
	if err != nil {
		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
		return
	}

	if appVersion == nil {
		c.ServeSuccessJSON(map[string]interface{}{
			"version": nil,
			"state":   2,
		})
		return
	}

	state := strings.Compare(version, appVersion.Version)
	// state := 1

	if state < 0 {
		c.ServeSuccessJSON(map[string]interface{}{
			"version": appVersion,
			"state":   appVersion.Status,
		})
		return
	}
	c.ServeSuccessJSON(map[string]interface{}{
		"version": nil,
		"state":   2,
	})
	return

}

func (this *PublicApiController) GetJson() {
	type Global struct {
		DeviceSN        string
		Version         string
		Timestamp       string
		InterfaceSource string
	}
	type RBPResultModel struct {
		Sys         string
		Dia         string
		HR          string
		MeasureTime string
	}

	type ScannerResultModel struct {
		Code string
	}

	type IDCardResultModel struct {
		IDCardNo         string
		UserName         string
		Age              string
		Female           string
		Male             string
		SocialSecurityNo string
	}

	type JsonTemp struct {
		Global             Global
		RBPResultModel     RBPResultModel
		ScannerResultModel ScannerResultModel
		IDCardResultModel  IDCardResultModel
	}

	var person JsonTemp
	err3 := json.Unmarshal([]byte(this.GetString("params")), &person)
	fmt.Println(err3)

	fmt.Println(person.Global)

	//temp := JsonTemp{
	//	Global:Global{
	//		DeviceSN:"1122",
	//		Version:"1122",
	//		Timestamp:"1222",
	//		InterfaceSource:"1233",
	//	},
	//	RBPResultModel: RBPResultModel{
	//		Sys:"12",
	//		Dia:"22",
	//		HR:"23",
	//		MeasureTime:"123",
	//	},
	//	ScannerResultModel:ScannerResultModel{
	//		Code:"1233",
	//	},
	//	IDCardResultModel:IDCardResultModel{
	//		IDCardNo:"123",
	//		UserName:"123",
	//		Age:"123",
	//		Female:"123",
	//		Male:"123",
	//		SocialSecurityNo:"123",
	//	},
	//}
	//
	//jsonBytes, err := json.Marshal(temp)
	//if err != nil {
	//	fmt.Println(err)
	//}
	//fmt.Println(string(jsonBytes))

}

func (c *PublicApiController) HandleData() {
	//service.HandleData()

	org_app, _ := service.GetAllAppOrg()
	//org_role, _ := service.GetAllRole()
	//
	//var org_ids []int64

	for _, apps := range org_app {
		xt_org_app, _ := service.GetAppByType(int64(apps.OrgId), 3)
		//org_app_6, _ := service.GetAppByType(int64(apps.OrgId), 6)
		//org_app_7, _ := service.GetAppByType(int64(apps.OrgId), 7)
		//org_app_8, _ := service.GetAppByType(int64(apps.OrgId), 8)
		//org_app_9, _ := service.GetAppByType(int64(apps.OrgId), 9)
		//org_app_10, _ := service.GetAppByType(int64(apps.OrgId), 10)
		//org_app_11, _ := service.GetAppByType(int64(apps.OrgId), 11)
		//org_app_12, _ := service.GetAppByType(int64(apps.OrgId), 12)
		//org_app_13, _ := service.GetAppByType(int64(apps.OrgId), 13)
		//org_app_14, _ := service.GetAppByType(int64(apps.OrgId), 14)
		//org_app_15, _ := service.GetAppByType(int64(apps.OrgId), 15)

		//org_app_16, _ := service.GetAppByType(int64(apps.OrgId), 16)
		//org_app_17, _ := service.GetAppByType(int64(apps.OrgId), 17)
		org_app_18, _ := service.GetAppByType(int64(apps.OrgId), 18)

		var xt_temp_org_app *models.OrgApp
		//var mall_temp_org_app *models.OrgApp

		if xt_org_app == nil || xt_org_app.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据

			app, _ := service.GetOrgAppA(0, 3)
			org, _ := service.GetOrgByIdB(int64(apps.OrgId))
			if org == nil || org.Id == 0 {
				continue
			}

			app.Id = 0
			app.OrgId = apps.OrgId
			app.Creator = int(org.Creator)
			app.Number = 0
			app.Status = 1
			app.ModifyTime = time.Now().Unix()
			app.CreateTime = time.Now().Unix()
			service.CreateOrgApp(app)
			xt_temp_org_app = app
		} else {

			xt_temp_org_app = xt_org_app

		}

		//if scrm_org_app == nil || scrm_org_app.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//
		//	app, _ := service.GetOrgAppA(0, 1)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Id = 0
		//
		//	app.Creator = int(org.Creator)
		//	app.Number = 0
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//
		//}
		//
		//if cdm_org_app == nil || cdm_org_app.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 4)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Number = 0
		//	app.Id = 0
		//
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
		//
		//if mall_org_app == nil || mall_org_app.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 5)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Number = 0
		//	app.Id = 0
		//
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//	mall_temp_org_app = app
		//} else {
		//	mall_temp_org_app = mall_org_app
		//}
		//
		//if org_app_16 == nil || org_app_16.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 16)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Number = 11
		//	app.Id = 0
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	app.Pid = xt_temp_org_app.Id
		//	service.CreateOrgApp(app)
		//
		//}
		//
		//if org_app_17 == nil || org_app_17.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 17)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Number = 12
		//	app.Id = 0
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	app.Pid = xt_temp_org_app.Id
		//	service.CreateOrgApp(app)
		//
		//}

		if org_app_18 == nil || org_app_18.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
			app, _ := service.GetOrgAppA(0, 18)
			//org, _ := service.GetOrgById(int64(12))
			org, _ := service.GetOrgByIdB(int64(apps.OrgId))
			if org == nil || org.Id == 0 {
				continue
			}

			app.OrgId = apps.OrgId
			app.Creator = int(org.Creator)
			app.Number = 5
			app.Id = 0
			app.Status = 1
			app.ModifyTime = time.Now().Unix()
			app.CreateTime = time.Now().Unix()
			app.Pid = xt_temp_org_app.Id
			service.CreateOrgApp(app)

		}
		//if org_app_7 == nil || org_app_7.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 7)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Number = 2
		//	app.Status = 2
		//	app.Id = 0
		//
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	app.Pid = xt_temp_org_app.Id
		//
		//	service.CreateOrgApp(app)
		//}
		//if org_app_8 == nil || org_app_8.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 8)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Number = 3
		//	app.Id = 0
		//
		//	app.Pid = mall_temp_org_app.Id
		//
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
		//if org_app_9 == nil || org_app_9.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 9)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Pid = xt_temp_org_app.Id
		//
		//	app.Creator = int(org.Creator)
		//	app.Number = 4
		//	app.Id = 0
		//
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//
		//}
		//if org_app_10 == nil || org_app_10.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 10)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Pid = xt_temp_org_app.Id
		//
		//	app.Number = 5
		//	app.Id = 0
		//
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
		//if org_app_11 == nil || org_app_11.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 11)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Pid = xt_temp_org_app.Id
		//	app.Id = 0
		//
		//	app.Number = 6
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
		//if org_app_12 == nil || org_app_12.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 12)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Pid = xt_temp_org_app.Id
		//	app.Number = 7
		//	app.Status = 1
		//	app.Id = 0
		//
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
		//if org_app_13 == nil || org_app_13.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 13)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Pid = xt_temp_org_app.Id
		//	app.Number = 8
		//	app.Id = 0
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
		//if org_app_14 == nil || org_app_14.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 14)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Pid = xt_temp_org_app.Id
		//	app.Id = 0
		//	app.Number = 9
		//	app.Status = 1
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}

		//if org_app_15 == nil || org_app_15.Id == 0 { //判断之前是否有创建该app类型,如果没有则插入数据
		//	app, _ := service.GetOrgAppA(0, 15)
		//	//org, _ := service.GetOrgById(int64(12))
		//	org, _ := service.GetOrgByIdB(int64(apps.OrgId))
		//	if org == nil || org.Id == 0 {
		//		continue
		//	}
		//
		//	app.OrgId = apps.OrgId
		//	app.Creator = int(org.Creator)
		//	app.Pid = xt_temp_org_app.Id
		//	app.Number = 10
		//	app.Status = 1
		//	app.Id = 0
		//	app.ModifyTime = time.Now().Unix()
		//	app.CreateTime = time.Now().Unix()
		//	service.CreateOrgApp(app)
		//}
	}

	//for _, role := range org_role {
	//	org_ids = append(org_ids, role.OrgId)
	//}
	//
	//
	////创建内置角色
	//InitRoleAndPurviews(org_ids)

	//var org_id int = 0
	//管理员
	//app_roles  := service.GetAllUserRoleByUserTypeOne(org_id)
	//for _, item := range app_roles{
	//	var ids string
	//	if len(item.RoleIds) == 0{
	//		ids = strconv.FormatInt( item.RoleId,10)
	//	}else{
	//		ids = item.RoleIds + ","+strconv.FormatInt( item.RoleId,10)
	//	}
	//	service.UpdateRoleIds(item.Id, ids)
	//}
	//护士医生
	//app_roles2  := service.GetAllUserRoleByUserTypeOther()
	//	for _, item := range app_roles2{
	//		var ids string
	//		if len(item.RoleIds) == 0{
	//			ids = strconv.FormatInt( item.RoleId,10)
	//		}else{
	//			ids = item.RoleIds + ","+strconv.FormatInt( item.RoleId,10)
	//		}
	//		if item.UserType == 2{
	//			role := service.FindRoleByUserTypeOne(item.OrgId)
	//			ids = ids +"," + strconv.FormatInt(role.Id,10)
	//
	//		} else if item.UserType == 3{
	//			role := service.FindRoleByUserTypeTwo(item.OrgId)
	//			ids = ids +"," + strconv.FormatInt(role.Id,10)
	//		}
	//		service.UpdateRoleIds(item.Id, ids)
	//	}
	//c.ServeSuccessJSON(map[string]interface{}{
	//	"msg": "ok",
	//})

}

func (c *PublicApiController) HandleGroupNo() {
	//service.GetAllPatientChargeDetails(10138, 1634054400)
	//pts, _ := service.GetHisPrescriptionTemplateTwo()
	//for _, item := range pts {
	//	if len(item.HisPrescriptionAdviceTemplate) > 0 {
	//		for index, subItem := range item.HisPrescriptionAdviceTemplate {
	//			subItem.Groupno = int64(index + 1)
	//			service.SaveAdviceTemplate(subItem)
	//		}
	//	}
	//}
}

func InitRoleAndPurviews(org_ids []int64) {
	roles := LoadRoleConfig("./role.json").Roles
	for _, org_id := range org_ids {
		app, _ := service.GetOrgAppB(org_id, 3)
		role, _ := service.GetSystemRole(org_id)

		if app == nil || app.Id == 0 {
			continue
		}
		if len(role) == 0 {
			for _, item := range roles {
				role := &models.Role{
					RoleName:     item.RoleName,
					RoleIntro:    item.RoleIntroduction,
					Creator:      0,
					OrgId:        org_id,
					AppId:        app.Id,
					IsSuperAdmin: false,
					Status:       1,
					CreateTime:   time.Now().Unix(),
					ModifyTime:   time.Now().Unix(),
					Number:       item.Number,
					IsSystem:     item.IsSystem,
				}
				err := service.CreateOrgRoleB(role)
				if err == nil {
					purview := &models.RolePurview{
						RoleId:     role.Id,
						OrgId:      org_id,
						AppId:      role.AppId,
						PurviewIds: item.PurviewIds,
						Status:     1,
						CreateTime: time.Now().Unix(),
						ModifyTime: time.Now().Unix(),
					}
					func_purview := &models.SgjUserRoleFuncPurview{
						RoleId:     role.Id,
						OrgId:      org_id,
						AppId:      role.AppId,
						PurviewIds: item.FuncIds,
						Status:     1,
						Ctime:      time.Now().Unix(),
						Mtime:      time.Now().Unix(),
					}

					service.CreateRolePurviewB(purview)
					service.CreateFuncRolePurviewB(func_purview)
				}
			}

		}
	}

}

type RoleConfig struct {
	Roles []*models.VMUserRoleAndPurview "json:roles"
}

func LoadRoleConfig(dataFile string) *RoleConfig {
	var config RoleConfig
	_, filename, _, _ := runtime.Caller(1)
	datapath := path.Join(path.Dir(filename), dataFile)
	config_file, err := os.Open(datapath)
	if err != nil {
		emit("Failed to open config file '%s': %s\n", datapath, err)
		return &config
	}

	fi, _ := config_file.Stat()

	buffer := make([]byte, fi.Size())
	_, err = config_file.Read(buffer)

	buffer, err = StripComments(buffer) //去掉注释
	if err != nil {
		emit("Failed to strip comments from json: %s\n", err)
		return &config
	}

	buffer = []byte(os.ExpandEnv(string(buffer))) //特殊
	err = json.Unmarshal(buffer, &config)         //解析json格式数据
	if err != nil {
		emit("Failed unmarshalling json: %s\n", err)
		return &config
	}
	return &config
}

type GoodTypesConfig struct {
	GoodTypes []*models.VMGoodsType "json:list"
}

func LoadGoodTypeConfig(dataFile string) *GoodTypesConfig {
	var config GoodTypesConfig
	_, filename, _, _ := runtime.Caller(1)
	datapath := path.Join(path.Dir(filename), dataFile)
	config_file, err := os.Open(datapath)
	if err != nil {
		emit("Failed to open config file '%s': %s\n", datapath, err)
		return &config
	}

	fi, _ := config_file.Stat()

	buffer := make([]byte, fi.Size())
	_, err = config_file.Read(buffer)

	buffer, err = StripComments(buffer) //去掉注释
	if err != nil {
		emit("Failed to strip comments from json: %s\n", err)
		return &config
	}

	buffer = []byte(os.ExpandEnv(string(buffer))) //特殊
	err = json.Unmarshal(buffer, &config)         //解析json格式数据
	if err != nil {
		emit("Failed unmarshalling json: %s\n", err)
		return &config
	}
	return &config
}

func (c *PublicApiController) HandleStockData() {
	org, _ := service.FindAllOrgByImportType()

	for _, item := range org {
		if item.Id != 3907 || item.Id != 9779 || item.Id != 9883 {
			goodTypes := &models.GoodsType{
				TypeCode: "14000000",
				TypeName: "穿刺针",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   1,
			}

			service.AddSigleGoodType(goodTypes)

			goodTypes1 := &models.GoodsType{
				TypeCode: "14000001",
				TypeName: "透析器",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   2,
			}

			service.AddSigleGoodType(goodTypes1)

			goodTypes2 := &models.GoodsType{
				TypeCode: "14000002",
				TypeName: "灌流器",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   3,
			}

			service.AddSigleGoodType(goodTypes2)

			goodTypes3 := &models.GoodsType{
				TypeCode: "14000003",
				TypeName: "血路管",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   4,
			}

			service.AddSigleGoodType(goodTypes3)

			goodTypes4 := &models.GoodsType{
				TypeCode: "14000004",
				TypeName: "血滤补液管",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   5,
			}

			service.AddSigleGoodType(goodTypes4)

			goodTypes5 := &models.GoodsType{
				TypeCode: "14000005",
				TypeName: "注射器",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   6,
			}

			service.AddSigleGoodType(goodTypes5)

			goodTypes6 := &models.GoodsType{
				TypeCode: "14000006",
				TypeName: "护理包(内瘘穿刺包)",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   7,
			}

			service.AddSigleGoodType(goodTypes6)

			goodTypes7 := &models.GoodsType{
				TypeCode: "14000007",
				TypeName: "细菌过滤器",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   8,
			}

			service.AddSigleGoodType(goodTypes7)

			goodTypes8 := &models.GoodsType{
				TypeCode: "14000008",
				TypeName: "血液透析干粉",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   9,
			}

			service.AddSigleGoodType(goodTypes8)

			goodTypes9 := &models.GoodsType{
				TypeCode: "14000009",
				TypeName: "A液",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   10,
			}

			service.AddSigleGoodType(goodTypes9)

			goodTypes10 := &models.GoodsType{
				TypeCode: "14000010",
				TypeName: "B液",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   11,
			}

			service.AddSigleGoodType(goodTypes10)

			goodTypes11 := &models.GoodsType{
				TypeCode: "14000011",
				TypeName: "导管包",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   12,
			}

			service.AddSigleGoodType(goodTypes11)

			goodTypes12 := &models.GoodsType{
				TypeCode: "14000012",
				TypeName: "血液透析导管",
				Remark:   "",
				Ctime:    time.Now().Unix(),
				Mtime:    time.Now().Unix(),
				Creater:  0,
				Modifier: 0,
				OrgId:    item.Id,
				Status:   1,
				Type:     1,
				Number:   13,
			}

			service.AddSigleGoodType(goodTypes12)
		}
	}
}

func (c *PublicApiController) HandleComData() {
	org_ids := []int64{3907, 9779, 9883}

	for _, id := range org_ids {
		//查处所有处方记录
		prescriptions, _ := service.FindAllPrescription(id)
		if id == 3907 {

			for _, item := range prescriptions {

				if item.Niprocart > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Niprocart
					before.GoodTypeId = 241
					service.AddSigleDialysisBeforePre(before)
				}

				if item.Jms > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Jms
					before.GoodTypeId = 233
					service.AddSigleDialysisBeforePre(before)

				}

				if item.FistulaNeedleSet > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.FistulaNeedleSet
					before.GoodTypeId = 233
					service.AddSigleDialysisBeforePre(before)
				}

				if item.FistulaNeedleSet16 > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.FistulaNeedleSet16
					before.GoodTypeId = 233
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Hemoperfusion > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Hemoperfusion
					before.GoodTypeId = 235
					service.AddSigleDialysisBeforePre(before)

				}

				if item.DialyserSterilised > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.DialyserSterilised
					before.GoodTypeId = 234
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Filtryzer > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Filtryzer
					before.GoodTypeId = 234
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Dialyzers > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Dialyzers
					before.GoodTypeId = 234
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Injector > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Injector
					before.GoodTypeId = 238
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Bloodlines > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Bloodlines
					before.GoodTypeId = 236
					service.AddSigleDialysisBeforePre(before)

				}

				if item.TubingHemodialysis > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.TubingHemodialysis
					before.GoodTypeId = 237
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Package > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Package
					before.GoodTypeId = 239
					service.AddSigleDialysisBeforePre(before)

				}

				if item.ALiquid > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.ALiquid
					before.GoodTypeId = 242
					service.AddSigleDialysisBeforePre(before)

				}

			}

		} else if id == 9779 {

			for _, item := range prescriptions {

				if item.Niprocart > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Niprocart
					before.GoodTypeId = 254
					service.AddSigleDialysisBeforePre(before)
				}

				if item.Jms > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Jms
					before.GoodTypeId = 246
					service.AddSigleDialysisBeforePre(before)

				}

				if item.FistulaNeedleSet > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.FistulaNeedleSet
					before.GoodTypeId = 246
					service.AddSigleDialysisBeforePre(before)
				}

				if item.FistulaNeedleSet16 > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.FistulaNeedleSet16
					before.GoodTypeId = 246
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Hemoperfusion > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Hemoperfusion
					before.GoodTypeId = 248
					service.AddSigleDialysisBeforePre(before)

				}

				if item.DialyserSterilised > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.DialyserSterilised
					before.GoodTypeId = 247
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Filtryzer > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Filtryzer
					before.GoodTypeId = 247
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Dialyzers > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Dialyzers
					before.GoodTypeId = 247
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Injector > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Injector
					before.GoodTypeId = 251
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Bloodlines > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Bloodlines
					before.GoodTypeId = 249
					service.AddSigleDialysisBeforePre(before)

				}

				if item.TubingHemodialysis > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.TubingHemodialysis
					before.GoodTypeId = 250
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Package > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Package
					before.GoodTypeId = 252
					service.AddSigleDialysisBeforePre(before)

				}

				if item.ALiquid > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.ALiquid
					before.GoodTypeId = 255
					service.AddSigleDialysisBeforePre(before)

				}

			}

		} else if id == 9883 {

			for _, item := range prescriptions {

				if item.Niprocart > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Niprocart
					before.GoodTypeId = 267
					service.AddSigleDialysisBeforePre(before)
				}

				if item.Jms > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Jms
					before.GoodTypeId = 259
					service.AddSigleDialysisBeforePre(before)

				}

				if item.FistulaNeedleSet > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}

					before.GoodId = item.FistulaNeedleSet
					before.GoodTypeId = 259
					service.AddSigleDialysisBeforePre(before)
				}

				if item.FistulaNeedleSet16 > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.FistulaNeedleSet16
					before.GoodTypeId = 259
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Hemoperfusion > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Hemoperfusion
					before.GoodTypeId = 261
					service.AddSigleDialysisBeforePre(before)

				}

				if item.DialyserSterilised > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.DialyserSterilised
					before.GoodTypeId = 260
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Filtryzer > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Filtryzer
					before.GoodTypeId = 260
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Dialyzers > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Dialyzers
					before.GoodTypeId = 260
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Injector > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Injector
					before.GoodTypeId = 264
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Bloodlines > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Bloodlines
					before.GoodTypeId = 262
					service.AddSigleDialysisBeforePre(before)

				}

				if item.TubingHemodialysis > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.TubingHemodialysis
					before.GoodTypeId = 263
					service.AddSigleDialysisBeforePre(before)

				}

				if item.Package > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.Package
					before.GoodTypeId = 265
					service.AddSigleDialysisBeforePre(before)

				}

				if item.ALiquid > 0 {
					before := &models.DialysisBeforePrepare{
						UserOrgId:  id,
						PatientId:  item.PatientId,
						RecordDate: item.RecordDate,
						Count:      1,
						Ctime:      item.RecordDate,
						Mtime:      item.RecordDate,
						Creater:    item.Creater,
						Modifier:   item.Creater,
						Status:     1,
					}
					before.GoodId = item.ALiquid
					before.GoodTypeId = 268
					service.AddSigleDialysisBeforePre(before)

				}

			}

		}

	}

}

func (c *PublicApiController) HandleHIS() {
	his, _ := service.GetAllHisInfo(9919)
	for _, item := range his {
		fsn := strings.Split(item.FeedetlSn, "-")
		item.FeedetlSn = fsn[0] + "-" + fsn[1] + "-" + strconv.FormatInt(item.ID, 10)
		fmt.Println(item.FeedetlSn)
		service.UpDateHis2(item)
	}

}

func (c *PublicApiController) HandleOrder() {
	orders, _ := service.GetAllHisOrder(10106)
	record, _ := service.FindFapiaoByIsUse(10106)
	last_order, _ := service.GetAllHisOrderTwo(10106)
	if record.ID > 0 {
		for index, item := range orders {
			item.FaPiaoCode = record.FapiaoCode
			var zero string
			max_number, _ := strconv.ParseInt(last_order.FaPiaoNumber, 10, 64)
			number, _ := strconv.ParseInt(record.FapiaoNumber, 10, 64)
			number = number + max_number
			if number+int64(index) >= 1000 {
				zero = "0000" + strconv.FormatInt(number+int64(index), 10)
			} else if number+int64(index) >= 10000 {
				zero = "000" + strconv.FormatInt(number+int64(index), 10)
			} else if number+int64(index) >= 100000 {
				zero = "00" + strconv.FormatInt(number+int64(index), 10)
			} else if number+int64(index) >= 1000000 {
				zero = "0" + strconv.FormatInt(number+int64(index), 10)
			} else {
				zero = strconv.FormatInt(number+int64(index), 10)
			}
			item.FaPiaoNumber = zero
			item.FaPiaoBatchnumberId = record.ID
			service.SaveOrder(item)
		}
	}
}

func Mkdir(dir string) {
	// 创建文件夹
	exist, err := PathExists(dir)
	if err != nil {
		fmt.Println(err.Error())
	} else {
		if exist {
			fmt.Println(dir + "文件夹已存在!")
		} else {
			// 文件夹名称,权限
			err := os.Mkdir(dir, os.ModePerm)
			if err != nil {
				fmt.Println(dir+"文件夹创建失败:", err.Error())
			} else {
				fmt.Println(dir + "文件夹创建成功!")
			}
		}
	}
}

func PathExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err == nil {
		return true, nil
	}
	if os.IsNotExist(err) {
		return false, nil
	}
	return false, err
}

func (c *PublicApiController) Handle10215() {

	//projects,_ := service.GetAllInfo(10215,2284)
	//
	//for _, item := range projects{
	//	service.UpdateStatus(item.ID, item.PrescriptionId)
	//}
	//projects_two,_ := service.GetAllInfo(10215,2277)
	//
	//for _, item := range projects_two{
	//	service.UpdateStatus(item.ID, item.PrescriptionId)
	//}

	//service.GetAllInfo(10215,2284)
	//service.GetAllInfo(10215,2277)

	his, _ := service.GetAllPT(10215)
	for _, item := range his {

		//
		//pro := &models.HisPrescriptionProjectTemplate{
		//	ProjectId:          1750,
		//	Price:              6.00,
		//	UserOrgId:          10215,
		//	Status:             1,
		//	Ctime:              time.Now().Unix(),
		//	Mtime:              time.Now().Unix(),
		//	PatientId:          item.PatientId,
		//	RecordDate:         0,
		//	Count:              1,
		//	FeedetlSn:          "",
		//	MedListCodg:        "",
		//	SingleDose:         "1",
		//	DeliveryWay:        "",
		//	ExecutionFrequency: "",
		//	Day:                "1",
		//	Remark:             "",
		//	Unit:               "",
		//	Type:               2,
		//	PrescriptionId:     info.ID,
		//	FrequencyType:      1,
		//	DayCount:           0,
		//	WeekDay:            "",
		//}
		//service.CreateHisPrescriptionProjectTemplate(pro)
		//
		//pro2 := &models.HisPrescriptionProjectTemplate{
		//	ProjectId:          2462,
		//	Price:              4.94,
		//	UserOrgId:          10215,
		//	Status:             1,
		//	Ctime:              time.Now().Unix(),
		//	Mtime:              time.Now().Unix(),
		//	PatientId:          item.PatientId,
		//	RecordDate:         0,
		//	Count:              1,
		//	FeedetlSn:          "",
		//	MedListCodg:        "",
		//	SingleDose:         "1",
		//	DeliveryWay:        "",
		//	ExecutionFrequency: "",
		//	Day:                "1",
		//	Remark:             "",
		//	Unit:               "",
		//	Type:               3,
		//	PrescriptionId:     info.ID,
		//	FrequencyType:      1,
		//	DayCount:           0,
		//	WeekDay:            "",
		//}
		//service.CreateHisPrescriptionProjectTemplate(pro2)
		//
		//
		infos, _ := service.GetAllPTInfo(10215, item.ID)
		//	// fmt.Println(infos)
		for _, subItem := range infos {

			if len(subItem.HisPrescriptionAdviceTemplate) > 0 && len(subItem.HisPrescriptionProjectTemplate) == 0 {

				for _, ssubItem := range subItem.HisPrescriptionAdviceTemplate {

					//if ssubItem.DrugId == 1234 {
					//	pro := &models.HisPrescriptionProjectTemplate{
					//		ProjectId:          2326,
					//		Price:              0.86,
					//		UserOrgId:          ssubItem.UserOrgId,
					//		Status:             1,
					//		Ctime:              time.Now().Unix(),
					//		Mtime:              time.Now().Unix(),
					//		PatientId:          ssubItem.PatientId,
					//		RecordDate:         ssubItem.AdviceDate,
					//		Count:              1,
					//		FeedetlSn:          "",
					//		MedListCodg:        "",
					//		SingleDose:         "1",
					//		DeliveryWay:        "",
					//		ExecutionFrequency: "",
					//		Day:                "1",
					//		Remark:             "",
					//		Unit:               "",
					//		Type:               3,
					//		PrescriptionId:     info.ID,
					//		FrequencyType:      ssubItem.FrequencyType,
					//		DayCount:           ssubItem.DayCount,
					//		WeekDay:            ssubItem.WeekDay,
					//	}
					//	service.CreateHisPrescriptionProjectTemplate(pro)
					//
					//}
					if ssubItem.DrugId == 1288 {
						info := &models.HisPrescriptionInfoTemplate{
							UserOrgId:   item.UserOrgId,
							RecordDate:  0,
							PatientId:   item.PatientId,
							Status:      1,
							Ctime:       time.Now().Unix(),
							Mtime:       time.Now().Unix(),
							Type:        2,
							Creator:     0,
							Modifier:    0,
							PType:       0,
							PTemplateId: item.ID,
							MedType:     "14",
						}
						service.CreateHisPrescriptionInfoTemplate(info)

						pro2 := &models.HisPrescriptionProjectTemplate{
							ProjectId:          1727,
							Price:              2.50,
							UserOrgId:          ssubItem.UserOrgId,
							Status:             1,
							Ctime:              time.Now().Unix(),
							Mtime:              time.Now().Unix(),
							PatientId:          ssubItem.PatientId,
							RecordDate:         ssubItem.AdviceDate,
							Count:              "1",
							FeedetlSn:          "",
							MedListCodg:        "",
							SingleDose:         "1",
							DeliveryWay:        "",
							ExecutionFrequency: "",
							Day:                "1",
							Remark:             "",
							Unit:               "",
							Type:               2,
							PrescriptionId:     info.ID,
							FrequencyType:      ssubItem.FrequencyType,
							DayCount:           ssubItem.DayCount,
							WeekDay:            ssubItem.WeekDay,
						}
						service.CreateHisPrescriptionProjectTemplate(pro2)

						//pro := &models.HisPrescriptionProjectTemplate{
						//	ProjectId:          2326,
						//	Price:              0.86,
						//	UserOrgId:          ssubItem.UserOrgId,
						//	Status:             1,
						//	Ctime:              time.Now().Unix(),
						//	Mtime:              time.Now().Unix(),
						//	PatientId:          ssubItem.PatientId,
						//	RecordDate:         ssubItem.AdviceDate,
						//	Count:              1,
						//	FeedetlSn:          "",
						//	MedListCodg:        "",
						//	SingleDose:         "1",
						//	DeliveryWay:        "",
						//	ExecutionFrequency: "",
						//	Day:                "1",
						//	Remark:             "",
						//	Unit:               "",
						//	Type:               3,
						//	PrescriptionId:     info.ID,
						//	FrequencyType:      ssubItem.FrequencyType,
						//	DayCount:           ssubItem.DayCount,
						//	WeekDay:            ssubItem.WeekDay,
						//}
						//service.CreateHisPrescriptionProjectTemplate(pro)

					}
					//if ssubItem.DrugId == 1306 {
					//
					//	pro := &models.HisPrescriptionProjectTemplate{
					//		ProjectId:          2325,
					//		Price:              1.11,
					//		UserOrgId:          ssubItem.UserOrgId,
					//		Status:             1,
					//		Ctime:              time.Now().Unix(),
					//		Mtime:              time.Now().Unix(),
					//		PatientId:          ssubItem.PatientId,
					//		RecordDate:         ssubItem.AdviceDate,
					//		Count:              1,
					//		FeedetlSn:          "",
					//		MedListCodg:        "",
					//		SingleDose:         "1",
					//		DeliveryWay:        "",
					//		ExecutionFrequency: "",
					//		Day:                "1",
					//		Remark:             "",
					//		Unit:               "",
					//		Type:               3,
					//		PrescriptionId:     info.ID,
					//		FrequencyType:      ssubItem.FrequencyType,
					//		DayCount:           ssubItem.DayCount,
					//		WeekDay:            ssubItem.WeekDay,
					//	}
					//	service.CreateHisPrescriptionProjectTemplate(pro)
					//
					//	pro2 := &models.HisPrescriptionProjectTemplate{
					//		ProjectId:          1727,
					//		Price:              2.50,
					//		UserOrgId:          ssubItem.UserOrgId,
					//		Status:             1,
					//		Ctime:              time.Now().Unix(),
					//		Mtime:              time.Now().Unix(),
					//		PatientId:          ssubItem.PatientId,
					//		RecordDate:         ssubItem.AdviceDate,
					//		Count:              1,
					//		FeedetlSn:          "",
					//		MedListCodg:        "",
					//		SingleDose:         "1",
					//		DeliveryWay:        "",
					//		ExecutionFrequency: "",
					//		Day:                "1",
					//		Remark:             "",
					//		Unit:               "",
					//		Type:               2,
					//		PrescriptionId:     info.ID,
					//		FrequencyType:      ssubItem.FrequencyType,
					//		DayCount:           ssubItem.DayCount,
					//		WeekDay:            ssubItem.WeekDay,
					//	}
					//	service.CreateHisPrescriptionProjectTemplate(pro2)
					//
					//}
					//if ssubItem.DrugId == 1291 {
					//
					//	pro := &models.HisPrescriptionProjectTemplate{
					//		ProjectId:          2322,
					//		Price:              0.68,
					//		UserOrgId:          ssubItem.UserOrgId,
					//		Status:             1,
					//		Ctime:              time.Now().Unix(),
					//		Mtime:              time.Now().Unix(),
					//		PatientId:          ssubItem.PatientId,
					//		RecordDate:         ssubItem.AdviceDate,
					//		Count:              1,
					//		FeedetlSn:          "",
					//		MedListCodg:        "",
					//		SingleDose:         "1",
					//		DeliveryWay:        "",
					//		ExecutionFrequency: "",
					//		Day:                "1",
					//		Remark:             "",
					//		Unit:               "",
					//		Type:               3,
					//		PrescriptionId:     info.ID,
					//		FrequencyType:      ssubItem.FrequencyType,
					//		DayCount:           ssubItem.DayCount,
					//		WeekDay:            ssubItem.WeekDay,
					//	}
					//	service.CreateHisPrescriptionProjectTemplate(pro)
					//
					//	pro2 := &models.HisPrescriptionProjectTemplate{
					//		ProjectId:          1727,
					//		Price:              2.50,
					//		UserOrgId:          ssubItem.UserOrgId,
					//		Status:             1,
					//		Ctime:              time.Now().Unix(),
					//		Mtime:              time.Now().Unix(),
					//		PatientId:          ssubItem.PatientId,
					//		RecordDate:         ssubItem.AdviceDate,
					//		Count:              1,
					//		FeedetlSn:          "",
					//		MedListCodg:        "",
					//		SingleDose:         "1",
					//		DeliveryWay:        "",
					//		ExecutionFrequency: "",
					//		Day:                "1",
					//		Remark:             "",
					//		Unit:               "",
					//		Type:               2,
					//		PrescriptionId:     info.ID,
					//		FrequencyType:      ssubItem.FrequencyType,
					//		DayCount:           ssubItem.DayCount,
					//		WeekDay:            ssubItem.WeekDay,
					//	}
					//	service.CreateHisPrescriptionProjectTemplate(pro2)
					//}
				}

			}

		}

	}

}

func (c *PublicApiController) HandleExportAllData() {
	orders, _ := service.GetHisOrderDetail9504()
	c.ServeSuccessJSON(map[string]interface{}{
		"order": orders,
	})
}

func (c *PublicApiController) HandleExportData10138() {
	orders, _ := service.GetHisOrderDetail10138()
	c.ServeSuccessJSON(map[string]interface{}{
		"order": orders,
	})
}

func (c *PublicApiController) HandleData10265() {
	orders, _ := service.GetHisOrder10265()
	for _, items := range orders {
		if items.AdviceId == 0 && items.ProjectId > 0 {
			p, _ := service.GetHisPrescriptionProjectByIDTwo(items.ProjectId)
			if p.Type == 2 {
				if p.HisProject.CostClassify == 3 {
					items.MedChrgitmType = "04"
				}

				if p.HisProject.CostClassify == 2 {
					items.MedChrgitmType = "05"
				}

				if p.HisProject.CostClassify == 8 {
					items.MedChrgitmType = "03"
				}

				//p.HisProject.CostClassify == 8

			} else {

				items.MedChrgitmType = "08"

			}

		}
		service.SaveOrderInfo(items)
	}

}

func (c *PublicApiController) HandleData10265two() {
	orders, _ := service.GetHisOrder10265two()
	for _, items := range orders {
		if items.AdviceId == 0 && items.ProjectId > 0 {
			p, _ := service.GetHisPrescriptionProjectByIDTwoone(items.ProjectId)
			if p.Type == 2 {
				if p.HisProject.MedicalCoverage == 1 {
					items.ChrgitmLv = "01"
				} else if p.HisProject.MedicalCoverage == 2 {
					items.ChrgitmLv = "02"
				} else {
					items.ChrgitmLv = "03"
				}
			} else {
				if p.GoodInfo.MedicalInsuranceLevel == 1 {
					items.ChrgitmLv = "01"
				} else if p.GoodInfo.MedicalInsuranceLevel == 2 {
					items.ChrgitmLv = "02"
				} else {
					items.ChrgitmLv = "03"
				}
			}
		}
		if items.AdviceId > 0 && items.ProjectId == 0 {
			info, _ := service.GetHisDoctorAdviceInfo(items.AdviceId)
			if info.Drug.MedicalInsuranceLevel == 1 {
				items.ChrgitmLv = "01"
			} else if info.Drug.MedicalInsuranceLevel == 2 {
				items.ChrgitmLv = "02"
			} else {
				items.ChrgitmLv = "03"
			}
		}
		service.SaveOrderInfo(items)
	}
}

//func (c *PublicApiController) HandleOrderInfoData() {
//	orders, _ := service.GetHisOrderInfoDetail()
//	c.ServeSuccessJSON(map[string]interface{}{
//		"info": orders,
//	})
//}
//
//func (c *PublicApiController)HandleOrderInfoData10138(){
//	start_time := c.GetString("start_time")
//	end_time := c.GetString("end_time")
//	timeLayout := "2006-01-02"
//	loc, _ := time.LoadLocation("Local")
//	startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
//	if err != nil {
//
//	}
//	startRecordDateTime := startTime.Unix()
//	endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
//	if err != nil {
//
//	}
//	endRecordDateTime := endTime.Unix()
//	orders, _ := service.GetHisAllPatientOrder(startRecordDateTime,endRecordDateTime)
//	for _, item := range orders{
//		for _, subItem := range item.HisOrder10138{
//			info, _ := service.GetHisOrderInfoDetail10138(subItem.Number)
//			subItem.VmHisOrderInfo9504 = info
//		}
//	}
//	c.ServeSuccessJSON(map[string]interface{}{
//		"info": orders,
//	})
//
//}