OrgService.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. package com.dk.mdm.service.mst;
  2. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  3. import com.dk.common.infrastructure.annotaiton.Pagination;
  4. import com.dk.common.infrastructure.constant.Constant;
  5. import com.dk.common.model.pojo.PageList;
  6. import com.dk.common.response.ResponseResultUtil;
  7. import com.dk.common.response.ResponseResultVO;
  8. import com.dk.mdm.infrastructure.convert.mst.OrgConvert;
  9. import com.dk.mdm.mapper.mst.OrgMacMapper;
  10. import com.dk.mdm.mapper.mst.OrgWhMapper;
  11. import com.dk.mdm.model.pojo.mst.Org;
  12. import com.dk.mdm.mapper.mst.OrgMapper;
  13. import com.dk.common.service.BaseService;
  14. import com.dk.common.mapper.BaseMapper;
  15. import com.dk.mdm.model.pojo.mst.OrgMac;
  16. import com.dk.mdm.model.pojo.mst.OrgWh;
  17. import com.dk.mdm.model.query.mst.OrgQuery;
  18. import com.dk.common.model.response.mst.OrgResponse;
  19. import com.dk.common.model.vo.mst.OrgVO;
  20. import com.dk.mdm.service.common.CommonService;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import java.util.*;
  25. @Service
  26. @Transactional
  27. public class OrgService extends BaseService<Org> {
  28. /**
  29. * @desc : 重写主键
  30. * @author : 王英杰
  31. * @date : 2023/1/9 10:39
  32. */
  33. @Override
  34. public String getPrimaryKey() {
  35. return "org_id";
  36. }
  37. @Override
  38. public BaseMapper<Org> getRepository() {
  39. return orgMapper;
  40. }
  41. @Autowired
  42. private OrgMapper orgMapper;
  43. @Autowired
  44. private OrgConvert orgConvert;
  45. @Autowired
  46. private CommonService commonService;
  47. @Autowired
  48. OrgWhMapper orgWhMapper;
  49. @Autowired
  50. OrgMacMapper orgMacMapper;
  51. /**
  52. * @desc : 条件查询
  53. * @author : 王英杰
  54. * @date : 2023/1/10 17:19
  55. */
  56. @Pagination
  57. public ResponseResultVO<PageList<OrgResponse>> selectByCond(OrgQuery orgQuery) {
  58. return super.mergeListWithCount(orgQuery, orgMapper.selectByCond(orgQuery),
  59. orgMapper.countByCond(orgQuery));
  60. }
  61. /**
  62. * @desc : 新建组织机构
  63. * @author : 王英杰
  64. * @date : 2024/2/27 9:17
  65. */
  66. @Transactional(
  67. rollbackFor = {Exception.class}
  68. )
  69. public ResponseResultVO<?> insert(OrgVO orgVO) {
  70. // 转化实体
  71. Org organization = orgConvert.convertToPo(orgVO);
  72. // 获取显示顺序
  73. Integer displayNo = commonService.getMaxDisplayNo(Constant.DisplayNoTable.ORG);
  74. Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.ORG.getName(), true);
  75. // 获取编码和主键UuId
  76. organization.setDisplayNo(displayNo);
  77. organization.setOrgId(codeMap.get("outId").toString());
  78. organization.setOrgCode(codeMap.get("outNote").toString());
  79. //查询 本次要加的 部门的 父级下 最大的DisplayNo 然后加1 就是现在要加的DisplayNo
  80. Map<String, Object> param = new HashMap<>();
  81. param.put("otherCond", "parent_id = #{parentID} ::uuid");
  82. organization.setDisplayNo(commonService.getMaxDisplayNo(Constant.DisplayNoTable.ORG ,param));
  83. if (organization.getParentId() != null) {
  84. //插入TOPid
  85. organization.setTopId(organization.getParentId());
  86. }
  87. // 插入组织部门数据
  88. super.insert(organization);
  89. //执行函数
  90. orgMapper.resetLevelOrg(new Org().setTopId(organization.getParentId()).setCpId(organization.getCpId()));
  91. // 添加组织仓库
  92. if (orgVO.getWarehouseList() != null && orgVO.getWarehouseList().size() > 0) {
  93. for (Map<String, Object> map : orgVO.getWarehouseList()) {
  94. // 获取显示顺序
  95. Map<String, Object> paramOrgWh=new HashMap<>();
  96. paramOrgWh.put("noFlgValid",true);
  97. Integer orgWhDisplayNo = commonService.getMaxDisplayNo(Constant.DisplayNoTable.ORGWH,paramOrgWh);
  98. OrgWh orgWh = new OrgWh();
  99. orgWh.setOrgId(organization.getOrgId()).setWhId(map.get("whId").toString()).setDisplayNo(orgWhDisplayNo)
  100. .setFlgDefault(Boolean.parseBoolean(map.get("ownerFlag").toString()));
  101. orgWhMapper.insert(orgWh);
  102. }
  103. }
  104. // 添加组织资金账户
  105. if (orgVO.getMacList() != null && orgVO.getMacList().size() > 0) {
  106. for (Map<String, Object> map : orgVO.getMacList()) {
  107. // 获取显示顺序
  108. Map<String, Object> paramOrgMac=new HashMap<>();
  109. paramOrgMac.put("noFlgValid",true);
  110. Integer orgMacDisplayNo = commonService.getMaxDisplayNo(Constant.DisplayNoTable.ORGMAC,paramOrgMac);
  111. OrgMac orgMac=new OrgMac();
  112. orgMac.setOrgId(organization.getOrgId()).setMacId(map.get("macId").toString()).setDisplayNo(orgMacDisplayNo)
  113. .setFlgDefault(Boolean.parseBoolean(map.get("ownerFlag").toString()));
  114. orgMacMapper.insert(orgMac);
  115. }
  116. }
  117. return ResponseResultUtil.success();
  118. // return result == 1 ? ResponseResultUtil.success(organization) :
  119. // ResponseResultUtil.error(ResponseCodeEnum.INSERT_FAIL);
  120. }
  121. /**
  122. * @desc : 新建组织机构
  123. * @author : 王英杰
  124. * @date : 2024/2/27 9:17
  125. */
  126. @Transactional(
  127. rollbackFor = {Exception.class}
  128. )
  129. public ResponseResultVO<?> insertFeignOrg(OrgVO orgVO) {
  130. // 转化实体
  131. Org organization = orgConvert.convertToPo(orgVO);
  132. // 获取显示顺序
  133. Map<String, Object> codeMap = commonService.getUniqueNoteCode(
  134. Constant.docNameConstant.ORG.getName(),orgVO.getCpId(), true);
  135. // 获取编码和主键UuId
  136. organization.setDisplayNo(0);
  137. organization.setOrgId(codeMap.get("outId").toString());
  138. organization.setOrgCode(codeMap.get("outNote").toString());
  139. // 插入组织部门数据
  140. super.insert(organization);
  141. //执行函数
  142. // orgMapper.resetLevelOrg(new Org().setTopId(organization.getParentId()).setCpId(organization.getCpId()));
  143. return ResponseResultUtil.success(organization);
  144. }
  145. /**
  146. * @desc : 编辑方法
  147. * @author : 宋扬
  148. * @date : 2024/3/22 17:15
  149. */
  150. @Transactional(
  151. rollbackFor = {Exception.class}
  152. )
  153. public ResponseResultVO<Boolean> update(OrgVO orgVO) {
  154. // 转化实体
  155. Org org = orgConvert.convertToPo(orgVO);
  156. // 修改组织机构
  157. super.update(org, new UpdateWrapper<Org>().lambda().eq(Org::getOrgId,
  158. UUID.fromString(org.getOrgId())));
  159. //执行函数
  160. orgMapper.resetLevelOrg(new Org().setTopId(org.getParentId()).setCpId(org.getCpId()));
  161. //删除组织仓库和组织资金账户
  162. orgWhMapper.deleteByOrgId(org.getOrgId());
  163. orgMacMapper.deleteByOrgId(org.getOrgId());
  164. // 添加组织仓库
  165. if (orgVO.getWarehouseList() != null && orgVO.getWarehouseList().size() > 0) {
  166. for (Map<String, Object> map : orgVO.getWarehouseList()) {
  167. // 获取显示顺序
  168. Map<String, Object> paramOrgWh=new HashMap<>();
  169. paramOrgWh.put("noFlgValid",true);
  170. Integer orgWhDisplayNo = commonService.getMaxDisplayNo(Constant.DisplayNoTable.ORGWH,paramOrgWh);
  171. OrgWh orgWh = new OrgWh();
  172. orgWh.setOrgId(org.getOrgId()).setWhId(map.get("whId").toString()).setDisplayNo(orgWhDisplayNo)
  173. .setFlgDefault(Boolean.parseBoolean(map.get("ownerFlag").toString()));
  174. orgWhMapper.insert(orgWh);
  175. }
  176. }
  177. // 添加组织资金账户
  178. if (orgVO.getMacList() != null && orgVO.getMacList().size() > 0) {
  179. for (Map<String, Object> map : orgVO.getMacList()) {
  180. // 获取显示顺序
  181. Map<String, Object> paramOrgMac=new HashMap<>();
  182. paramOrgMac.put("noFlgValid",true);
  183. Integer orgMacDisplayNo = commonService.getMaxDisplayNo(Constant.DisplayNoTable.ORGMAC,paramOrgMac);
  184. OrgMac orgMac=new OrgMac();
  185. orgMac.setOrgId(org.getOrgId()).setMacId(map.get("macId").toString()).setDisplayNo(orgMacDisplayNo)
  186. .setFlgDefault(Boolean.parseBoolean(map.get("ownerFlag").toString()));
  187. orgMacMapper.insert(orgMac);
  188. }
  189. }
  190. return ResponseResultUtil.success();
  191. }
  192. }