YgglController.java 73.3 KB
Newer Older
tangzhaoqian committed
1 2 3 4 5 6 7
/**
 * @date 2019年11月15日  
 * @author 翁东州
 * @方法中文名称:
 */
package cn.timer.api.controller.yggl;

8
import java.io.IOException;
lal committed
9
import java.text.ParseException;
lal committed
10
import java.text.SimpleDateFormat;
tangzhaoqian committed
11 12 13 14 15 16 17 18 19
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;

20 21
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
tangzhaoqian committed
22 23 24
import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
25
import org.springframework.beans.factory.annotation.Value;
tangzhaoqian committed
26
import org.springframework.transaction.interceptor.TransactionAspectSupport;
27
import org.springframework.validation.annotation.Validated;
tangzhaoqian committed
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;

import cn.hutool.core.bean.BeanUtil;
46
import cn.hutool.core.collection.CollUtil;
47
import cn.hutool.core.collection.CollectionUtil;
tangzhaoqian committed
48
import cn.hutool.core.date.BetweenFormater.Level;
yuquan.zhu committed
49
import cn.hutool.core.date.DateField;
tangzhaoqian committed
50
import cn.hutool.core.date.DateUtil;
51
import cn.hutool.core.io.IoUtil;
tangzhaoqian committed
52 53 54
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
55
import cn.hutool.core.util.IdcardUtil;
56
import cn.hutool.core.util.ObjectUtil;
57
import cn.hutool.core.util.ReUtil;
tangzhaoqian committed
58
import cn.hutool.core.util.StrUtil;
59
import cn.hutool.json.JSONObject;
tangzhaoqian committed
60
import cn.hutool.json.JSONUtil;
61 62
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
tangzhaoqian committed
63 64
import cn.timer.api.bean.clazz.CommonArea;
import cn.timer.api.bean.clazz.SysRegion;
lal committed
65
import cn.timer.api.bean.kqmk.KqglAssoLeaveBalance;
lal committed
66
import cn.timer.api.bean.kqmk.KqglAssoLeaveEmployeeBalance;
lal committed
67
import cn.timer.api.bean.kqmk.KqglAssoLeaveRules;
ilal committed
68
import cn.timer.api.bean.kqmk.KqglAssoYhkqz;
tangzhaoqian committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.yggl.YgglAttaClfjb;
import cn.timer.api.bean.yggl.YgglAttaCzjlb;
import cn.timer.api.bean.yggl.YgglAttaGzjlb;
import cn.timer.api.bean.yggl.YgglAttaGzk;
import cn.timer.api.bean.yggl.YgglAttaHtxxb;
import cn.timer.api.bean.yggl.YgglAttaJjlxr;
import cn.timer.api.bean.yggl.YgglAttaJyjlb;
import cn.timer.api.bean.yggl.YgglAttaLxxxb;
import cn.timer.api.bean.yggl.YgglAttaPxjlxxb;
import cn.timer.api.bean.yggl.YgglAttaSbgjj;
import cn.timer.api.bean.yggl.YgglAttaZcxxb;
import cn.timer.api.bean.yggl.YgglAttaZszjb;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.yggl.YgglMainLzb;
import cn.timer.api.bean.zzgl.ZzglBmgwM;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enuminterface.YgEnumInterface;
89
import cn.timer.api.config.enuminterface.YgEnumInterface.jobStatus;
tangzhaoqian committed
90
import cn.timer.api.config.enums.CommonEnum;
91
import cn.timer.api.config.enums.SysRoleType;
92
import cn.timer.api.config.exception.Regular;
93
import cn.timer.api.config.validation.ValidList;
lal committed
94
import cn.timer.api.controller.kqgl.ClockInTool;
lal committed
95
import cn.timer.api.controller.kqgl.atttimer.RealTimeUpdate;
96
import cn.timer.api.controller.zzgl.service.ZzglBmgwMService;
tangzhaoqian committed
97
import cn.timer.api.dao.clazz.CommonAreaMapper;
lal committed
98
import cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper;
99
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
tangzhaoqian committed
100 101 102 103 104
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.yggl.YgMzDtoMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.yggl.YgglMainLzbMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
lal committed
105
import cn.timer.api.dto.kqmk.AdditionalDto;
tangzhaoqian committed
106
import cn.timer.api.dto.yggl.AddygdaDto;
107
import cn.timer.api.dto.yggl.EmpQuery;
108
import cn.timer.api.dto.yggl.ImportEmpDto;
tangzhaoqian committed
109 110 111 112 113 114 115 116 117 118 119
import cn.timer.api.dto.yggl.LoginInfoDto;
import cn.timer.api.dto.yggl.LoginerChargeDto;
import cn.timer.api.dto.yggl.LzbQueryDto;
import cn.timer.api.dto.yggl.LzygQueryDto;
import cn.timer.api.dto.yggl.YgCartogramDto;
import cn.timer.api.dto.yggl.YgKVDto;
import cn.timer.api.dto.yggl.YgQueryDto;
import cn.timer.api.dto.yggl.YgbintuDto;
import cn.timer.api.dto.yggl.YgglCartogramDto;
import cn.timer.api.dto.yggl.YgmzDto;
import cn.timer.api.dto.yggl.YgzzDto;
120
import cn.timer.api.utils.DateFormatUtils;
tangzhaoqian committed
121 122 123 124 125 126 127 128 129 130 131 132 133
import cn.timer.api.utils.Md5;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

/**
 * @date 2019年11月15日
 * @author 翁东州
 * @方法中文名称:
 */
@Api(tags = "3.员工管理")
@RestController
134
@Transactional(rollbackOn = Exception.class)
tangzhaoqian committed
135 136 137
@RequestMapping(value = "/yggl", produces = { "application/json" })
public class YgglController {

138 139
	@Value(value = "${config-8timer.init-password}")
	private String pwd;
140

tangzhaoqian committed
141 142
	@Autowired
	private YgglMainEmpMapper ygglMainEmpMapper;
143

144 145
	@Autowired
	private QyzxEmpEntAssoMapper qyzxEmpEntAssoMapper;
tangzhaoqian committed
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

	@Autowired
	private QyzxEmpLoginMapper qyzxEmpLoginMapper;

	@Autowired
	private YgglMainLzbMapper ygglMainLzbMapper;

	@Autowired
	private ZzglBmgwMMapper zzglBmgwMMapper;

	// weng(民族)
	@Autowired
	private YgMzDtoMapper ygMzDtoMapper;

	/**
	 * 获取员工档案
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/ygda")
167
	@ApiOperation(value = "1.获取员工档案", httpMethod = "GET", notes = "接口发布说明")
tangzhaoqian committed
168 169 170 171
	@ApiOperationSupport(order = 1)
	public Result<YgglMainEmp> selectygda(@CurrentUser UserBean userBean) {
		Integer empNum = userBean.getEmpNum();
		Integer orgCode = userBean.getOrgCode();
172
		YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda()
173
				.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum));
tangzhaoqian committed
174 175 176 177
		Date rz = ygglMainEmp.getRzTime();
		if (rz != null) {
			ygglMainEmp.setWorkTime(DateUtil.formatBetween(rz, new Date(), Level.DAY));
		}
178
		return ResultUtil.data(ygglMainEmp);
tangzhaoqian committed
179 180 181 182
	}

	// 获取员工档案
	@GetMapping(value = "/ygda/{empNum}")
183
	@ApiOperation(value = "2.获取员工档案(管)", httpMethod = "GET", notes = "接口发布说明")
tangzhaoqian committed
184 185 186
	@ApiOperationSupport(order = 2)
	public Result<YgglMainEmp> selectygda(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
		Integer orgCode = userBean.getOrgCode();
187
		YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda()
188
				.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum));
tangzhaoqian committed
189 190 191 192
		Date rz = ygglMainEmp.getRzTime();
		if (rz != null) {
			ygglMainEmp.setWorkTime(DateUtil.formatBetween(ygglMainEmp.getRzTime(), new Date(), Level.DAY));
		}
193
		return ResultUtil.data(ygglMainEmp);
tangzhaoqian committed
194 195 196 197 198 199 200 201 202
	}

	/**
	 * 根据岗位id获取员工档案部门岗位名称
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/ygdabm/{gwid}")
203
	@ApiOperation(value = "3.获取员工档案部门岗位名称", httpMethod = "GET", notes = "接口发布说明")
tangzhaoqian committed
204 205 206
	@ApiOperationSupport(order = 3)
	public Result<String> selectbmgw(@CurrentUser UserBean userBean, @PathVariable Integer gwid) {
		if (gwid == null || gwid == 0) {
207
			return ResultUtil.data("岗位不存在");
tangzhaoqian committed
208 209
		}
		Integer orgCode = userBean.getOrgCode();
210 211
		ZzglBmgwM zzglBmgwM = ZzglBmgwM.builder().build().selectOne(
				new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getId, gwid));
tangzhaoqian committed
212 213 214 215 216 217
		String gw = null;
		Integer bmid = null;
		if (zzglBmgwM != null) {
			gw = zzglBmgwM.getName();
			bmid = zzglBmgwM.getUpId();
		}
218 219
		ZzglBmgwM z = ZzglBmgwM.builder().build().selectOne(
				new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getId, bmid));
tangzhaoqian committed
220 221 222 223 224
		String bm = null;
		if (z != null) {
			bm = z.getName();
		}
		String bmgw = bm + "/" + gw;
225
		return ResultUtil.data(bmgw);
tangzhaoqian committed
226 227
	}

lal committed
228 229 230
	
	@Autowired
	private RealTimeUpdate realtimeupdate;
tangzhaoqian committed
231
	/**
232
	 * 添加员工档案
233
	 * 
234 235
	 * @param userBean
	 * @param addygdaDto
tangzhaoqian committed
236 237 238
	 * @return
	 */
	@PostMapping(value = "/addygda")
239
	@ApiOperation(value = "4.添加员工档案", httpMethod = "POST", notes = "接口发布说明")
tangzhaoqian committed
240
	@ApiOperationSupport(order = 4)
241 242
	public Result<Object> addygda(@CurrentUser UserBean userBean, @Validated @RequestBody AddygdaDto addygdaDto)
			throws Exception {
tangzhaoqian committed
243 244 245 246 247
		Integer orgCode = userBean.getOrgCode();
		String name = addygdaDto.getName();
		String phone = addygdaDto.getPhone();
		Integer zjType = addygdaDto.getZjType();
		String zjNum = addygdaDto.getZjNum();
248 249 250
		boolean isvalid = true;
		switch (zjType) {
		case 0:
251
			isvalid = IdcardUtil.isValidCard15(zjNum) || IdcardUtil.isValidCard18(zjNum);
252 253
			break;
		case 1:
254
			String[] strs = IdcardUtil.isValidCard10(zjNum);
邓实川 committed
255 256 257 258 259 260
			if (strs == null) {
				isvalid = false;
				break;
			}
			String str2 = strs != null && strs.length > 2 ? strs[2] : "false";
			isvalid = "澳门/香港".contains(strs[0]) && "true".equals(str2);
261 262
			break;
		case 2:
263
			isvalid = IdcardUtil.isValidTWCard(zjNum);
264 265 266 267 268 269 270
			break;
		case 3:
			isvalid = ReUtil.isMatch(Regular.PASSPORT1, zjNum) || ReUtil.isMatch(Regular.PASSPORT2, zjNum);
			break;
		default:
			break;
		}
ilal committed
271 272 273
//		if (!isvalid) {
//			return ResultUtil.error("证件格式不对!");
//		}
274

tangzhaoqian committed
275
		Integer jobType = addygdaDto.getJobType();
276
		Date rzTime = addygdaDto.getRzTime() == null ? new Date() : addygdaDto.getRzTime();
tangzhaoqian committed
277 278
		Integer syq = addygdaDto.getSyq();
		Integer sex = addygdaDto.getSex();
279
		Integer bmgwId = addygdaDto.getBmgwId();
lal committed
280
		
281

tangzhaoqian committed
282 283 284
		QyzxEmpLogin login = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
				.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
		if (login == null) {
285
			// 初始化密码 pwd
286
			login = QyzxEmpLogin.builder().phone(phone).pw(Md5.md5(pwd))
tangzhaoqian committed
287
					.sts(CommonEnum.U_STS_ON.getType()).orgId(userBean.getOrgCode()).username(name).build();
288
			if (!login.insert()) {
tangzhaoqian committed
289 290 291
				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
				return ResultUtil.error("添加员工登录表失败,请检查输入信息");
			}
292
		}
293

294 295 296 297
		YgglMainEmp ygglMainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
				.eq(YgglMainEmp::getPhone, phone).eq(YgglMainEmp::getOrgCode, orgCode));

