OldWorkCalendarController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. package com.persagy.calendar.controller;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.validation.annotation.Validated;
  6. import org.springframework.web.bind.annotation.RequestBody;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.persagy.calendar.handle.WorkCalendarHandler;
  11. import com.persagy.calendar.pojo.dto.OldWorkCalendar;
  12. import com.persagy.calendar.pojo.dto.WorkCalendar;
  13. import com.persagy.calendar.pojo.old.OldCalendarIntervalCreateVO;
  14. import com.persagy.calendar.pojo.old.OldCalendarIntervalDeleteVO;
  15. import com.persagy.calendar.pojo.old.OldCalendarIntervalsByTag;
  16. import com.persagy.calendar.pojo.old.OldCalendarIntervalsVO;
  17. import com.persagy.calendar.pojo.old.OldCalendarQueryVO;
  18. import com.persagy.calendar.pojo.old.OldCalendarResponseVO;
  19. import com.persagy.calendar.pojo.old.OldCalendarRuleCreateVO;
  20. import com.persagy.calendar.pojo.old.OldCalendarRuleDeleteVO;
  21. import com.persagy.calendar.pojo.old.OldCalendarRuleVO;
  22. import com.persagy.calendar.pojo.old.OldCalendarTagsVO;
  23. import com.persagy.calendar.pojo.old.OldWorkCalendarVO;
  24. import com.persagy.calendar.service.IWorkCalendarService;
  25. import com.persagy.calendar.service.OldWorkCalendarDateService;
  26. import com.persagy.calendar.utils.ResponseOldResult;
  27. import com.persagy.calendar.utils.ResponseOldResultUtil;
  28. import com.persagy.common.constant.HistoryConstant;
  29. import com.persagy.common.utils.StringUtil;
  30. import cn.hutool.core.collection.CollectionUtil;
  31. /**
  32. * @version
  33. * @description 老服务兼容controller
  34. * @company persagy
  35. * @author zhangqiankun
  36. * @since 2020年10月3日: 下午2:41:21
  37. */
  38. @RestController
  39. @RequestMapping(value = "/data-platform-3/calendar", method = RequestMethod.POST)
  40. public class OldWorkCalendarController {
  41. // 老版工作历默认projectId
  42. private static final String DEFAULT_PROJECT_ID = HistoryConstant.DEFAULT_PROJECT_ID;
  43. @Autowired
  44. private IWorkCalendarService workCalendarService;
  45. @Autowired
  46. private WorkCalendarHandler workCalendarHandler;
  47. @Autowired
  48. private OldWorkCalendarDateService oldWorkCalendarDateService;
  49. /**
  50. * 创建工作历,name groupId联合唯一
  51. */
  52. @RequestMapping(value = "create")
  53. public ResponseOldResult create(@RequestBody @Validated OldWorkCalendarVO oldWorkCalendar) {
  54. // 判断是否唯一
  55. boolean result = workCalendarService.checkProjetcIdAndName(null, DEFAULT_PROJECT_ID, null, oldWorkCalendar.getName());
  56. if (!result) {
  57. return ResponseOldResultUtil.errorResultMsg("name已存在");
  58. }
  59. WorkCalendar workCalendar = new WorkCalendar();
  60. workCalendar.setProjectId(DEFAULT_PROJECT_ID);
  61. workCalendar.setCalendarName(oldWorkCalendar.getName());
  62. workCalendar.setCalendarDesc(oldWorkCalendar.getDesc());
  63. result = workCalendarService.save(workCalendar);
  64. return result ? ResponseOldResultUtil.successResultId(workCalendar.getId())
  65. : ResponseOldResultUtil.errorResultMsg("创建工作历失败");
  66. }
  67. /**
  68. * 创建一套与已有工作历内容一样的工作历,name groupId联合唯一
  69. */
  70. @RequestMapping(value = "create_from")
  71. public ResponseOldResult create_from(@RequestBody @Validated OldWorkCalendarVO oldWorkCalendar) {
  72. String from_id = oldWorkCalendar.getFrom_id();
  73. if (StringUtil.isBlank(from_id)) {
  74. return ResponseOldResultUtil.errorResultMsg("from_id不可为空");
  75. }
  76. //判断原信息是否存在
  77. WorkCalendar calendar = workCalendarService.getById(from_id, null, DEFAULT_PROJECT_ID);
  78. if (calendar == null) {
  79. return ResponseOldResultUtil.errorResultMsg("原工作历信息不存在");
  80. }
  81. // 判断是否唯一
  82. boolean result = workCalendarService.checkProjetcIdAndName(null, DEFAULT_PROJECT_ID, null, oldWorkCalendar.getName());
  83. if (!result) {
  84. return ResponseOldResultUtil.errorResultMsg("name已存在");
  85. }
  86. WorkCalendar workCalendar = new WorkCalendar();
  87. workCalendar.setProjectId(DEFAULT_PROJECT_ID);
  88. workCalendar.setCalendarName(oldWorkCalendar.getName());
  89. workCalendar.setCalendarDesc(oldWorkCalendar.getDesc());
  90. result = this.workCalendarHandler.createOldWorkCalendarFromId(from_id, DEFAULT_PROJECT_ID, workCalendar);
  91. return result ? ResponseOldResultUtil.successResultId(workCalendar.getId()) : ResponseOldResultUtil.errorResultMsg("创建工作历失败");
  92. }
  93. /**
  94. * 修改工作历,name groupId联合唯一
  95. */
  96. @RequestMapping(value = "update")
  97. public ResponseOldResult update(@RequestBody @Validated OldWorkCalendarVO oldWorkCalendar) {
  98. String id = oldWorkCalendar.getId();
  99. if (StringUtil.isBlank(id)) {
  100. return ResponseOldResultUtil.errorResultMsg("id不可为空");
  101. }
  102. // 判断是否唯一
  103. boolean result = workCalendarService.checkProjetcIdAndName(id, DEFAULT_PROJECT_ID, null, oldWorkCalendar.getName());
  104. if (!result) {
  105. return ResponseOldResultUtil.errorResultMsg("name已存在");
  106. }
  107. WorkCalendar workCalendar = new WorkCalendar();
  108. workCalendar.setId(id);
  109. workCalendar.setProjectId(DEFAULT_PROJECT_ID);
  110. workCalendar.setCalendarName(oldWorkCalendar.getName());
  111. workCalendar.setCalendarDesc(oldWorkCalendar.getDesc());
  112. result = workCalendarService.updateWorkCalendar(workCalendar);
  113. return result ? ResponseOldResultUtil.successResult()
  114. : ResponseOldResultUtil.errorResultMsg("更新工作历失败");
  115. }
  116. /**
  117. * 删除工作历,级联删除规则
  118. */
  119. @RequestMapping(value = "delete")
  120. public ResponseOldResult delete(@RequestBody Map<String, String> requestMap) {
  121. String id = requestMap.get("id");
  122. if (StringUtil.isBlank(id)) {
  123. return ResponseOldResultUtil.errorResultMsg("id不可为空");
  124. }
  125. return this.workCalendarHandler.deleteWorkCalendar(id);
  126. }
  127. /**
  128. * 查询工作历,默认只查老的工作历信息
  129. * 无需参数
  130. */
  131. @RequestMapping(value = "query")
  132. public ResponseOldResult query(@RequestBody Map<String, String> map) {
  133. // 默认只查正常的
  134. OldWorkCalendar oldWorkCalendar = new OldWorkCalendar();
  135. oldWorkCalendar.setProjectId(DEFAULT_PROJECT_ID);
  136. List<OldWorkCalendar> calendarList = oldWorkCalendarDateService.queryOldCalendarList(oldWorkCalendar);
  137. return ResponseOldResultUtil.successResultContent(calendarList,
  138. CollectionUtil.isEmpty(calendarList) ? 0 : calendarList.size());
  139. }
  140. /**
  141. * 创建规则
  142. */
  143. @RequestMapping(value = "create_rules")
  144. public ResponseOldResult createRules(@RequestBody @Validated OldCalendarRuleVO<OldCalendarRuleCreateVO> requestData) {
  145. boolean result = this.oldWorkCalendarDateService.createOldCalendarRule(requestData);
  146. return result ? ResponseOldResultUtil.successResultContent("", requestData.getRules().size())
  147. : ResponseOldResultUtil.errorResultMsg("创建规则失败");
  148. }
  149. /**
  150. * 删除规则
  151. */
  152. @RequestMapping(value = "del_rules")
  153. public ResponseOldResult delRules(@RequestBody @Validated OldCalendarRuleVO<OldCalendarRuleDeleteVO> requestData) {
  154. boolean result = this.oldWorkCalendarDateService.deleteOldCalendarRule(requestData);
  155. return result ? ResponseOldResultUtil.successResultContent("", requestData.getRules().size())
  156. : ResponseOldResultUtil.errorResultMsg("删除规则失败");
  157. }
  158. /**
  159. * 更新规则
  160. */
  161. @RequestMapping(value = "update_rule")
  162. public ResponseOldResult updateRule(@RequestBody @Validated OldCalendarRuleCreateVO requestData) {
  163. // 判断工作历信息是否存在
  164. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  165. if (calendar == null) {
  166. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  167. }
  168. boolean result = this.oldWorkCalendarDateService.updateOldCalendarRule(requestData);
  169. return result ? ResponseOldResultUtil.successResult()
  170. : ResponseOldResultUtil.errorResultMsg("更新规则失败");
  171. }
  172. /**
  173. * 查询规则
  174. * id 必填 tag选填
  175. */
  176. @RequestMapping(value = "query_rules")
  177. public ResponseOldResult queryRules(@RequestBody @Validated Map<String, String> requestData) {
  178. String id = requestData.get("id");
  179. if (StringUtil.isBlank(id)) {
  180. return ResponseOldResultUtil.errorResultMsg("id不可为空");
  181. }
  182. List<OldWorkCalendar> list = this.oldWorkCalendarDateService.queryOldCalendarRuleList(id, requestData.get("tag"), DEFAULT_PROJECT_ID);
  183. return ResponseOldResultUtil.successResultContent(list, CollectionUtil.isEmpty(list) ? 0 : list.size());
  184. }
  185. /**
  186. * 设置作息日期
  187. */
  188. @RequestMapping(value = "set_tags")
  189. public ResponseOldResult setTags(@RequestBody @Validated OldCalendarTagsVO requestData) {
  190. // 判断工作历信息是否存在
  191. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  192. if (calendar == null) {
  193. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  194. }
  195. boolean result = this.oldWorkCalendarDateService.setTags(requestData.getId(), requestData.getTags());
  196. return result ? ResponseOldResultUtil.successResult() : ResponseOldResultUtil.errorResultMsg("设置作息日期失败");
  197. }
  198. /**
  199. * 删除作息日期
  200. */
  201. @RequestMapping(value = "unset_tags")
  202. public ResponseOldResult unsetTags(@RequestBody @Validated OldCalendarTagsVO requestData) {
  203. // 判断工作历信息是否存在
  204. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  205. if (calendar == null) {
  206. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  207. }
  208. boolean result = this.oldWorkCalendarDateService.unsetTags(requestData.getId(), requestData.getTags());
  209. return result ? ResponseOldResultUtil.successResult()
  210. : ResponseOldResultUtil.errorResultMsg("删除作息日期失败");
  211. }
  212. /**
  213. * 设置作息时间段
  214. */
  215. @RequestMapping(value = "set_intervals")
  216. public ResponseOldResult setIntervals(@RequestBody @Validated OldCalendarIntervalsVO<OldCalendarIntervalCreateVO> requestData) {
  217. // 判断工作历信息是否存在
  218. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  219. if (calendar == null) {
  220. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  221. }
  222. boolean result = this.oldWorkCalendarDateService.setIntervals(requestData.getId(), requestData.getIntervals());
  223. return result ? ResponseOldResultUtil.successResult()
  224. : ResponseOldResultUtil.errorResultMsg("设置作息日期失败");
  225. }
  226. /**
  227. * 删除作息时间段
  228. */
  229. @RequestMapping(value = "unset_intervals")
  230. public ResponseOldResult unsetIntervals(@RequestBody @Validated OldCalendarIntervalsVO<OldCalendarIntervalDeleteVO> requestData) {
  231. // 判断工作历信息是否存在
  232. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  233. if (calendar == null) {
  234. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  235. }
  236. boolean result = this.oldWorkCalendarDateService.unsetIntervals(requestData.getId(), requestData.getIntervals());
  237. return result ? ResponseOldResultUtil.successResult()
  238. : ResponseOldResultUtil.errorResultMsg("设置作息日期失败");
  239. }
  240. /**
  241. * 根据tag设置作息时段
  242. */
  243. @RequestMapping(value = "set_intervals_by_tag")
  244. public ResponseOldResult setIntervalsByTag(@RequestBody @Validated OldCalendarIntervalsByTag requestData) {
  245. // 判断工作历信息是否存在
  246. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  247. if (calendar == null) {
  248. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  249. }
  250. boolean result = this.oldWorkCalendarDateService.setIntervalsByTag(requestData);
  251. return result ? ResponseOldResultUtil.successResult()
  252. : ResponseOldResultUtil.errorResultMsg("设置作息日期失败");
  253. }
  254. /**
  255. * 查询工作历详情,包含解析过程
  256. * @param requestData
  257. * @return
  258. */
  259. @RequestMapping(value = "query_details")
  260. public ResponseOldResult queryDetails(@RequestBody @Validated OldCalendarQueryVO requestData) {
  261. // 判断工作历信息是否存在
  262. WorkCalendar calendar = workCalendarService.getById(requestData.getId(), null, DEFAULT_PROJECT_ID);
  263. if (calendar == null) {
  264. return ResponseOldResultUtil.errorResultMsg("工作历信息不存在");
  265. }
  266. if (CollectionUtil.isEmpty(requestData.getTags()) && CollectionUtil.isEmpty(requestData.getIntervals())) {
  267. return ResponseOldResultUtil.errorResultMsg("tags和intervals必填其一");
  268. }
  269. List<OldCalendarResponseVO> details = this.workCalendarHandler.queryOldCalendarDetails(requestData);
  270. return ResponseOldResultUtil.successResultContent(details, details.size());
  271. }
  272. }