package com.ghsc.partybuild.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ghsc.partybuild.mapper.*; import com.ghsc.partybuild.model.*; import com.ghsc.partybuild.service.CgjqService; import com.ghsc.partybuild.service.DictionaryService; import com.ghsc.partybuild.service.UserService; import com.ghsc.partybuild.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.List; /** * 创岗建区 * * @author xxx */ @Service("cgjqService") public class CgjqServiceImpl implements CgjqService { @Autowired private DictionaryService dictionaryService; @Autowired private UserService userService; @Autowired private CgjqCQuery cgjqCquery; @Autowired private CgjqSettingPostareaMapper cgjqSettingPostareaMapper; @Autowired private CgjqSettingPostareaUserMapper cgjqSettingPostareaUserMapper; @Autowired private CgjqSeetingScoreprojectMapper cgjqSeetingScoreprojectMapper; @Autowired private CgjqPostareaScoreMapper cgjqPostareaScoreMapper; @Autowired private CgjqPostareaScoreUserMapper cgjqPostareaScoreUserMapper; @Autowired private CgjqPostareaScoreProjectMapper cgjqPostareaScoreProjectMapper; @Autowired private StringUtils stringUtils; /** * @Description //TODO 查询岗区配置 * @Date 17:12 2019/9/19 * @Param [cgjqType:类型1责任岗,2责任区, partyCode:所属支部, userId:当前登录人, name:岗区名称, headUserName:负责人] **/ @Override public PageInfo> getSettingPostareaList(int page, int rows, Integer cgjqType, String partyCode, String userId, String name, String headUserName, Integer zzfbType) { PageHelper.startPage(page, rows); List> list = cgjqCquery.selectSettingPostareaList(cgjqType, partyCode, userId, name, headUserName, zzfbType); PageInfo> result = new PageInfo(list); return result; } /** * @Description //TODO 查询岗区配置成员 * @Date 17:20 2019/9/19 * @Param [seetingPostareaId:岗区id, dutyUserType:成员类型1党员,2群众] **/ @Override public PageInfo> getSettingPostareaUserList(int page, int rows, String seetingPostareaId, Integer dutyUserType) { List dicDutyUserType = dictionaryService.getDictionaryListByDicTypeKey("dutyUserType"); PageHelper.startPage(page, rows); List> list = cgjqCquery.selectSettingPostareaUserList(seetingPostareaId, dutyUserType); for (HashMap item : list) { if (item.get("DUTYUSERTYPE") != null) { item.put("DUTYUSERNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DUTYUSERTYPE").toString()), dicDutyUserType).getDicvalue()); } } PageInfo> result = new PageInfo(list); return result; } /** * @Description //TODO 查询考核模板 * @Date 17:31 2019/9/19 * @Param [partyCode, cgjqType] **/ @Override public List> getSettingScoreProjectList(String partyCode, Integer cgjqType, Integer zzfbType) { return cgjqCquery.selectSettingScoreProjectList(partyCode, cgjqType, zzfbType); } @Override public CgjqSettingPostarea getPostareaById(String seetingPostareaId) { return cgjqSettingPostareaMapper.selectByPrimaryKey(seetingPostareaId); } /** * @Description //TODO 保存岗区配置 * @Date 9:05 2019/9/20 * @Param [model, userList] **/ @Override public int savePostarea(CgjqSettingPostarea model, List userList) { int result = 0; CgjqSettingPostarea dbModel = getPostareaById(model.getSeetingpostareaid()); if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getSeetingpostareaid()))) { model.setCreatetime(new Date()); //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = cgjqSettingPostareaMapper.insert(model); } else { model.setUpdatetime(new Date()); model.setUpdateuserid(userService.getLoginUser().getUserid()); model.setUpdateusername(userService.getUserInfobyId(userService.getLoginUser().getUserid()).getName()); //同步数据 model.setOperatestate("M"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = cgjqSettingPostareaMapper.updateByPrimaryKey(model); } cgjqCquery.deleteSettingPostareaUser(model.getSeetingpostareaid()); userList.forEach(item -> { //同步数据 item.setOperatetime(new Date()); item.setOperatestate("A"); item.setSyncstate("N"); cgjqSettingPostareaUserMapper.insert(item); }); return result; } @Override public int addPost(List userList) { userList.forEach(item -> { //同步数据 item.setOperatetime(new Date()); item.setOperatestate("A"); item.setSyncstate("N"); cgjqSettingPostareaMapper.insert(item); }); return userList.size(); } @Override public int updatePostarea(CgjqSettingPostarea model) { model.setOperatetime(new Date()); model.setOperatestate("M"); model.setSyncstate("N"); return cgjqSettingPostareaMapper.updateByPrimaryKey(model); } /** * @Description //TODO 删除岗区配置 * @Date 9:05 2019/9/20 * @Param [seetingPostareaId] **/ @Override public int delPostarea(String seetingPostareaId) { cgjqCquery.deleteSettingPostareaUser(seetingPostareaId); return cgjqCquery.deleteSettingPostarea(seetingPostareaId); } @Override public CgjqSeetingScoreproject getScoreProjectById(String seetingProjectId) { return cgjqSeetingScoreprojectMapper.selectByPrimaryKey(seetingProjectId); } /** * @Description //TODO 保存岗区考核标准 * @Date 9:07 2019/9/20 * @Param [projectList] **/ @Override public int saveScoreProject(List projectList, String userId, String userName) { int result = 0; for (CgjqSeetingScoreproject item : projectList) { CgjqSeetingScoreproject dbModel = getScoreProjectById(item.getSeetingprojectid()); if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getSeetingprojectid()))) { item.setCreateuserid(userId); item.setCreateusername(userName); item.setCreatetime(new Date()); //同步数据 item.setOperatetime(new Date()); item.setOperatestate("A"); item.setSyncstate("N"); result += cgjqSeetingScoreprojectMapper.insert(item); } else { item.setUpdateuserid(userId); item.setUpdateusername(userName); item.setUpdatetime(new Date()); item.setOperatetime(new Date()); item.setOperatestate("M"); item.setSyncstate("N"); result += cgjqSeetingScoreprojectMapper.updateByPrimaryKeySelective(item); } } return result; } //岗区评分 /** * @Description //TODO 查询岗区评分记录 * @Date 15:39 2019/9/24 * @Param [page, rows, cgjqType:类型1责任岗,2责任区,year:年度,quarter:季度,partyCode:所属支部, userId:当前登录人, name:岗区名称, headUserName:负责人] **/ @Override public PageInfo> getPostareaScoreList(int page, int rows, Integer cgjqType, Integer year, Integer quarter, String partyCode, String userId, String name, String headUserName, Integer zzfbType, Integer gqtype, String postAreaId) { List dicScoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel"); PageHelper.startPage(page, rows); List> list = cgjqCquery.selectPostareaScoreList(cgjqType, year, quarter, partyCode, userId, name, headUserName, zzfbType, gqtype,postAreaId); for (HashMap item : list) { if (item.get("SCORELEVEL") != null) { item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dicScoreLevel).getDicvalue()); } } PageInfo> result = new PageInfo(list); return result; } /** * @Description //TODO 岗区评分记录-岗区成员 * @Date 15:39 2019/9/24 * @Param [page, rows, seetingPostareaId, dutyUserType] **/ @Override public PageInfo> getPostareaScoreUserList(int page, int rows, String postAreaScoreId, Integer dutyUserType) { List dicDutyUserType = dictionaryService.getDictionaryListByDicTypeKey("dutyUserType"); PageHelper.startPage(page, rows); List> list = cgjqCquery.selectPostareaScoreUserList(postAreaScoreId, dutyUserType); for (HashMap item : list) { if (item.get("DUTYUSERTYPE") != null) { item.put("DUTYUSERNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("DUTYUSERTYPE").toString()), dicDutyUserType).getDicvalue()); } } PageInfo> result = new PageInfo(list); return result; } /** * @Description //TODO 岗区评分记录-评分项 * @Date 15:39 2019/9/24 * @Param [partyCode, cgjqType] **/ @Override public List> getPostareaScoreProjectList(String postAreaScoreId) { return cgjqCquery.selectPostareaScoreProjectList(postAreaScoreId); } @Override public CgjqPostareaScore getPostareaScoreById(String postAreaScoreId) { return cgjqPostareaScoreMapper.selectByPrimaryKey(postAreaScoreId); } public CgjqPostareaScoreUser getPostareaScoreUserById(String scoreUserId) { return cgjqPostareaScoreUserMapper.selectByPrimaryKey(scoreUserId); } public CgjqPostareaScoreProject getPostareaScoreProjectById(String projectId) { return cgjqPostareaScoreProjectMapper.selectByPrimaryKey(projectId); } /** * @Description //TODO 保存岗区评分 * @Date 16:54 2019/9/24 * @Param [model, userList, projectList] **/ @Override public int savePostareaScore(CgjqPostareaScore model, List userList, List projectList, String userId, String userName) { int result = 0; CgjqPostareaScore dbModel = getPostareaScoreById(model.getPostareascoreid()); if (dbModel == null || (dbModel != null && stringUtils.IsNullOrEmpty(dbModel.getPostareascoreid()))) { model.setCreatetime(new Date()); //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = cgjqPostareaScoreMapper.insert(model); } else { model.setUpdatetime(new Date()); model.setUpdateuserid(userService.getLoginUser().getUserid()); model.setUpdateusername(userService.getUserInfobyId(userService.getLoginUser().getUserid()).getName()); //同步数据 model.setOperatestate("M"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = cgjqPostareaScoreMapper.updateByPrimaryKey(model); } cgjqCquery.deletePostareaScoreUser(model.getPostareascoreid()); for (CgjqPostareaScoreUser item : userList) { CgjqPostareaScoreUser uModel = getPostareaScoreUserById(item.getScoreuserid()); if (uModel == null || (uModel != null && stringUtils.IsNullOrEmpty(uModel.getScoreuserid()))) { item.setCreateuserid(userId); item.setCreateusername(userName); item.setCreatetime(new Date()); //同步数据 item.setOperatetime(new Date()); item.setOperatestate("A"); item.setSyncstate("N"); result += cgjqPostareaScoreUserMapper.insert(item); } else { item.setUpdateuserid(userId); item.setUpdateusername(userName); item.setUpdatetime(new Date()); item.setOperatetime(new Date()); item.setOperatestate("M"); item.setSyncstate("N"); result += cgjqPostareaScoreUserMapper.updateByPrimaryKeySelective(item); } } for (CgjqPostareaScoreProject item : projectList) { CgjqPostareaScoreProject pModel = getPostareaScoreProjectById(item.getScoreprojectid()); if (pModel == null || (pModel != null && stringUtils.IsNullOrEmpty(pModel.getScoreprojectid()))) { item.setCreateuserid(userId); item.setCreateusername(userName); item.setCreatetime(new Date()); //同步数据 item.setOperatetime(new Date()); item.setOperatestate("A"); item.setSyncstate("N"); result += cgjqPostareaScoreProjectMapper.insert(item); } else { item.setUpdateuserid(userId); item.setUpdateusername(userName); item.setUpdatetime(new Date()); item.setOperatetime(new Date()); item.setOperatestate("M"); item.setSyncstate("N"); result += cgjqPostareaScoreProjectMapper.updateByPrimaryKeySelective(item); } } return result; } /** * @Description //TODO 删除岗区评分记录 * @Date 15:33 2019/9/24 * @Param [postAreaScoreId] **/ @Override @Transactional(rollbackFor = Exception.class) public int deletePostareaScore(String postAreaScoreId) { cgjqCquery.deletePostareaScoreProject(postAreaScoreId); cgjqCquery.deletePostareaScoreUser(postAreaScoreId); return cgjqCquery.deletePostareaScore(postAreaScoreId); } /** * @Description //TODO 查询评分排名 * @Date 10:40 2019/9/25 * @Param [partyCode, cgjqType, year, quarter] **/ @Override public List> getPostareaScoreOrderList(String partyCode, Integer cgjqType, Integer year, Integer quarter, Integer zzfbType) { List dicScoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel"); List> list = cgjqCquery.selectPostareaScoreOrderList(partyCode, cgjqType, year, quarter, zzfbType); for (HashMap item : list) { if (item.get("SCORELEVEL") != null) { item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dicScoreLevel).getDicvalue()); } } return list; } @Override public int updatePostareaScore(CgjqPostareaScore model, String userId, String userName) { model.setUpdatetime(new Date()); model.setUpdateuserid(userId); model.setUpdateusername(userName); model.setOperatetime(new Date()); model.setOperatestate("M"); model.setSyncstate("N"); return cgjqPostareaScoreMapper.updateByPrimaryKeySelective(model); } /** * @Description //TODO 岗区选择(评分) * @Date 16:25 2019/9/27 * @Param [page, rows, year, quarter, cgjqType, partyCode, userId, name, headUserName] **/ @Override public PageInfo> getSettingPostareaOfScoreList(int page, int rows, Integer year, Integer quarter, Integer cgjqType, String partyCode, String userId, String name, String headUserName) { PageHelper.startPage(page, rows); List> list = cgjqCquery.selectSettingPostareaOfScoreList(year, quarter, cgjqType, partyCode, userId, name, headUserName); PageInfo> result = new PageInfo(list); return result; } @Override public CgjqPostareaScore getPostareaScoreByQuarter(String seetingPostareaId, Integer year, Integer quarter) { CgjqPostareaScore model = new CgjqPostareaScore(); CgjqPostareaScoreExample exp = new CgjqPostareaScoreExample(); CgjqPostareaScoreExample.Criteria cri = exp.or(); cri.andSeetingpostareaidEqualTo(seetingPostareaId); cri.andYearEqualTo(year); cri.andQuarterEqualTo(quarter); cri.andOperatestateNotEqualTo("D"); List list = cgjqPostareaScoreMapper.selectByExample(exp); if (list.size() > 0) { model = list.get(0); } return model; } /** * @Description //TODO 查询个人所属岗位排名 * @Date 9:36 2019/9/27 * @Param [userId, cgjqType, year, quarter] **/ @Override public List> getUserPostareaOrderList(String userId, Integer cgjqType, Integer year, Integer quarter) { List dic_scoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel"); List> list = cgjqCquery.selectUserPostareaOrderList(userId, cgjqType, year, quarter); for (HashMap item : list) { if (item.get("SCORELEVEL") != null) { item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dic_scoreLevel).getDicvalue()); } } return list; } @Override public PageInfo> getPostareaTotalList(int pageIndex, int pageSize, Integer cgjqType, String dzzdm, String name, String userName,Integer gqtype) { List dic_scoreLevel = dictionaryService.getDictionaryListByDicTypeKey("scoreLevel"); PageHelper.startPage(pageIndex, pageSize); List> list = cgjqCquery.selectPostareaTotalList(cgjqType, dzzdm, name, userName,gqtype); for (HashMap item : list) { if (item.get("SCORELEVEL") != null) { item.put("SCORELEVELNAME", dictionaryService.getDicByKey(Integer.parseInt(item.get("SCORELEVEL").toString()), dic_scoreLevel).getDicvalue()); } } PageInfo> result = new PageInfo(list); return result; } }