		if (ygglMainEmp == null) {
298 299 300
			QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode).userType(SysRoleType.U_TYPE_EMP.getType())
					.status(CommonEnum.U_STS_ON.getType()).build().insert();
			ygglMainEmp = YgglMainEmp.builder().name(name).phone(phone).zjType(zjType).zjNum(zjNum).jobType(jobType)
301
					.jobStatus(jobStatus.SHIYONG.getType()).rzTime(rzTime).syq(syq).sex(sex)
302
					.empNum(login.getId()).orgCode(orgCode).bmgwId(bmgwId).build();
lal committed
303 304 305 306 307 308 309 310 311 312 313 314
			
			if(syq == 0) {
				ygglMainEmp.setZzTime(rzTime);
			}else {
				
				String sdf = new SimpleDateFormat("yyyy-MM-dd").format(rzTime);
				
				String zztime = ClockInTool.requires_extra_times(sdf, syq, 4, 1);
				
				ygglMainEmp.setZzTime(ClockInTool.strToDateLong(zztime));
			}
			
tangzhaoqian committed
315
			ygglMainEmp.insert();
lal committed
316 317
			
			//假期规则初始化
lal committed
318
			String current_time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
lal committed
319 320 321
			List<KqglAssoLeaveRules> rul = KqglAssoLeaveRules.builder().build().selectList(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, orgCode));
			for(KqglAssoLeaveRules r : rul) {
				if(r.getLeaveBalance() == 0) {
lal committed
322
					KqglAssoLeaveEmployeeBalance.builder().leaveRulesId(r.getId()).userid(ygglMainEmp.getEmpNum()).balanceDays(-1).modifyUserid(userBean.getEmpNum()).modifyTimer(current_time).orgCode(userBean.getOrgCode()).build().insert();
lal committed
323
				}else {
lal committed
324
					KqglAssoLeaveEmployeeBalance.builder().leaveRulesId(r.getId()).userid(ygglMainEmp.getEmpNum()).balanceDays(0.0).modifyUserid(userBean.getEmpNum()).modifyTimer(current_time).orgCode(userBean.getOrgCode()).build().insert();
lal committed
325 326 327 328
				}
			}
			
			
lal committed
329 330 331 332 333
			try {
				realtimeupdate.AttendanceTask(userBean.getOrgCode(), ygglMainEmp.getEmpNum(), 2,null);
			} catch (ParseException e) {
				e.printStackTrace();
			}
lal committed
334
			
335
			return ResultUtil.data(ygglMainEmp, "添加员工成功!");
tangzhaoqian committed
336
		} else {
337
			return ResultUtil.error("该手机号已被使用,请输入正确手机号");
tangzhaoqian committed
338
		}
339

tangzhaoqian committed
340 341 342 343 344 345 346 347 348
	}

	/**
	 * 修改员工档案
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/updateygda")
349
	@ApiOperation(value = "5.修改员工档案", httpMethod = "POST", notes = "接口发布说明")
tangzhaoqian committed
350 351 352 353
	@ApiOperationSupport(order = 5)
	public Result<Object> updateygda(@CurrentUser UserBean userBean, @RequestBody YgglMainEmp ygglMainEmp)
			throws Exception {

354 355
		if (ObjectUtil.isAllNotEmpty(ygglMainEmp.getRzTime(), ygglMainEmp.getZzTime())
				&& !DateFormatUtils.getCompareDate(ygglMainEmp.getRzTime(), ygglMainEmp.getZzTime())) {
356
			return ResultUtil.error("入职日期 不可以大于 转正日期");
357
		}
358

tangzhaoqian committed
359
		if (ygglMainEmp.getEmpNum() != null) {
360 361 362
			ygglMainEmp.update(new UpdateWrapper<YgglMainEmp>().lambda()
					.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())
					.eq(YgglMainEmp::getEmpNum, ygglMainEmp.getEmpNum()));
tangzhaoqian committed
363 364 365

			return ResultUtil.data(ygglMainEmp, "修改成功");
		}
366
		return ResultUtil.data(ygglMainEmp, "修改成功");
tangzhaoqian committed
367 368 369 370 371 372 373 374 375
	}

	/**
	 * 员工搜索
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/ygquery")
376
	@ApiOperation(value = "6.员工搜索/分页", httpMethod = "POST", notes = "接口发布说明")
tangzhaoqian committed
377 378 379 380 381 382 383 384 385 386 387 388
	@ApiOperationSupport(order = 6)
	public Result<Object> ygquery(@CurrentUser UserBean userBean, @RequestBody YgQueryDto ygQueryDto) {
		Integer orgCode = userBean.getOrgCode();
		Integer b = ygQueryDto.getBmgwid();
		ArrayList<Integer> bList = new ArrayList<Integer>();
		List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
				.eq(ZzglBmgwM::getOrgCode, orgCode).list();
		ZzglBmgwM.getDepts(bList, b, zzglBmgwMs);

		Integer j = ygQueryDto.getJobStatus();
		Integer t = ygQueryDto.getJobType();
		String q = ygQueryDto.getQuery();
389
		Page<YgglMainEmp> page = new Page<YgglMainEmp>(ygQueryDto.getCurrentPage(), ygQueryDto.getTotalPage());
tangzhaoqian committed
390
		QueryWrapper<YgglMainEmp> queryWrapper = new QueryWrapper<>();
391
		queryWrapper.lambda()
392 393
				.select(YgglMainEmp::getName, YgglMainEmp::getEmpNum, YgglMainEmp::getBmgwId, YgglMainEmp::getRzTime,
						YgglMainEmp::getJobType, YgglMainEmp::getPhone, YgglMainEmp::getJobStatus)
394
				.ne(YgglMainEmp::getJobStatus, jobStatus.YILIZHI.getType())
395 396
				.eq(YgglMainEmp::getOrgCode, orgCode).eq(t != null && t > -1, YgglMainEmp::getJobType, t)
				.eq(j != null && j > -1, YgglMainEmp::getJobStatus, j)
397 398
				.in(!bList.isEmpty(), YgglMainEmp::getBmgwId, bList)
				.and(!StrUtil.hasBlank(q), wq -> wq.like(YgglMainEmp::getName, q).or().like(YgglMainEmp::getPhone, q));
tangzhaoqian committed
399 400

		IPage<YgglMainEmp> ygglMainEmpPage = YgglMainEmp.builder().build().selectPage(page, queryWrapper);
401

402
		return ResultUtil.data(ygglMainEmpPage);
tangzhaoqian committed
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
	
	@Autowired
	private ZzglBmgwMService zzglBmgwMService;
	
	/**
	 * 员工列表-分页
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/selects_emp")
	@ApiOperation(value = "6.员工列表-分页", httpMethod = "POST", notes = "员工列表-分页")
	@ApiOperationSupport(order = 6)
	public Result<Object> selectsEmp(@CurrentUser UserBean userBean, @RequestBody EmpQuery empQuery) {
		Integer orgCode = userBean.getOrgCode();
		Integer bmgwId = empQuery.getBmgwid();
		Page<YgglMainEmp> page = new Page<YgglMainEmp>(empQuery.getCurrentPage(), empQuery.getTotalPage());
		List<Integer> empNums = CollUtil.toList();
		
		if (bmgwId != null) {
			List<YgglMainEmp> usersQuery = zzglBmgwMService.selectOtherlistent(userBean.getOrgCode(), bmgwId);
			if (CollectionUtil.isNotEmpty(usersQuery)) {
				empNums = usersQuery.stream().map(YgglMainEmp::getEmpNum).collect(Collectors.toList());
			}else {
				return ResultUtil.data(null);
			}
			
			if (CollectionUtil.isEmpty(empNums)) {
				return ResultUtil.data(null);
			}
		}
		empQuery.setOrgCode(orgCode);
		empQuery.setEmpNums(empNums);
		IPage<YgglMainEmp> ygglMainEmpPage = ygglMainEmpMapper.selectME(page, empQuery);

		List<YgglMainEmp> ygglMainEmps = ygglMainEmpPage.getRecords();
		
		return ResultUtil.data(page, ygglMainEmps);
	}
443

tangzhaoqian committed
444 445 446 447
	/**
	 * 导入员工档案
	 */
	@PostMapping(value = "/import_emp_record")
448
	@ApiOperation(value = "7.导入员工档案", httpMethod = "POST", notes = "接口发布说明")
tangzhaoqian committed
449
	@ApiOperationSupport(order = 7)
