DoTaskImpl.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package com.hz.employmentsite.services.impl.taskAndLog;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.hz.employmentsite.mapper.PcDotaskMapper;
  5. import com.hz.employmentsite.mapper.PcDotaskUserMapper;
  6. import com.hz.employmentsite.mapper.PcSiteUserMapper;
  7. import com.hz.employmentsite.mapper.cquery.DoTaskCQuery;
  8. import com.hz.employmentsite.model.*;
  9. import com.hz.employmentsite.services.service.taskAndLog.DoTaskService;
  10. import com.hz.employmentsite.util.StringUtils;
  11. import com.hz.employmentsite.vo.taskAndLog.DoTaskUserVo;
  12. import com.hz.employmentsite.vo.taskAndLog.DoTaskVo;
  13. import com.hz.employmentsite.vo.baseSettings.SiteUserVo;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.ArrayList;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.UUID;
  20. @Service("DoTaskService")
  21. public class DoTaskImpl implements DoTaskService {
  22. @Autowired
  23. private DoTaskCQuery doTaskCQuery;
  24. @Autowired
  25. private StringUtils stringUtils;
  26. @Autowired
  27. private PcDotaskMapper doTaskMapper;
  28. @Autowired
  29. private PcSiteUserMapper pcSiteUserMapper;
  30. @Autowired
  31. private PcDotaskUserMapper doTaskUserMapper;
  32. @Override
  33. public PageInfo<DoTaskVo> getList(Integer page, Integer rows, String name, String startTime, String endTime, String finishStartTime, String finishEndTime, String regionCode, String streetCode, String workTypeId) {
  34. try {
  35. PageHelper.startPage(page, rows);
  36. List<DoTaskVo> list = doTaskCQuery.getList(null, name, startTime, endTime, finishStartTime, finishEndTime, regionCode, streetCode, workTypeId);
  37. PageInfo<DoTaskVo> result = new PageInfo(list);
  38. return result;
  39. } catch (Exception e) {
  40. throw new RuntimeException("Database query exception: " + e.getMessage(), e);
  41. }
  42. }
  43. @Override
  44. public PageInfo<DoTaskVo> getMyTasks(Integer page, Integer rows, String curUserID) {
  45. PcSiteUserExample siteUserExp = new PcSiteUserExample();
  46. PcSiteUserExample.Criteria siteUserCro = siteUserExp.createCriteria();
  47. siteUserCro.andUserIDEqualTo(curUserID);
  48. var curSiteUserInfo = pcSiteUserMapper.selectByExample(siteUserExp).stream().findFirst().orElse(null);
  49. if(curSiteUserInfo==null){
  50. throw new RuntimeException("当前用户未绑定站点人员,未能查询到相关工作任务!");
  51. }else{
  52. PcDotaskUserExample exp = new PcDotaskUserExample();
  53. PcDotaskUserExample.Criteria cro = exp.createCriteria();
  54. cro.andSiteUserIDEqualTo(curSiteUserInfo.getSiteUserID());
  55. var curDoTaskUserInfo = doTaskUserMapper.selectByExample(exp).stream().toList();
  56. List<String> curDoTaskIDs = new ArrayList<String>();
  57. if (curDoTaskUserInfo.size()>0){
  58. curDoTaskUserInfo.forEach(item -> {
  59. curDoTaskIDs.add(item.getDotaskID());
  60. });
  61. };
  62. try {
  63. if(curDoTaskIDs.size()>0){
  64. PageHelper.startPage(page,rows);
  65. List<DoTaskVo> list = doTaskCQuery.getList(stringUtils.ListToInSql(curDoTaskIDs),null,null,null,null,null,null,null,null);
  66. PageInfo<DoTaskVo> result = new PageInfo(list);
  67. return result;
  68. }
  69. return null;
  70. } catch (Exception e) {
  71. throw new RuntimeException("Database query exception: " + e.getMessage(), e);
  72. }
  73. }
  74. }
  75. @Override
  76. public List<DoTaskUserVo> getWorkUserList(String doTaskID) {
  77. List<DoTaskUserVo> list = doTaskCQuery.getWorkUserList(doTaskID);
  78. return list;
  79. }
  80. @Override
  81. public List<SiteUserVo> getUserList() {
  82. List<SiteUserVo> list = doTaskCQuery.getUserList();
  83. return list;
  84. }
  85. @Override
  86. public DoTaskVo getDataById(String id) {
  87. if (stringUtils.IsNullOrEmpty(id)) {
  88. return null;
  89. }
  90. List<String> ids = new ArrayList<>();
  91. ids.add(id);
  92. return doTaskCQuery.getList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null, null).stream().findFirst().orElse(null);
  93. }
  94. @Override
  95. public int save(DoTaskVo data, String userId) {
  96. int result = 0;
  97. PcDotask dbData = doTaskMapper.selectByPrimaryKey(data.getDoTaskID());
  98. PcDotaskUserExample exp = new PcDotaskUserExample();
  99. PcDotaskUserExample.Criteria cro = exp.createCriteria();
  100. cro.andDotaskIDEqualTo(data.getDoTaskID());
  101. PcDotaskUser taskUser = doTaskUserMapper.selectByExample(exp).stream().findFirst().orElse(null);
  102. if (dbData == null) {
  103. dbData = new PcDotask();
  104. dbData.setDotaskID(data.getDoTaskID());
  105. dbData.setWorkTypeID(data.getWorkTypeID());
  106. dbData.setContent(data.getContent());
  107. dbData.setDotaskName(data.getDoTaskName());
  108. dbData.setRegionCode(data.getRegionCode());
  109. dbData.setStreetCode(data.getStreetCode());
  110. dbData.setSiteID(data.getSiteID());
  111. dbData.setFinishTime(data.getFinishTime());
  112. dbData.setCreateTime(new Date());
  113. dbData.setCreateUserID(userId);
  114. result = doTaskMapper.insert(dbData);
  115. } else {
  116. dbData.setWorkTypeID(data.workTypeID);
  117. dbData.setContent(data.content);
  118. dbData.setDotaskName(data.doTaskName);
  119. dbData.setRegionCode(data.regionCode);
  120. dbData.setStreetCode(data.streetCode);
  121. dbData.setSiteID(data.siteID);
  122. dbData.setFinishTime(data.finishTime);
  123. dbData.setModifyTime(new Date());
  124. dbData.setModifyUserID(userId);
  125. result = doTaskMapper.updateByPrimaryKeySelective(dbData);
  126. }
  127. if (result == 1) {
  128. String doTaskID = dbData.getDotaskID();
  129. if (taskUser != null) {
  130. PcDotaskUserExample example = new PcDotaskUserExample();
  131. example.or().andDotaskIDEqualTo(data.getDoTaskID());
  132. doTaskUserMapper.deleteByExample(example);
  133. }
  134. var doTaskUsers = data.doTaskUser.stream().toList();
  135. for (var curData: doTaskUsers) {
  136. PcDotaskUser user = new PcDotaskUser();
  137. user.setDotaskUserID(UUID.randomUUID().toString());
  138. user.setDotaskID(doTaskID);
  139. user.setSiteUserID(curData.siteUserID);
  140. doTaskUserMapper.insert(user);
  141. };
  142. }
  143. return result;
  144. }
  145. @Override
  146. public int delete(List<String> ids) {
  147. int result = 0;
  148. PcDotaskUserExample expUser = new PcDotaskUserExample();
  149. PcDotaskUserExample.Criteria croUser = expUser.or();
  150. croUser.andDotaskIDIn(ids);
  151. int userRows = doTaskUserMapper.deleteByExample(expUser);
  152. if (userRows > 0) {
  153. PcDotaskExample exp = new PcDotaskExample();
  154. PcDotaskExample.Criteria cro = exp.or();
  155. cro.andDotaskIDIn(ids);
  156. result = doTaskMapper.deleteByExample(exp);
  157. }
  158. return result;
  159. }
  160. }