/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.evaluate.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.AllArgsConstructor; import org.springblade.modules.evaluate.entity.EvaluateTaskEntity; import org.springblade.modules.evaluate.entity.EvaluateTaskSetEntity; import org.springblade.modules.evaluate.service.IEvaluateTaskSetService; import org.springblade.modules.evaluate.vo.EvaluateTaskVO; import org.springblade.modules.evaluate.excel.EvaluateTaskExcel; import org.springblade.modules.evaluate.mapper.EvaluateTaskMapper; import org.springblade.modules.evaluate.service.IEvaluateTaskService; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.service.IUserService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.transaction.annotation.Transactional; import javax.validation.constraints.NotEmpty; import java.util.List; /** * 评优任务表 服务实现类 * * @author aix * @since 2023-12-08 */ @Service @AllArgsConstructor public class EvaluateTaskServiceImpl extends BaseServiceImpl implements IEvaluateTaskService { private final IEvaluateTaskSetService evaluateTaskSetService; private final IUserService userService; private final IDeptService deptService; @Override public IPage selectEvaluateTaskPage(IPage page, EvaluateTaskVO evaluateTask) { return page.setRecords(baseMapper.selectEvaluateTaskPage(page, evaluateTask)); } @Override public List exportEvaluateTask(Wrapper queryWrapper) { List evaluateTaskList = baseMapper.exportEvaluateTask(queryWrapper); //evaluateTaskList.forEach(evaluateTask -> { // evaluateTask.setTypeName(DictCache.getValue(DictEnum.YES_NO, EvaluateTask.getType())); //}); return evaluateTaskList; } @Override @Transactional public boolean saveOrUpdate(EvaluateTaskEntity evaluateTask) { boolean ret = super.saveOrUpdate(evaluateTask); if (ret) { //先删除 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("evaluate_task_id", evaluateTask.getId()); evaluateTaskSetService.remove(queryWrapper); if (evaluateTask.getType() == 0) { //个人评优处理 //保存 JSONArray jsonArray = JSONArray.parseArray(JSONObject.toJSONString(evaluateTask.getCandidateNum())); for (int i = 0; i < jsonArray.size(); i++) { JSONObject obj = jsonArray.getJSONObject(i);//{"deptId":"1737282385453543425","deptName":"中国铜业","val":3,"users":[{"id":"1737304543567310850","name":"张二瑶"} Long deptId = obj.getLong("deptId"); String deptName = obj.getString("deptName"); String val = obj.getString("val"); JSONArray userJson = JSONArray.parseArray(JSONObject.toJSONString(obj.get("users"))); for (int j = 0; j < userJson.size(); j++) { EvaluateTaskSetEntity entityPO = new EvaluateTaskSetEntity(); entityPO.setEvaluateTaskId(evaluateTask.getId()); entityPO.setDeptId(deptId); entityPO.setDeptName(deptName); entityPO.setUserId(userJson.getJSONObject(j).getLong("id")); entityPO.setUserName(userJson.getJSONObject(j).getString("name")); entityPO.setEvaluateTaskName(evaluateTask.getTaskName()); evaluateTaskSetService.save(entityPO); } if (userJson.size() == 0) { QueryWrapper userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("dept_id", deptId); List userList = userService.list(userQueryWrapper); for (User po: userList) { EvaluateTaskSetEntity entityPO = new EvaluateTaskSetEntity(); entityPO.setEvaluateTaskId(evaluateTask.getId()); entityPO.setDeptId(deptId); entityPO.setDeptName(deptName); entityPO.setUserId(po.getId()); entityPO.setUserName(po.getName()); entityPO.setEvaluateTaskName(evaluateTask.getTaskName()); evaluateTaskSetService.save(entityPO); } } } } else if (evaluateTask.getType() == 1){ //部门评优 //获取所有部门保存 List list = deptService.list(); for (Dept dept: list) { EvaluateTaskSetEntity entityPO = new EvaluateTaskSetEntity(); entityPO.setEvaluateTaskId(evaluateTask.getId()); entityPO.setDeptId(dept.getId()); entityPO.setDeptName(dept.getDeptName()); entityPO.setType(1); entityPO.setEvaluateTaskName(evaluateTask.getTaskName()); evaluateTaskSetService.save(entityPO); } } } return ret; } @Override @Transactional public boolean deleteLogic(List ids) { boolean ret = super.deleteLogic(ids); if (ret) { for (Long id:ids) { //先删除 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("evaluate_task_id", id); evaluateTaskSetService.remove(queryWrapper); } } return ret; } }