450 451
	public Result<JSONObject> importEmpRecord(@CurrentUser UserBean userBean,
			@Validated @RequestBody ValidList<AddygdaDto> listAddygdaDto) throws Exception {
452

453 454 455 456 457
		Integer orgCode = userBean.getOrgCode();
		// 查询所有员工手机号
//		List<QyzxEmpLogin> listEl = qyzxEmpLoginMapper
//				.selectList(new QueryWrapper<QyzxEmpLogin>().lambda()
//						.select(QyzxEmpLogin::getPhone));
458 459 460 461 462 463 464

		List<YgglMainEmp> listMe = ygglMainEmpMapper.selectList(new QueryWrapper<YgglMainEmp>().lambda()
				.eq(YgglMainEmp::getOrgCode, orgCode).select(YgglMainEmp::getPhone, YgglMainEmp::getZjNum));

		listMe = listMe != null
				? listMe.stream().filter(o -> o != null && o.getPhone() != null).collect(Collectors.toList())
				: null;
465 466

		// 抽取 登录表 的phone的集合
467 468 469
		List<String> listPhone = listMe.stream().map(YgglMainEmp::getPhone).collect(Collectors.toList());
		// 抽取 登录表 的zjNum的集合
		List<String> listzjNum = listMe.stream().map(YgglMainEmp::getZjNum).collect(Collectors.toList());
470

471
		List<YgglMainEmp> listYmp = new ArrayList<YgglMainEmp>();
472

473
		// 过滤掉 导入数据中, listPhone已存在 的 phone 的对象集合
474
		List<AddygdaDto> list = listAddygdaDto.stream()
475 476 477
				.filter(o -> o != null && !listPhone.contains(o.getPhone()) && !listzjNum.contains(o.getZjNum()))
				.collect(Collectors.toList());

478
		// 过滤出 导入数据中, listPhone已存在 的 phone 的对象集合
479 480
		List<AddygdaDto> phoneRepetitions = listAddygdaDto.stream()
				.filter(o -> o != null && listPhone.contains(o.getPhone())).collect(Collectors.toList());
481

482
		// 过滤出 导入数据中, listzjNum 已存在 的 ZjNum 的对象集合
483
		List<AddygdaDto> idCardRepetitions = listAddygdaDto.stream()
484
				.filter(o -> o != null && listzjNum.contains(o.getZjNum())).collect(Collectors.toList());
485

486
		List<YgglMainEmp> insertErrors = new ArrayList<YgglMainEmp>();
487

488 489
		YgglMainEmp yme;
		for (AddygdaDto ad : list) {
490

491 492 493 494 495 496 497
			String name = ad.getName();
			String phone = ad.getPhone();
			Integer zjType = ad.getZjType();
			String zjNum = ad.getZjNum();
			boolean isvalid = true;
			switch (zjType) {
			case 0:
498
				isvalid = IdcardUtil.isValidCard15(zjNum) || IdcardUtil.isValidCard18(zjNum);
499 500
				break;
			case 1:
501
				String[] strs = IdcardUtil.isValidCard10(zjNum);
tangzhaoqian committed
502 503 504 505 506 507
				if (strs == null) {
					isvalid = false;
					break;
				}
				String str2 = strs != null && strs.length > 2 ? strs[2] : "false";
				isvalid = "澳门/香港".contains(strs[0]) && "true".equals(str2);
508 509
				break;
			case 2:
510
				isvalid = IdcardUtil.isValidTWCard(zjNum);
511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
				break;
			case 3:
				isvalid = ReUtil.isMatch(Regular.PASSPORT1, zjNum) || ReUtil.isMatch(Regular.PASSPORT2, zjNum);
				break;
			default:
				break;
			}
			if (!isvalid) {
				return ResultUtil.error("证件格式不对!");
			}
			Integer jobType = ad.getJobType();
			Date rzTime = ad.getRzTime() == null ? new Date() : ad.getRzTime();
			Integer syq = ad.getSyq();
			Integer sex = ad.getSex();
			Integer bmgwId = ad.getBmgwId();
526

527 528 529 530
			QyzxEmpLogin login = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
					.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
			if (login == null) {
				// 初始化密码 pwd
531 532
				login = QyzxEmpLogin.builder().phone(phone).pw(Md5.md5(pwd)).sts(CommonEnum.U_STS_ON.getType())
						.orgId(userBean.getOrgCode()).username(name).build();
533 534 535 536 537
				if (!login.insert()) {
					TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
					return ResultUtil.error("添加员工登录表失败,请检查输入信息");
				}
			}
tangzhaoqian committed
538

539 540 541 542 543
			QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode).userType(SysRoleType.U_TYPE_EMP.getType())
					.status(CommonEnum.U_STS_ON.getType()).build().insert();// usertype2普通员工 status1正常
			yme = YgglMainEmp.builder().name(name).phone(phone).zjType(zjType).zjNum(zjNum).jobType(jobType)
					.jobStatus(YgEnumInterface.jobStatus.SHIYONG.getType()).rzTime(rzTime).syq(syq).sex(sex)
					.empNum(login.getId()).orgCode(orgCode).bmgwId(bmgwId).build();
544 545
			if (yme.insert()) {
				listYmp.add(yme);
546
			} else {
547
				// 存放 插入失败的 数据
548
				insertErrors.add(yme);
549
			}
550

551
		}
552

553 554 555
		JSONObject obj = JSONUtil.createObj();
		obj.set("empList", listYmp);
		obj.set("phoneRepetitions", phoneRepetitions);
556 557
		obj.set("idCardRepetitions", idCardRepetitions);
		obj.set("insertErrors", insertErrors);
558 559 560

		// listEl.stream().filter(i -> i !=
		// null).collect(Collectors.<QyzxEmpLogin>toList());
561
		return ResultUtil.data(obj, "导入员工档案成功!");
tangzhaoqian committed
562
	}
563

tangzhaoqian committed
564
	/**
565
	 * 获取导入模板
tangzhaoqian committed
566 567 568
	 * 
	 * @param
	 * @return
569
	 * @throws IOException
tangzhaoqian committed
570
	 */
