serviceImpl.java.vm 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package ${packageName}.service.impl;
  2. import cn.gov.customs.cacp.sdks.core.user.trans.CacpTransUser;
  3. import cn.gov.customs.zhsj.common.exception.ServiceException;
  4. import cn.gov.customs.zhsj.common.utils.StringUtils;
  5. import cn.gov.customs.zhsj.common.utils.bean.BeanValidators;
  6. import cn.gov.customs.zhsj.common.utils.uuid.SnowflakeIdWorker;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.stereotype.Service;
  10. import javax.validation.Validator;
  11. import java.util.List;
  12. import org.apache.commons.collections4.CollectionUtils;
  13. import cn.gov.customs.zhsj.common.utils.DateUtils;
  14. #foreach ($column in $columns)
  15. #if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
  16. import cn.gov.customs.zhsj.common.utils.DateUtils;
  17. #break
  18. #end
  19. #end
  20. #if($table.sub)
  21. import ${packageName}.pojo.${subClassName};
  22. #end
  23. import ${packageName}.dao.${ClassName}Mapper;
  24. import ${packageName}.pojo.${ClassName};
  25. import ${packageName}.service.I${ClassName}Service;
  26. /**
  27. * ${functionName}Service业务层处理
  28. *
  29. * @author ${author}
  30. * @date ${datetime}
  31. */
  32. @Service
  33. @Slf4j
  34. @RequiredArgsConstructor
  35. public class ${ClassName}ServiceImpl implements I${ClassName}Service {
  36. private final ${ClassName}Mapper ${className}Mapper;
  37. private final Validator validator;
  38. /**
  39. * 查询${functionName}
  40. *
  41. * @param ${pkColumn.javaField} ${functionName}主键
  42. * @return ${functionName}
  43. */
  44. @Override
  45. public ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
  46. return ${className}Mapper.selectBy${pkColumn.capJavaField}(${pkColumn.javaField});
  47. }
  48. /**
  49. * 查询${functionName}列表
  50. *
  51. * @param ${className} ${functionName}
  52. * @return ${functionName}
  53. */
  54. @Override
  55. public List<${ClassName}> selectList(${ClassName} ${className}) {
  56. return ${className}Mapper.selectList(${className});
  57. }
  58. /**
  59. * 新增${functionName}
  60. *
  61. * @param ${className} ${functionName}
  62. * @return 结果
  63. */
  64. #if($table.sub)
  65. @Transactional
  66. #end
  67. @Override
  68. public int insert(${ClassName} ${className}) {
  69. #foreach ($column in $columns)
  70. #if($column.javaField == 'id')
  71. ${className}.setId(new SnowflakeIdWorker(0, 0).nextId());
  72. #end
  73. #if($column.javaField == 'createTime')
  74. ${className}.setCreateTime(DateUtils.getNowDate());
  75. #end
  76. #if($column.javaField == 'updateTime')
  77. ${className}.setUpdateTime(DateUtils.getNowDate());
  78. #end
  79. #if($column.javaField == 'status')
  80. ${className}.setStatus("0");
  81. #end
  82. #end
  83. #if($table.sub)
  84. int rows = ${className}Mapper.insert${ClassName}(${className});
  85. insert${subClassName}(${className});
  86. return rows;
  87. #else
  88. return ${className}Mapper.insert(${className});
  89. #end
  90. }
  91. /**
  92. * 修改${functionName}
  93. *
  94. * @param ${className} ${functionName}
  95. * @return 结果
  96. */
  97. #if($table.sub)
  98. @Transactional
  99. #end
  100. @Override
  101. public int update(${ClassName} ${className}) {
  102. #foreach ($column in $columns)
  103. #if($column.javaField == 'updateTime')
  104. ${className}.setUpdateTime(DateUtils.getNowDate());
  105. #end
  106. #end
  107. #if($table.sub)
  108. ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}())
  109. ;
  110. insert${subClassName}(${className});
  111. #end
  112. return ${className}Mapper.update(${className});
  113. }
  114. /**
  115. * 批量删除${functionName}
  116. *
  117. * @param ${pkColumn.javaField}s 需要删除的${functionName}主键
  118. * @return 结果
  119. */
  120. #if($table.sub)
  121. @Transactional
  122. #end
  123. @Override
  124. public int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
  125. #if($table.sub)
  126. ${className}Mapper.deleteBy${subTableFkClassName}s(${pkColumn.javaField}s);
  127. #end
  128. return ${className}Mapper.deleteBy${pkColumn.capJavaField}s(${pkColumn.javaField}s);
  129. }
  130. /**
  131. * 删除${functionName}信息
  132. *
  133. * @param ${pkColumn.javaField} ${functionName}主键
  134. * @return 结果
  135. */
  136. #if($table.sub)
  137. @Transactional
  138. #end
  139. @Override
  140. public int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
  141. #if($table.sub)
  142. ${className}Mapper.deleteBy${subTableFkClassName}(${pkColumn.javaField});
  143. #end
  144. return ${className}Mapper.deleteBy${pkColumn.capJavaField}(${pkColumn.javaField});
  145. }
  146. /**
  147. * 逻辑删除${functionName}信息
  148. *
  149. * @param ${pkColumn.javaField} ${functionName}主键
  150. * @return 结果
  151. */
  152. #if($table.sub)
  153. @Transactional
  154. #end
  155. @Override
  156. public int logicDelete(${pkColumn.javaType} ${pkColumn.javaField}) {
  157. return ${className}Mapper.logicDelete(${pkColumn.javaField});
  158. }
  159. #if($table.sub)
  160. /**
  161. * 新增${subTable.functionName}信息
  162. *
  163. * @param ${className} ${functionName}对象
  164. */
  165. public void insert${subClassName}(${ClassName} ${className}) {
  166. List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
  167. ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
  168. if (StringUtils.isNotNull(${subclassName}List)) {
  169. List<${subClassName}> list = new ArrayList<${subClassName}>();
  170. for (${subClassName} ${subclassName} :${subclassName}List)
  171. {
  172. ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
  173. list.add(${subclassName});
  174. }
  175. if (list.size() > 0) {
  176. ${className}Mapper.batch(list);
  177. }
  178. }
  179. }
  180. #end
  181. /**
  182. * 导入${functionName}数据
  183. *
  184. * @param ${className}List ${functionName}数据列表
  185. * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
  186. * @param cacpTransUser 操作用户
  187. * @return 结果
  188. */
  189. @Override
  190. public String import${ClassName}(List<${ClassName}> ${className}List, Boolean isUpdateSupport, CacpTransUser cacpTransUser) {
  191. if (CollectionUtils.isEmpty(${className}List)) {
  192. throw new ServiceException("导入数据不能为空!");
  193. }
  194. int successNum = 0;
  195. int failureNum = 0;
  196. StringBuilder successMsg = new StringBuilder();
  197. StringBuilder failureMsg = new StringBuilder();
  198. for (${ClassName} ${className} : ${className}List) {
  199. try {
  200. BeanValidators.validateWithException(validator, ${className});
  201. //id名称不统一,自行处理
  202. ## ${className}.setId(new SnowflakeIdWorker(0, 0).nextId());
  203. ${className}.setCreateTime(DateUtils.getNowDate());
  204. ${className}.setUpdateTime(DateUtils.getNowDate());
  205. ${className}.setCreateUser(cacpTransUser.getUserId());
  206. ${className}.setCreateDept(cacpTransUser.getParentGuid());
  207. ## ${className}.setCustomsCode(cacpTransUser.getCustomsCode());
  208. ## ${className}.setStatus(0);
  209. ${className}Mapper.insert(${className});
  210. successNum++;
  211. successMsg.append("<br/>" + successNum + "、 " + cacpTransUser.getUserName() + " 导入成功");
  212. } catch (Exception e) {
  213. failureNum++;
  214. String msg = "<br/>" + failureNum + "、" + cacpTransUser.getUserName() + " 导入失败:";
  215. failureMsg.append(msg + e.getMessage());
  216. log.error(msg, e);
  217. }
  218. }
  219. if (failureNum > 0) {
  220. failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
  221. throw new ServiceException(failureMsg.toString());
  222. } else {
  223. successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
  224. }
  225. return successMsg.toString();
  226. }
  227. }