package com.ghsc.partybuild.service.impl; import com.ghsc.partybuild.vo.partyLife.PartyLifeMeetingVo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ghsc.partybuild.controller.jsonmodel.RequsetData; import com.ghsc.partybuild.mapper.*; import com.ghsc.partybuild.model.*; import com.ghsc.partybuild.service.*; import com.ghsc.partybuild.util.DateUtils; import com.ghsc.partybuild.util.MapUtils; import org.apache.commons.lang3.StringUtils; import com.ghsc.partybuild.vo.*; 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.math.BigDecimal; import java.util.*; import java.util.regex.Pattern; @Service("partyTwoService") public class PartyTwoServiceImpl implements PartyTwoService { @Autowired private PartyUserCQuery partyUserCquery; @Autowired private DjDnpxxxMapper dnpxxxMapper; @Autowired private DjDnpxryMapper dnpxryMapper; @Autowired private PartyTwoCQuery partyTwoCquery; @Autowired private UserService userService; @Autowired private DictionaryService dictionaryService; @Autowired private MapUtils mapUtils; @Autowired private DateUtils dateUtils; @Autowired private DjDnghbfMapper dnghbfMapper; @Autowired private DjDnghbfmxMapper dnghbfmxMapper; @Autowired private DjZtdrxxMapper ztdrxxMapper; @Autowired private DjZzsrMapper zzsrMapper; @Autowired private DjDjkpxxMapper djkpxxMapper; @Autowired private DjJlcfxxMapper jlcfxxMapper; @Autowired private DjTaskMapper djTaskMapper; @Autowired private DjTaskusersMapper djTaskusersMapper; @Autowired private DjFundsbudgetMapper djFundsbudgetMapper; @Autowired private QtTaskpubcolumnMapper taskpubcolumnMapper; @Autowired private ZzMzpyxxMapper zzMzpyxxMapper; @Autowired private PartyUserService partyUserService; @Autowired private PartyService partyService; @Autowired private com.ghsc.partybuild.util.StringUtils stringUtils; @Autowired private PfPartylifemeetingPersonnelMapper pfPartylifemeetingPersonnelMapper; @Autowired private PartyLifeMeetingCQuery partyLifeMeetingCQuery; @Override public DjDnpxxx getDnpxxx(String id) { return dnpxxxMapper.selectByPrimaryKey(id); } @Override public List getDnpxryList(String dnpxid) { DjDnpxryExample example = new DjDnpxryExample(); example.or().andDnpxidEqualTo(dnpxid); List list = dnpxryMapper.selectByExample(example); return list; } @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public RequsetData saveDnpxxx(DjDnpxxx model, UserItemVo[] userList) { RequsetData res = new RequsetData(); int result; //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); if (dnpxxxMapper.selectByPrimaryKey(model.getId()) == null) { result = dnpxxxMapper.insert(model); } else { result = dnpxxxMapper.updateByPrimaryKey(model); //清空人员 DjDnpxryExample example = new DjDnpxryExample(); example.or().andDnpxidEqualTo(model.getId()); dnpxryMapper.deleteByExample(example); } //如果类型为人员 String rylx = "1"; if (rylx.equals(model.getPxlx()) && userList != null) { for (UserItemVo user : userList) { DjDnpxry ry = new DjDnpxry(); ry.setId(UUID.randomUUID().toString()); ry.setDnpxid(model.getId()); ry.setUserid(user.getRybm()); ry.setUsername(user.getXm()); dnpxryMapper.insert(ry); } } if (result > 0) { res.setSuccess(true); res.setMsg("提交成功!"); } else { res.setSuccess(false); res.setMsg("提交失败"); } return res; } @Override public int delDnpxxx(String id, String userid) { //如果是人员评先,先删除关联人员记录 //在判断是否最后一个人,最后一个人员则把评先记录也一同删除 int count = 0; if (StringUtils.isNotBlank(userid)) { DjDnpxryExample example = new DjDnpxryExample(); example.or().andDnpxidEqualTo(id).andUseridEqualTo(userid); count = dnpxryMapper.deleteByExample(example); } DjDnpxryExample example = new DjDnpxryExample(); example.or().andDnpxidEqualTo(id); int num = dnpxryMapper.selectByExample(example).size(); if (num == 0) { count = dnpxxxMapper.deleteByPrimaryKey(id); } return count; } @Override public PageInfo> getDnpxxxList(int page, int rows, String dzzdm, String dzzmc, String username, String userid, Integer honourLevel, String honourName, String beginTime, String endTime, Integer zzfbType, Integer pxlx, String ssdzzdm, Integer honourType) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectDnpxxxList(dzzdm, dzzmc, username, userid, honourLevel, honourName, beginTime, endTime, zzfbType, pxlx, ssdzzdm, honourType); PageInfo> result = new PageInfo(list); return result; } @Override public PageInfo> getDnghbfList(int page, int rows, String dzzdm, String dzzmc, String username, String rybm, Integer careType, Integer zzfbType, String beginTime, String endTime, Integer helpformType) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectDnghbfList(dzzdm, dzzmc, username, rybm, careType, zzfbType, beginTime, endTime, helpformType); PageInfo> result = new PageInfo(list); return result; } @Override public PageInfo> getDnghbfDetailsList(int page, int rows, String dzzdm, String dzzmc, String username, String rybm, Integer careType, Integer zzfbType) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectDnghbfDetailsList(null, dzzdm, dzzmc, username, rybm, careType, zzfbType); PageInfo> result = new PageInfo(list); return result; } @Override public DjDnghbf getDnghbf(String id) { return dnghbfMapper.selectByPrimaryKey(id); } @Override public int saveDnghbf(DjDnghbf model, List recordList, String userId, String userName) { int result; DjDnghbf dbModel = dnghbfMapper.selectByPrimaryKey(model.getId()); if (dbModel == null) { model.setCreateuserid(userId); model.setCreateusername(userName); //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = dnghbfMapper.insert(model); } else { model.setUpdatetime(new Date()); model.setUpdateuserid(userId); model.setUpdateusername(userName); //同步数据 model.setOperatestate("M"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = dnghbfMapper.updateByPrimaryKey(model); } DjDnghbfmxExample example = new DjDnghbfmxExample(); example.or().andDnghbfidEqualTo(model.getId()); dnghbfmxMapper.deleteByExample(example); for (DjDnghbfmx item : recordList) { DjDnghbfmx uModel = dnghbfmxMapper.selectByPrimaryKey(item.getId()); if (uModel == null) { item.setId(UUID.randomUUID().toString()); item.setDnghbfid(model.getId()); dnghbfmxMapper.insert(item); } else { dnghbfmxMapper.updateByPrimaryKeySelective(item); } } return result; } @Override public int saveDnghbfmx(DjDnghbfmx bfmx) { int count = 0; DjDnghbfmx item = dnghbfmxMapper.selectByPrimaryKey(bfmx.getId()); if (item == null) { bfmx.setId(UUID.randomUUID().toString()); count = dnghbfmxMapper.insert(bfmx); } else { count = dnghbfmxMapper.updateByPrimaryKeySelective(bfmx); } return count; } @Override public PageInfo> getDnghbfmxList(int page, int rows, String dnghbId) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectDnghbfDetailsList(dnghbId, null, null, null, null, null, null); List resultList = new ArrayList<>(); for (HashMap item : list) { DjDnghbfmxVo model = new DjDnghbfmxVo(); model.setId(item.get("ID").toString()); model.setAmount(new BigDecimal(item.get("AMOUNT").toString())); model.setCarecontent(item.get("CARECONTENT").toString()); model.setDnghbfid(item.get("DNGHBFID").toString()); model.setHelpform(item.get("HELPFORM") == null ? "" : item.get("HELPFORM").toString()); model.setCaredate(dateUtils.StrToDate(item.get("CAREDATE").toString())); model.setHelpformtype(item.get("HELPFORMTYPE") == null ? null : Integer.parseInt(item.get("HELPFORMTYPE").toString())); model.setHelpformtypename(item.get("HELPFORMTYPENAME") == null ? "" : item.get("HELPFORMTYPENAME").toString()); DjDnghbfmxVo d = mapUtils.mapToObject(item, DjDnghbfmxVo.class); resultList.add(model); } PageInfo> result = new PageInfo(resultList); return result; } @Override public Map getDnghbfDetails(String dnghbfid) { HashMap map = partyTwoCquery.getDnghbfDetails(dnghbfid); return map; } @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public int delDnghbf(String id, String ghmxid) { int count = 0; DjDnghbfmxExample example = new DjDnghbfmxExample(); example.or().andDnghbfidEqualTo(id).andIdEqualTo(ghmxid); count = dnghbfmxMapper.deleteByExample(example); example = new DjDnghbfmxExample(); example.or().andDnghbfidEqualTo(id); int num = dnghbfmxMapper.selectByExample(example).size(); if (num == 0) { count = dnghbfMapper.deleteByPrimaryKey(id); } return count; } @Override public List> importDnghbf(List> dnghbflist) throws Exception { List> errorList = new ArrayList<>(); dnghbflist.forEach(x -> { Object dzzmc = x.get("dzzmc"); Object username = x.get("username"); Object caredate = x.get("caredate"); Object carecontent = x.get("carecontent"); Object helpformtype = x.get("helpformtype"); Object amount = x.get("amount"); String errorMsg = ""; if (dzzmc == null || dzzmc == "") { errorMsg += "所在组织不能为空。"; } if (username == null || username == "") { errorMsg += "人员不能为空。"; } if (caredate == null || caredate == "") { errorMsg += "帮扶时间不能为空。"; } if (amount == null || amount == "") { errorMsg += "慰问金额不能为空。"; } else { Pattern degreePattern = Pattern.compile("^[\\d]*(.[\\d]{1,2})?$"); if (!degreePattern.matcher(amount.toString()).matches()) { errorMsg += "慰问金额格式不正确,应为数字格式,小数点后最多保留2位。"; } } if (helpformtype == null || helpformtype == "") { errorMsg += "帮扶形式不能为空。"; } if (carecontent == null || carecontent == "") { errorMsg += "帮扶内容不能为空。"; } if (!errorMsg.equals("")) { Map errorItem = new HashMap<>(x); errorItem.put("errorInfo", errorMsg); errorList.add(errorItem); return; } CfUsersinfo user = userService.getUserByParams(null, dzzmc.toString(), username.toString()).stream().findFirst().orElse(null); ; if (user == null) { errorMsg += "人员不存在或者不属于该组织。"; Map errorItem = new HashMap<>(x); errorItem.put("errorInfo", errorMsg); errorList.add(errorItem); return; } CfDictionary dictionary = dictionaryService.getDictionaryListByDicTypeKey("helpformType").stream().filter(q -> q.getDicvalue().equals(helpformtype)).findFirst().orElse(null); if (dictionary == null) { errorMsg += "帮扶形式不存在。"; Map errorItem = new HashMap<>(x); errorItem.put("errorInfo", errorMsg); errorList.add(errorItem); return; } x.put("dzzdm", user.getDpid()); x.put("userid", user.getDguserid()); x.put("helpformTypeid", dictionary.getDickey()); }); DjDnghbfExample exp = new DjDnghbfExample(); exp.or().andUseridIsNotNull(); List dnghbfRecords = dnghbfMapper.selectByExample(exp); List dnghbfAdd = new ArrayList<>(); List dnghbfmxAdd = new ArrayList<>(); if (errorList.size() == 0) { dnghbflist.forEach(x -> { DjDnghbf add = dnghbfAdd.stream().filter(q -> q.getUserid().equals(x.get("userid").toString())).findFirst().orElse(null); if (add == null) { DjDnghbf record = dnghbfRecords.stream().filter(q -> q.getUserid().equals(x.get("userid").toString())).findFirst().orElse(null); if (record == null) { add = new DjDnghbf(); add.setDzzdm(x.get("dzzdm").toString()); add.setDzzmc(x.get("dzzmc").toString()); add.setUserid(x.get("userid").toString()); add.setUsername(x.get("username").toString()); add.setCreateuserid(userService.getLoginUser().getUserid()); add.setCreateusername(userService.getLoginUser().getUsername()); add.setId(UUID.randomUUID().toString()); add.setUpdatetime(new Date()); add.setUpdateuserid(userService.getLoginUser().getUserid()); add.setUpdateusername(userService.getLoginUser().getUsername()); //同步数据 add.setOperatestate("M"); add.setOperatetime(new Date()); add.setSyncstate("N"); dnghbfAdd.add(add); } else { add = record; } } DjDnghbfmx mx = new DjDnghbfmx(); mx.setId(UUID.randomUUID().toString()); mx.setDnghbfid(add.getId()); mx.setAmount(Integer.parseInt(x.get("amount").toString())); mx.setCarecontent(x.get("carecontent").toString()); mx.setHelpformtype(new Integer(x.get("helpformTypeid").toString())); mx.setCaredate(dateUtils.StrToDate(x.get("caredate").toString(), "yyyy-MM-dd")); dnghbfmxAdd.add(mx); }); if (dnghbfAdd.size() > 0) { partyTwoCquery.batchInsertDnghbf(dnghbfAdd); } if (dnghbfmxAdd.size() > 0) { partyTwoCquery.batchInsertDnghbfmx(dnghbfmxAdd); } } return errorList; } @Override public RequsetData saveZtdrxx(DjZtdrxxVo data) { RequsetData res = new RequsetData(); int result; DjZtdrxx model = ztdrxxMapper.selectByPrimaryKey(data.getId()); boolean isSave = model == null; if (model == null) { model = new DjZtdrxx(); model.setId(data.getId()); } //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); // 从Vo类中同步字段 model.setDzzdm(data.getDzzdm()); model.setDzzmc(data.getDzzmc()); model.setTitle(data.getTitle()); model.setActivitytime(data.getActivitytime()); model.setLocation(data.getLocation()); model.setSubjecttype(data.getSubjecttype()); model.setSubjectcontent(data.getSubjectcontent()); if (isSave) { result = ztdrxxMapper.insert(model); } else { result = ztdrxxMapper.updateByPrimaryKeyWithBLOBs(model); } //出席人员 PfPartylifemeetingPersonnelExample perExp = new PfPartylifemeetingPersonnelExample(); perExp.or().andPartylifemeetingidEqualTo(data.getId()); pfPartylifemeetingPersonnelMapper.deleteByExample(perExp); if(data.getPersonnellist().size() > 0){ data.getPersonnellist().forEach(item -> { PfPartylifemeetingPersonnel perModel = new PfPartylifemeetingPersonnel(); perModel.setId(UUID.randomUUID().toString()); perModel.setRybm(item.getRybm()); perModel.setPartylifemeetingid(data.getId()); perModel.setIsabsenteeism(item.getIsabsenteeism()); perModel.setAbsenteeismcause(item.getAbsenteeismcause()); perModel.setCreatetime(new Date()); pfPartylifemeetingPersonnelMapper.insert(perModel); }); } if (result > 0) { res.setSuccess(true); res.setMsg("提交成功!"); } else { res.setSuccess(false); res.setMsg("提交失败"); } return res; } @Override public int delZtdrxx(String id) { return ztdrxxMapper.deleteByPrimaryKey(id); } @Override public PageInfo getZtdrxxList(int page, int rows, String dzzdm, String dzzmc, String title, Integer subjectType, String location, String beginTime, String endTime, Integer zzfbType) { PageHelper.startPage(page, rows); List list = partyTwoCquery.selectZtdrxxList(dzzdm, dzzmc, title, location, subjectType, beginTime, endTime, zzfbType, null); PageInfo result = new PageInfo(list); return result; } @Override public DjZtdrxxVo getZtdrxx(String id) { if (stringUtils.IsNullOrEmpty(id)) return null; List list = partyTwoCquery.selectZtdrxxList(null, null, null, null, null, null, null, null, null); DjZtdrxxVo data = list.size() > 0 ? list.get(0) : null; if(data != null){ // 查询出席人员列表 data.setPersonnellist(partyLifeMeetingCQuery.selectMeetingPersonnelList(data.getId())); } return data; } @Override public RequsetData saveZzsr(DjZzsr model) { RequsetData res = new RequsetData(); int result; //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); if (zzsrMapper.selectByPrimaryKey(model.getId()) == null) { result = zzsrMapper.insert(model); } else { result = zzsrMapper.updateByPrimaryKeyWithBLOBs(model); } if (result > 0) { res.setSuccess(true); res.setMsg("提交成功!"); } else { res.setSuccess(false); res.setMsg("提交失败"); } return res; } @Override public int delZzsr(String id) { return zzsrMapper.deleteByPrimaryKey(id); } @Override public PageInfo getZzsrList(int page, int rows, String dzzdm, String dzzmc, String title, Integer subjectType, String location, String beginTime, String endTime, Integer zzfbType) { PageHelper.startPage(page, rows); List list = partyTwoCquery.selectZzsrList(dzzdm, dzzmc, title, location, subjectType, beginTime, endTime, zzfbType); PageInfo result = new PageInfo(list); return result; } @Override public DjZzsr getZzsr(String id) { return zzsrMapper.selectByPrimaryKey(id); } @Override public DjDjkpxx getDjkpxx(String id) { return djkpxxMapper.selectByPrimaryKey(id); } @Override public int saveDjkpxxByList(List dataList, String userId, String userName) { int result = 0; for (DjDjkpxx item : dataList) { //检测是否已经新增当前年度的记录 DjDjkpxxExample example = new DjDjkpxxExample(); example.or().andDzzdmEqualTo(item.getDzzdm()).andYearEqualTo(item.getYear()); List list = djkpxxMapper.selectByExample(example); if (list.size() > 0) { DjDjkpxx model = list.get(0); model.setQuarter1(item.getQuarter1()); model.setQuarter2(item.getQuarter2()); model.setQuarter3(item.getQuarter3()); model.setQuarter4(item.getQuarter4()); model.setJudgelevel(item.getJudgelevel()); result = djkpxxMapper.updateByPrimaryKey(model); } else { item.setOperatestate("A"); item.setOperatetime(new Date()); item.setSyncstate("N"); item.setId(UUID.randomUUID().toString()); item.setCreateuserid(userId); item.setCreateusername(userName); result = djkpxxMapper.insert(item); } } return result; } @Override public RequsetData saveDjkpxx(DjDjkpxx model) { RequsetData res = new RequsetData(); int result; //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); //检测是否已经新增当前年度的记录 DjDjkpxxExample example = new DjDjkpxxExample(); example.or().andDzzdmEqualTo(model.getDzzdm()).andYearEqualTo(model.getYear()).andIdNotEqualTo(model.getId()); List list = djkpxxMapper.selectByExample(example); if (list.size() > 0) { res.setSuccess(false); res.setMsg("当前组织选择年份已录入,请重新选择"); return res; } if (djkpxxMapper.selectByPrimaryKey(model.getId()) == null) { result = djkpxxMapper.insert(model); } else { result = djkpxxMapper.updateByPrimaryKey(model); } if (result > 0) { res.setSuccess(true); res.setMsg("提交成功!"); } else { res.setSuccess(false); res.setMsg("提交失败"); } return res; } @Override public int delDjkpxx(String id) { return djkpxxMapper.deleteByPrimaryKey(id); } @Override public PageInfo> getDjkpxxList(int page, int rows, String dzzdm, String dzzmc, Integer judgeLevel, Integer year, Integer zzfbType, String ssdzzdm, Integer showdw) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectDjkpxxList(dzzdm, dzzmc, judgeLevel, year, zzfbType, ssdzzdm, showdw); PageInfo> result = new PageInfo(list); return result; } @Override public PageInfo> getParyDjkpList(int page, int rows, String dzzdm, String dzzmc, Integer showdxz, Integer year, Integer showdw, Integer showdzb, List selectdzzdmList) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectParyDjkpList(dzzdm, dzzmc, showdxz, year, showdw, showdzb, selectdzzdmList); PageInfo> result = new PageInfo(list); return result; } @Override public DjJlcfxx getJlcfxx(String id) { return jlcfxxMapper.selectByPrimaryKey(id); } @Override public RequsetData saveJlcfxx(DjJlcfxx model) { RequsetData res = new RequsetData(); int result; //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); if (jlcfxxMapper.selectByPrimaryKey(model.getId()) == null) { result = jlcfxxMapper.insert(model); } else { result = jlcfxxMapper.updateByPrimaryKeyWithBLOBs(model); } if (result > 0) { res.setSuccess(true); res.setMsg("提交成功!"); } else { res.setSuccess(false); res.setMsg("提交失败"); } return res; } @Override public int delJlcfxx(String id) { return jlcfxxMapper.deleteByPrimaryKey(id); } @Override public PageInfo getJlcfxxList(int page, int rows, String dzzdm, String dzzmc, String username, String rybm, Integer offenceType, Integer punishType, String beginTime, String endTime, Integer zzfbType) { PageHelper.startPage(page, rows); List list = partyTwoCquery.selectJlcfxxList(dzzdm, dzzmc, username, rybm, offenceType, punishType, beginTime, endTime, zzfbType); PageInfo result = new PageInfo(list); return result; } @Override public PageInfo> getTaskList(int page, int rows, String username, String taskuserid, String taskName, String beginTime, String endTime, String day, String userid, Integer isreceive) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectTask(username, taskuserid, taskName, beginTime, endTime, day, userid, isreceive); PageInfo> result = new PageInfo(list); return result; } @Override public List getTaskUserList(String taskid) { DjTaskusersExample example = new DjTaskusersExample(); example.or().andTaskidEqualTo(taskid); List users = djTaskusersMapper.selectByExample(example); return users; } @Override public DjTask getTask(String id) { return djTaskMapper.selectByPrimaryKey(id); } @Override public int receiveTask(String id, String userId) { DjTaskusersExample example = new DjTaskusersExample(); example.or().andTaskidEqualTo(id).andUseridEqualTo(userId); List list = djTaskusersMapper.selectByExample(example); if (list.size() == 0) { return 0; } Integer receivenum = list.get(0).getReceivenum(); DjTaskusers record = new DjTaskusers(); record.setIsreceive(1); record.setReceivetime(new Date()); record.setReceivenum((receivenum == null ? 0 : receivenum) + 1); return djTaskusersMapper.updateByExampleSelective(record, example); } @Override public int resetSubmit(String id) { DjTaskusers record = new DjTaskusers(); record.setId(id); record.setIsreceive(0); return djTaskusersMapper.updateByPrimaryKeySelective(record); } @Override public int isReceiveTask(String id, String userId) { DjTaskusersExample example = new DjTaskusersExample(); example.or().andTaskidEqualTo(id).andUseridEqualTo(userId).andIsreceiveEqualTo(1); return djTaskusersMapper.selectByExample(example).size(); } @Override public int delTask(String id) { DjTaskusersExample example = new DjTaskusersExample(); example.or().andTaskidEqualTo(id); djTaskusersMapper.deleteByExample(example); return djTaskMapper.deleteByPrimaryKey(id); } @Override public int terminateTask(String id) { DjTask record = new DjTask(); record.setId(id); record.setIsterminate(1); return djTaskMapper.updateByPrimaryKeySelective(record); } @Override public int saveTask(DjTask model, List userList, List columnList, String userId, String userName) { int result = 0; DjTask dbModel = djTaskMapper.selectByPrimaryKey(model.getId()); if (dbModel == null) { model.setIsterminate(0); model.setUpdatetime(new Date()); model.setUpdateuserid(userId); model.setUpdateusername(userName); //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = djTaskMapper.insert(model); } else { model.setUpdatetime(new Date()); model.setUpdateuserid(userId); model.setUpdateusername(userName); //同步数据 model.setOperatestate("M"); model.setOperatetime(new Date()); model.setSyncstate("N"); result = djTaskMapper.updateByPrimaryKey(model); } DjTaskusersExample example = new DjTaskusersExample(); example.or().andTaskidEqualTo(model.getId()); djTaskusersMapper.deleteByExample(example); for (DjTaskusers item : userList) { DjTaskusers uModel = djTaskusersMapper.selectByPrimaryKey(item.getId()); item.setId(UUID.randomUUID().toString()); item.setTaskid(model.getId()); item.setReceivenum(0); djTaskusersMapper.insert(item); } QtTaskpubcolumnExample exp = new QtTaskpubcolumnExample(); exp.or().andTaskpubidEqualTo(model.getId()); taskpubcolumnMapper.deleteByExample(exp); int i = 0; for (QtTaskpubcolumn item : columnList) { item.setTaskpubcolid(UUID.randomUUID().toString()); item.setTaskpubid(model.getId()); item.setOrderby(i++); taskpubcolumnMapper.insert(item); } return result; } @Override public HashMap getPartyTotalInfo(String dzzdm, String yearMonth, String year) { List> list = partyTwoCquery.selectPartyTotalInfo(dzzdm, yearMonth, year); if (list.size() > 0) { return list.get(0); } return new HashMap<>(0); } @Override public DjFundsbudget getfundsBudget(String id) { return djFundsbudgetMapper.selectByPrimaryKey(id); } @Override public RequsetData savefundsBudget(DjFundsbudget model,String userId, String userName) { RequsetData res = new RequsetData(); int result; //同步数据 model.setOperatestate("A"); model.setOperatetime(new Date()); model.setSyncstate("N"); //检测是否已经新增当前年度的记录 DjFundsbudgetExample example = new DjFundsbudgetExample(); example.or().andPartycodeEqualTo(model.getPartycode()).andYearEqualTo(model.getYear()).andFundsbudgetidNotEqualTo(model.getFundsbudgetid()); List list = djFundsbudgetMapper.selectByExample(example); if (list.size() > 0) { res.setSuccess(false); res.setMsg("当前组织选择年份已录入,请重新选择"); return res; } if (djFundsbudgetMapper.selectByPrimaryKey(model.getFundsbudgetid()) == null) { model.setCreateuserid(userId); model.setCreateusername(userName); model.setCreatetime(new Date()); result = djFundsbudgetMapper.insert(model); } else { model.setUpdateuserid(userId); model.setUpdateusername(userName); model.setUpdatetime(new Date()); result = djFundsbudgetMapper.updateByPrimaryKey(model); } if (result > 0) { res.setSuccess(true); res.setMsg("提交成功!"); } else { res.setSuccess(false); res.setMsg("提交失败"); } return res; } @Override public int delfundsBudget(String id) { return djFundsbudgetMapper.deleteByPrimaryKey(id); } @Override public PageInfo> getfundsBudgetList(int page, int rows, String dzzdm, String dzzmc, Integer year) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectfundsBudgetList(dzzdm, dzzmc, year); PageInfo> result = new PageInfo(list); return result; } @Override public PageInfo> getZtdrSummary(int page, int rows, String partyCode, Integer year) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectZtdrSummary(partyCode, year); PageInfo> result = new PageInfo(list); return result; } @Override public PageInfo> getMzpyxxList(int page, int rows, String username, String rybm, String dzzdm, String beginTime, String endTime, String pyjg) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectMzpyxxList(username, rybm, dzzdm, beginTime, endTime, pyjg); PageInfo> result = new PageInfo(list); return result; } @Override public List> getMzpyjgList() { List> list = partyTwoCquery.selectMzpyjgList(); return list; } @Override public List> getMzpybhgclqkList() { List> list = partyTwoCquery.selectMzpybhgclqkList(); return list; } public ZzMzpyxxVo getMzpyById(String id) { if (!StringUtils.isNotBlank(id)) return null; ZzMzpyxxVo result = new ZzMzpyxxVo(); ZzMzpyxxExample exp = new ZzMzpyxxExample(); exp.or().andMzpyxxbsEqualTo(id); ZzMzpyxx dbModel = zzMzpyxxMapper.selectByExample(exp).stream().findFirst().orElse(null); if (dbModel != null) { try { result = mapUtils.map2Obj(mapUtils.objectToMap(dbModel), ZzMzpyxxVo.class); if (StringUtils.isNotBlank(result.getRybm())) { HashMap userinfo = partyUserService.getPartyUserInfoByRybm(result.getRybm()); if (userinfo != null && userinfo.get("XM") != null) { result.setUserName(userinfo.get("XM").toString()); } /*if (userinfo != null && userinfo.get("DZZMC") != null) { result.setPartyName(userinfo.get("DZZMC").toString()); }*/ } if (StringUtils.isNotBlank(result.getSzdzbdm())) { ZzZzqkxx zzZzqkxx = partyService.getPartyByDm(result.getSzdzbdm()); result.setPartyName(zzZzqkxx != null ? zzZzqkxx.getDzzmc() : ""); } } catch (Exception ex) { } } return result; } public int saveMzpy(ZzMzpyxxVo data) { int result = 0; ZzMzpyxxVo dbData = getMzpyById(data.getMzpyxxbs()); boolean isExist = dbData != null && StringUtils.isNotBlank(dbData.getMzpyxxbs()); if (!isExist) { result = zzMzpyxxMapper.insert(data); } else { ZzMzpyxxExample exp = new ZzMzpyxxExample(); exp.or().andMzpyxxbsEqualTo(data.getMzpyxxbs()); result = zzMzpyxxMapper.updateByExample(data, exp); } return result; } public int deleteMzpyById(String id) { ZzMzpyxxExample exp = new ZzMzpyxxExample(); exp.or().andMzpyxxbsEqualTo(id); return zzMzpyxxMapper.deleteByExample(exp); } @Override public List importMzpy(List dataList) throws Exception { if (dataList.size() <= 0) { throw new Exception("请添加导入数据"); } List errorList = new ArrayList<>(); List> mzpyjgList = getMzpyjgList(); // 民主评议结果字典 List> mzpybhgclqkList = getMzpybhgclqkList(); // 民主评议不合格处理情况字典 for (int i = 0; i < dataList.size(); i++) { String errorInfo = ""; HashMap pyjg = null; HashMap pyjcqk = null; HashMap partyUserInfo = new HashMap<>(); int finalI = i; if (stringUtils.IsNullOrEmpty(dataList.get(i).getUserName())) { errorInfo += "请填写党员姓名!"; } else { partyUserInfo = partyUserService.getPartyUserExtByName(dataList.get(i).getUserName()); // 按名字查询出党员信息 if (partyUserInfo == null || partyUserInfo.isEmpty()) { errorInfo += "该党员不存在!"; } } if (stringUtils.IsNullOrEmpty(dataList.get(i).getKzpyrq())) { errorInfo += "请填写评议开始日期!"; } if (stringUtils.IsNullOrEmpty(dataList.get(i).getJspyrq())) { errorInfo += "请填写评议结束日期!"; } if (stringUtils.IsNullOrEmpty(dataList.get(i).getPyjg())) { errorInfo += "请填写评议结果!"; } else { pyjg = mzpyjgList.stream().filter(it -> it.get("HZMC").equals(dataList.get(finalI).getPyjg())).findFirst().orElse(null); if (pyjg == null) { errorInfo += "评议结果不存在!"; } else { dataList.get(i).setPyjg((String) pyjg.get("BM")); } } if (!stringUtils.IsNullOrEmpty(dataList.get(i).getPyjcqk())) { pyjcqk = mzpybhgclqkList.stream().filter(it -> it.get("HZMC").equals(dataList.get(finalI).getPyjcqk())).findFirst().orElse(null); if (pyjcqk == null) { errorInfo += "不合格处理情况不存在!"; } else { dataList.get(i).setPyjcqk((String) pyjcqk.get("BM")); } } if (stringUtils.IsNullOrEmpty(errorInfo)) { // 初始化数据 dataList.get(i).setRybm((String) partyUserInfo.get("RYBM")); dataList.get(i).setSzdzbdm((String) partyUserInfo.get("SZDZBDM")); dataList.get(i).setKzpyrq(dateUtils.strFormat_short(dataList.get(i).getKzpyrq())); dataList.get(i).setJspyrq(dateUtils.strFormat_short(dataList.get(i).getJspyrq())); dataList.get(i).setMzpyxxbs(UUID.randomUUID().toString()); } else { dataList.get(i).setErrorInfo(errorInfo); errorList.add(dataList.get(i)); } } if (errorList.isEmpty()) { for (ZzMzpyxxVo zzMzpyxxVo : dataList) { saveMzpy(zzMzpyxxVo); } } return errorList; } @Override public List> getMzpyTotalList(String dzzdm) { // 查询计数统计 List> hashMaps = partyTwoCquery.selectMzpyjgCountList(dzzdm); HashMap countMap = new HashMap<>(); // 初始化 countMap 中的累加字段 if (!hashMaps.isEmpty()) { // 初始化countMap的字段,假设所有map中的字段名是一致的 hashMaps.get(0).forEach((key, value) -> { if (value instanceof Number) { countMap.put(key, 0); // 初始化为0 } }); countMap.put("DZZMC", "合计"); } // 计算合计数据 hashMaps.forEach(map -> { map.forEach((key, value) -> { if (value instanceof Number) { // 获取countMap中当前累加的值 int currentCount = (int) countMap.getOrDefault(key, 0); // 将当前值累加到countMap中 countMap.put(key, currentCount + ((Number) value).intValue()); } }); }); hashMaps.add(countMap); return hashMaps; } @Override public PageInfo> getleaderUserList(int page, int rows, String username, Integer usertype) { PageHelper.startPage(page, rows); List> list = partyTwoCquery.selectleaderUserList(username, usertype); PageInfo> result = new PageInfo(list); return result; } @Override public List> importDnpxxx(List> dataList) throws Exception { if (dataList.size() <= 0) { throw new Exception("请添加导入数据"); } List> resultList = new ArrayList<>(); List> errorList = new ArrayList<>(); List positionLevelList = dictionaryService.getDictionaryListByDicTypeKey("positionLevel"); List honourTypeList = dictionaryService.getDictionaryListByDicTypeKey("honourType"); for (int i = 0; i < dataList.size(); i++) { String errorInfo = ""; Integer honourlevel = null; Integer honourtype = null; HashMap partyUserInfo = new HashMap<>(); int finalI = i; if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("userName"))) { errorInfo += "请填写党员姓名!"; } else { partyUserInfo = partyUserService.getPartyUserExtByName((String) dataList.get(i).get("userName")); // 按名字查询出党员信息 if (partyUserInfo == null || partyUserInfo.isEmpty()) { errorInfo += "该党员不存在!"; } } if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourname"))) { errorInfo += "请填写荣誉名称!"; } if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourlevel"))) { errorInfo += "请填写荣誉等级!"; } else { honourlevel = positionLevelList.stream().filter(it -> it.getDicvalue().equals(dataList.get(finalI).get("honourlevel"))).findFirst().orElse(new CfDictionary()).getDickey(); if (honourlevel == null) { errorInfo += "荣誉等级不存在!"; } } if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourtime"))) { errorInfo += "请填写获得荣誉时间!"; } if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourtype"))) { errorInfo += "请填写荣誉类型!"; } else { honourtype = honourTypeList.stream().filter(it -> it.getDicvalue().equals(dataList.get(finalI).get("honourtype"))).findFirst().orElse(new CfDictionary()).getDickey(); if (honourtype == null) { errorInfo += "荣誉等级不存在!"; } } if (stringUtils.IsNullOrEmpty(errorInfo)) { // 处理数据 // 创建实体类 DjDnpxxx model = new DjDnpxxx(); model.setId(UUID.randomUUID().toString()); model.setDzzdm((String) partyUserInfo.get("DZZDM")); model.setDzzmc((String) partyUserInfo.get("DZZMC")); model.setHonourlevel(honourlevel); model.setHonourtype(honourtype); model.setHonourname((String) dataList.get(i).get("honourname")); model.setHonourtime(dateUtils.strToDateExt((String) dataList.get(i).get("honourtime"))); model.setPxlx("1"); UserItemVo userItem = new UserItemVo(); userItem.setRybm((String) partyUserInfo.get("RYBM")); userItem.setXm((String) partyUserInfo.get("XM")); UserItemVo[] vos = new UserItemVo[]{userItem}; Map result = new HashMap<>(); result.put("model", model); result.put("userItemVo", vos); resultList.add(result); } else { dataList.get(i).put("errorInfo", errorInfo); errorList.add(dataList.get(i)); } } if (errorList.isEmpty()) { resultList.forEach(item -> { RequsetData stringRequsetData = saveDnpxxx((DjDnpxxx) item.get("model"), (UserItemVo[]) item.get("userItemVo")); }); } return errorList; } }