571 572 573 574
	@GetMapping(value = "/impoet_template")
	@ApiOperation(value = "8.获取导入模板", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 8)
	public Result<Object> getImpoetTemplate(HttpServletResponse response) throws IOException {
575
		ImportEmpDto ied = ImportEmpDto.builder().name("张三").phone("15219671123")
576
				// 证件类型 0:身份证;1:港澳居民来往内地通行证;2:台湾居民来往大陆通行证;3:外国护照;4:其他
577
				.zjType(0).zjNum("445381199611063586")
578
				// 工作性质 0全职、1实习生、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘
579
				.jobType(0).rzTime("2010-10-10 10:10:10")
580 581 582
				// 试用期 0:无试用期;1:1个月;2:2个月;3:3个月;4:4个月;5:5个月;6:6个月(有试用期显示选项)
				.syq(1)
				// 性别 0:男;1:女
583
				.sex(0).build();
584 585 586 587
		List<ImportEmpDto> listAd = CollUtil.newArrayList(ied);
		// 通过工具类创建writer
		ExcelWriter writer = ExcelUtil.getWriter(true);

588
		// 自定义标题别名
589 590 591 592 593 594 595 596
		writer.addHeaderAlias("name", "姓名");
		writer.addHeaderAlias("phone", "手机号");
		writer.addHeaderAlias("sex", "性别");
		writer.addHeaderAlias("zjType", "证件类型 0:身份证;1:港澳居民来往内地通行证;2:台湾居民来往大陆通行证;3:外国护照;4:其他");
		writer.addHeaderAlias("zjNum", "证件号");
		writer.addHeaderAlias("jobType", "工作性质 0全职、1实习生、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘");
		writer.addHeaderAlias("syq", "试用期 0:无试用期;1:1个月;2:2个月;3:3个月;4:4个月;5:5个月;6:6个月(有试用期显示选项)");
		writer.addHeaderAlias("rzTime", "入职日期");
597

598 599 600 601 602 603 604 605
		// 合并单元格后的标题行,使用默认标题样式
		writer.merge(7, "员工导入模板");
		writer.setFreezePane(2);
		writer.setColumnWidth(1, 15);
		writer.setColumnWidth(4, 22);
		writer.setColumnWidth(7, 20);
		// 一次性写出内容,使用默认样式,强制输出标题
		writer.write(listAd, true);
606 607 608

		response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
		response.setHeader("Content-Disposition", "attachment;filename=8timer_emp_import.xlsx");
609 610
		ServletOutputStream out = response.getOutputStream();
		writer.flush(out, true);
611

612 613
		// 关闭writer,释放内存
		writer.close();
614
		// 此处记得关闭输出Servlet流
615
		IoUtil.close(out);
616

617
		return ResultUtil.data(null, "获取模板成功");
tangzhaoqian committed
618 619 620 621 622 623 624 625 626 627

	}

	/**
	 * 导出员工
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/ygdas")
628 629
	@ApiOperation(value = "9.导出员工", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 9)
tangzhaoqian committed
630 631
	public Result<List<YgglMainEmp>> selectygdas(@CurrentUser UserBean userBean) {
		List<YgglMainEmp> list = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
632
				.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).in(YgglMainEmp::getJobStatus, jobStatus.SHIYONG.getType(), jobStatus.ZHENSHI.getType(), jobStatus.LIZHIZHONG.getType()).list();
tangzhaoqian committed
633 634 635 636 637 638 639 640 641 642
		return ResultUtil.data(list, "导出员工成功");
	}

	/**
	 * 获取员工教育经历表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/jyjlb")
643 644
	@ApiOperation(value = "10.获取员工教育经历表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 10)
tangzhaoqian committed
645
	public Result<List<YgglAttaJyjlb>> selectjyjlb(@CurrentUser UserBean userBean) {
646 647 648
		List<YgglAttaJyjlb> ygglAttaJyjlbss = YgglAttaJyjlb.builder().build().selectList(
				new QueryWrapper<YgglAttaJyjlb>().lambda().eq(YgglAttaJyjlb::getOrgCode, userBean.getOrgCode())
						.eq(YgglAttaJyjlb::getEmpNum, userBean.getEmpNum()));
649
		return ResultUtil.data(ygglAttaJyjlbss);
tangzhaoqian committed
650 651 652 653
	}

	// 获取员工教育经历表
	@GetMapping(value = "/jyjlb/{empNum}")
654 655
	@ApiOperation(value = "11.获取员工教育经历表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 11)
tangzhaoqian committed
656
	public Result<List<YgglAttaJyjlb>> selectjyjlb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
657 658 659
		List<YgglAttaJyjlb> ygglAttaJyjlbs = YgglAttaJyjlb.builder().build()
				.selectList(new QueryWrapper<YgglAttaJyjlb>().lambda()
						.eq(YgglAttaJyjlb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaJyjlb::getEmpNum, empNum));
660
		return ResultUtil.data(ygglAttaJyjlbs);
tangzhaoqian committed
661 662 663 664 665 666 667 668 669
	}

	/**
	 * 添加/修改员工教育经历表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/jyjlb")
670 671
	@ApiOperation(value = "12.添加/修改员工教育经历表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 12)
tangzhaoqian committed
672 673 674 675
	public Result<YgglAttaJyjlb> addjyjlb(@CurrentUser UserBean userBean, @RequestBody YgglAttaJyjlb ygglAttaJyjlb) {
		ygglAttaJyjlb.setEmpNum(ygglAttaJyjlb.getEmpNum());
		ygglAttaJyjlb.setOrgCode(userBean.getOrgCode());
		ygglAttaJyjlb.insertOrUpdate();
676
		return ResultUtil.data(ygglAttaJyjlb, "修改员工教育经历表成功");
tangzhaoqian committed
677 678 679 680 681 682 683 684 685
	}

	/**
	 * 删除员工教育经历表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/jyjlb/{id}")
686 687
	@ApiOperation(value = "13.删除员工教育经历表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 13)
tangzhaoqian committed
688 689
	public Result<Boolean> deljyjlb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
690 691
		return ResultUtil.data(YgglAttaJyjlb.builder().build().delete(new QueryWrapper<YgglAttaJyjlb>().lambda()
				.eq(YgglAttaJyjlb::getOrgCode, orgCode).eq(YgglAttaJyjlb::getId, id)), "删除员工教育经历表成功");
tangzhaoqian committed
692 693 694 695 696 697 698 699 700
	}

	/**
	 * 获取员工培训经历信息表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/pxjlxxb")
701 702
	@ApiOperation(value = "14.获取员工培训经历信息表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 14)
tangzhaoqian committed
703 704
	public Result<List<YgglAttaPxjlxxb>> selectpxjlxxb(@CurrentUser UserBean userBean) {
		List<YgglAttaPxjlxxb> ygglAttaPxjlxxbs = YgglAttaPxjlxxb.builder().build()
705 706 707
				.selectList(new QueryWrapper<YgglAttaPxjlxxb>().lambda()
						.eq(YgglAttaPxjlxxb::getOrgCode, userBean.getOrgCode())
						.eq(YgglAttaPxjlxxb::getEmpNum, userBean.getEmpNum()));
708
		return ResultUtil.data(ygglAttaPxjlxxbs);
tangzhaoqian committed
709 710 711 712
	}

	// 获取员工培训经历信息表
	@GetMapping(value = "/pxjlxxb/{empNum}")
713 714
	@ApiOperation(value = "15.获取员工培训经历信息表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 15)
tangzhaoqian committed
715
	public Result<List<YgglAttaPxjlxxb>> selectpxjlxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
716 717 718
		List<YgglAttaPxjlxxb> ygglAttaPxjlxxbs = YgglAttaPxjlxxb.builder().build()
				.selectList(new QueryWrapper<YgglAttaPxjlxxb>().lambda()
						.eq(YgglAttaPxjlxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaPxjlxxb::getEmpNum, empNum));
719
		return ResultUtil.data(ygglAttaPxjlxxbs);
tangzhaoqian committed
720 721 722 723 724 725 726 727 728
	}

	/**
	 * 添加/修改员工培训经历信息表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/pxjlxxb")
729 730
	@ApiOperation(value = "16.添加/修改员工培训经历信息表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 16)
tangzhaoqian committed
731 732 733 734 735
	public Result<YgglAttaPxjlxxb> addpxjlxxb(@CurrentUser UserBean userBean,
			@RequestBody YgglAttaPxjlxxb ygglAttaPxjlxxb) {
		ygglAttaPxjlxxb.setEmpNum(ygglAttaPxjlxxb.getEmpNum());
		ygglAttaPxjlxxb.setOrgCode(userBean.getOrgCode());
		ygglAttaPxjlxxb.insertOrUpdate();
736
		return ResultUtil.data(ygglAttaPxjlxxb, "修改员工培训经历信息表成功");
tangzhaoqian committed
737 738 739 740 741 742 743 744 745
	}

	/**
	 * 删除员工培训经历信息表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/pxjlxxb/{id}")
746 747
	@ApiOperation(value = "17.删除员工培训经历信息表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 17)
tangzhaoqian committed
748 749
	public Result<Boolean> delpxjlxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
750 751
		return ResultUtil.data(YgglAttaPxjlxxb.builder().build().delete(new QueryWrapper<YgglAttaPxjlxxb>().lambda()
				.eq(YgglAttaPxjlxxb::getOrgCode, orgCode).eq(YgglAttaPxjlxxb::getId, id)), "删除员工培训经历信息表成功");
tangzhaoqian committed
752 753 754 755 756 757 758 759 760
	}

	/**
	 * 获取员工工作经历表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/gzjlb")
761 762
	@ApiOperation(value = "18.获取员工工作经历表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 18)
tangzhaoqian committed
763
	public Result<List<YgglAttaGzjlb>> selectgzjlb(@CurrentUser UserBean userBean) {
764 765
		List<YgglAttaGzjlb> ygglAttaGzjlbs = YgglAttaGzjlb.builder().build().selectList(
				new QueryWrapper<YgglAttaGzjlb>().lambda().eq(YgglAttaGzjlb::getOrgCode, userBean.getOrgCode())
766
						.eq(YgglAttaGzjlb::getEmpNum, userBean.getEmpNum()));
767
		return ResultUtil.data(ygglAttaGzjlbs);
tangzhaoqian committed
768 769 770 771
	}

	// 获取员工工作经历表
	@GetMapping(value = "/gzjlb/{empNum}")
772 773
	@ApiOperation(value = "19.获取员工工作经历表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 19)
tangzhaoqian committed
774
	public Result<List<YgglAttaGzjlb>> selectgzjlb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
775 776 777
		List<YgglAttaGzjlb> ygglAttaGzjlbs = YgglAttaGzjlb.builder().build()
				.selectList(new QueryWrapper<YgglAttaGzjlb>().lambda()
						.eq(YgglAttaGzjlb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaGzjlb::getEmpNum, empNum));
778
		return ResultUtil.data(ygglAttaGzjlbs);
tangzhaoqian committed
779 780 781 782 783 784 785 786 787
	}

	/**
	 * 添加/修改员工工作经历表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/gzjlb")
788 789
	@ApiOperation(value = "20.添加/修改员工工作经历表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 20)
tangzhaoqian committed
790 791 792 793
	public Result<YgglAttaGzjlb> addgzjlb(@CurrentUser UserBean userBean, @RequestBody YgglAttaGzjlb ygglAttaGzjlb) {
		ygglAttaGzjlb.setEmpNum(ygglAttaGzjlb.getEmpNum());
		ygglAttaGzjlb.setOrgCode(userBean.getOrgCode());
		ygglAttaGzjlb.insertOrUpdate();
794
		return ResultUtil.data(ygglAttaGzjlb, "修改员工工作经历表成功");
tangzhaoqian committed
795 796 797 798 799 800 801 802 803
	}

	/**
	 * 删除员工工作经历表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/gzjlb/{id}")
804 805
	@ApiOperation(value = "21.删除员工工作经历表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 21)
tangzhaoqian committed
806 807
	public Result<Boolean> delgzjlb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
808 809
		return ResultUtil.data(YgglAttaGzjlb.builder().build().delete(new QueryWrapper<YgglAttaGzjlb>().lambda()
				.eq(YgglAttaGzjlb::getOrgCode, orgCode).eq(YgglAttaGzjlb::getId, id)), "删除员工工作经历表成功");
tangzhaoqian committed
810 811 812 813 814 815 816 817 818
	}

	/**
	 * 获取员工职称信息表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/zcxxb")
819 820
	@ApiOperation(value = "22.获取员工职称信息表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 22)
tangzhaoqian committed
821
	public Result<List<YgglAttaZcxxb>> selectzcxxb(@CurrentUser UserBean userBean) {
822 823
		List<YgglAttaZcxxb> ygglAttaZcxxbs = YgglAttaZcxxb.builder().build().selectList(
				new QueryWrapper<YgglAttaZcxxb>().lambda().eq(YgglAttaZcxxb::getOrgCode, userBean.getOrgCode())
824
						.eq(YgglAttaZcxxb::getEmpNum, userBean.getEmpNum()));
825
		return ResultUtil.data(ygglAttaZcxxbs);
tangzhaoqian committed
826 827 828 829
	}

	// 获取员工职称信息表
	@GetMapping(value = "/zcxxb/{empNum}")
830 831
	@ApiOperation(value = "23.获取员工职称信息表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 23)
tangzhaoqian committed
832
	public Result<List<YgglAttaZcxxb>> selectzcxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
833 834 835
		List<YgglAttaZcxxb> ygglAttaZcxxbs = YgglAttaZcxxb.builder().build()
				.selectList(new QueryWrapper<YgglAttaZcxxb>().lambda()
						.eq(YgglAttaZcxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaZcxxb::getEmpNum, empNum));
836
		return ResultUtil.data(ygglAttaZcxxbs);
tangzhaoqian committed
837 838 839 840 841 842 843 844 845
	}

	/**
	 * 添加/修改员工职称信息表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/zcxxb")
846 847
	@ApiOperation(value = "24.添加/修改员工职称信息表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 24)
tangzhaoqian committed
848 849 850 851
	public Result<YgglAttaZcxxb> addzcxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaZcxxb ygglAttaZcxxb) {
		ygglAttaZcxxb.setEmpNum(ygglAttaZcxxb.getEmpNum());
		ygglAttaZcxxb.setOrgCode(userBean.getOrgCode());
		ygglAttaZcxxb.insertOrUpdate();
852
		return ResultUtil.data(ygglAttaZcxxb, "修改员工职称信息表成功");
tangzhaoqian committed
853 854 855 856 857 858 859 860 861
	}

	/**
	 * 删除员工职称信息表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/zcxxb/{id}")
862 863
	@ApiOperation(value = "25.删除员工职称信息表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 25)
tangzhaoqian committed
864 865
	public Result<Boolean> delzcxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
866 867
		return ResultUtil.data(YgglAttaZcxxb.builder().build().delete(new QueryWrapper<YgglAttaZcxxb>().lambda()
				.eq(YgglAttaZcxxb::getOrgCode, orgCode).eq(YgglAttaZcxxb::getId, id)), "删除员工职称信息表成功");
tangzhaoqian committed
868 869 870 871 872 873 874 875 876
	}

	/**
	 * 获取员工证书证件表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/zszjb")
877 878
	@ApiOperation(value = "26.获取员工证书证件表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 26)
tangzhaoqian committed
879
	public Result<List<YgglAttaZszjb>> selectzszjb(@CurrentUser UserBean userBean) {
880 881 882
		List<YgglAttaZszjb> ygglAttaZszjbs = YgglAttaZszjb.builder().build().selectList(
				new QueryWrapper<YgglAttaZszjb>().lambda().eq(YgglAttaZszjb::getOrgCode, userBean.getOrgCode())
						.eq(YgglAttaZszjb::getEmpNum, userBean.getEmpNum()));
883
		return ResultUtil.data(ygglAttaZszjbs);
tangzhaoqian committed
884 885 886 887
	}

	// 获取员工证书证件表
	@GetMapping(value = "/zszjb/{empNum}")
888 889
	@ApiOperation(value = "27.获取员工证书证件表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 27)
tangzhaoqian committed
890
	public Result<List<YgglAttaZszjb>> selectzszjb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
891 892 893
		List<YgglAttaZszjb> ygglAttaZszjbs = YgglAttaZszjb.builder().build()
				.selectList(new QueryWrapper<YgglAttaZszjb>().lambda()
						.eq(YgglAttaZszjb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaZszjb::getEmpNum, empNum));
894
		return ResultUtil.data(ygglAttaZszjbs);
tangzhaoqian committed
895 896 897 898 899 900 901 902 903
	}

	/**
	 * 添加/修改员工证书证件表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/zszjb")
904 905
	@ApiOperation(value = "28.添加/修改员工证书证件表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 28)
tangzhaoqian committed
906 907 908 909
	public Result<YgglAttaZszjb> addzszjb(@CurrentUser UserBean userBean, @RequestBody YgglAttaZszjb ygglAttaZszjb) {
		ygglAttaZszjb.setEmpNum(ygglAttaZszjb.getEmpNum());
		ygglAttaZszjb.setOrgCode(userBean.getOrgCode());
		ygglAttaZszjb.insertOrUpdate();
910
		return ResultUtil.data(ygglAttaZszjb, "修改员工证书证件表成功");
tangzhaoqian committed
911 912 913 914 915 916 917 918 919
	}

	/**
	 * 删除员工证书证件表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/zszjb/{id}")
920 921
	@ApiOperation(value = "29.删除员工证书证件表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 29)
tangzhaoqian committed
922 923
	public Result<Boolean> delzszjb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
924 925
		return ResultUtil.data(YgglAttaZszjb.builder().build().delete(new QueryWrapper<YgglAttaZszjb>().lambda()
				.eq(YgglAttaZszjb::getOrgCode, orgCode).eq(YgglAttaZszjb::getId, id)), "删除员工证书证件表成功");
tangzhaoqian committed
926 927 928 929 930 931 932 933 934
	}

	/**
	 * 获取员工联系信息表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/lxxxb")
935 936
	@ApiOperation(value = "30.获取员工联系信息表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 30)
tangzhaoqian committed
937
	public Result<List<YgglAttaLxxxb>> selectlxxxb(@CurrentUser UserBean userBean) {
938 939
		List<YgglAttaLxxxb> ygglAttaLxxxbs = YgglAttaLxxxb.builder().build().selectList(
				new QueryWrapper<YgglAttaLxxxb>().lambda().eq(YgglAttaLxxxb::getOrgCode, userBean.getOrgCode())
940
						.eq(YgglAttaLxxxb::getEmpNum, userBean.getEmpNum()));
941
		return ResultUtil.data(ygglAttaLxxxbs);
tangzhaoqian committed
942 943 944 945
	}

	// 获取员工联系信息表
	@GetMapping(value = "/lxxxb/{empNum}")
946 947
	@ApiOperation(value = "31.获取员工联系信息表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 31)
tangzhaoqian committed
948
	public Result<List<YgglAttaLxxxb>> selectlxxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
949 950 951
		List<YgglAttaLxxxb> ygglAttaLxxxbs = YgglAttaLxxxb.builder().build()
				.selectList(new QueryWrapper<YgglAttaLxxxb>().lambda()
						.eq(YgglAttaLxxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaLxxxb::getEmpNum, empNum));
952
		return ResultUtil.data(ygglAttaLxxxbs);
tangzhaoqian committed
953 954 955 956 957 958 959 960 961
	}

	/**
	 * 添加/修改员工联系信息表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/lxxxb")
962 963
	@ApiOperation(value = "32.添加/修改员工联系信息表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 32)
tangzhaoqian committed
964 965 966 967
	public Result<YgglAttaLxxxb> addlxxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaLxxxb ygglAttaLxxxb) {
		ygglAttaLxxxb.setEmpNum(ygglAttaLxxxb.getEmpNum());
		ygglAttaLxxxb.setOrgCode(userBean.getOrgCode());
		ygglAttaLxxxb.insertOrUpdate();
968
		return ResultUtil.data(ygglAttaLxxxb, "修改员工联系信息表成功");
tangzhaoqian committed
969 970 971 972 973 974 975 976 977
	}

	/**
	 * 删除员工联系信息表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/lxxxb/{id}")
978 979
	@ApiOperation(value = "33.删除员工联系信息表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 33)
tangzhaoqian committed
980 981
	public Result<Boolean> dellxxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
982 983
		return ResultUtil.data(YgglAttaLxxxb.builder().build().delete(new QueryWrapper<YgglAttaLxxxb>().lambda()
				.eq(YgglAttaLxxxb::getOrgCode, orgCode).eq(YgglAttaLxxxb::getId, id)), "删除员工联系信息表成功");
tangzhaoqian committed
984 985 986 987 988 989 990 991 992
	}

	/**
	 * 获取员工紧急联系人表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/jjlxr")
993 994
	@ApiOperation(value = "34.获取员工紧急联系人表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 34)
tangzhaoqian committed
995
	public Result<List<YgglAttaJjlxr>> selectjjlxr(@CurrentUser UserBean userBean) {
996 997
		List<YgglAttaJjlxr> ygglAttaJjlxrs = YgglAttaJjlxr.builder().build().selectList(
				new QueryWrapper<YgglAttaJjlxr>().lambda().eq(YgglAttaJjlxr::getOrgCode, userBean.getOrgCode())
998
						.eq(YgglAttaJjlxr::getEmpNum, userBean.getEmpNum()));
999
		return ResultUtil.data(ygglAttaJjlxrs);
tangzhaoqian committed
1000 1001 1002 1003
	}

	// 获取员工紧急联系人表
	@GetMapping(value = "/jjlxr/{empNum}")
1004 1005
	@ApiOperation(value = "35.获取员工紧急联系人表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 35)
tangzhaoqian committed
1006
	public Result<List<YgglAttaJjlxr>> selectjjlxr(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
1007 1008 1009
		List<YgglAttaJjlxr> ygglAttaJjlxrs = YgglAttaJjlxr.builder().build()
				.selectList(new QueryWrapper<YgglAttaJjlxr>().lambda()
						.eq(YgglAttaJjlxr::getOrgCode, userBean.getOrgCode()).eq(YgglAttaJjlxr::getEmpNum, empNum));
1010
		return ResultUtil.data(ygglAttaJjlxrs);
tangzhaoqian committed
1011 1012 1013 1014 1015 1016 1017 1018 1019
	}

	/**
	 * 添加/修改员工紧急联系人表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/jjlxr")
1020 1021
	@ApiOperation(value = "36.添加/修改员工紧急联系人表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 36)
tangzhaoqian committed
1022 1023 1024 1025
	public Result<YgglAttaJjlxr> addjjlxr(@CurrentUser UserBean userBean, @RequestBody YgglAttaJjlxr ygglAttaJjlxr) {
		ygglAttaJjlxr.setEmpNum(ygglAttaJjlxr.getEmpNum());
		ygglAttaJjlxr.setOrgCode(userBean.getOrgCode());
		ygglAttaJjlxr.insertOrUpdate();
1026
		return ResultUtil.data(ygglAttaJjlxr, "修改员工紧急联系人表成功");
tangzhaoqian committed
1027 1028 1029 1030 1031 1032 1033 1034 1035
	}

	/**
	 * 删除员工紧急联系人表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/jjlxr/{id}")
1036 1037
	@ApiOperation(value = "37.删除员工紧急联系人表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 37)
tangzhaoqian committed
1038 1039
	public Result<Boolean> deljjlxr(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
1040 1041
		return ResultUtil.data(YgglAttaJjlxr.builder().build().delete(new QueryWrapper<YgglAttaJjlxr>().lambda()
				.eq(YgglAttaJjlxr::getOrgCode, orgCode).eq(YgglAttaJjlxr::getId, id)), "删除员工紧急联系人表成功");
tangzhaoqian committed
1042 1043 1044 1045 1046 1047 1048 1049 1050 1051
	}

	// 获取工资卡信息
	/**
	 * 获取员工工资卡信息
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/gzk")
1052 1053
	@ApiOperation(value = "38.获取员工工资卡信息", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 38)
tangzhaoqian committed
1054
	public Result<List<YgglAttaGzk>> selectgzk(@CurrentUser UserBean userBean) {
1055
		List<YgglAttaGzk> ygglAttaGzks = YgglAttaGzk.builder().build()
1056
				.selectList(new QueryWrapper<YgglAttaGzk>().lambda().eq(YgglAttaGzk::getOrgCode, userBean.getOrgCode())
1057
						.eq(YgglAttaGzk::getEmpNum, userBean.getEmpNum()));
1058
		return ResultUtil.data(ygglAttaGzks);
tangzhaoqian committed
1059 1060 1061 1062
	}

	// 获取工资卡信息
	@GetMapping(value = "/gzk/{empNum}")
1063 1064
	@ApiOperation(value = "39.获取员工工资卡信息(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 39)
tangzhaoqian committed
1065
	public Result<List<YgglAttaGzk>> selectgzk(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
1066 1067
		List<YgglAttaGzk> ygglAttaGzks = YgglAttaGzk.builder().build().selectList(new QueryWrapper<YgglAttaGzk>()
				.lambda().eq(YgglAttaGzk::getOrgCode, userBean.getOrgCode()).eq(YgglAttaGzk::getEmpNum, empNum));
1068
		return ResultUtil.data(ygglAttaGzks);
tangzhaoqian committed
1069 1070 1071 1072 1073 1074 1075 1076 1077
	}

	/**
	 * 添加/修改工资卡信息
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/gzk")
1078 1079
	@ApiOperation(value = "40.添加/修改工资卡信息", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 40)
tangzhaoqian committed
1080 1081 1082 1083
	public Result<YgglAttaGzk> addgzk(@CurrentUser UserBean userBean, @RequestBody YgglAttaGzk ygglAttaGzk) {
		ygglAttaGzk.setEmpNum(ygglAttaGzk.getEmpNum());
		ygglAttaGzk.setOrgCode(userBean.getOrgCode());
		ygglAttaGzk.insertOrUpdate();
1084
		return ResultUtil.data(ygglAttaGzk, "修改工资卡信息成功");
tangzhaoqian committed
1085 1086 1087 1088 1089 1090 1091 1092 1093
	}

	/**
	 * 删除工资卡信息
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/gzk/{id}")
1094 1095
	@ApiOperation(value = "41.删除工资卡信息", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 41)
tangzhaoqian committed
1096 1097
	public Result<Boolean> delgzk(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
1098 1099
		return ResultUtil.data(YgglAttaGzk.builder().build().delete(new QueryWrapper<YgglAttaGzk>().lambda()
				.eq(YgglAttaGzk::getOrgCode, orgCode).eq(YgglAttaGzk::getId, id)), "删除工资卡信息成功");
tangzhaoqian committed
1100 1101 1102 1103 1104 1105 1106 1107 1108
	}

	/**
	 * 获取员工合同信息表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/htxxb")
1109 1110
	@ApiOperation(value = "42.获取员工合同信息表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 42)
tangzhaoqian committed
1111
	public Result<List<YgglAttaHtxxb>> selecthtxxb(@CurrentUser UserBean userBean) {
1112 1113
		List<YgglAttaHtxxb> ygglAttaHtxxbs = YgglAttaHtxxb.builder().build().selectList(
				new QueryWrapper<YgglAttaHtxxb>().lambda().eq(YgglAttaHtxxb::getOrgCode, userBean.getOrgCode())
1114
						.eq(YgglAttaHtxxb::getEmpNum, userBean.getEmpNum()));
1115
		return ResultUtil.data(ygglAttaHtxxbs);
tangzhaoqian committed
1116 1117 1118 1119
	}

	// 获取员工合同信息表
	@GetMapping(value = "/htxxb/{empNum}")
1120 1121
	@ApiOperation(value = "43.获取员工合同信息表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 43)
tangzhaoqian committed
1122
	public Result<List<YgglAttaHtxxb>> selecthtxxb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
1123 1124 1125
		List<YgglAttaHtxxb> ygglAttaHtxxbs = YgglAttaHtxxb.builder().build()
				.selectList(new QueryWrapper<YgglAttaHtxxb>().lambda()
						.eq(YgglAttaHtxxb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaHtxxb::getEmpNum, empNum));
1126
		return ResultUtil.data(ygglAttaHtxxbs);
tangzhaoqian committed
1127 1128 1129 1130 1131 1132 1133 1134 1135
	}

	/**
	 * 添加/修改员工合同信息表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/htxxb")
1136 1137
	@ApiOperation(value = "44.添加/修改员工合同信息表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 44)
tangzhaoqian committed
1138 1139 1140 1141
	public Result<YgglAttaHtxxb> addhtxxb(@CurrentUser UserBean userBean, @RequestBody YgglAttaHtxxb ygglAttaHtxxb) {
		ygglAttaHtxxb.setEmpNum(ygglAttaHtxxb.getEmpNum());
		ygglAttaHtxxb.setOrgCode(userBean.getOrgCode());
		ygglAttaHtxxb.insertOrUpdate();
1142
		return ResultUtil.data(ygglAttaHtxxb, "修改员工合同信息表成功");
tangzhaoqian committed
1143 1144 1145 1146 1147 1148 1149 1150 1151
	}

	/**
	 * 删除员工合同信息表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/htxxb/{id}")
1152 1153
	@ApiOperation(value = "45.删除员工合同信息表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 45)
tangzhaoqian committed
1154 1155
	public Result<Boolean> delhtxxb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
1156 1157
		return ResultUtil.data(YgglAttaHtxxb.builder().build().delete(new QueryWrapper<YgglAttaHtxxb>().lambda()
				.eq(YgglAttaHtxxb::getOrgCode, orgCode).eq(YgglAttaHtxxb::getId, id)), "删除员工合同信息表成功");
tangzhaoqian committed
1158 1159 1160 1161 1162 1163 1164 1165 1166
	}

	/**
	 * 获取员工材料附件表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/clfjb")
1167 1168
	@ApiOperation(value = "46.获取员工材料附件表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 46)
tangzhaoqian committed
1169
	public Result<List<YgglAttaClfjb>> selectclfjb(@CurrentUser UserBean userBean) {
1170 1171
		List<YgglAttaClfjb> ygglAttaClfjbs = YgglAttaClfjb.builder().build().selectList(
				new QueryWrapper<YgglAttaClfjb>().lambda().eq(YgglAttaClfjb::getOrgCode, userBean.getOrgCode())
1172
						.eq(YgglAttaClfjb::getEmpNum, userBean.getEmpNum()));
1173
		return ResultUtil.data(ygglAttaClfjbs);
tangzhaoqian committed
1174 1175 1176 1177
	}

	// 获取员工材料附件表
	@GetMapping(value = "/clfjb/{empNum}")
1178 1179
	@ApiOperation(value = "47.获取员工材料附件表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 47)
tangzhaoqian committed
1180
	public Result<List<YgglAttaClfjb>> selectclfjb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
1181 1182 1183
		List<YgglAttaClfjb> ygglAttaClfjbs = YgglAttaClfjb.builder().build()
				.selectList(new QueryWrapper<YgglAttaClfjb>().lambda()
						.eq(YgglAttaClfjb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaClfjb::getEmpNum, empNum));
1184
		return ResultUtil.data(ygglAttaClfjbs);
tangzhaoqian committed
1185 1186 1187 1188 1189 1190 1191 1192 1193
	}

	/**
	 * 添加/修改员工材料附件表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/clfjb")
1194 1195
	@ApiOperation(value = "48.添加/修改员工材料附件表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 48)
tangzhaoqian committed
1196 1197 1198 1199
	public Result<YgglAttaClfjb> addclfjb(@CurrentUser UserBean userBean, @RequestBody YgglAttaClfjb ygglAttaClfjb) {
		ygglAttaClfjb.setOrgCode(userBean.getOrgCode());
		ygglAttaClfjb.setEmpNum(ygglAttaClfjb.getEmpNum());
		ygglAttaClfjb.insertOrUpdate();
1200
		return ResultUtil.data(ygglAttaClfjb, "修改员工材料附件表成功");
tangzhaoqian committed
1201 1202 1203 1204 1205 1206 1207 1208 1209
	}

	/**
	 * 删除员工材料附件表
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/clfjb/{id}")
1210 1211
	@ApiOperation(value = "49.删除员工材料附件表", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 49)
tangzhaoqian committed
1212 1213
	public Result<Boolean> delclfjb(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
1214 1215
		return ResultUtil.data(YgglAttaClfjb.builder().build().delete(new QueryWrapper<YgglAttaClfjb>().lambda()
				.eq(YgglAttaClfjb::getOrgCode, orgCode).eq(YgglAttaClfjb::getId, id)), "删除员工材料附件表成功");
tangzhaoqian committed
1216 1217 1218 1219 1220 1221 1222 1223 1224
	}

	/**
	 * 获取成长记录表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/czjlb")
1225 1226
	@ApiOperation(value = "50.获取成长记录表", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 50)
tangzhaoqian committed
1227
	public Result<List<YgglAttaCzjlb>> selectczjlb(@CurrentUser UserBean userBean) {
1228 1229
		List<YgglAttaCzjlb> ygglAttaCzjlbs = YgglAttaCzjlb.builder().build().selectList(
				new QueryWrapper<YgglAttaCzjlb>().lambda().eq(YgglAttaCzjlb::getOrgCode, userBean.getOrgCode())
1230
						.eq(YgglAttaCzjlb::getEmpNum, userBean.getEmpNum()));
1231
		return ResultUtil.data(ygglAttaCzjlbs);
tangzhaoqian committed
1232 1233 1234 1235
	}

	// 获取成长记录表
	@GetMapping(value = "/czjlb/{empNum}")
1236 1237
	@ApiOperation(value = "51.获取成长记录表(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 51)
tangzhaoqian committed
1238
	public Result<List<YgglAttaCzjlb>> selectczjlb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
1239 1240 1241
		List<YgglAttaCzjlb> ygglAttaCzjlbs = YgglAttaCzjlb.builder().build()
				.selectList(new QueryWrapper<YgglAttaCzjlb>().lambda()
						.eq(YgglAttaCzjlb::getOrgCode, userBean.getOrgCode()).eq(YgglAttaCzjlb::getEmpNum, empNum));
1242
		return ResultUtil.data(ygglAttaCzjlbs);
tangzhaoqian committed
1243 1244 1245 1246 1247 1248 1249 1250 1251
	}

	/**
	 * 添加/修改成长记录表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/czjlb")
1252 1253
	@ApiOperation(value = "52.添加/修改成长记录表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 52)
tangzhaoqian committed
1254 1255 1256 1257
	public Result<YgglAttaCzjlb> addczjlb(@CurrentUser UserBean userBean, @RequestBody YgglAttaCzjlb ygglAttaCzjlb) {
		ygglAttaCzjlb.setEmpNum(ygglAttaCzjlb.getEmpNum());
		ygglAttaCzjlb.setOrgCode(userBean.getOrgCode());
		ygglAttaCzjlb.insertOrUpdate();
1258
		return ResultUtil.data(ygglAttaCzjlb, "修改成长记录表成功");
tangzhaoqian committed
1259 1260 1261 1262 1263 1264 1265 1266 1267
	}

	/**
	 * 获取单个离职员工信息(管)
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/lzb/{empNum}")
1268 1269
	@ApiOperation(value = "53.获取单个离职员工信息(管)", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 53)
tangzhaoqian committed
1270 1271 1272
	public Result<YgglMainLzb> selectlzb(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {
		YgglMainLzb lzyg = new LambdaQueryChainWrapper<YgglMainLzb>(ygglMainLzbMapper)
				.eq(YgglMainLzb::getOrgCode, userBean.getOrgCode()).eq(YgglMainLzb::getEmpNum, empNum).one();
1273
		return ResultUtil.data(lzyg);
tangzhaoqian committed
1274 1275 1276
	}

	/**
邓实川 committed
1277
	 * 员工转正 0-1
tangzhaoqian committed
1278 1279 1280 1281 1282
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/ygzz")
1283 1284
	@ApiOperation(value = "54.员工转正", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 54)
tangzhaoqian committed
1285
	public Result<Void> ygzz(@CurrentUser UserBean userBean, @RequestBody YgzzDto ygzzDto) {
1286

1287
		YgglMainEmp.builder().jobStatus(jobStatus.ZHENSHI.getType()).zzTime(ygzzDto.getZzTime()).sjzzTime(new Date())
1288 1289
				.zzRemark(ygzzDto.getZzRemark()).build()
				.update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, ygzzDto.getEmpNum()));
1290
		return ResultUtil.success("转正成功!");
tangzhaoqian committed
1291 1292 1293
	}

	/**
邓实川 committed
1294
	 * 计划离职 type1-2
tangzhaoqian committed
1295 1296 1297 1298 1299
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/addlzjh")
1300 1301
	@ApiOperation(value = "55.添加离职计划", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 55)
tangzhaoqian committed
1302 1303 1304 1305
	public Result<YgglMainLzb> addjhlz(@CurrentUser UserBean userBean, @RequestBody LzygQueryDto lzygQueryDto) {

		Integer empNum = lzygQueryDto.getEmpNum();

1306
		YgglMainEmp ygglMainEmp = ygglMainEmpMapper.selectOne(new QueryWrapper<YgglMainEmp>().lambda()
tangzhaoqian committed
1307 1308
				.eq(YgglMainEmp::getEmpNum, empNum)
				.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));
tangzhaoqian committed
1309 1310 1311 1312 1313
		
		if (ygglMainEmp.getJobStatus() == jobStatus.LIZHIZHONG.getType()) {
			return ResultUtil.success("你已在离职中");
		}
		
tangzhaoqian committed
1314 1315
		YgglMainLzb ygglMainLzb = YgglMainLzb.builder().empNum(lzygQueryDto.getEmpNum()).build();
		// 移动员工表数据到离职表
1316
		BeanUtil.copyProperties(ygglMainEmp, ygglMainLzb, "before_leaving_sts");
tangzhaoqian committed
1317 1318
		ygglMainLzb.insert();

1319
		YgglMainEmp.builder().empNum(lzygQueryDto.getEmpNum()).jobStatus(jobStatus.LIZHIZHONG.getType())
1320
				.beforeLeavingSts(ygglMainEmp.getJobStatus()).build()
tangzhaoqian committed
1321 1322 1323 1324
				.update(new UpdateWrapper<YgglMainEmp>().lambda()
						.eq(YgglMainEmp::getEmpNum, empNum)
						.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));
		
1325
		YgglMainLzb.builder().jobStatus(jobStatus.LIZHIZHONG.getType()).lzTime(lzygQueryDto.getLzTime())
1326
				.lzyy(lzygQueryDto.getLzyy()).lzbz(lzygQueryDto.getLzbz()).build()
tangzhaoqian committed
1327 1328 1329
				.update(new UpdateWrapper<YgglMainLzb>().lambda()
						.eq(YgglMainLzb::getEmpNum, empNum)
						.eq(YgglMainLzb::getOrgCode, userBean.getOrgCode()));
tangzhaoqian committed
1330 1331 1332 1333 1334

		return ResultUtil.data(ygglMainLzb, "添加待离职员工成功");
	}

	/**
邓实川 committed
1335
	 * 确认离职 type2-3
tangzhaoqian committed
1336 1337 1338 1339 1340
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/qrlz")
1341 1342
	@ApiOperation(value = "56.确认离职", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 56)
tangzhaoqian committed
1343 1344
	public Result<Void> addlzb(@CurrentUser UserBean userBean, @RequestBody LzygQueryDto lzygQueryDto) {
		Integer empNum = lzygQueryDto.getEmpNum();
1345
		// 删除员工档案表
tangzhaoqian committed
1346 1347 1348
		ygglMainEmpMapper.delete(new QueryWrapper<YgglMainEmp>().lambda()
				.eq(YgglMainEmp::getEmpNum, empNum)
				.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));
1349

tangzhaoqian committed
1350
		YgglMainLzb.builder().empNum(empNum).jobStatus(YgEnumInterface.jobStatus.YILIZHI.getType()).sjlzTime(new Date())
tangzhaoqian committed
1351 1352 1353
				.build().update(new UpdateWrapper<YgglMainLzb>().lambda()
						.eq(YgglMainLzb::getEmpNum, empNum)
						.eq(YgglMainLzb::getOrgCode, userBean.getOrgCode()));
1354

1355
		LambdaQueryWrapper<QyzxEmpEntAsso> queryWrapper = new QueryWrapper<QyzxEmpEntAsso>().lambda()
tangzhaoqian committed
1356
				.eq(QyzxEmpEntAsso::getEmpNum, empNum)
1357
				.eq(QyzxEmpEntAsso::getOrgCode, userBean.getOrgCode());
1358

tangzhaoqian committed
1359
		// 确认离职 删除员工关联表
1360
		qyzxEmpEntAssoMapper.delete(queryWrapper);
tangzhaoqian committed
1361 1362 1363

		// 初始化 部门主管
		zzglBmgwMMapper.update(ZzglBmgwM.builder().leader(null).build(),
tangzhaoqian committed
1364 1365 1366
				new UpdateWrapper<ZzglBmgwM>().lambda()
				.eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode())
				.eq(ZzglBmgwM::getLeader, empNum));
1367

1368
		// 更新当前企业
1369 1370
		List<QyzxEmpEntAsso> listEEA = qyzxEmpEntAssoMapper.selectList(new QueryWrapper<QyzxEmpEntAsso>().lambda()
				.eq(QyzxEmpEntAsso::getEmpNum, empNum));
1371 1372 1373
		if (listEEA != null && listEEA.size() > 0) {
			QyzxEmpLogin.builder().id(empNum).orgId(CollUtil.getFirst(listEEA).getOrgCode()).build().updateById();
		}
ilal committed
1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384
		
		
		KqglAssoYhkqz.builder().build().delete(new QueryWrapper<KqglAssoYhkqz>().lambda().eq(KqglAssoYhkqz::getUserid, empNum).eq(KqglAssoYhkqz::getQyid, userBean.getOrgCode()));
		
		try {
			realtimeupdate.AttendanceTask(userBean.getOrgCode(), empNum, 2,null);
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
tangzhaoqian committed
1385 1386 1387 1388
		return ResultUtil.success("确认离职员工成功");
	}

	/**
邓实川 committed
1389
	 * 放弃离职 type 2-1
tangzhaoqian committed
1390 1391 1392 1393 1394
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/fqlz")
1395 1396
	@ApiOperation(value = "57.放弃离职", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 57)
tangzhaoqian committed
1397
	public Result<Void> fqlz(@CurrentUser UserBean userBean, @RequestBody LzygQueryDto lzygQueryDto) {
1398 1399 1400 1401 1402 1403 1404

		YgglMainEmp ygglMainEmp = ygglMainEmpMapper
				.selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, lzygQueryDto.getEmpNum())
						.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));

		YgglMainEmp.builder().jobStatus(ygglMainEmp.getBeforeLeavingSts()).build()
				.update(new UpdateWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getEmpNum, lzygQueryDto.getEmpNum()));
tangzhaoqian committed
1405
		// 删除离职表
1406 1407
		YgglMainLzb.builder().id(lzygQueryDto.getEmpNum()).build()
				.delete(new QueryWrapper<YgglMainLzb>().lambda().eq(YgglMainLzb::getEmpNum, lzygQueryDto.getEmpNum()));
tangzhaoqian committed
1408 1409 1410 1411 1412

		return ResultUtil.success("放弃成功");
	}

	@PostMapping(value = "/tzlzyy")
1413 1414
	@ApiOperation(value = "58.调整离职", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 58)
tangzhaoqian committed
1415 1416 1417
	public Result<YgglMainLzb> tzlzyy(@CurrentUser UserBean userBean, @RequestBody YgglMainLzb ygglMainLzb) {

		if (ygglMainLzb.getEmpNum() != null) {
1418 1419 1420
			ygglMainLzb
					.update(new UpdateWrapper<YgglMainLzb>().lambda().eq(YgglMainLzb::getOrgCode, userBean.getOrgCode())
							.eq(YgglMainLzb::getEmpNum, ygglMainLzb.getEmpNum()));
tangzhaoqian committed
1421 1422
			return ResultUtil.data(ygglMainLzb, "修改成功");
		}
1423
		return ResultUtil.error("请确认该员工是否存在!");
tangzhaoqian committed
1424 1425 1426 1427 1428 1429 1430 1431 1432 1433

	}

	/**
	 * 查询离职员工列表
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/querylzyg")
1434 1435
	@ApiOperation(value = "59.查询离职员工列表", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 59)
tangzhaoqian committed
1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452
	public Result<Object> querylzyg(@CurrentUser UserBean userBean, @RequestBody LzbQueryDto lzygQueryDto) {
		lzygQueryDto.setOrgCode(userBean.getOrgCode());

		IPage<YgglMainLzb> page = new Page<YgglMainLzb>(
				lzygQueryDto.getCurrentPage() == null ? 1 : lzygQueryDto.getCurrentPage(),
				lzygQueryDto.getTotalPage() == null ? 10 : lzygQueryDto.getTotalPage());
		List<YgglMainLzb> lzb = ygglMainLzbMapper.queryLzb(page, lzygQueryDto);
		return ResultUtil.data(page, lzb, "离职员工搜索成功");
	}

	/**
	 * 展示民族/展示所有民族
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/mz/{id}")
1453 1454
	@ApiOperation(value = "60.展示民族/展示所有民族", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 60)
tangzhaoqian committed
1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467
	public Result<List<YgmzDto>> selectmzs(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		if (id == null || id == 0) {
			List<YgmzDto> allmz = new LambdaQueryChainWrapper<YgmzDto>(ygMzDtoMapper).list();
			return ResultUtil.data(allmz, "展示所有民族");
		}
		List<YgmzDto> mz = new LambdaQueryChainWrapper<YgmzDto>(ygMzDtoMapper).eq(YgmzDto::getNumber, id).list();
		return ResultUtil.data(mz, "展示该民族");
	}

	@Autowired
	CommonAreaMapper commonAreaMapper;

	/**
1468
	 * 籍贯树
tangzhaoqian committed
1469 1470 1471 1472 1473
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/native_place")
1474 1475
	@ApiOperation(value = "61.籍贯树", httpMethod = "GET", notes = "籍贯树")
	@ApiOperationSupport(order = 61)
tangzhaoqian committed
1476 1477 1478
	public Result<List<CommonArea>> selectNativePlace() {

		List<CommonArea> listCommonArea = commonAreaMapper.AllAreaForTree();
1479
		return ResultUtil.data(listCommonArea);
tangzhaoqian committed
1480 1481 1482 1483 1484 1485 1486 1487 1488 1489

	}

	/**
	 * 查询员工列表
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/queryemp")
1490
	@ApiOperation(value = "62.查询员工列表", httpMethod = "GET", notes = "接口发布说明")
tangzhaoqian committed
1491 1492 1493 1494 1495 1496 1497 1498
	@ApiOperationSupport(order = 62)
	public Result<List<YgQueryDto>> queryEmpMessage(@CurrentUser UserBean userBean) {
		List<YgQueryDto> ygQueryDto = ygglMainEmpMapper.queryEmpMessage(userBean.getOrgCode());
		for (YgQueryDto yg : ygQueryDto) {
			if (StringUtil.isEmpty(yg.getHeadUrl())) {
				yg.setHeadUrl("");
			}
		}
1499
		return ResultUtil.data(ygQueryDto);
tangzhaoqian committed
1500 1501 1502 1503 1504 1505 1506 1507 1508
	}

	/*************** 统计图 ***************/
	/**
	 * 查询统计图
	 * 
	 * @return 成功信息
	 */
	@GetMapping("/yggl")
