|
@@ -1,9 +1,15 @@
|
|
|
package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.dto.SysEnterpriseRelationDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysEnterpriseRelation;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.SysEnterpriseRelationVO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysEnterpriseRelationMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
|
|
@@ -11,6 +17,12 @@ import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseRelationService;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 企业关系实现
|
|
@@ -37,4 +49,49 @@ public class SysEnterpriseRelationServiceImpl extends ServiceImpl<SysEnterpriseR
|
|
|
public Page<SysEnterpriseRelationVO> pageEntRels(Page<SysEnterpriseRelationVO> page) {
|
|
|
return deptService.pageEntRels(page);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新企业关系信息
|
|
|
+ *
|
|
|
+ * @param relationDTO 更新内容
|
|
|
+ * @return 更新结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean updateEntRel(SysEnterpriseRelationDTO relationDTO) {
|
|
|
+
|
|
|
+ SysEnterpriseRelation relation = BeanUtil.copyProperties(relationDTO, SysEnterpriseRelation.class);
|
|
|
+ relation.setRootId(relation.getParentId());
|
|
|
+
|
|
|
+ this.saveOrUpdate(relation);
|
|
|
+
|
|
|
+
|
|
|
+ List<Map<String, Object>> serviceCharges = relationDTO.getServiceCharges();
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(serviceCharges)) {
|
|
|
+
|
|
|
+ List<SysDeptSub> deptSubs = deptSubService.list(Wrappers.<SysDeptSub>lambdaQuery().eq(SysDeptSub::getDeptId, relation.getEnterpriseId()));
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(deptSubs)) {
|
|
|
+ Map<SubjectLocation, Integer> subMap = deptSubs.stream().collect(Collectors.toMap(SysDeptSub::getSubjectLocation, SysDeptSub::getSubId));
|
|
|
+
|
|
|
+ List<SysDeptSub> subs = serviceCharges.stream().map(m -> {
|
|
|
+ SysDeptSub sub = new SysDeptSub();
|
|
|
+ sub.setDeptId(relation.getEnterpriseId());
|
|
|
+ SubjectLocation location = Enum.valueOf(SubjectLocation.class, (String) m.get("subjectLocation"));
|
|
|
+ Integer subId = subMap.get(location);
|
|
|
+ sub.setSubId(subId);
|
|
|
+ sub.setSubjectLocation(location);
|
|
|
+ sub.setServiceCharge((BigDecimal) m.get("serviceCharge"));
|
|
|
+ return sub;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ deptSubService.updateBatchById(subs);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
}
|