package cn.timer.api.controller.jxgl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;

import cn.hutool.core.util.StrUtil;
import cn.timer.api.bean.jxgl.JxglAdminJcsz;
import cn.timer.api.bean.jxgl.JxglAdminKpzsz;
import cn.timer.api.bean.jxgl.JxglAdminZbk;
import cn.timer.api.bean.jxgl.JxglAssoFbzbk;
import cn.timer.api.bean.jxgl.JxglAssoJxdj;
import cn.timer.api.bean.jxgl.JxglAssoKpzry;
import cn.timer.api.bean.jxgl.JxglAssoZbzdsz;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.dao.jxgl.JxglAdminJcszMapper;
import cn.timer.api.dao.jxgl.JxglAdminKpzszMapper;
import cn.timer.api.dao.jxgl.JxglAdminZbkMapper;
import cn.timer.api.dao.jxgl.JxglAssoFbzbkMapper;
import cn.timer.api.dao.jxgl.JxglAssoJxdjMapper;
import cn.timer.api.dao.jxgl.JxglAssoKpzryMapper;
import cn.timer.api.dao.jxgl.JxglAssoZbzdszMapper;
import cn.timer.api.dto.jxgl.AppraisalGroupSettingsDto;
import cn.timer.api.dto.jxgl.FoundationSetupDto;
import cn.timer.api.dto.jxgl.IndexDatabaseDto;
import cn.timer.api.dto.jxgl.IndexDetailDto;
import cn.timer.api.dto.sbgjj.SearchPlanDto;
import cn.timer.api.dto.xcgl.CustomDto;
import cn.timer.api.utils.ResponseResult;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * @author lalqq
 *	绩效管理
 */
//@SuppressWarnings("all")
@Api(tags = "绩效管理API")
@RestController
@RequestMapping(value = "/jxgl", produces = { "application/json" })
public class AchievementsController {
	
	//基础设置
	@Autowired
	private JxglAdminJcszMapper jxgladminjcszmapper;
	//绩效等级
	@Autowired
	private JxglAssoJxdjMapper jxglassojxdjmapper;
	//指标字段设置
	@Autowired
	private JxglAssoZbzdszMapper jxglassozbzdszmapper;
	
	//指标库
	@Autowired
	private JxglAdminZbkMapper jxgladminzbkmapper;
	//指标库量化指标
	@Autowired
	private JxglAssoFbzbkMapper jxglassofbzbkmapper;
	
	//考评组设置
	@Autowired
	private JxglAdminKpzszMapper jxgladminkpzszmapper;
	//考评组管理员/被考核人员
	@Autowired
	private JxglAssoKpzryMapper jxglassokpzrymapper;
	
	
	@GetMapping(value = "/indeldlist")
	@ApiOperation(value = "获取指标字段", httpMethod = "GET", notes = "接口发布说明")
	public ResponseResult IndexfieldList(@CurrentUser UserBean userBean) {
		
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		@SuppressWarnings("unused")
		int userid = userBean.getEmpNum();//用户id
		
		List<JxglAssoZbzdsz> zbzdsz = new LambdaQueryChainWrapper<JxglAssoZbzdsz>(jxglassozbzdszmapper).eq(JxglAssoZbzdsz::getQyid, qyid).eq(JxglAssoZbzdsz::getIsSfqy,1).list();
		
		return new ResponseResult().success("获取指标字段信息成功", zbzdsz);
	}
	
	/**
	 * 	基础设置
	 */
	@GetMapping(value="/fouetuplist")
	@ApiOperation(value = "获取基础设置数据", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 2)
	public Result<FoundationSetupDto> foundationsetupList(@CurrentUser UserBean userBean) {
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		
		FoundationSetupDto setupdto = new FoundationSetupDto();
		
		//基础设置
		JxglAdminJcsz jcsz = new LambdaQueryChainWrapper<JxglAdminJcsz>(jxgladminjcszmapper).eq(JxglAdminJcsz::getQyid, qyid).one();
		List<JxglAssoJxdj> jxdjlist = null;
		List<JxglAssoZbzdsz> zbzdszlist = null;
		if(jcsz != null) {
			//绩效等级
			jxdjlist = new LambdaQueryChainWrapper<JxglAssoJxdj>(jxglassojxdjmapper).eq(JxglAssoJxdj::getJcszid, jcsz.getId()).list();
			//指标字段设置
			zbzdszlist = new LambdaQueryChainWrapper<JxglAssoZbzdsz>(jxglassozbzdszmapper).eq(JxglAssoZbzdsz::getJcszid, jcsz.getId()).list();
		}
		
		
		setupdto.setJcsz(jcsz);
		setupdto.setJxdj(jxdjlist);
		setupdto.setZbzdsz(zbzdszlist);
		
		return ResultUtil.data(setupdto);
	}
	
	
	