1509
	@ApiOperation(value = "63.获取员工管理统计图信息", httpMethod = "GET", notes = "接口发布说明")
tangzhaoqian committed
1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542
	@ApiOperationSupport(order = 63)
	public Result<Map<String, Object>> queryYgglCartogram(@CurrentUser UserBean userBean) {

		Map<String, Object> map = new HashMap<String, Object>();
		YgglCartogramDto ygglCartogramDto1 = ygglMainEmpMapper.queryPositive(userBean);
		YgglCartogramDto ygglCartogramDto2 = ygglMainEmpMapper.queryAvgAge(userBean);
		YgglCartogramDto ygglCartogramDto3 = ygglMainEmpMapper.queryInduction(userBean);
		YgglCartogramDto ygglCartogramDto4 = ygglMainEmpMapper.queryInservice(userBean);
		YgglCartogramDto ygglCartogramDto5 = ygglMainLzbMapper.queryDeparture(userBean);

		List<YgglCartogramDto> ygglCartogramDto6 = ygglMainEmpMapper.queryDepartmentNum(userBean);
		List<YgglCartogramDto> ygglCartogramDto7 = ygglMainEmpMapper.queryEducation(userBean);
		List<YgglCartogramDto> ygglCartogramDto8 = ygglMainEmpMapper.queryJobsNum(userBean);
		List<YgglCartogramDto> ygglCartogramDto9 = ygglMainEmpMapper.queryEmpAge(userBean);
		List<YgglCartogramDto> ygglCartogramDto10 = ygglMainEmpMapper.queryNativeplace(userBean);
		List<YgglCartogramDto> ygglCartogramDto11 = ygglMainEmpMapper.queryWorkingAge(userBean);

		map.put("positive", ygglCartogramDto1.getPositive());
		if (ygglCartogramDto2 != null) {
			map.put("avgAge", ygglCartogramDto2.getAvgAge());
		}
		map.put("induction", ygglCartogramDto3.getInduction());
		map.put("probation", ygglCartogramDto4.getProbation());
		map.put("regular", ygglCartogramDto4.getRegular());
		map.put("departure", ygglCartogramDto5.getDepartureNum());

		map.put("department", ygglCartogramDto6);
		map.put("education", ygglCartogramDto7);
		map.put("jobs", ygglCartogramDto8);
		map.put("empAge", ygglCartogramDto9);
		map.put("nativeplace", ygglCartogramDto10);
		map.put("workingAge", ygglCartogramDto11);

1543
		return ResultUtil.data(map);
tangzhaoqian committed
1544 1545 1546 1547 1548 1549 1550 1551
	}

	/**
	 * 员工信息统计图
	 * 
	 * @return 成功信息(weng)
	 */
	@GetMapping("/Cartogram")
