DoTaskImpl.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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,List<String> doTaskIDList, String name, String startTime, String endTime, String finishStartTime, String finishEndTime, String regionCode, String streetCode, String workTypeId,Integer taskStatus) {
  34. try {
  35. PageHelper.startPage(page, rows);
  36. List<DoTaskVo> list = doTaskCQuery.getList(stringUtils.ListToInSql(doTaskIDList), name, startTime, endTime, finishStartTime, finishEndTime, regionCode, streetCode, workTypeId,taskStatus);
  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 doTaskID,String taskName, 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. try {
  53. PageHelper.startPage(page, rows);
  54. String siteUserID = curSiteUserInfo.getSiteUserID();
  55. var list = doTaskCQuery.getListByUserID(siteUserID,doTaskID,taskName);
  56. PageInfo<DoTaskVo> result = new PageInfo(list);
  57. return result;
  58. } catch (Exception e) {
  59. throw new RuntimeException("Database query exception: " + e.getMessage(), e);
  60. }
  61. }
  62. }
  63. @Override
  64. public List<DoTaskUserVo> getWorkUserList(String doTaskID) {
  65. List<DoTaskUserVo> list = doTaskCQuery.getWorkUserList(doTaskID);
  66. return list;
  67. }
  68. @Override
  69. public List<SiteUserVo> getUserList() {
  70. List<SiteUserVo> list = doTaskCQuery.getUserList();
  71. return list;
  72. }
  73. @Override
  74. public DoTaskVo getDataById(String id) {
  75. if (stringUtils.IsNullOrEmpty(id)) {
  76. return null;
  77. }
  78. List<String> ids = new ArrayList<>();
  79. ids.add(id);
  80. return doTaskCQuery.getList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null, null,null).stream().findFirst().orElse(null);
  81. }
  82. @Override
  83. public int taskFinish(String doTaskID,String finishUserID, Date completeTime){
  84. int result = 0;
  85. PcSiteUserExample siteUserExp = new PcSiteUserExample();
  86. PcSiteUserExample.Criteria siteUserCro = siteUserExp.createCriteria();
  87. siteUserCro.andUserIDEqualTo(finishUserID);
  88. var curSiteUserInfo = pcSiteUserMapper.selectByExample(siteUserExp).stream().findFirst().orElse(null);
  89. if(curSiteUserInfo==null){
  90. throw new RuntimeException("当前用户未绑定站点人员,未能查询到相关工作任务!");
  91. }
  92. PcDotaskUserExample taskUserExp = new PcDotaskUserExample();
  93. PcDotaskUserExample.Criteria taskUserCro = taskUserExp.createCriteria();
  94. taskUserCro.andSiteUserIDEqualTo(curSiteUserInfo.getSiteUserID());
  95. taskUserCro.andDotaskIDEqualTo(doTaskID);
  96. var curUserTaskInfo = doTaskUserMapper.selectByExample(taskUserExp).stream().findFirst().orElse(null);
  97. if (curUserTaskInfo != null) {
  98. curUserTaskInfo.setUserTaskStatus(1);
  99. curUserTaskInfo.setCompleteTime(completeTime);
  100. result = doTaskUserMapper.updateByExample(curUserTaskInfo,taskUserExp);
  101. }
  102. return result;
  103. }
  104. @Override
  105. public int save(DoTaskVo data, String userId) {
  106. int result = 0;
  107. PcDotask dbData = doTaskMapper.selectByPrimaryKey(data.getDoTaskID());
  108. PcDotaskUserExample exp = new PcDotaskUserExample();
  109. PcDotaskUserExample.Criteria cro = exp.createCriteria();
  110. cro.andDotaskIDEqualTo(data.getDoTaskID());
  111. PcDotaskUser taskUser = doTaskUserMapper.selectByExample(exp).stream().findFirst().orElse(null);
  112. if (dbData == null) {
  113. dbData = new PcDotask();
  114. dbData.setDotaskID(data.getDoTaskID());
  115. dbData.setWorkTypeID(data.getWorkTypeID());
  116. dbData.setContent(data.getContent());
  117. dbData.setDotaskName(data.getDoTaskName());
  118. dbData.setRegionCode(data.getRegionCode());
  119. dbData.setStreetCode(data.getStreetCode());
  120. dbData.setSiteID(data.getSiteID());
  121. dbData.setFinishTime(data.getFinishTime());
  122. dbData.setCreateTime(new Date());
  123. dbData.setCreateUserID(userId);
  124. dbData.setTaskStatus(data.getTaskStatus());
  125. result = doTaskMapper.insert(dbData);
  126. } else {
  127. dbData.setWorkTypeID(data.workTypeID);
  128. dbData.setContent(data.content);
  129. dbData.setDotaskName(data.doTaskName);
  130. dbData.setRegionCode(data.regionCode);
  131. dbData.setStreetCode(data.streetCode);
  132. dbData.setSiteID(data.siteID);
  133. dbData.setFinishTime(data.finishTime);
  134. dbData.setModifyTime(new Date());
  135. dbData.setModifyUserID(userId);
  136. dbData.setTaskStatus(data.taskStatus);
  137. result = doTaskMapper.updateByPrimaryKeySelective(dbData);
  138. }
  139. if (result == 1) {
  140. String doTaskID = dbData.getDotaskID();
  141. if (taskUser != null) {
  142. PcDotaskUserExample example = new PcDotaskUserExample();
  143. example.or().andDotaskIDEqualTo(data.getDoTaskID());
  144. doTaskUserMapper.deleteByExample(example);
  145. }
  146. var doTaskUsers = data.doTaskUser.stream().toList();
  147. for (var curData: doTaskUsers) {
  148. PcDotaskUser user = new PcDotaskUser();
  149. user.setDotaskUserID(UUID.randomUUID().toString());
  150. user.setDotaskID(doTaskID);
  151. user.setSiteUserID(curData.siteUserID);
  152. user.setUserTaskStatus(0);
  153. doTaskUserMapper.insert(user);
  154. };
  155. }
  156. return result;
  157. }
  158. @Override
  159. public int delete(List<String> ids) {
  160. int result = 0;
  161. PcDotaskUserExample expUser = new PcDotaskUserExample();
  162. PcDotaskUserExample.Criteria croUser = expUser.or();
  163. croUser.andDotaskIDIn(ids);
  164. result += doTaskUserMapper.deleteByExample(expUser);
  165. PcDotaskExample exp = new PcDotaskExample();
  166. PcDotaskExample.Criteria cro = exp.or();
  167. cro.andDotaskIDIn(ids);
  168. result += doTaskMapper.deleteByExample(exp);
  169. return result;
  170. }
  171. }