	@PostMapping(value = "/fouset")
	@ApiOperation(value = "基础设置", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 3)
	public Result<JxglAdminJcsz> FoundationSetup(@CurrentUser UserBean userBean,@RequestBody Map<String,Object> basics) {
		
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		int userid = userBean.getEmpNum();//用户id
		
		@SuppressWarnings("unused")
		Map<String, Object> result = new HashMap<String, Object>();
		
		String xgyh = basics.get("a").toString();
		@SuppressWarnings("rawtypes")
		HashMap hashMap = JSON.parseObject(xgyh, HashMap.class);
		
		int jcszid = 0;
		
		
		JxglAdminJcsz jcsz = JxglAdminJcsz.builder().build();
		jcsz.setIsOrk(Integer.valueOf(hashMap.get("isOrk").toString()));;//OKR开关 0:关;1:开(目标(Objectives)与关键成果法(Key Results))
		jcsz.setIsJxkh(Integer.valueOf(hashMap.get("isJxkh").toString()));;//绩效考核开关 0:关;1:开(支持KPI、BSC、360互评等多种考核方式)
		jcsz.setJsgz(Integer.valueOf(hashMap.get("jsgz").toString()));;//计算规则 0:量化指标和行为价值观指标合并计算;1:量化指标和行为价值观指标分开计算
		jcsz.setLhzb(Integer.valueOf(hashMap.get("lhzb").toString()));;//量化指标 0:数字型;1:文本型
		jcsz.setLhzbZfzdjh(Integer.valueOf(hashMap.get("lhzbZfzdjh").toString()));;//总分自动加和开关 0:关;1:开
		jcsz.setLhzbLrfs(Integer.valueOf(hashMap.get("lhzbLrfs").toString()));;//录入方式  0:文本框输入;1:下拉选择
		jcsz.setXwjzgzb(Integer.valueOf(hashMap.get("xwjzgzb").toString()));;//行为价值观指标 0:数字型;1:文本型
		jcsz.setXwjzgzbZfzdjh(Integer.valueOf(hashMap.get("xwjzgzbZfzdjh").toString()));;//总分自动加和开关 0:关;1:开
		jcsz.setXwjzgzbLrfs(Integer.valueOf(hashMap.get("xwjzgzbLrfs").toString()));;//录入方式  0:文本框输入;1:下拉选择
		jcsz.setJxdjkg(Integer.valueOf(hashMap.get("jxdjkg").toString()));;//绩效等级开关 0:关;1:开
		jcsz.setJxdjtype(Integer.valueOf(hashMap.get("jxdjtype").toString()));;//绩效等级类型 0:强制正态分布;1:分数区间对应
		jcsz.setDjrsgl(Integer.valueOf(hashMap.get("djrsgl").toString()));;//对接人事管理开关 0:关;1:开
		jcsz.setDbzdtx(Integer.valueOf(hashMap.get("dbzdtx").toString()));;//待办自动提醒开关 0:关;1:开
		jcsz.setFzmc(hashMap.get("fzmc").toString());;//分制名称
		jcsz.setManfen(hashMap.get("manfen").toString());;//满分
		
		
		if(Integer.valueOf(hashMap.get("id").toString()) > 0) {//修改
			jcszid = Integer.valueOf(hashMap.get("id").toString());
			
			jcsz.setId(jcszid);
			jxgladminjcszmapper.updateById(jcsz);
			
		}else {//新增

			jcsz.setQyid(qyid);;//企业id
			jcsz.setTjryid(userid);;//添加人员ID
			jxgladminjcszmapper.insertjxgladminjcsz(jcsz);
			jcszid = jcsz.getId();
			
		}
		
		//绩效等级
		String jxdjStr = basics.get("b").toString();
		if(!("{}").equals(jxdjStr)) {
			jxglassojxdjmapper.deletejxdjByjcszid(jcszid);
			
			JSONArray json = JSONArray.fromObject(jxdjStr); // 首先把字符串转成 JSONArray 对象
			List<JxglAssoJxdj> jxdjlist=new ArrayList<JxglAssoJxdj>();
			if (json.size() > 0) {
				for (int i = 0; i < json.size(); i++) {
					JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
					JxglAssoJxdj jxdj = JxglAssoJxdj.builder().build();
					jxdj.setType(Integer.valueOf(hashMap.get("jxdjtype").toString()));;//绩效等级类型 1:强制正态分布;2:分数区间对应;
					if(Integer.valueOf(hashMap.get("jxdjtype").toString()) == 0) {//强制正态分布
						jxdj.setDjmc(job.get("djmc").toString());;//等级名称
						jxdj.setZbqj(job.get("zbqj").toString());;//占比区间(%)
						jxdj.setFsqjks("");;//分数区间范围开始
						jxdj.setFzqjjs("");;//分数区间范围结束
					}
					if(Integer.valueOf(hashMap.get("jxdjtype").toString()) == 1) {//分数区间对应
						jxdj.setDjmc(job.get("djmc").toString());;//等级名称
						jxdj.setZbqj("");;//占比区间(%)
						jxdj.setFsqjks("");;//分数区间范围开始
						jxdj.setFzqjjs(job.get("fzqjjs").toString());;//分数区间范围结束
					}
					jxdj.setJcszid(jcszid);;//设置id
					jxdj.setQyid(qyid);
					jxdjlist.add(jxdj);
				}
			}
			if(jxdjlist.size() > 0) {
				jxglassojxdjmapper.insertJxglAssoJxdjList(jxdjlist);
			}
		}
		
		//指标字段设置
		String zbzdszStr = basics.get("c").toString();
		if(!("{}").equals(zbzdszStr)) {
			jxglassozbzdszmapper.deletezbzdszByjcszid(jcszid);
			
			JSONArray json = JSONArray.fromObject(zbzdszStr); // 首先把字符串转成 JSONArray 对象
			List<JxglAssoZbzdsz> zbzdszlist=new ArrayList<JxglAssoZbzdsz>();
			if (json.size() > 0) {
				for (int i = 0; i < json.size(); i++) {
					JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
					JxglAssoZbzdsz zbzdsz= JxglAssoZbzdsz.builder().build();
					if(!("结果值").equals(job.get("name").toString())) {
						zbzdsz.setName(job.get("name").toString());;//字段名称
						zbzdsz.setType(Integer.valueOf(job.get("type").toString()));;//字段类型 1:数字/文本(如果指标的公式计算使用此变量,则强制指标的此变量和录入结果值为数字类型)
						zbzdsz.setIsSfqy(Integer.valueOf(job.get("isSfqy").toString()));;//是否启用 0:否;1:是
						zbzdsz.setIsGsbl(Integer.valueOf(job.get("isGsbl").toString()));;//是否开启公式变量 0:否;1:是(开启后,可以作为变量用于指标的公式计算)
						zbzdsz.setJcszid(jcszid);;//设置id
						zbzdsz.setQyid(qyid);
						zbzdszlist.add(zbzdsz);
					}
				}
			}
			
			if(zbzdszlist.size() > 0) {
				jxglassozbzdszmapper.insertjxglassozbzdszList(zbzdszlist);
			}
		}
		
		return ResultUtil.data(null,"成功");
	}
	
	
	
