/* * 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.core.tool.utils.StringUtil; import org.springblade.modules.evaluate.entity.EvaluateTaskEntity; import org.springblade.modules.evaluate.entity.EvaluateTaskSetEntity; import org.springblade.modules.evaluate.service.IEvaluateCandidateService; 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.evaluate.wrapper.EvaluateCandidateWrapper; import org.springblade.modules.evaluate.wrapper.EvaluateTaskWrapper; 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; private final IEvaluateCandidateService evaluateCandidateService; @Override @Transactional public boolean save(EvaluateTaskVO vo) { Boolean ret = super.save(EvaluateTaskWrapper.build().entityPO(vo)); if (ret) { ret = evaluateCandidateService.saveBatch(vo.getCandidateEntities()); } return ret; } @Override @Transactional public boolean updateById(EvaluateTaskVO vo) { if (null == vo.getId()) return false; Boolean ret = super.updateById(EvaluateTaskWrapper.build().entityPO(vo)); if (ret) { ret = evaluateCandidateService.saveOrUpdateBatch(vo.getCandidateEntities()); } return ret; } @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 (null == evaluateTask.getType()) // // return ret; // 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; } }