DemandOrderServiceImpl.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package com.goafanti.demand.service.impl;
  2. import java.text.ParseException;
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.UUID;
  9. import org.apache.commons.lang3.time.DateUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import com.goafanti.common.constant.AFTConstants;
  13. import com.goafanti.common.dao.DemandOrderLogMapper;
  14. import com.goafanti.common.dao.DemandOrderMapper;
  15. import com.goafanti.common.enums.DeleteStatus;
  16. import com.goafanti.common.enums.DemandOrderStatus;
  17. import com.goafanti.common.model.DemandOrder;
  18. import com.goafanti.common.model.DemandOrderLog;
  19. import com.goafanti.common.utils.StringUtils;
  20. import com.goafanti.core.mybatis.BaseMybatisDao;
  21. import com.goafanti.core.mybatis.page.Pagination;
  22. import com.goafanti.core.shiro.token.TokenManager;
  23. import com.goafanti.demand.bo.DemandOrderListBo;
  24. import com.goafanti.demand.bo.OrgDemandOrderListBo;
  25. import com.goafanti.demand.bo.UserDemandOrderListBo;
  26. import com.goafanti.demand.service.DemandOrderService;
  27. @Service
  28. public class DemandOrderServiceImpl extends BaseMybatisDao<DemandOrderMapper> implements DemandOrderService {
  29. @Autowired
  30. private DemandOrderMapper demandOrderMapper;
  31. @Autowired
  32. private DemandOrderLogMapper demandOrderLogMapper;
  33. @Override
  34. public List<DemandOrder> selectDemandOrderByUidAndDemandId(String uid, String id) {
  35. return demandOrderMapper.selectDemandOrderByUidAndDemandId(uid, id);
  36. }
  37. @Override
  38. public void saveDemandOrder(DemandOrder demandOrder, DemandOrderLog dol) {
  39. demandOrder.setId(UUID.randomUUID().toString().toString());
  40. Calendar now = Calendar.getInstance();
  41. now.set(Calendar.MILLISECOND, 0);
  42. demandOrder.setCreateTime(now.getTime());
  43. demandOrder.setUid(TokenManager.getUserId());
  44. demandOrder.setDeletedSign(DeleteStatus.UNDELETE.getCode());
  45. demandOrder.setStatus(DemandOrderStatus.CREATE.getCode());
  46. demandOrderMapper.insert(demandOrder);
  47. dol.setId(UUID.randomUUID().toString());
  48. dol.setDemandOrderId(demandOrder.getId());
  49. dol.setRecordTime(demandOrder.getCreateTime());
  50. dol.setStatus(demandOrder.getStatus());
  51. demandOrderLogMapper.insert(dol);
  52. }
  53. @Override
  54. public DemandOrder selectByPrimaryKey(String id) {
  55. return demandOrderMapper.selectByPrimaryKey(id);
  56. }
  57. @SuppressWarnings("unchecked")
  58. @Override
  59. public Pagination<DemandOrderListBo> listOrderList(Integer status, Integer pNo, Integer pSize) {
  60. if (pNo == null || pNo < 0) {
  61. pNo = 1;
  62. }
  63. if (pSize == null || pSize < 0 || pSize > 10) {
  64. pSize = 10;
  65. }
  66. return (Pagination<DemandOrderListBo>) findPage("findDemandOrderListByPage", "findDemandOrderCount",
  67. disposeDemandOrderList(null, null, null, status, false), pNo, pSize);
  68. }
  69. @Override
  70. public int updateShutdownByUser(DemandOrder order) {
  71. order.setStatus(DemandOrderStatus.SHUTDOWN.getCode());
  72. DemandOrderLog dol = new DemandOrderLog();
  73. Calendar now = Calendar.getInstance();
  74. now.set(Calendar.MILLISECOND, 0);
  75. dol.setId(UUID.randomUUID().toString());
  76. dol.setStatus(DemandOrderStatus.SHUTDOWN.getCode());
  77. dol.setDemandOrderId(order.getId());
  78. dol.setRecordTime(now.getTime());
  79. demandOrderLogMapper.insert(dol);
  80. return demandOrderMapper.updateByPrimaryKey(order);
  81. }
  82. @Override
  83. public List<DemandOrder> selectDemandOrderByDemandId(String demandId) {
  84. return demandOrderMapper.selectDemandOrderByDemandId(demandId);
  85. }
  86. @SuppressWarnings("unchecked")
  87. @Override
  88. public Pagination<UserDemandOrderListBo> listUserDemandOrder(String uid, String username, Integer status,
  89. Integer pNo, Integer pSize) {
  90. if (pNo == null || pNo < 0) {
  91. pNo = 1;
  92. }
  93. if (pSize == null || pSize < 0 || pSize > 10) {
  94. pSize = 10;
  95. }
  96. return (Pagination<UserDemandOrderListBo>) findPage("findUserDemandOrderListByPage", "findUserDemandOrderCount",
  97. disposeDemandOrderList(uid, username, null, status, true), pNo, pSize);
  98. }
  99. @SuppressWarnings("unchecked")
  100. @Override
  101. public Pagination<OrgDemandOrderListBo> listOrgDemandOrder(String uid, String unitName, Integer status, Integer pNo,
  102. Integer pSize) {
  103. if (pNo == null || pNo < 0) {
  104. pNo = 1;
  105. }
  106. if (pSize == null || pSize < 0 || pSize > 10) {
  107. pSize = 10;
  108. }
  109. return (Pagination<OrgDemandOrderListBo>) findPage("findOrgDemandOrderListByPage", "findOrgDemandOrderCount",
  110. disposeDemandOrderList(uid, null, unitName, status, true), pNo, pSize);
  111. }
  112. @Override
  113. public int updateDemandOrder(DemandOrder order, DemandOrderLog dol, String recordTimeFormattedDate) {
  114. if (!StringUtils.isBlank(recordTimeFormattedDate)) {
  115. dol.setOperator(TokenManager.getAdminId());
  116. dol.setId(UUID.randomUUID().toString());
  117. dol.setDemandOrderId(order.getId());
  118. Date recordTime = null;
  119. try {
  120. recordTime = DateUtils.parseDate(recordTimeFormattedDate, AFTConstants.YYYYMMDDHHMMSS);
  121. } catch (ParseException e) {
  122. }
  123. dol.setRecordTime(recordTime);
  124. demandOrderLogMapper.insert(dol);
  125. }
  126. return demandOrderMapper.updateByPrimaryKeySelective(order);
  127. }
  128. private Map<String, Object> disposeDemandOrderList(String uid, String username, String unitName, Integer status,
  129. Boolean flag) {
  130. Map<String, Object> params = new HashMap<>();
  131. if (null != status) {
  132. params.put("status", status);
  133. }
  134. if (!StringUtils.isBlank(uid)) {
  135. params.put("uid", uid);
  136. }
  137. if (!StringUtils.isBlank(username)) {
  138. params.put("username", username);
  139. }
  140. if (!StringUtils.isBlank(unitName)) {
  141. params.put("unitName", unitName);
  142. }
  143. if (flag) {
  144. if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
  145. params.put("techBrokerId", TokenManager.getAdminId());
  146. }
  147. } else {
  148. params.put("uid", TokenManager.getUserId());
  149. }
  150. return params;
  151. }
  152. }