	@DeleteMapping(value = "/deleteindex/{id}")
	@ApiOperation(value = "删除", httpMethod = "DELETE", notes = "接口发布说明")
	public ResponseResult deleteindex(@PathVariable Integer id) {
		
		JxglAdminZbk.builder().build().deleteById(id);
		
		//指标库量化指标
		jxglassofbzbkmapper.deletejxglassofbzbkByzbkid(id);
		
		return new ResponseResult().success("删除成功", id);
		
	}
	
	
	
	@PostMapping(value = "/indexabaselist")
	@ApiOperation(value = "获取指标库搜索/分页", httpMethod = "POST", notes = "接口发布说明")
	public Result<Object> IndexDatabaseList(@CurrentUser UserBean userBean,@RequestBody SearchPlanDto searchp) {
		
		String c = searchp.getCityName();

		Page<JxglAdminZbk> page = new Page<JxglAdminZbk>(
				searchp.getCurrentPage() == null ? 1 : searchp.getCurrentPage(),
						searchp.getTotalPage() == null ? 10 : searchp.getTotalPage());

		QueryWrapper<JxglAdminZbk> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("qyid",userBean.getOrgCode()).and(!StrUtil.hasBlank(c), wq -> wq.likeRight("zbmc", c));
		
		IPage<JxglAdminZbk> jxgladminzbkPage = JxglAdminZbk.builder().build().selectPage(page, queryWrapper);
		List<JxglAdminZbk> zbks = jxgladminzbkPage.getRecords();
		jxgladminzbkPage.getCurrent();
		jxgladminzbkPage.getPages();
		jxgladminzbkPage.getTotal();
		jxgladminzbkPage.getSize();
		
		return ResultUtil.data(jxgladminzbkPage, zbks, "方案搜索成功");
	}
	
	
	
	
	@PostMapping(value = "/indexdatabase")
	@ApiOperation(value = "新增指标库", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 4)
	public ResponseResult IndexDatabase(@CurrentUser UserBean userBean,@RequestBody IndexDatabaseDto indexd) {
		
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		@SuppressWarnings("unused")
		int userid = userBean.getEmpNum();//用户id
		
		JxglAdminZbk zbk = JxglAdminZbk.builder().build();
	    zbk.setZbmc(indexd.getName());;//指标名称
	    zbk.setZbtype(indexd.getType());;//指标类型 0:量化指标;1:行为价值指标;2:加分项;3:扣分项
	    zbk.setKhbz(indexd.getKhbz());;//考核标准
	    zbk.setQuanz(indexd.getQz());;//权重
	    zbk.setRemarks(indexd.getBz());;//备注
	    zbk.setPfsf(indexd.getFs());;//评分方式 0:直接输入分数;1:评分公式计算
	    if(indexd.getFs() == 1) {
	    	zbk.setPfgs(indexd.getFsgs());;//评分公式
	    }else {
	    	zbk.setPfgs("");;//评分公式
	    }
	    zbk.setJgzsjly(indexd.getLy());;//结果值数据来源 0:被考核让人;1:指定成员
	    if(indexd.getLy() == 1) {
	    	zbk.setZdcyid(indexd.getZdcyid());;//指定成员ID 结果值数据来源为“1”时
	    }else {
	    	zbk.setZdcyid(0);;//指定成员ID 结果值数据来源为“1”时
	    }
	    zbk.setBxbqkg(indexd.getBx());;//必选标签开关 0:关;1:开
	    zbk.setZdpfrkg(indexd.getPfr());;//指定评分人开关 0:关;1:开
	    if(indexd.getPfr() == 1) {
	    	zbk.setSdpfrid(indexd.getZdpfrid());;//设定评分人ID 指定评分人开关为“1”时
	    }else {
	    	zbk.setSdpfrid(0);;//设定评分人ID 指定评分人开关为“1”时
	    }
	    
	    String[] bqs = indexd.getBq();
		String sybc=String.join(",",bqs);
		zbk.setLabel(sybc);//标签
//	    zbk.setLabel(indexd.getBq());;//标签
	    
	    zbk.setJfbz(indexd.getJfbz());;//加分标准
	    zbk.setJfsx(indexd.getJfsx());;//加分上限
	    zbk.setKfbz(indexd.getKfbz());;//扣分标准
	    zbk.setKfsx(indexd.getKfsx());;//扣分上限
	    zbk.setQyid(qyid);;//企业id
	    jxgladminzbkmapper.insertjxgladminzbk(zbk);
	    
	    int zbkid = zbk.getId();
	    
	    
	    List<JxglAssoFbzbk> fbzbklist=new ArrayList<JxglAssoFbzbk>();
		CustomDto[] cus = indexd.getZbz();
		if(cus.length>0){
			for(int p=0;p<cus.length;p++){
				JxglAssoFbzbk fbzbk = new JxglAssoFbzbk();
				fbzbk.setZbkid(zbkid);//指标库id
				fbzbk.setZbzdszid(cus[p].getId());//指标字段设置id
				fbzbk.setValue(cus[p].getVal());//指标字段值
				fbzbklist.add(fbzbk);
			}
		}
		if(fbzbklist.size()>0){
			jxglassofbzbkmapper.insertjxglassofbzbkList(fbzbklist);
		}
	    
		
		return new ResponseResult().success("成功", zbk); 
		
	}
	
