浏览代码

Merge branch 'master' of http://59.110.6.97:3000/root/BoundLink-Plate

gufj 4 月之前
父节点
当前提交
fcd7dea0fe

+ 0 - 6
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkClueController.java

@@ -5,7 +5,6 @@ import com.wx.blink.backend.domain.dto.BlinkClueTeamDTO;
 import com.wx.blink.backend.domain.qry.BlinkClueQry;
 import com.wx.blink.backend.service.IBlinkClueService;
 import com.wx.blink.backend.service.IBlinkClueTeamService;
-import com.wx.blink.base.common.annoation.NoNeedLogin;
 import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
 import io.swagger.v3.oas.annotations.Operation;
@@ -25,35 +24,30 @@ public class BlinkClueController {
 
     @Operation(summary = "新增线索")
     @PostMapping("/supports/clue/create")
-    @NoNeedLogin
     public ResponseDTO<String> supportsClueCreate(@RequestBody BlinkClueDTO dto) {
         return clueService.supportsClueCreate(dto);
     }
 
     @Operation(summary = "查询线索列表")
     @GetMapping("/supports/clue/queryPage")
-    @NoNeedLogin
     public ResponseDTO<PageResult<BlinkClueDTO>> supportsClueQueryPage(BlinkClueQry qry) {
         return clueService.supportsClueQueryPage(qry);
     }
 
     @Operation(summary = "新增团队协作成员")
     @PostMapping("/supports/clue/team/create")
-    @NoNeedLogin
     public ResponseDTO<String> supportsClueTeamCreate(@RequestBody BlinkClueTeamDTO dto) {
         return clueTeamService.supportsClueTeamCreate(dto);
     }
 
     @Operation(summary = "移除团队协作成员")
     @GetMapping("/supports/clue/team/detele/{id}")
-    @NoNeedLogin
     public ResponseDTO<String> supportsClueTeamDeleteById(@PathVariable("id") Long id) {
         return clueTeamService.supportsClueTeamDeleteById(id);
     }
 
     @Operation(summary = "查询线索信息")
     @GetMapping("/supports/clue/query/{id}")
-    @NoNeedLogin
     public ResponseDTO<BlinkClueDTO> supportsClueQuery(@PathVariable("id") Long id) {
         return clueService.supportsClueQuery(id);
     }

+ 40 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkClueLotsController.java

@@ -0,0 +1,40 @@
+package com.wx.blink.backend.controller;
+
+import com.wx.blink.backend.domain.dto.BlinkClueLotsDTO;
+import com.wx.blink.backend.domain.qry.BlinkClueLotsQry;
+import com.wx.blink.backend.service.IBlinkClueLotsService;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+@RestController
+@Tag(name = "线索管理-标段管理")
+public class BlinkClueLotsController {
+
+    @Resource
+    private IBlinkClueLotsService clueLotsService;
+
+    @Operation(summary = "新增标段")
+    @PostMapping("/supports/lots/create")
+    public ResponseDTO<String> supportsClueLotsCreate(@RequestBody @Valid BlinkClueLotsDTO dto) {
+        return clueLotsService.supportsClueLotsCreate(dto);
+    }
+
+    @Operation(summary = "查询标段列表")
+    @GetMapping("/supports/lots/queryPage")
+    public ResponseDTO<PageResult<BlinkClueLotsDTO>> supportsClueLotsQueryPage(BlinkClueLotsQry qry) {
+        return clueLotsService.supportsClueLotsQueryPage(qry);
+    }
+
+    @Operation(summary = "获取标段信息")
+    @GetMapping("/supports/lots/query/{id}")
+    public ResponseDTO<BlinkClueLotsDTO> supportsClueLotsQuery(@PathVariable("id") Long id) {
+        return clueLotsService.supportsClueLotsQuery(id);
+    }
+
+}

+ 69 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkClueLotsDO.java

@@ -0,0 +1,69 @@
+package com.wx.blink.backend.domain.dataobject;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wx.blink.base.common.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName("blink_clue_lots")
+public class BlinkClueLotsDO extends BaseEntity {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 标段名称
+     */
+    private String lotsName;
+
+    /**
+     * 标段类型
+     */
+    private Integer lotsType;
+
+    /**
+     * 标段编码
+     */
+    private String lotsCode;
+
+    /**
+     * 线索ID
+     */
+    private Long clueId;
+
+    /**
+     * 项目预算(概算金额【万】)
+     */
+    private String projectBudget;
+
+    /**
+     * 预计招标日期
+     */
+    private String tenderDate;
+
+    /**
+     * 竞争对手
+     */
+    private String competitor;
+
+    /**
+     * 描述
+     */
+    private String remark;
+
+    /**
+     * 归属营销人
+     */
+    private String belongMarketer;
+
+    /**
+     * 归属营销部门
+     */
+    private String belongMarketingDepartment;
+
+}

+ 71 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkClueLotsDTO.java

@@ -0,0 +1,71 @@
+package com.wx.blink.backend.domain.dto;
+
+import com.wx.blink.base.common.domain.BaseEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BlinkClueLotsDTO extends BaseEntity {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 标段名称
+     */
+    private String lotsName;
+
+    /**
+     * 标段类型
+     */
+    private Integer lotsType;
+
+    /**
+     * 标段编码
+     */
+    private String lotsCode;
+
+    /**
+     * 线索ID
+     */
+    private Long clueId;
+
+    /**
+     * 项目预算(概算金额【万】)
+     */
+    private BigDecimal projectBudgets;
+
+    /**
+     * 项目预算(概算金额【万】)
+     */
+    private String projectBudget;
+
+    /**
+     * 预计招标日期
+     */
+    private String tenderDate;
+
+    /**
+     * 竞争对手
+     */
+    private String competitor;
+
+    /**
+     * 描述
+     */
+    private String remark;
+
+    /**
+     * 归属营销人
+     */
+    private String belongMarketer;
+
+    /**
+     * 归属营销部门
+     */
+    private String belongMarketingDepartment;
+
+}

+ 14 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/qry/BlinkClueLotsQry.java

@@ -0,0 +1,14 @@
+package com.wx.blink.backend.domain.qry;
+
+import com.wx.blink.base.common.domain.PageParam;
+import lombok.Data;
+
+@Data
+public class BlinkClueLotsQry extends PageParam {
+
+    /**
+     * 线索ID
+     */
+    private Long clueId;
+
+}

+ 96 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkClueLotsServiceImpl.java

@@ -0,0 +1,96 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkClueLotsDO;
+import com.wx.blink.backend.domain.dto.BlinkClueLotsDTO;
+import com.wx.blink.backend.domain.qry.BlinkClueLotsQry;
+import com.wx.blink.backend.objectmapper.BlinkClueLotsMapper;
+import com.wx.blink.backend.repository.BlinkClueLotsRepository;
+import com.wx.blink.backend.service.IBlinkClueLotsService;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import com.wx.blink.base.common.util.BlinkEnumUtil;
+import com.wx.blink.base.common.util.BlinkPageUtil;
+import com.wx.blink.base.module.support.serialnumber.constant.SerialNumberIdEnum;
+import com.wx.blink.base.module.support.serialnumber.service.SerialNumberService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.text.DecimalFormat;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class BlinkClueLotsServiceImpl extends ServiceImpl<BlinkClueLotsRepository, BlinkClueLotsDO> implements IBlinkClueLotsService {
+
+    @Resource
+    private BlinkClueLotsRepository repository;
+    @Resource
+    private BlinkClueLotsMapper mapper;
+    @Resource
+    private SerialNumberService serialNumberService;
+
+    /**
+     * 新增标段
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public ResponseDTO<String> supportsClueLotsCreate(BlinkClueLotsDTO dto) {
+        // 验证标段是否重复
+        BlinkClueLotsDO clueLotsDO = repository.queryByLotsName(dto.getLotsName(), null, dto.getClueId(), Boolean.FALSE);
+        if (Objects.nonNull(clueLotsDO)) {
+            return ResponseDTO.dataErrorParam("标段名称重复!请检查");
+        }
+        // 生成DO
+        BlinkClueLotsDO lotsDO = new BlinkClueLotsDO();
+        mapper.toBlinkClueLotsDO(dto, lotsDO);
+        //生成标段编码ID
+        SerialNumberIdEnum serialNumberIdEnum = BlinkEnumUtil.getEnumByValue(4, SerialNumberIdEnum.class);
+        lotsDO.setLotsCode(serialNumberService.generate(serialNumberIdEnum));
+        // 设置概算金额【万】
+        DecimalFormat df = new DecimalFormat("#,##0.00");
+        lotsDO.setProjectBudget(df.format(dto.getProjectBudgets()));
+        // 创建人赋值
+        BlinkEntityUtil.setCreateInfo(lotsDO);
+        // 执行新增
+        this.save(lotsDO);
+        return ResponseDTO.ok();
+    }
+
+    /**
+     * 查询标段列表
+     *
+     * @param qry
+     * @return
+     */
+    @Override
+    public ResponseDTO<PageResult<BlinkClueLotsDTO>> supportsClueLotsQueryPage(BlinkClueLotsQry qry) {
+        Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
+        List<BlinkClueLotsDTO> clueLotsDTOS = repository.supportsClueLotsQueryPage(page, qry);
+        PageResult<BlinkClueLotsDTO> pageResult = BlinkPageUtil.convert2PageResult(page, clueLotsDTOS);
+        return ResponseDTO.ok(pageResult);
+    }
+
+    /**
+     * 获取标段信息
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public ResponseDTO<BlinkClueLotsDTO> supportsClueLotsQuery(Long id) {
+        // 验证标段是否重复
+        BlinkClueLotsDO clueLotsDO = repository.queryByLotsName(null, id, null, Boolean.FALSE);
+        if (!Objects.nonNull(clueLotsDO)) {
+            return ResponseDTO.dataErrorParam("标段不存在!请检查");
+        }
+        BlinkClueLotsDTO dto = new BlinkClueLotsDTO();
+        mapper.toBlinkClueLotsDTO(clueLotsDO, dto);
+        return ResponseDTO.ok(dto);
+    }
+
+}

+ 29 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkClueLotsMapper.java

@@ -0,0 +1,29 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkClueLotsDO;
+import com.wx.blink.backend.domain.dto.BlinkClueLotsDTO;
+import com.wx.blink.base.common.util.BlinkStringUtil;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+
+@Mapper(componentModel = "spring", imports = {BlinkStringUtil.class})
+public interface BlinkClueLotsMapper {
+
+    /**
+     * 标段主数据dto转do
+     *
+     * @param dto
+     * @return
+     */
+    void toBlinkClueLotsDO(BlinkClueLotsDTO dto, @MappingTarget BlinkClueLotsDO clueLotsDO);
+
+    /**
+     * 标段主数据dto转do
+     *
+     * @param dto
+     * @return
+     */
+    void toBlinkClueLotsDTO(BlinkClueLotsDO clueLotsDO, @MappingTarget BlinkClueLotsDTO dto);
+
+
+}

+ 33 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkClueLotsRepository.java

@@ -0,0 +1,33 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.backend.domain.dataobject.BlinkClueLotsDO;
+import com.wx.blink.backend.domain.dto.BlinkClueLotsDTO;
+import com.wx.blink.backend.domain.qry.BlinkClueLotsQry;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface BlinkClueLotsRepository extends BaseMapper<BlinkClueLotsDO> {
+
+    /**
+     * 验证标段是否重复
+     *
+     * @param lotsName
+     * @param deletedFlag
+     * @param id
+     * @return
+     */
+    BlinkClueLotsDO queryByLotsName(@Param("lotsName") String lotsName, @Param("id") Long id, @Param("clueId") Long clueId, @Param("deletedFlag") Boolean deletedFlag);
+
+    /**
+     * 查询标段列表
+     *
+     * @param qry
+     * @return
+     */
+    List<BlinkClueLotsDTO> supportsClueLotsQueryPage(Page<?> page, @Param("query") BlinkClueLotsQry qry);
+}

+ 33 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkClueLotsService.java

@@ -0,0 +1,33 @@
+package com.wx.blink.backend.service;
+
+import com.wx.blink.backend.domain.dto.BlinkClueLotsDTO;
+import com.wx.blink.backend.domain.qry.BlinkClueLotsQry;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+public interface IBlinkClueLotsService {
+
+    /**
+     * 新增标段
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> supportsClueLotsCreate(BlinkClueLotsDTO dto);
+
+    /**
+     * 查询标段列表
+     *
+     * @param qry
+     * @return
+     */
+    ResponseDTO<PageResult<BlinkClueLotsDTO>> supportsClueLotsQueryPage(BlinkClueLotsQry qry);
+
+    /**
+     * 获取标段信息
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<BlinkClueLotsDTO> supportsClueLotsQuery(Long id);
+}

+ 31 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkClueLotsRepositoryMapper.xml

@@ -0,0 +1,31 @@
+<?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="com.wx.blink.backend.repository.BlinkClueLotsRepository">
+    <!--    查询单个标段-->
+    <select id="queryByLotsName" resultType="com.wx.blink.backend.domain.dataobject.BlinkClueLotsDO">
+        select *
+        from blink_clue_lots
+        where deleted_flag = #{deletedFlag}
+        <if test="lotsName != null and lotsName != ''">
+            AND lots_name = #{lotsName}
+        </if>
+        <if test="id != null">
+            AND id = #{id}
+        </if>
+        <if test="clueId != null and clueId != ''">
+            AND clue_id = #{clueId}
+        </if>
+    </select>
+
+    <!--    查询标段列表-->
+    <select id="supportsClueLotsQueryPage" resultType="com.wx.blink.backend.domain.dto.BlinkClueLotsDTO">
+        select *
+        from blink_clue_lots
+        where deleted_flag = '0'
+        <if test="query.clueId != null and query.clueId != ''">
+            AND clue_id = #{query.clueId}
+        </if>
+        order by create_time desc
+    </select>
+
+</mapper>

+ 21 - 2
bound-link-api/sa-flow-common/src/main/java/com/cloud/sa/flow/commom/service/setting/StSettingService.java

@@ -100,6 +100,8 @@ public class StSettingService {
 
     private List<Map<String, String>> getQuerySData(StQueryMain singleQueryMain, String query, String queryMapField) {
         String sql = sqlGenerator.getQueryConcatSql(singleQueryMain.getQuerySql().replaceAll("\\s+$", "").replaceAll(";+$", ""), query);
+        //将所有连续的空白字符替换为一个空格
+        sql = sql.replaceAll("\\s{2,}", " ");
         if (StString.isNotEmpty(queryMapField)) {
             JSONArray jsonArray = JSONArray.parseArray(queryMapField);
             for (Object item : jsonArray) {
@@ -111,9 +113,26 @@ public class StSettingService {
                     value = StUserInfo.getUserCode();
                 }
                 if (value == null) {
-                    value = "";
+                    //value可能非必填,需要进行设置
+                    String fieldCode = key.replace("$", "").replace("{", "").replace("}", "");
+                    if (sql.contains("'%" + key + "%'") || sql.contains("'" + key + "%'") || sql.contains("'%" + key + "'")) {
+                        //like的情况
+                        value = "";
+                        sql = sql.replace(key, value);
+                    } else {
+                        if (sql.contains("'" + key + "'")) {
+                            key = "'" + key + "'";
+                        }
+                        sql = sql.replace(key, fieldCode);
+                        sql = sql.replace(fieldCode + "=" + fieldCode, "1=1")
+                                .replace(fieldCode + " = " + fieldCode, "1=1")
+                                .replace(fieldCode + " =" + fieldCode, "1=1")
+                                .replace(fieldCode + "= " + fieldCode, "1=1");
+                    }
+                } else {
+                    //有值,直接替换
+                    sql = sql.replace(key, value);
                 }
-                sql = sql.replace(key, value);
             }
         }
         return commonMapper.getQueryDataList(sql);