1552 1553
	@ApiOperation(value = "64.获取员工管理统计图信息", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 64)
tangzhaoqian committed
1554 1555 1556
	public Result<YgCartogramDto> ygCartogram(@CurrentUser UserBean userBean) {
		Integer orgCode = userBean.getOrgCode();
		List<YgbintuDto> bintu = ygglMainEmpMapper.rsybp(orgCode);
1557

tangzhaoqian committed
1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620
		Map<String, Long> gw = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getGw, Collectors.counting()));
		List<YgKVDto> gwList = new ArrayList<YgKVDto>();
		for (Map.Entry<String, Long> entry : gw.entrySet()) {
			gwList.add(new YgKVDto(entry.getKey(), entry.getValue().toString()));
		}
		Map<String, Long> bm = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getBm, Collectors.counting()));
		List<YgKVDto> bmList = new ArrayList<YgKVDto>();
		for (Map.Entry<String, Long> entry : bm.entrySet()) {
			bmList.add(new YgKVDto(entry.getKey(), entry.getValue().toString()));
		}
		Map<String, Long> edu = bintu.stream()
				.collect(Collectors.groupingBy(YgbintuDto::getEduname, Collectors.counting()));
		List<YgKVDto> eduList = new ArrayList<YgKVDto>();
		for (Map.Entry<String, Long> entry : edu.entrySet()) {
			eduList.add(new YgKVDto(entry.getKey(), entry.getValue().toString()));
		}
		Map<Integer, Long> jobStatus = bintu.stream()
				.collect(Collectors.groupingBy(YgbintuDto::getJobStatus, Collectors.counting()));
		List<YgKVDto> jobStatusList = new ArrayList<YgKVDto>();
		for (Entry<Integer, Long> entry : jobStatus.entrySet()) {
			jobStatusList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
		}
		Map<String, Long> proname = bintu.stream()
				.collect(Collectors.groupingBy(YgbintuDto::getProname, Collectors.counting()));
		List<YgKVDto> pronameList = new ArrayList<YgKVDto>();
		for (Entry<String, Long> entry : proname.entrySet()) {
			pronameList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
		}
		Map<String, Integer> workage = YgEnumInterface.workage.choose(bintu);
		List<YgKVDto> workageList = new ArrayList<YgKVDto>();
		for (Entry<String, Integer> entry : workage.entrySet()) {
			workageList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
		}
		Map<String, Integer> age = YgEnumInterface.age.choose(bintu);
		List<YgKVDto> ageList = new ArrayList<YgKVDto>();
		for (Entry<String, Integer> entry : age.entrySet()) {
			ageList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
		}
		// 在职
		Integer zaizhi = jobStatus.get(YgEnumInterface.jobStatus.ZHENSHI.getType()).intValue()
				+ jobStatus.get(YgEnumInterface.jobStatus.SHIYONG.getType()).intValue();
		// 本月新入职
		Integer xinruzhi = workage.get("本月新入职").intValue();
		// 本月离职
		Integer lizhi = ygglMainEmpMapper.benyueLz(orgCode);
		// 本月转正
		Integer zhuanzhen = ygglMainEmpMapper.benyueZz(orgCode);
		// 平均年龄
		Integer nianlin = age.get("平均年龄").intValue();
		YgCartogramDto ybp = new YgCartogramDto();
		ybp.setOnTheJob(zaizhi);
		ybp.setNewRecruits(xinruzhi);
		ybp.setDimission(lizhi);
		ybp.setRegularization(zhuanzhen);
		ybp.setAverageAge(nianlin);

		ybp.setDepartment(bmList);
		ybp.setPosition(gwList);
		ybp.setEdu(eduList);
		ybp.setJobStatus(jobStatusList);
		ybp.setProname(pronameList);
		ybp.setWorkage(workageList);
		ybp.setAge(ageList);