	@GetMapping(value = "/indedetailed/{id}")
	@ApiOperation(value = "获取指标字段详细", httpMethod = "GET", notes = "接口发布说明")
	public ResponseResult IndexFieldDetailed(@CurrentUser UserBean userBean,@PathVariable Integer id) {
		
		@SuppressWarnings("unused")
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		@SuppressWarnings("unused")
		int userid = userBean.getEmpNum();//用户id
		
		IndexDetailDto detai = new IndexDetailDto();
		
		JxglAdminZbk zbzdsz = new LambdaQueryChainWrapper<JxglAdminZbk>(jxgladminzbkmapper).eq(JxglAdminZbk::getId,id).one();
		
		List<JxglAssoFbzbk> fbzbklist = new LambdaQueryChainWrapper<JxglAssoFbzbk>(jxglassofbzbkmapper).eq(JxglAssoFbzbk::getZbkid, id).list();
		
		detai.setZbzdsz(zbzdsz);
		detai.setFbzbklist(fbzbklist);
		
		
		return new ResponseResult().success("获取指标字段信息成功", detai);
	}
	
	@PutMapping(value = "/upindexdatabase")
	@ApiOperation(value = "修改指标库", httpMethod = "PUT", notes = "接口发布说明")
	public ResponseResult updaIndexdatabase(@CurrentUser UserBean userBean,@RequestBody IndexDatabaseDto indexd) {
		
		@SuppressWarnings("unused")
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		@SuppressWarnings("unused")
		int userid = userBean.getEmpNum();//用户id
		
		JxglAdminZbk zbk = JxglAdminZbk.builder().build();
	    zbk.setZbmc(indexd.getName());;//指标名称
	    zbk.setZbtype(indexd.getType());;//指标类型 0:量化指标;1:行为价值指标;2:加分项;3:扣分项
	    zbk.setKhbz(indexd.getKhbz());;//考核标准
	    zbk.setQuanz(indexd.getQz());;//权重
	    zbk.setRemarks(indexd.getBz());;//备注
	    zbk.setPfsf(indexd.getFs());;//评分方式 0:直接输入分数;1:评分公式计算
	    if(indexd.getFs() == 1) {
	    	zbk.setPfgs(indexd.getFsgs());;//评分公式
	    }else {
	    	zbk.setPfgs("");;//评分公式
	    }
	    zbk.setJgzsjly(indexd.getLy());;//结果值数据来源 0:被考核让人;1:指定成员
	    if(indexd.getLy() == 1) {
	    	zbk.setZdcyid(indexd.getZdcyid());;//指定成员ID 结果值数据来源为“1”时
	    }else {
	    	zbk.setZdcyid(0);;//指定成员ID 结果值数据来源为“1”时
	    }
	    zbk.setBxbqkg(indexd.getBx());;//必选标签开关 0:关;1:开
	    zbk.setZdpfrkg(indexd.getPfr());;//指定评分人开关 0:关;1:开
	    if(indexd.getPfr() == 1) {
	    	zbk.setSdpfrid(indexd.getZdpfrid());;//设定评分人ID 指定评分人开关为“1”时
	    }else {
	    	zbk.setSdpfrid(0);;//设定评分人ID 指定评分人开关为“1”时
	    }
	    
	    String[] bqs = indexd.getBq();
		String sybc=String.join(",",bqs);
		zbk.setLabel(sybc);//标签
		
	    zbk.setJfbz(indexd.getJfbz());;//加分标准
	    zbk.setJfsx(indexd.getJfsx());;//加分上限
	    zbk.setKfbz(indexd.getKfbz());;//扣分标准
	    zbk.setKfsx(indexd.getKfsx());;//扣分上限
//	    zbk.setQyid(qyid);;//企业id
	    zbk.setId(indexd.getId());
	    zbk.updateById();
	    
	    int zbkid = indexd.getId();
	    
	    //指标库量化指标
	    jxglassofbzbkmapper.deletejxglassofbzbkByzbkid(zbkid);
	    
	    List<JxglAssoFbzbk> fbzbklist=new ArrayList<JxglAssoFbzbk>();
		CustomDto[] cus = indexd.getZbz();
		if(cus.length>0){
			for(int p=0;p<cus.length;p++){
				JxglAssoFbzbk fbzbk = new JxglAssoFbzbk();
				fbzbk.setZbkid(zbkid);//指标库id
				fbzbk.setZbzdszid(cus[p].getId());//指标字段设置id
				fbzbk.setValue(cus[p].getVal());//指标字段值
				fbzbklist.add(fbzbk);
			}
		}
		if(fbzbklist.size()>0){
			jxglassofbzbkmapper.insertjxglassofbzbkList(fbzbklist);
		}
	    
		
		return new ResponseResult().success("成功", zbk); 
	}
	
	
/**************************考评组***********************************/
	
