CopyrightInfoServiceImpl.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. package com.goafanti.copyright.service.impl;
  2. import java.text.ParseException;
  3. import java.util.Calendar;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.UUID;
  8. import org.apache.commons.lang3.StringUtils;
  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.CopyrightInfoMapper;
  14. import com.goafanti.common.dao.CopyrightLogMapper;
  15. import com.goafanti.common.dao.NoticeMapper;
  16. import com.goafanti.common.dao.OrgIntellectualPropertyMapper;
  17. import com.goafanti.common.enums.CopyrightStatus;
  18. import com.goafanti.common.enums.NoticeStatus;
  19. import com.goafanti.common.model.CopyrightInfo;
  20. import com.goafanti.common.model.CopyrightLog;
  21. import com.goafanti.common.model.Notice;
  22. import com.goafanti.common.model.OrgIntellectualProperty;
  23. import com.goafanti.copyright.bo.CopyrightInfoDetail;
  24. import com.goafanti.copyright.bo.CopyrightLogBO;
  25. import com.goafanti.copyright.service.CopyrightInfoService;
  26. import com.goafanti.core.mybatis.BaseMybatisDao;
  27. import com.goafanti.core.mybatis.page.Pagination;
  28. import com.goafanti.core.shiro.token.TokenManager;
  29. @Service
  30. public class CopyrightInfoServiceImpl extends BaseMybatisDao<CopyrightInfoMapper> implements CopyrightInfoService {
  31. @Autowired
  32. private CopyrightInfoMapper copyrightInfoMapper;
  33. @Autowired
  34. private CopyrightLogMapper copyrightLogMapper;
  35. @Autowired
  36. private OrgIntellectualPropertyMapper orgIntellectualPropertyMapper;
  37. @Autowired
  38. private NoticeMapper noticeMapper;
  39. @Override
  40. public CopyrightInfo insert(CopyrightInfo copyrightInfo) {
  41. Calendar now = Calendar.getInstance();
  42. now.set(Calendar.MILLISECOND, 0);
  43. copyrightInfo.setCreateTime(now.getTime());
  44. CopyrightLog log = new CopyrightLog();
  45. log.setCid(copyrightInfo.getId());
  46. log.setRecordTime(copyrightInfo.getCreateTime());
  47. log.setComment(copyrightInfo.getComment());
  48. log.setOperator(TokenManager.getAdminId());
  49. log.setPrincipal(copyrightInfo.getPrincipal());
  50. log.setStatus(copyrightInfo.getStatus());
  51. copyrightInfoMapper.insertSelective(copyrightInfo);
  52. copyrightLogMapper.insertSelective(log);
  53. createNotice(copyrightInfo, log);
  54. return copyrightInfo;
  55. }
  56. @Override
  57. public void updateByPrimaryKeySelective(CopyrightInfo copyrightInfo, CopyrightLog copyrightLog) {
  58. if (copyrightLog.getRecordTime() != null && copyrightLog.getStatus() != null
  59. && copyrightLog.getPrincipal() != null) {
  60. copyrightLogMapper.insertSelective(copyrightLog);
  61. createNotice(copyrightInfo, copyrightLog);
  62. if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.ACCEPT) {
  63. copyrightInfo.setAcceptTime(copyrightLog.getRecordTime());
  64. } else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.DELIVERD) {
  65. copyrightInfo.setCreateTime(copyrightLog.getRecordTime());
  66. } else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.AUTHORIZED) {
  67. copyrightInfo.setAuthorizedDate(copyrightLog.getRecordTime());
  68. OrgIntellectualProperty o = new OrgIntellectualProperty();
  69. o.setId(UUID.randomUUID().toString());
  70. o.setUid(copyrightInfo.getUid());
  71. o.setPid(copyrightInfo.getId());
  72. o.setDeletedSign(0);
  73. o.setIntellectualPropertyNumber(copyrightInfo.getCopyrightNumber());
  74. o.setIntellectualPropertyName(copyrightInfo.getCopyrightName());
  75. o.setCatagory(4);
  76. o.setObtainWay(1);
  77. o.setAuthorizationNumber(copyrightInfo.getCopyrightNumber());
  78. o.setAuthorizationDate(copyrightInfo.getAuthorizedDate());
  79. o.setEvaluationCategory(1);
  80. orgIntellectualPropertyMapper.insert(o);
  81. }
  82. }
  83. copyrightInfoMapper.updateByPrimaryKeySelective(copyrightInfo);
  84. }
  85. @Override
  86. public int batchDeleteByPrimaryKey(List<String> id) {
  87. return copyrightInfoMapper.deleteByPrimaryKeys(id);
  88. }
  89. @SuppressWarnings("unchecked")
  90. @Override
  91. public Pagination<CopyrightInfo> listCopyrightInfo(String province, String unitName, String copyrightName,
  92. CopyrightStatus status, String[] createTime, String[] acceptTime, String[] authTime, Integer pageNo,
  93. Integer pageSize) {
  94. return (Pagination<CopyrightInfo>) findPage("findListByPage", "findListCount", buildListParams(province,
  95. unitName, copyrightName, status, createTime, acceptTime, authTime, pageNo, pageSize, null), pageNo,
  96. pageSize);
  97. }
  98. @SuppressWarnings("unchecked")
  99. @Override
  100. public Pagination<CopyrightInfo> listMyCopyrightInfo(String province, String unitName, String copyrightName,
  101. CopyrightStatus status, String[] createTime, String[] acceptTime, String[] authTime, Integer pageNo,
  102. Integer pageSize, String uid) {
  103. return (Pagination<CopyrightInfo>) findPage("findListByPage", "findListCount", buildListParams(province,
  104. unitName, copyrightName, status, createTime, acceptTime, authTime, pageNo, pageSize, uid), pageNo,
  105. pageSize);
  106. }
  107. private Map<String, Object> buildListParams(String province, String unitName, String copyrightName,
  108. CopyrightStatus status, String[] createTime, String[] acceptTime, String[] authTime, Integer pageNo,
  109. Integer pageSize, String uid) {
  110. Map<String, Object> params = new HashMap<>();
  111. if (TokenManager.getAdminToken() != null && !TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
  112. params.put("principal", TokenManager.getAdminId());
  113. }
  114. if (StringUtils.isNotBlank(province)) {
  115. params.put("province", province);
  116. }
  117. if (StringUtils.isNotBlank(unitName)) {
  118. params.put("unitName", unitName);
  119. }
  120. if (StringUtils.isNotBlank(uid)) {
  121. params.put("unitId", uid);
  122. }
  123. if (StringUtils.isNotBlank(copyrightName)) {
  124. params.put("copyrightName", copyrightName);
  125. }
  126. if (status != CopyrightStatus.OTHER) {
  127. params.put("status", status.getCode());
  128. }
  129. if (createTime != null) {
  130. try {
  131. if (createTime.length > 0 && StringUtils.isNotBlank(createTime[0])) {
  132. params.put("createStartTime", DateUtils.parseDate(createTime[0], AFTConstants.YYYYMMDD));
  133. }
  134. if (createTime.length > 1 && StringUtils.isNotBlank(createTime[1])) {
  135. params.put("createEndTime",
  136. DateUtils.addDays(DateUtils.parseDate(createTime[1], AFTConstants.YYYYMMDD), 1));
  137. }
  138. } catch (ParseException e) {
  139. }
  140. }
  141. if (acceptTime != null) {
  142. try {
  143. if (acceptTime.length > 0 && StringUtils.isNotBlank(acceptTime[0])) {
  144. params.put("acceptStartTime", DateUtils.parseDate(acceptTime[0], AFTConstants.YYYYMMDD));
  145. }
  146. if (acceptTime.length > 1 && StringUtils.isNotBlank(acceptTime[1])) {
  147. params.put("acceptEndTime",
  148. DateUtils.addDays(DateUtils.parseDate(acceptTime[1], AFTConstants.YYYYMMDD), 1));
  149. }
  150. } catch (ParseException e) {
  151. }
  152. }
  153. if (authTime != null) {
  154. try {
  155. if (authTime.length > 0 && StringUtils.isNotBlank(authTime[0])) {
  156. params.put("authStartTime", DateUtils.parseDate(authTime[0], AFTConstants.YYYYMMDD));
  157. }
  158. if (authTime.length > 1 && StringUtils.isNotBlank(authTime[1])) {
  159. params.put("authEndTime",
  160. DateUtils.addDays(DateUtils.parseDate(authTime[1], AFTConstants.YYYYMMDD), 1));
  161. }
  162. } catch (ParseException e) {
  163. }
  164. }
  165. return params;
  166. }
  167. @Override
  168. public CopyrightInfo selectByPrimaryKey(String id) {
  169. return copyrightInfoMapper.selectByPrimaryKey(id);
  170. }
  171. @Override
  172. public CopyrightInfoDetail findByPrimaryKey(String id) {
  173. return copyrightInfoMapper.findByPrimaryKey(id);
  174. }
  175. @Override
  176. public List<CopyrightLogBO> findLogsByPrimaryKey(String id) {
  177. return copyrightLogMapper.findByCopyrightId(id);
  178. }
  179. @Override
  180. public void updateByPrimaryKey(CopyrightInfo copyrightInfo) {
  181. copyrightInfoMapper.updateByPrimaryKey(copyrightInfo);
  182. }
  183. private void createNotice(CopyrightInfo c, CopyrightLog l) {
  184. CopyrightInfo info = copyrightInfoMapper.selectByPrimaryKey(c.getId());
  185. Notice n = new Notice();
  186. Calendar now = Calendar.getInstance();
  187. now.set(Calendar.MILLISECOND, 0);
  188. n.setId(UUID.randomUUID().toString());
  189. n.setCreateTime(now.getTime());
  190. n.setReaded(0);
  191. n.setAid(l.getPrincipal());
  192. n.setContent("编号" + info.getSerialNumber() + " " + CopyrightStatus.getStatus(l.getStatus()).getDesc());
  193. n.setNoticeType(NoticeStatus.COPYRIGHT.getCode());
  194. noticeMapper.insert(n);
  195. }
  196. }