1621
		return ResultUtil.data(ybp);
tangzhaoqian committed
1622 1623 1624 1625 1626 1627 1628 1629 1630
	}

	/**
	 * 获取员工社保公积金
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/ygsbgjj")
1631 1632
	@ApiOperation(value = "65.获取员工社保公积金", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 65)
邓实川 committed
1633 1634
	public Result<YgglAttaSbgjj> selectygsbgjj(@CurrentUser UserBean userBean) {
		YgglAttaSbgjj ygglAttaSbgjj = YgglAttaSbgjj.builder().build().selectOne(
1635 1636
				new QueryWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getOrgCode, userBean.getOrgCode())
						.eq(YgglAttaSbgjj::getEmpNum, userBean.getEmpNum()));
1637
		return ResultUtil.data(ygglAttaSbgjj);
tangzhaoqian committed
1638 1639 1640 1641 1642 1643 1644 1645 1646
	}

	/**
	 * 获取员工社保公积金
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/ygsbgjj/{empNum}")
1647 1648
	@ApiOperation(value = "66.获取员工社保公积金", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 66)
tangzhaoqian committed
1649 1650 1651
	public Result<YgglAttaSbgjj> selectygsbgjj(@CurrentUser UserBean userBean, @PathVariable Integer empNum) {

		YgglAttaSbgjj ygglAttaSbgjj = YgglAttaSbgjj.builder().build()
1652
				.selectOne(new QueryWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getEmpNum, empNum));
tangzhaoqian committed
1653

1654
		return ResultUtil.data(ygglAttaSbgjj);
tangzhaoqian committed
1655 1656 1657 1658 1659 1660 1661 1662 1663
	}

	/**
	 * 添加/修改员工社保公积金
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/ygsbgjj")
1664 1665
	@ApiOperation(value = "67.添加/修改员工社保公积金", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 67)
tangzhaoqian committed
1666 1667 1668 1669 1670 1671
	public Result<YgglAttaSbgjj> addygsbgjj(@CurrentUser UserBean userBean, @RequestBody YgglAttaSbgjj ygglAttaSbgjj) {
		Integer empNum = ygglAttaSbgjj.getEmpNum();
		if (empNum == null) {
			return ResultUtil.error();
		}
		YgglAttaSbgjj AttaSbgjj = YgglAttaSbgjj.builder().build()
1672
				.selectOne(new QueryWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getEmpNum, empNum));
tangzhaoqian committed
1673
		if (AttaSbgjj != null) {
1674
			ygglAttaSbgjj.update(new UpdateWrapper<YgglAttaSbgjj>().lambda().eq(YgglAttaSbgjj::getEmpNum, empNum));
tangzhaoqian committed
1675 1676 1677 1678
		} else {
			ygglAttaSbgjj.insert();
		}

1679
		return ResultUtil.data(ygglAttaSbgjj);
tangzhaoqian committed
1680 1681 1682 1683 1684 1685 1686 1687 1688
	}

	/**
	 * 删除员工社保公积金
	 * 
	 * @param
	 * @return
	 */
	@DeleteMapping(value = "/ygsbgjj/{id}")