	@PostMapping(value = "/evaseclist")
	@ApiOperation(value = "获取考评组", httpMethod = "POST", notes = "接口发布说明")
	public Result<Object> EvaluationSectionList(@CurrentUser UserBean userBean,@RequestBody SearchPlanDto searchp) {
		
		String c = searchp.getCityName();

		Page<JxglAdminKpzsz> page = new Page<JxglAdminKpzsz>(
				searchp.getCurrentPage() == null ? 1 : searchp.getCurrentPage(),
						searchp.getTotalPage() == null ? 10 : searchp.getTotalPage());

		QueryWrapper<JxglAdminKpzsz> queryWrapper = new QueryWrapper<>();
		queryWrapper.eq("qyid",userBean.getOrgCode()).and(!StrUtil.hasBlank(c), wq -> wq.likeRight("kpzmc", c));
		
		IPage<JxglAdminKpzsz> jxgladminkpzszPage = JxglAdminKpzsz.builder().build().selectPage(page, queryWrapper);
		List<JxglAdminKpzsz> kpzsz = jxgladminkpzszPage.getRecords();
		jxgladminkpzszPage.getCurrent();
		jxgladminkpzszPage.getPages();
		jxgladminkpzszPage.getTotal();
		jxgladminkpzszPage.getSize();
		
		return ResultUtil.data(jxgladminkpzszPage, kpzsz, "获取考评组信息成功");
	}
	
	
	
