6c64db36a2e11dc2738c2b5ae8dcf5478da3f34a.svn-base 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  4. import cn.com.goldenwater.dcproj.dao.BisInspAllWorkerPersDao;
  5. import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers;
  6. import cn.com.goldenwater.dcproj.model.BisInspAllWorkerPers;
  7. import cn.com.goldenwater.dcproj.param.BisInspAllRlationPersParam;
  8. import cn.com.goldenwater.dcproj.param.BisInspAllWorkerPersParam;
  9. import cn.com.goldenwater.dcproj.service.BisInspAllRlationPersService;
  10. import cn.com.goldenwater.dcproj.service.BisInspAllWorkerPersService;
  11. import cn.com.goldenwater.dcproj.util.CheckUtil;
  12. import cn.com.goldenwater.dcproj.utils.Builder;
  13. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  14. import cn.com.goldenwater.id.util.UuidUtil;
  15. import cn.com.goldenwater.util.common.IdCardUtils;
  16. import com.alibaba.fastjson.JSON;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import javax.servlet.http.HttpServletResponse;
  25. import java.util.ArrayList;
  26. import java.util.Date;
  27. import java.util.List;
  28. /**
  29. * @author
  30. * @date 2021-11-3
  31. */
  32. @Service
  33. @Transactional
  34. public class BisInspAllWorkerPersServiceImpl extends AbstractCrudService<BisInspAllWorkerPers, BisInspAllWorkerPersParam> implements BisInspAllWorkerPersService {
  35. private Logger logger = LoggerFactory.getLogger(getClass());
  36. @Autowired
  37. private BisInspAllWorkerPersDao bisInspAllWorkerPersDao;
  38. @Autowired
  39. private BisInspAllRlationPersService bisInspAllRlationPersService;
  40. public BisInspAllWorkerPersServiceImpl(BisInspAllWorkerPersDao bisInspAllWorkerPersDao) {
  41. super(bisInspAllWorkerPersDao);
  42. this.bisInspAllWorkerPersDao = bisInspAllWorkerPersDao;
  43. }
  44. @Override
  45. public int insert(BisInspAllWorkerPers bisInspAllWorkerPers) {
  46. CheckUtil.notEmpty(bisInspAllWorkerPers.getPersName(), "专家姓名为必填参数");
  47. CheckUtil.notEmpty(bisInspAllWorkerPers.getSpecialty(), "专家专业为必填参数");
  48. CheckUtil.notEmpty(bisInspAllWorkerPers.getDpnm(), "专家单位为必填参数");
  49. CheckUtil.notEmpty(bisInspAllWorkerPers.getIdNumber(), "专家身份证号为必填参数");
  50. bisInspAllWorkerPers.setBornDate(IdCardUtils.getBirthdayDate(bisInspAllWorkerPers.getIdNumber()));
  51. bisInspAllWorkerPers.setAge(Long.parseLong(String.valueOf(IdCardUtils.getAge(bisInspAllWorkerPers.getIdNumber()).intValue())));
  52. String uuid = UuidUtil.uuid();
  53. bisInspAllWorkerPers.setId(uuid);
  54. bisInspAllWorkerPers.setIntm(new Date());
  55. bisInspAllWorkerPers.setUptm(new Date());
  56. bisInspAllWorkerPers.setDataStat("0");
  57. // 关联用户表
  58. associatedUsers(bisInspAllWorkerPers);
  59. logger.info("insert 督查专家:{}", JSON.toJSONString(bisInspAllWorkerPers));
  60. return this.bisInspAllWorkerPersDao.insert(bisInspAllWorkerPers);
  61. }
  62. /**
  63. * 关联用户表: 通过手机号码查找用户表有无数据,有数据,获取GUID, 无数据创建用户表
  64. *
  65. * @param bisInspAllWorkerPers
  66. */
  67. private void associatedUsers(BisInspAllWorkerPers bisInspAllWorkerPers) {
  68. if (StringUtils.isNotBlank(bisInspAllWorkerPers.getGuid()) || StringUtils.isBlank(bisInspAllWorkerPers.getMobilenumb())) {
  69. return;
  70. }
  71. BisInspAllRlationPers pers = bisInspAllRlationPersService.getBy(Builder.of(BisInspAllRlationPersParam::new)
  72. .with(BisInspAllRlationPersParam::setMobilenumb, bisInspAllWorkerPers.getMobilenumb())
  73. .build());
  74. if (pers != null) {
  75. logger.debug(bisInspAllWorkerPers.getPersName() + ":" + bisInspAllWorkerPers.getMobilenumb() + " 已有帐号");
  76. bisInspAllWorkerPers.setGuid(pers.getGuid());
  77. } else {
  78. logger.debug(bisInspAllWorkerPers.getPersName() + ":" + bisInspAllWorkerPers.getMobilenumb() + " 无 帐号");
  79. pers = new BisInspAllRlationPers();
  80. BeanUtils.copyProperties(bisInspAllWorkerPers, pers);
  81. pers = bisInspAllRlationPersService.createUser(pers);
  82. bisInspAllWorkerPers.setGuid(pers.getGuid());
  83. }
  84. }
  85. @Override
  86. public int update(BisInspAllWorkerPers bisInspAllWorkerPers) {
  87. CheckUtil.notEmpty(bisInspAllWorkerPers.getPersName(), "专家姓名为必填参数");
  88. CheckUtil.notEmpty(bisInspAllWorkerPers.getSpecialty(), "专家专业为必填参数");
  89. CheckUtil.notEmpty(bisInspAllWorkerPers.getDpnm(), "专家单位为必填参数");
  90. CheckUtil.notEmpty(bisInspAllWorkerPers.getIdNumber(), "专家身份证号为必填参数");
  91. bisInspAllWorkerPers.setBornDate(IdCardUtils.getBirthdayDate(bisInspAllWorkerPers.getIdNumber()));
  92. bisInspAllWorkerPers.setAge(Long.parseLong(String.valueOf(IdCardUtils.getAge(bisInspAllWorkerPers.getIdNumber()).intValue())));
  93. bisInspAllWorkerPers.setUptm(new Date());
  94. // 关联用户表
  95. associatedUsers(bisInspAllWorkerPers);
  96. logger.info("update 督查专家:{}", JSON.toJSONString(bisInspAllWorkerPers));
  97. return this.bisInspAllWorkerPersDao.update(bisInspAllWorkerPers);
  98. }
  99. @Override
  100. public int delete(String id) {
  101. return this.bisInspAllWorkerPersDao.delete(id);
  102. }
  103. @Override
  104. public void export(BisInspAllWorkerPersParam bisInspAllWorkerPersParam, HttpServletResponse response) {
  105. List<BisInspAllWorkerPers> persList = findList(bisInspAllWorkerPersParam);
  106. persList.forEach(p -> {
  107. if ("1".equals(p.getSex())) {
  108. p.setSex("男");
  109. }
  110. if ("2".equals(p.getSex())) {
  111. p.setSex("女");
  112. }
  113. if ("0".equals(p.getIsWork())) {
  114. p.setIsWork("是");
  115. }
  116. if ("1".equals(p.getIsWork())) {
  117. p.setIsWork("否");
  118. }
  119. if ("1".equals(p.getIsCvlSrvnts())) {
  120. p.setIsCvlSrvnts("是");
  121. }
  122. if ("2".equals(p.getIsCvlSrvnts())) {
  123. p.setIsCvlSrvnts("否");
  124. }
  125. if (StringUtils.isNotBlank(p.getExpertPost())) {
  126. String[] expertPostArr = p.getExpertPost().split(SplitValue.DOUHAO_SPLIT);
  127. List<String> expertPostlist = new ArrayList<>(expertPostArr.length);
  128. for (String expertPost : expertPostArr) {
  129. switch (expertPost) {
  130. case "1":
  131. expertPostlist.add("前期设计");
  132. break;
  133. case "2":
  134. expertPostlist.add("建设管理");
  135. break;
  136. case "3":
  137. expertPostlist.add("计划管理");
  138. break;
  139. case "4":
  140. expertPostlist.add("财务管理");
  141. break;
  142. case "5":
  143. expertPostlist.add("质量管理");
  144. break;
  145. case "6":
  146. expertPostlist.add("运行管理");
  147. break;
  148. case "7":
  149. expertPostlist.add("水土保持");
  150. break;
  151. case "8":
  152. expertPostlist.add("水文水资源");
  153. break;
  154. case "9":
  155. expertPostlist.add("安全生产");
  156. break;
  157. default:
  158. }
  159. }
  160. p.setExpertPost(String.join("、", expertPostlist));
  161. }
  162. });
  163. List<String> columns = new ArrayList<String>() {{
  164. add("persName");
  165. add("sex");
  166. add("age");
  167. add("isWork");
  168. add("isCvlSrvnts");
  169. add("specialty");
  170. add("admDuty");
  171. add("dppost");
  172. add("dpnm");
  173. add("expertPost");
  174. add("mobilenumb");
  175. add("email");
  176. add("idNumber");
  177. add("remark");
  178. }};
  179. ExportUtil.exportExcel2(persList, response, "专家信息列表", columns, BisInspAllWorkerPers.class);
  180. }
  181. }