package com.ghsc.partybuild.service.impl; import com.ghsc.partybuild.mapper.*; import com.ghsc.partybuild.mapper.cquery.*; import com.ghsc.partybuild.model.*; import com.ghsc.partybuild.service.CheckDataService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; @Service("checkDataService") public class CheckDataServiceImpl implements CheckDataService { @Autowired PtCheckpartyMapper checkpartyMapper; @Autowired PtChecknamelistMapper checknamelistMapper; @Autowired PtCheckdataCQuery checkdataCQuery; @Autowired PtCheckdataMapper CheckdataMapper; @Autowired PtCheckscoreMapper checkscoreMapper; @Autowired PtCheckquestionMapper checkquestionMapper; @Override public PageInfo> getCheckNameList(int pageIndex, int pageSize, Integer year, Integer quarter, String dzzdm, String checkUserName, String partyCode, Integer recordStatus) { PageHelper.startPage(pageIndex, pageSize); List> list = checkdataCQuery.selectCheckNameList(year, quarter, dzzdm, checkUserName, partyCode, recordStatus); PageInfo> result = new PageInfo(list); return result; } @Override public List> getCheckPartyList(Integer year, Integer quarter) { List> list = checkdataCQuery.selectCheckPartyList(year, quarter); return list; } @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public int saveCheckNameList(PtChecknamelist item, List checkPartyList) { PtChecknamelist dbItem = checknamelistMapper.selectByPrimaryKey(item.getNameid()); if (dbItem == null) { item.setCreatetime(new Date()); item.setRecordstatus(1); item.setNameid(UUID.randomUUID().toString()); checknamelistMapper.insertSelective(item); } else { checknamelistMapper.updateByPrimaryKey(item); } PtCheckpartyExample example = new PtCheckpartyExample(); example.or().andNameidEqualTo(item.getNameid()); checkpartyMapper.deleteByExample(example); checkPartyList.forEach(it -> { it.setNameid(item.getNameid()); it.setPartyid(UUID.randomUUID().toString()); checkpartyMapper.insertSelective(it); }); assetrCheckScore(item.getYear(),item.getQuarter(),item.getCheckuserid(),item.getCheckusername(),checkPartyList); return 1; } /** * 生成考核评分 * @param year * @param quarter * @param checkUserId * @param checkUserName * @param checkPartyList */ private void assetrCheckScore(Integer year, Integer quarter,String checkUserId,String checkUserName, List checkPartyList) { List partyCodes = checkPartyList.stream().map(x -> x.getPartycode()).collect(Collectors.toList()); checkPartyList.forEach(party -> { PtCheckscoreExample example = new PtCheckscoreExample(); example.or().andYearEqualTo(year).andQuarterEqualTo(quarter).andDzzdmEqualTo(party.getPartycode()); PtCheckscore partyScore = checkscoreMapper.selectByExample(example).stream().findFirst().orElse(null); if (partyScore==null) { partyScore =new PtCheckscore(); partyScore.setScoreid(UUID.randomUUID().toString()); partyScore.setYear(year); partyScore.setQuarter(quarter); partyScore.setCheckuserid(checkUserId); partyScore.setDzzdm(party.getPartycode()); partyScore.setCheckusername(checkUserName); partyScore.setRecordstatus(0); checkscoreMapper.insert(partyScore); }else{ partyScore.setCheckuserid(UUID.randomUUID().toString()); partyScore.setCheckuserid(checkUserId); checkscoreMapper.updateByPrimaryKeySelective(partyScore); } }); } @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public Integer deleteCheckNameList(List nameIdList) { PtCheckpartyExample example = new PtCheckpartyExample(); example.or().andNameidIn(nameIdList); checkpartyMapper.deleteByExample(example); PtChecknamelistExample ckExp = new PtChecknamelistExample(); ckExp.or().andNameidIn(nameIdList); checknamelistMapper.deleteByExample(ckExp); return 1; } @Override public Integer changeCheckNameListStatus(List nameIdList, Integer recordStatus) { PtChecknamelist record = new PtChecknamelist(); record.setRecordstatus(recordStatus); PtChecknamelistExample ckExp = new PtChecknamelistExample(); ckExp.or().andNameidIn(nameIdList); checknamelistMapper.updateByExampleSelective(record, ckExp); return 1; } @Override public HashMap getCheckName(String id) { List> list = checkdataCQuery.selectCheckNameList(null, null, null, null, null, null); HashMap item = list.stream().filter(x -> x.get("nameid").toString().equals(id)).findFirst().orElse(null); return item; } @Override public PageInfo> getCheckDataList(int pageIndex, int pageSize, Integer year, String dzzdm, String remark) { PageHelper.startPage(pageIndex, pageSize); List> list = checkdataCQuery.selectCheckDataList(year, dzzdm, remark); PageInfo> result = new PageInfo(list); return result; } @Override public List> getCheckDataFleList(String year) { List> list = checkdataCQuery.selectCheckDataFleList(year); return list; } @Override public int saveCheckdata(PtCheckdata item, String userid, String username) { PtCheckdata dbItem = CheckdataMapper.selectByPrimaryKey(item.getDataid()); if (dbItem == null) { item.setCheckdatauserid(userid); item.setCheckdatausername(username); item.setRecordstatus(1); item.setCreatetime(new Date()); item.setCreateuserid(userid); item.setCreateusername(username); return CheckdataMapper.insert(item); } else { item.setUpdatetime(new Date()); item.setUpdateuserid(userid); item.setUpdateusername(username); return CheckdataMapper.updateByPrimaryKeySelective(item); } } @Override public PtCheckdata getCheckdata(String id) { return CheckdataMapper.selectByPrimaryKey(id); } @Override public PageInfo> getCheckScoreList(int pageIndex, int pageSize, Integer year, Integer quarter, String dzzdm, String checkUserName, Float minScore,Float maxScore,Integer recordStatus,String checkuserid) { PageHelper.startPage(pageIndex, pageSize); List> list = checkdataCQuery.selectCheckScoreList( year, quarter, dzzdm, checkUserName, minScore, maxScore, recordStatus,checkuserid); PageInfo> result = new PageInfo(list); return result; } @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public int saveCheckScore(PtCheckscore item ,List questionList) { PtCheckscore dbItem = checkscoreMapper.selectByPrimaryKey(item.getScoreid()); dbItem.setScore(item.getScore()); dbItem.setUpdatetime(new Date()); dbItem.setUpdateuserid(item.getUpdateuserid()); dbItem.setUpdateusername(item.getUpdateusername()); dbItem.setRecordstatus(1); checkscoreMapper.updateByPrimaryKeySelective(dbItem); PtCheckquestionExample example=new PtCheckquestionExample(); example.or().andScoreidEqualTo(item.getScoreid()); checkquestionMapper.deleteByExample(example); questionList.forEach(x->{ x.setQuestionid(UUID.randomUUID().toString()); x.setScoreid(item.getScoreid()); checkquestionMapper.insert(x); }); return 1; } @Override public List getCheckquestionList(String scoreId) { PtCheckquestionExample example=new PtCheckquestionExample(); example.or().andScoreidEqualTo(scoreId); return checkquestionMapper.selectByExample(example); } }