e3ef8d35587b6ca920dbdb81256ddebdb1055fc6.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package cn.com.goldenwater.dcproj.controller.meeting;
  2. import cn.com.goldenwater.dcproj.dto.MeetPersSginListDto;
  3. import cn.com.goldenwater.dcproj.dto.MeetSginInOutInfoDto;
  4. import cn.com.goldenwater.dcproj.model.MeetMeetingInfo;
  5. import cn.com.goldenwater.dcproj.model.MeetPersSginList;
  6. import cn.com.goldenwater.dcproj.model.MeetSginInOutInfo;
  7. import cn.com.goldenwater.dcproj.param.MeetPersSginListParam;
  8. import cn.com.goldenwater.dcproj.param.MeetSginInOutInfoParam;
  9. import cn.com.goldenwater.dcproj.service.MeetMeetingInfoService;
  10. import cn.com.goldenwater.dcproj.service.MeetPersSginListService;
  11. import cn.com.goldenwater.core.web.BaseController;
  12. import cn.com.goldenwater.core.web.BaseResponse;
  13. import cn.com.goldenwater.dcproj.service.MeetSginInOutInfoService;
  14. import cn.com.goldenwater.id.util.UuidUtil;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import io.swagger.annotations.ApiParam;
  18. import org.apache.commons.lang3.StringUtils;
  19. import com.github.pagehelper.PageInfo;
  20. import org.slf4j.Logger;
  21. import org.slf4j.LoggerFactory;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.web.bind.annotation.PathVariable;
  24. import org.springframework.web.bind.annotation.RequestBody;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.RequestMethod;
  27. import org.springframework.web.bind.annotation.RestController;
  28. import java.util.Collections;
  29. import java.util.Comparator;
  30. import java.util.Date;
  31. import java.util.List;
  32. /**
  33. * @author lune
  34. * @date 2019-7-23
  35. */
  36. @Api(value = "MEET 会议人员签到签退记录表管理", tags = "MEET 会议人员签到签退记录表管理")
  37. @RestController
  38. @RequestMapping("/meet/pers/sgin/list")
  39. public class MeetPersSginListController extends BaseController {
  40. private Logger logger = LoggerFactory.getLogger(getClass());
  41. @Autowired
  42. private MeetPersSginListService meetPersSginListService;
  43. @Autowired
  44. private MeetSginInOutInfoService meetSginInOutInfoService;
  45. @Autowired
  46. private MeetMeetingInfoService meetMeetingInfoService;
  47. @ApiOperation(value = "添加/修改会议人员签到签退记录表")
  48. @RequestMapping(value = "", method = RequestMethod.POST)
  49. public BaseResponse<MeetPersSginList> insert(@ApiParam(name = "meetPersSginList", value = "MeetPersSginList", required = true) @RequestBody MeetPersSginList meetPersSginList) {
  50. if (StringUtils.isNotBlank(meetPersSginList.getSginId())) {
  51. MeetSginInOutInfo inOutInfo = meetSginInOutInfoService.get(meetPersSginList.getSginId());
  52. //比较开始时间
  53. if (inOutInfo.getStTm().compareTo(meetPersSginList.getSginTm()) > 0) {
  54. return buildFailResponse(17001, "时间未到!");
  55. }
  56. //比较结束时间
  57. if (inOutInfo.getEnTm().compareTo(meetPersSginList.getSginTm()) < 0) {
  58. return buildFailResponse(17001, "时间已过!");
  59. }
  60. }
  61. if (StringUtils.isBlank(meetPersSginList.getId())) {
  62. String uuid = UuidUtil.uuid(); // 生成uuid
  63. meetPersSginList.setId(uuid);
  64. meetPersSginListService.insert(meetPersSginList);
  65. } else {
  66. meetPersSginListService.update(meetPersSginList);
  67. }
  68. return buildSuccessResponse(meetPersSginList);
  69. }
  70. @ApiOperation(value = "根据ID删除会议人员签到签退记录表")
  71. @RequestMapping(value = "/del/{id}", method = RequestMethod.GET)
  72. public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  73. int ret = meetPersSginListService.delete(id);
  74. return buildSuccessResponse();
  75. }
  76. @ApiOperation(value = "根据ID获取会议人员签到签退记录表(单表)")
  77. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  78. public BaseResponse<MeetPersSginList> get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  79. MeetPersSginList meetPersSginList = meetPersSginListService.get(id);
  80. return buildSuccessResponse(meetPersSginList);
  81. }
  82. @ApiOperation(value = "获取会议人员签到签退记录表(列表所有)")
  83. @RequestMapping(value = "/list", method = RequestMethod.POST)
  84. public BaseResponse<List<MeetPersSginList>> list(@ApiParam(name = "meetPersSginListParam", value = "meetPersSginListParam", required = true) @RequestBody MeetPersSginListParam meetPersSginListParam) {
  85. List<MeetPersSginList> meetPersSginListList = meetPersSginListService.findList(meetPersSginListParam);
  86. return buildSuccessResponse(meetPersSginListList);
  87. }
  88. @ApiOperation(value = "获取会议人员签到签退记录表(列表--分页)")
  89. @RequestMapping(value = "/page", method = RequestMethod.POST)
  90. public BaseResponse<PageInfo<MeetPersSginList>> page(@ApiParam(name = "meetPersSginListParam", value = "meetPersSginListParam", required = true) @RequestBody MeetPersSginListParam meetPersSginListParam) {
  91. PageInfo<MeetPersSginList> meetPersSginListList = meetPersSginListService.findPageInfo(meetPersSginListParam);
  92. return buildSuccessResponse(meetPersSginListList);
  93. }
  94. @ApiOperation(value = "获取会议人员签到签退记录表信息(列表--分页)")
  95. @RequestMapping(value = "/getMeetPersSignPage", method = RequestMethod.POST)
  96. public BaseResponse<PageInfo<MeetPersSginListDto>> getMeetPersSignPage(@RequestBody MeetPersSginListParam meetPersSginListParam) {
  97. PageInfo<MeetPersSginListDto> pageInfo = meetPersSginListService.getMeetPersSignPage(meetPersSginListParam);
  98. return buildSuccessResponse(pageInfo);
  99. }
  100. @Deprecated
  101. @ApiOperation(value = "获取人员签到状态")
  102. @RequestMapping(value = "/getSignInState", method = RequestMethod.POST)
  103. public BaseResponse getSignInState(MeetPersSginListParam meetPersSginListParam) {
  104. MeetPersSginList meetPers = meetPersSginListService.findMeetPersSginList(meetPersSginListParam);
  105. if (meetPers != null) {
  106. return buildFailResponse(10002, "已签到!");
  107. }
  108. MeetMeetingInfo info = meetMeetingInfoService.get(meetPersSginListParam.getMeetId());
  109. List<MeetSginInOutInfo> staList = null;
  110. if ("2".equals(info.getIsOut())) {
  111. if (info.getEnTm().compareTo(new Date()) < 0) {
  112. return buildFailResponse(10003, "签到时间已过,无法签到");
  113. }
  114. } else {
  115. MeetSginInOutInfoParam param = new MeetSginInOutInfoParam();
  116. param.setMeetId(meetPersSginListParam.getMeetId());
  117. param.setType("1");
  118. staList = meetSginInOutInfoService.findList(param);
  119. if (staList == null || staList.size() == 0) {
  120. return buildFailResponse(10004, "没有签到标准id");
  121. }
  122. if (staList.size() > 0) {
  123. Collections.sort(staList, new Comparator<MeetSginInOutInfo>() {
  124. @Override
  125. public int compare(MeetSginInOutInfo o1, MeetSginInOutInfo o2) {
  126. return o2.getStTm().compareTo(o1.getStTm());
  127. }
  128. });
  129. if (staList.get(0).getStTm().compareTo(new Date()) < 0) {
  130. return buildFailResponse(10001, "时间未到!");
  131. }
  132. }
  133. param.setType("2");
  134. List<MeetSginInOutInfo> endList = meetSginInOutInfoService.findList(param);
  135. if (endList == null || endList.size() == 0) {
  136. if (info.getEnTm().compareTo(new Date()) < 0) {
  137. return buildFailResponse(10003, "签到时间已过,无法签到");
  138. }
  139. } else if (endList.size() > 0) {
  140. Collections.sort(endList, new Comparator<MeetSginInOutInfo>() {
  141. @Override
  142. public int compare(MeetSginInOutInfo o1, MeetSginInOutInfo o2) {
  143. return o2.getStTm().compareTo(o1.getStTm());
  144. }
  145. });
  146. if (staList.get(0).getStTm().compareTo(new Date()) < 0) {
  147. return buildFailResponse(10003, "签到时间已过,无法签到");
  148. }
  149. }
  150. }
  151. return buildSuccessResponse(staList);
  152. }
  153. @Deprecated
  154. @ApiOperation(value = "获取人员签退状态")
  155. @RequestMapping(value = "/getSignOutState", method = RequestMethod.POST)
  156. public BaseResponse getSignOutState(MeetPersSginListParam meetPersSginListParam) {
  157. MeetPersSginList meetPers = meetPersSginListService.findMeetPersSginList(meetPersSginListParam);
  158. if (meetPers != null) {
  159. return buildFailResponse(10002, "已签退!");
  160. }
  161. MeetSginInOutInfoParam param = new MeetSginInOutInfoParam();
  162. param.setMeetId(meetPersSginListParam.getMeetId());
  163. param.setType("2");
  164. List<MeetSginInOutInfo> endList = meetSginInOutInfoService.findList(param);
  165. if (endList == null || endList.size() == 0) {
  166. return buildFailResponse(10004, "没有签到标准id");
  167. }
  168. Collections.sort(endList, new Comparator<MeetSginInOutInfo>() {
  169. @Override
  170. public int compare(MeetSginInOutInfo o1, MeetSginInOutInfo o2) {
  171. return o2.getStTm().compareTo(o1.getStTm());
  172. }
  173. });
  174. if (endList.get(0).getStTm().compareTo(new Date()) > 0) {
  175. return buildFailResponse(10001, "时间未到!");
  176. }
  177. return buildSuccessResponse(endList);
  178. }
  179. @ApiOperation(value = "获取人员签退状态")
  180. @RequestMapping(value = "/getSignState", method = RequestMethod.POST)
  181. public BaseResponse getSignState(MeetPersSginListParam meetPersSginListParam) {
  182. List<MeetSginInOutInfoDto> list = meetPersSginListService.getSignState(meetPersSginListParam);
  183. MeetSginInOutInfoDto dto = null;
  184. long num = 0;
  185. Date now = new Date();
  186. if (list != null || list.size() >= 0) {
  187. for (MeetSginInOutInfoDto sginInOutInfoDto : list) {
  188. if (StringUtils.isBlank(sginInOutInfoDto.getPerSignId())) {
  189. Date d1 = sginInOutInfoDto.getStTm();
  190. Date d2 = sginInOutInfoDto.getEnTm();
  191. long num1 = 0;
  192. long num2 = 0;
  193. if(d1.getTime()>=now.getTime()){
  194. num1 = d1.getTime() - now.getTime();
  195. }else{
  196. num1 = now.getTime() - d1.getTime();
  197. }
  198. if(d2.getTime()>=now.getTime()){
  199. num2 = d2.getTime() - now.getTime();
  200. }else {
  201. num2 = now.getTime() - d2.getTime();
  202. }
  203. if(num2>=num1){
  204. if(num1<num||num==0){
  205. num = num1;
  206. dto = sginInOutInfoDto;
  207. }
  208. }else {
  209. if(num2<num||num==0){
  210. num = num2;
  211. dto = sginInOutInfoDto;
  212. }
  213. }
  214. }
  215. }
  216. }
  217. return buildSuccessResponse(dto);
  218. }
  219. }