AchievementsController.java 25.3 KB
Newer Older
yuquan.zhu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
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;
23
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
yuquan.zhu committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

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】
96
		@SuppressWarnings("unused")
yuquan.zhu committed
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
		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
		
144
		@SuppressWarnings("unused")
yuquan.zhu committed
145 146 147
		Map<String, Object> result = new HashMap<String, Object>();
		
		String xgyh = basics.get("a").toString();
148
		@SuppressWarnings("rawtypes")
yuquan.zhu committed
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
		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】
301
		@SuppressWarnings("unused")
yuquan.zhu committed
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368
		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) {
		
369
		@SuppressWarnings("unused")
yuquan.zhu committed
370
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
371
		@SuppressWarnings("unused")
yuquan.zhu committed
372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
		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) {
		
391
		@SuppressWarnings("unused")
yuquan.zhu committed
392
		int qyid = userBean.getOrgCode();//坏小孩【企业id】
393
		@SuppressWarnings("unused")
yuquan.zhu committed
394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489
		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】
490
		@SuppressWarnings("unused")
yuquan.zhu committed
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586
		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】
587
		@SuppressWarnings("unused")
yuquan.zhu committed
588 589 590 591 592 593 594 595 596 597
		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);
	}
	
	
}