1689 1690
	@ApiOperation(value = "68.删除员工社保公积金", httpMethod = "DELETE", notes = "接口发布说明")
	@ApiOperationSupport(order = 68)
tangzhaoqian committed
1691 1692
	public Result<Boolean> delygsbgjj(@CurrentUser UserBean userBean, @PathVariable Integer id) {
		Integer orgCode = userBean.getOrgCode();
1693 1694
		return ResultUtil.data(YgglAttaSbgjj.builder().build().delete(new QueryWrapper<YgglAttaSbgjj>().lambda()
				.eq(YgglAttaSbgjj::getOrgCode, orgCode).eq(YgglAttaSbgjj::getId, id)));
tangzhaoqian committed
1695 1696 1697 1698 1699 1700 1701
	}

	@GetMapping(value = "/sysRegion")
	@ApiOperation(value = "省市区字典(贼全)", httpMethod = "GET", notes = "接口发布说明")
	public Result<List<Tree<String>>> sysRegion() {
		List<SysRegion> nodeList = SysRegion.builder().build()
				.selectList(new LambdaQueryWrapper<SysRegion>().select(SysRegion::getKeyId, SysRegion::getRegionCode,
1702
						SysRegion::getRegionName, SysRegion::getMerName, SysRegion::getLevel, SysRegion::getZipCode));
tangzhaoqian committed
1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713

		// 配置
		TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
		// 自定义属性名 都要默认值的
		treeNodeConfig.setIdKey("key_id");
		treeNodeConfig.setParentIdKey("region_code");
		// 最大递归深度
		treeNodeConfig.setDeep(4);

		List<Tree<String>> treeNodes = TreeUtil.build(nodeList, "0", treeNodeConfig, (treeNode, tree) -> {
			tree.setId(treeNode.getKeyId().toString());
1714
			tree.setParentId(treeNode.getRegionCode().toString());
tangzhaoqian committed
1715 1716 1717
			tree.setName(treeNode.getRegionName());
			// 扩展属性 ...
			tree.putExtra("mer_name", treeNode.getMerName());
1718
			tree.putExtra("zip_code", treeNode.getZipCode());
tangzhaoqian committed
1719 1720
		});

1721
		return ResultUtil.data(treeNodes);
tangzhaoqian committed
1722
	}
1723

1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737
	/**
	 * 获取登录人的相关信息
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/loginmessage")
	@ApiOperation(value = "69.获取登录人的相关信息", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 69)
	public Result<LoginInfoDto> loginmessage(@CurrentUser UserBean userBean) {
		Integer empNum = userBean.getEmpNum();
		Integer orgCode = userBean.getOrgCode();
		LoginInfoDto loginInfo = LoginInfoDto.builder().build();
		YgglMainEmp ygglMainEmp = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
1738
				.select(YgglMainEmp::getBmgwId, YgglMainEmp::getName, YgglMainEmp::getRzTime, YgglMainEmp::getZzTime,YgglMainEmp::getSyq,
1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760
						YgglMainEmp::getEmpNum)
				.eq(YgglMainEmp::getEmpNum, empNum).eq(YgglMainEmp::getOrgCode, orgCode).one();
		if (ygglMainEmp != null) {
			Integer gw = ygglMainEmp.getBmgwId();

			ZzglBmgwM gwObj = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
					.select(ZzglBmgwM::getUpId, ZzglBmgwM::getName).eq(ZzglBmgwM::getId, gw)
					.eq(ZzglBmgwM::getOrgCode, orgCode).one();

			if (gwObj != null) {
				ZzglBmgwM bmObj = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
						.select(ZzglBmgwM::getId, ZzglBmgwM::getName).eq(ZzglBmgwM::getId, gwObj.getUpId())
						.eq(ZzglBmgwM::getOrgCode, orgCode).one();
				loginInfo.setBmId(bmObj != null ? bmObj.getId() : null);
				loginInfo.setBmName(bmObj != null ? bmObj.getName() : null);
			}

			loginInfo.setEmpNum(ygglMainEmp.getEmpNum());
			loginInfo.setName(ygglMainEmp.getName());
			loginInfo.setGwId(gw);
			loginInfo.setGwName(gwObj != null ? gwObj.getName() : "");
			loginInfo.setEntryTime(ygglMainEmp.getRzTime());
yuquan.zhu committed
1761 1762
			
			if(ygglMainEmp.getSyq()!=null) {
1763
				System.out.println(ygglMainEmp.getSyq());
yuquan.zhu committed
1764 1765 1766 1767 1768 1769
				Date expireDate = DateUtil.offsetMonth(ygglMainEmp.getRzTime(), ygglMainEmp.getSyq()); // 时间偏移
				loginInfo.setRegularTime(expireDate);	
			}else {
				loginInfo.setRegularTime(new Date());	
			}
			
1770
		}
1771
		return ResultUtil.data(loginInfo);
1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804
	}

	/**
	 * 获取登录人和上级主管的empNum和名称
	 * 
	 * @param
	 * @return
	 */
	@GetMapping(value = "/loginerChargers")
	@ApiOperation(value = "70.获取登录人和上级主管的empNum和名称", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 70)
	public Result<List<LoginerChargeDto>> loginerChargers(@CurrentUser UserBean userBean) {
		Integer orgCode = userBean.getOrgCode();
		ArrayList<Integer> list = new ArrayList<Integer>();
		Integer empNum = userBean.getEmpNum();
		Integer gw = empNumConfirm(orgCode, empNum).getBmgwId();
		List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
				.eq(ZzglBmgwM::getOrgCode, orgCode).list();
		// 获取该员工的上级部门id 的数组list
		ZzglBmgwM.getUpDepts(list, gw, zzglBmgwMs);
		List<Integer> leaderList = new ArrayList<Integer>();
		for (Integer zzglId : list) {
			for (ZzglBmgwM zzglBmgwM : zzglBmgwMs) {
				if (zzglId.equals(zzglBmgwM.getId()) && zzglBmgwM.getLeader() != null) {

					leaderList.add(zzglBmgwM.getLeader());
				}
			}
		}
		List<YgglMainEmp> ygglMainEmps = empNumsConfirm(orgCode, leaderList);
		List<LoginerChargeDto> loginerChargeDtos = new ArrayList<LoginerChargeDto>();
		for (YgglMainEmp m : ygglMainEmps) {
			if (m.getHeadUrl() == null) {
1805
				m.setHeadUrl(CommonEnum.NULL_STR.getDesc());
1806 1807 1808 1809
			}
			loginerChargeDtos.add(new LoginerChargeDto(m.getEmpNum(), m.getName(), m.getHeadUrl()));
		}
		Collections.reverse(loginerChargeDtos);
1810
		return ResultUtil.data(loginerChargeDtos);
1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847
	}

	// 根据传来的empNum获取该人员信息,没有则传全部
	public List<YgglMainEmp> empNumsConfirm(Integer orgCode, List<Integer> empNumList) {
		List<YgglMainEmp> all = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
				.eq(YgglMainEmp::getOrgCode, orgCode).list();
		List<YgglMainEmp> ygglMainEmps = new ArrayList<YgglMainEmp>();
		if (empNumList.size() != 0) {
			for (Integer empNum : empNumList) {
				all.stream().filter(item -> empNum.equals(item.getEmpNum())).forEach(action -> {
					ygglMainEmps.add(action);
				});
			}
		} else {
			ygglMainEmps.addAll(all);
		}

		return ygglMainEmps;
	}

	// 根据传来的empNum获取该人员信息
	public YgglMainEmp empNumConfirm(Integer orgCode, Integer empNum) {
		YgglMainEmp one = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
				.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum).one();
		return one;
	}

	/**
	 * 获取用户头像
	 * 
	 * @param
	 * @return
	 */
	@PostMapping(value = "/headphotos")
	@ApiOperation(value = "71.获取用户头像", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 71)
	public Result<List<YgglMainEmp>> headphotos(@CurrentUser UserBean userBean, @RequestBody List<Integer> empNumList) {
tangzhaoqian committed
1848
		if (empNumList == null || empNumList.size() == 0) {
ilal committed
1849
			return ResultUtil.error("存在未设置的审批人");
1850 1851 1852 1853 1854 1855 1856
		}
		List<YgglMainEmp> yglList = YgglMainEmp.builder().build()
				.selectList(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())
						.in(YgglMainEmp::getEmpNum, empNumList)
						.select(YgglMainEmp::getEmpNum, YgglMainEmp::getName, YgglMainEmp::getHeadUrl));
		for (YgglMainEmp yg : yglList) {
			if (StringUtil.isEmpty(yg.getHeadUrl())) {
1857
				yg.setHeadUrl(CommonEnum.NULL_STR.getDesc());
1858 1859
			}
		}
1860
		return ResultUtil.data(yglList);
1861
	}
lal committed
1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876
	
	
	@Autowired
	private KqglAssoLeaveBalanceMapper kqglassoleavebalancemapper;
	
	@GetMapping(value = "/address_book")
	@ApiOperation(value = "APP 获取通讯录", httpMethod = "GET", notes = "接口发布说明")
	@ApiOperationSupport(order = 70)
	public Result<Object> Getaddressbook(@CurrentUser UserBean userBean) {
		
		List<AdditionalDto> userlist = kqglassoleavebalancemapper.selectAdditionalList(userBean.getOrgCode());
		
		return ResultUtil.data(userlist);
	}
	
tangzhaoqian committed
1877
}