Browse Source

feat:创建或者更新企业关系

shc 2 years ago
parent
commit
d88153b24e

+ 62 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/SysEnterpriseRelationDTO.java

@@ -0,0 +1,62 @@
+package com.qunzhixinxi.hnqz.admin.api.dto;
+
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsLevel;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 企业关系Dto
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2022-11-02 14:45
+ */
+@Data
+@ToString
+public class SysEnterpriseRelationDTO implements Serializable {
+	private static final long serialVersionUID = 1318703734982431471L;
+
+
+	/**
+	 * id
+	 */
+	private Integer relId;
+
+	/**
+	 * 企业id
+	 */
+	private Integer enterpriseId;
+
+	/**
+	 * 企业类型
+	 */
+	private UpmsType.EnterpriseType enterpriseType;
+
+	/**
+	 * 产品线
+	 */
+	private UpmsType.ProductLine productLine;
+
+	/**
+	 * 企业等级
+	 */
+	private UpmsLevel.EnterpriseLevel enterpriseLevel;
+
+	/**
+	 * 父级id
+	 */
+	private Integer parentId;
+
+	/**
+	 * 服务费
+	 */
+	private List<Map<String, Object>> serviceCharges;
+
+
+}

+ 17 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysEnterpriseRelationController.java

@@ -1,13 +1,15 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.dto.SysEnterpriseRelationDTO;
 import com.qunzhixinxi.hnqz.admin.api.vo.SysEnterpriseRelationVO;
 import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseRelationService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
-import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -38,4 +40,18 @@ public class SysEnterpriseRelationController {
 	public R<Page<SysEnterpriseRelationVO>> pageEntRels(Page<SysEnterpriseRelationVO> page) {
 		return R.ok(enterpriseRelationService.pageEntRels(page));
 	}
+
+	/**
+	 * 更新企业关系
+	 *
+	 * @param relationDTO 关系内容
+	 * @return 更新结果
+	 */
+	@PostMapping
+	public R<Boolean> updateEntRel(@RequestBody SysEnterpriseRelationDTO relationDTO) {
+
+		return R.ok(enterpriseRelationService.updateEntRel(relationDTO));
+
+
+	}
 }

+ 2 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/SysDeptSub.java

@@ -74,4 +74,6 @@ public class SysDeptSub extends Model<SysDeptSub> {
 
 	@ApiModelProperty(value = "更新时间")
 	private LocalDateTime updateTime;
+
+	private BigDecimal serviceCharge;
 }

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysEnterpriseRelationService.java

@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.dto.SysEnterpriseRelationDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysEnterpriseRelation;
 import com.qunzhixinxi.hnqz.admin.api.vo.SysEnterpriseRelationVO;
 
@@ -22,4 +23,12 @@ public interface SysEnterpriseRelationService extends IService<SysEnterpriseRela
 	 * @return 翻页结果
 	 */
 	Page<SysEnterpriseRelationVO> pageEntRels(Page<SysEnterpriseRelationVO> page);
+
+	/**
+	 * 更新企业关系信息
+	 *
+	 * @param relationDTO 更新内容
+	 * @return 更新结果
+	 */
+	Boolean updateEntRel(SysEnterpriseRelationDTO relationDTO);
 }

+ 57 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysEnterpriseRelationServiceImpl.java

@@ -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;
+	}
 }