	@PostMapping(value = "/indsection")
	@ApiOperation(value = "新增考评组", httpMethod = "POST", notes = "接口发布说明")
	public ResponseResult IndexEvaluationSection(@CurrentUser UserBean userBean,@RequestBody AppraisalGroupSettingsDto appgroset) {
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		@SuppressWarnings("unused")
		int userid = userBean.getEmpNum();//用户id
		
		JxglAdminKpzsz kpz = JxglAdminKpzsz.builder().build();
		kpz.setKpzmc(appgroset.getName());;//考评组名称
		kpz.setZqtype(appgroset.getType());;//周期类型 0:月度;1:季度;2:半年度;3:年度;4:试用期;5:日;6:自定义;
		kpz.setPfsmbt(appgroset.getPf());;//评分说明必填开关 0:关;1:开
		kpz.setZbpfjs(appgroset.getPffs());;//指标评分计算方式 0:指标评分加和计算;1:指标评分加权计算(指标评分加和计算:评分=指标1评分+指标2评分+... | 指标评分加权计算 :评分=指标1评分*指标1权重+指标2评分*指标2权重+...)
		kpz.setLcsjtype(appgroset.getLcsjtype());;//流程设计类型 0:按评分人设置流程;1:按指标设置流程
		kpz.setMbzdrtype(appgroset.getMbzdr());;//目标制定人类型 0:被考核人;1:主管;2:指定成员;3:系统【目标制定】
//		System.out.println(appgroset.getEnacusers());
		String[] enac = appgroset.getEnacusers();
		String mbzdr=String.join(",",enac);
		kpz.setMbzdrid(mbzdr);;//目标制定指定人id 【目标制定】--------[格式:101、102]
			
		kpz.setMbqrr(appgroset.getMbqrr());;//目标确认人类型 0:主管;1:指定成员;2:被考核人【目标确认】;9:关
//		System.out.println(appgroset.getConfusers());
		String[] conf = appgroset.getConfusers();
		String mbqrr=String.join(",",conf);
		
		kpz.setMbqrzdr(mbqrr);;//目标确认指定人id 【目标确认】--------[格式:101、102]
		kpz.setZppz(appgroset.getZppz());;//自评配置开关 0:关;1:开
		kpz.setZpweight(appgroset.getZpweight());;//自评权重
		kpz.setHppz(appgroset.getHppz());;//互评配置开关 0:关;1:开
		kpz.setHpweight(appgroset.getHpweight());;//互评权重
		kpz.setHpnmkg(appgroset.getHpnmkg());;//互评匿名开关 0:关;1:开【互评】
		kpz.setHpdrclfs(appgroset.getHpdrclfs());;//互评多人时的处理方式 0:各自评分(计算时取平均值);1:任一评分(任一评分人评分即可);9:关【互评】
		kpz.setPfrqc(appgroset.getPrfqc());;//评分人去重 0:关;1:开【评分全局配置】
		kpz.setPfrsdpj(appgroset.getPfrsdpj());;//评分人手动评级 0:关;1:开【评分全局配置】
		kpz.setSjpfpz(appgroset.getSjpfpz());;//上级评分配置开关 0:关;1:开
		kpz.setSjweight(appgroset.getSjqz());;//上级评分权重
		kpz.setSpdrclfs(appgroset.getSjclstate());;//上级评分多人时的处理方式 0:各自评分(计算时取平均值);1:任一评分(任一评分人评分即可);9:关【上级评分】
		kpz.setDpf(appgroset.getDpf());;//代评分 若该级处理人空缺,由其在通讯录中的上级主管代评分 ===> 0:关;1:开【上级评分】
		kpz.setYxzj(appgroset.getYxzj());;//允许转交 0:关;1:开【上级评分】
		kpz.setPfgz(appgroset.getSjpfrule());;//评分规则 0:评分人需要对每个指标进行评分;1:评分人不需要对每个指标进行评分,只需评一个总的得分;9:关【上级评分】
		
		kpz.setCyrs(appgroset.getAssepers().length);//参与人数
		kpz.setQyid(qyid);;//企业id
		jxgladminkpzszmapper.insertjxgladminkpzsz(kpz);
		int kpzid = kpz.getId();
		//考评组管理员
		String[] evaladminid = appgroset.getEvaladminid();
		List<JxglAssoKpzry> kpzrylist=new ArrayList<JxglAssoKpzry>();
		for(int f=0;f<evaladminid.length;f++) {
			JxglAssoKpzry kpzry = JxglAssoKpzry.builder().build();
			kpzry.setKpzszid(kpzid);;//考评组设置ID
			kpzry.setType(1);;//类型 1:考评组管理员;2:被考核人员
			kpzry.setUsernum(Integer.valueOf(evaladminid[f]));;//员工编号
			kpzry.setQyid(qyid);;//企业id
			kpzrylist.add(kpzry);
		}
		if(kpzrylist.size() > 0) {
			jxglassokpzrymapper.insertjxglassokpzryList(kpzrylist);
		}
		// 被考核人员
		String[] assepers = appgroset.getAssepers();
		List<JxglAssoKpzry> asseperslist=new ArrayList<JxglAssoKpzry>();
		for(int a=0;a<assepers.length;a++) {
			JxglAssoKpzry kpzry = JxglAssoKpzry.builder().build();
			kpzry.setKpzszid(kpzid);;//考评组设置ID
			kpzry.setType(2);;//类型 1:考评组管理员;2:被考核人员
			kpzry.setUsernum(Integer.valueOf(assepers[a]));;//员工编号
			kpzry.setQyid(qyid);;//企业id
			asseperslist.add(kpzry);
		}
		if(asseperslist.size() > 0) {
			jxglassokpzrymapper.insertjxglassokpzryList(asseperslist);
		}
		
		
		
		return new ResponseResult().success("成功", null); 
	}
	
	
	/**x
	 *	 删除考评组
	 */
	@DeleteMapping(value = "/evaluationgroup/{id}")
	@ApiOperation(value = "删除考评组", httpMethod = "DELETE", notes = "接口发布说明")
	public Result<Integer> EvaluationGroup(@PathVariable("id") Integer id) {
		
		
		JxglAdminKpzsz.builder().build().deleteById(id);
		
		jxglassokpzrymapper.deleteBykpzszid(id);
		
		return ResultUtil.data(id,"删除成功");
		
	}
	
	
	@GetMapping(value = "/seleitem/{id}")
	@ApiOperation(value = "选择指标项", httpMethod = "GET", notes = "接口发布说明")
	public ResponseResult SelectIndexItem(@CurrentUser UserBean userBean,@PathVariable Integer id) {
		
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
		@SuppressWarnings("unused")
		int userid = userBean.getEmpNum();//用户id
		
		List<JxglAdminZbk> zbklist = new LambdaQueryChainWrapper<JxglAdminZbk>(jxgladminzbkmapper).eq(JxglAdminZbk::getQyid,qyid)
				.eq(JxglAdminZbk::getZbtype,id).list();
		
		return new ResponseResult().success("选择指标项", zbklist);
	}
	
	
}