Browse Source

初始化合同段新增所在地区

liuyc 3 years ago
parent
commit
c02450ea16

+ 46 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ProjectContractArea.java

@@ -0,0 +1,46 @@
+package org.springblade.manager.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+@TableName("m_project_contract_area")
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProjectContractArea extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 合同段id
+     */
+    private String contractId;
+
+    /**
+     *省
+     */
+    private String province;
+
+    /**
+     * 市
+     */
+    private String city;
+
+    /**
+     * 区县
+     */
+    private String county;
+
+    /**
+     * 编码
+     */
+    private String city_code;
+
+}

+ 7 - 7
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO.java

@@ -7,7 +7,7 @@ import org.springblade.core.tool.node.TreeNode;
 
 
 /**
- * 重写了TreeNode实体,增加了type字段用于返回给前端
+ * 重写了TreeNode实体,增加了type、primaryKeyId字段用于返回给前端
  */
 public class TreeNodeVO extends BaseNode<TreeNode> {
     private static final long serialVersionUID = 1L;
@@ -23,18 +23,18 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
 
     private Integer type;
 
-    private Integer prKeyId;
+    private String primaryKeyId;
 
 
     public TreeNodeVO() {
     }
 
-    public Integer getPrKeyId() {
-        return prKeyId;
+    public String getPrimaryKeyId() {
+        return primaryKeyId;
     }
 
-    public void setPrKeyId(Integer pKeyId) {
-        this.prKeyId = pKeyId;
+    public void setPrimaryKeyId(String primaryKeyId) {
+        this.primaryKeyId = primaryKeyId;
     }
 
     public Integer getType() {
@@ -70,7 +70,7 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
     }
 
     public String toString() {
-        return "TreeNode(pKeyId=" + this.getPrKeyId() + ", type=" + this.getType() + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
+        return "TreeNode(primaryKeyId=" + this.getPrimaryKeyId() + ", type=" + this.getType() + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
     }
 
     public boolean equals(final Object o) {

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java

@@ -154,8 +154,8 @@ public class ContractInfoController extends BladeController {
     @ApiOperationSupport(order = 6)
     @ApiOperation(value = "新增或修改", notes = "传入contractInfo")
     public R submit(@Valid @RequestBody ContractInfoVO contractInfo) {
-        //新增
-        boolean b = contractInfoService.saveOrUpdate(contractInfo);
+        //新增合同段
+        boolean b = contractInfoService.saveAndUpdateContract(contractInfo);
         if (b) {
             return R.data(contractInfo, "操作成功");
         }

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml

@@ -48,7 +48,7 @@
         <result column="key" property="key"/>
         <result column="has_children" property="hasChildren"/>
         <result column="type" property="type"/>
-        <result column="prKeyId" property="prKeyId"/>
+        <result column="primaryKeyId" property="primaryKeyId"/>
     </resultMap>
 
 
@@ -141,7 +141,7 @@
 
     <select id="tree" resultMap="treeNodeResultMap">
         SELECT
-        p_key_id AS "prKeyId",
+        p_key_id AS primaryKeyId,
         id,
         parent_id,
         dept_name AS title,

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectContractAreaMapper.java

@@ -0,0 +1,10 @@
+package org.springblade.manager.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.manager.entity.ProjectContractArea;
+
+
+public interface ProjectContractAreaMapper extends BaseMapper<ProjectContractArea> {
+
+}

+ 24 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectContractAreaMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.manager.mapper.ProjectContractAreaMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="imageClassificationConfigResultMap" type="org.springblade.manager.entity.ProjectContractArea">
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="project_id" property="projectId"/>
+        <result column="contract_id" property="contractId"/>
+        <result column="province" property="province"/>
+        <result column="city" property="city"/>
+        <result column="city_code" property="city_code"/>
+        <result column="county" property="county"/>
+    </resultMap>
+
+
+</mapper>

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IContractInfoService.java

@@ -59,5 +59,6 @@ public interface IContractInfoService extends BaseService<ContractInfo> {
 
     List<WbsTreeContractTreeVO> tree(String wbsId, String projectId, String contractId);
 
+    boolean saveAndUpdateContract(ContractInfoVO contractInfo);
 
 }

+ 55 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -16,10 +16,15 @@
  */
 package org.springblade.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.AllArgsConstructor;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.common.utils.BaiduApiUtil;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.manager.dto.FindAllUserByConditionDTO;
 import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.ProjectContractArea;
+import org.springblade.manager.mapper.ProjectContractAreaMapper;
 import org.springblade.manager.vo.CRolePostVO;
 import org.springblade.manager.vo.ContractInfoVO;
 import org.springblade.manager.mapper.ContractInfoMapper;
@@ -30,9 +35,12 @@ import org.springblade.manager.vo.WbsTreeVO;
 import org.springblade.system.user.entity.User;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 合同段信息表 服务实现类
@@ -41,12 +49,13 @@ import java.util.List;
  * @since 2022-04-14
  */
 @Service
+@AllArgsConstructor
 public class ContractInfoServiceImpl
         extends BaseServiceImpl<ContractInfoMapper, ContractInfo>
         implements IContractInfoService {
 
-    @Resource
-    private ContractInfoMapper contractInfoMapper;
+    private final ContractInfoMapper contractInfoMapper;
+    private final ProjectContractAreaMapper projectContractAreaMapper;
 
     @Override
     public IPage<ContractInfoVO> selectContractInfoPage(IPage<ContractInfoVO> page, ContractInfoVO contractInfo) {
@@ -113,4 +122,48 @@ public class ContractInfoServiceImpl
     public List<WbsTreeContractTreeVO> tree(String wbsId, String projectId, String contractId) {
         return ForestNodeMerger.merge(baseMapper.tree(wbsId, projectId, contractId));
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveAndUpdateContract(ContractInfoVO contractInfo) {
+        //新增合同段
+        boolean row = saveOrUpdate(contractInfo);
+        if (row) {
+            //获取合同段位置信息
+            String projectPlace = contractInfo.getProjectPlace();
+            try {
+                Map<String, Object> addressInfo = BaiduApiUtil.geocoding(projectPlace);
+                Map<String, String> position = BaiduApiUtil.getPosition(addressInfo.get("lat").toString()
+                        + "," + addressInfo.get("lng").toString());
+                ProjectContractArea projectContractArea = new ProjectContractArea();
+                projectContractArea.setProvince(position.get("province"));
+                projectContractArea.setCity(position.get("city"));
+                projectContractArea.setCounty(position.get("district"));
+                projectContractArea.setCity_code(position.get("adcode"));
+                projectContractArea.setProjectId(contractInfo.getPId());
+                projectContractArea.setIsDeleted(0);
+                projectContractArea.setContractId(String.valueOf(contractInfo.getId()));
+                //判重
+                QueryWrapper<ProjectContractArea> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("project_id", contractInfo.getPId());
+                queryWrapper.eq("contract_id", contractInfo.getId());
+                queryWrapper.eq("province", position.get("province"));
+                queryWrapper.eq("city", position.get("city"));
+                queryWrapper.eq("county", position.get("district"));
+                queryWrapper.eq("city_code", position.get("adcode"));
+                queryWrapper.eq("is_deleted", contractInfo.getIsDeleted());
+                ProjectContractArea projectContractArea1 = projectContractAreaMapper.selectOne(queryWrapper);
+                if (projectContractArea1 == null) {
+                    int insert = projectContractAreaMapper.insert(projectContractArea);
+                    if (insert > 0) {
+                        return true;
+                    }
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            return true;
+        }
+        return false;
+    }
 }