Ver Fonte

财务-销售与助理对应关系

yangzian há 3 anos atrás
pai
commit
b10236d36d

+ 2 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -235,6 +235,8 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/document/library/**", "anon");
         filterChainDefinitionMap.put("/rejected/audit/**", "anon");
 
+        filterChainDefinitionMap.put("/cwjsSaleAssistantInfo/**", "anon");
+
         // 添加自己的过滤器并且取名为jwt
         Map<String, Filter> filterMap = new HashMap<>(1);
         filterMap.put("jwt", new JwtFilter());

+ 205 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsSaleAssistantInfoController.java

@@ -0,0 +1,205 @@
+package org.jeecg.ctop.finance.policy.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
+import org.jeecg.ctop.finance.policy.service.ICwjsSaleAssistantInfoService;
+import org.jeecg.ctop.finance.policy.utils.Check;
+import org.jeecg.modules.system.service.ISysRoleService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * aaa
+ * @author jeecg-boot
+ * @date   2021-10-18
+ * @version V1.0
+ */
+@Slf4j
+@Api(tags="销售与销售助理关系")
+@RestController
+@RequestMapping("/cwjsSaleAssistantInfo")
+public class CwjsSaleAssistantInfoController {
+	@Autowired
+	private ICwjsSaleAssistantInfoService cwjsSaleAssistantInfoService;
+
+
+	 @Autowired
+	 private ISysRoleService roleService;
+
+
+
+	 /**
+	  * 分页列表查询
+	 * @param cwjsSaleAssistantInfo
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@ApiOperation(value="销售与销售助理关系-分页列表查询", notes="销售与销售助理对应关系-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<CwjsSaleAssistantInfo>> queryPageList(CwjsSaleAssistantInfo cwjsSaleAssistantInfo,
+															  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															  HttpServletRequest req) {
+		Result<IPage<CwjsSaleAssistantInfo>> result = new Result<>();
+		QueryWrapper<CwjsSaleAssistantInfo> queryWrapper = QueryGenerator.initQueryWrapper(cwjsSaleAssistantInfo, req.getParameterMap());
+		Page<CwjsSaleAssistantInfo> page = new Page<CwjsSaleAssistantInfo>(pageNo, pageSize);
+		IPage<CwjsSaleAssistantInfo> pageList = cwjsSaleAssistantInfoService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	/**
+	  *   添加
+	 * @param cwjsSaleAssistantInfo
+	 * @return
+	 */
+	@ApiOperation(value="销售与销售助理对应关系-添加", notes="销售与销售助理对应关系-添加")
+	@PostMapping(value = "/add")
+	public Result<CwjsSaleAssistantInfo> add(@RequestBody CwjsSaleAssistantInfo cwjsSaleAssistantInfo) {
+		Result<CwjsSaleAssistantInfo> result = new Result<>();
+		try {
+			cwjsSaleAssistantInfoService.save(cwjsSaleAssistantInfo);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	/**
+	  *  编辑
+	 * @param cwjsSaleAssistantInfo
+	 * @return
+	 */
+	@ApiOperation(value="销售与销售助理对应关系-编辑", notes="销售与销售助理对应关系-编辑")
+	@PostMapping(value = "/edit")
+	public Result<CwjsSaleAssistantInfo> edit(@RequestBody CwjsSaleAssistantInfo cwjsSaleAssistantInfo) {
+		Result<CwjsSaleAssistantInfo> result = new Result<CwjsSaleAssistantInfo>();
+		CwjsSaleAssistantInfo cwjsSaleAssistantInfoEntity = cwjsSaleAssistantInfoService.getById(cwjsSaleAssistantInfo.getId());
+		if(cwjsSaleAssistantInfoEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = cwjsSaleAssistantInfoService.updateById(cwjsSaleAssistantInfo);
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	@ApiOperation(value="销售与销售助理对应关系-通过id删除", notes="销售与销售助理对应关系-通过id删除")
+	@GetMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id") String id) {
+		try {
+			cwjsSaleAssistantInfoService.removeById(id);
+		} catch (Exception e) {
+			log.error("删除失败",e.getMessage());
+			return Result.error("删除失败!");
+		}
+		return Result.ok("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 * @param ids
+	 * @return
+	 */
+	@ApiOperation(value="销售与销售助理对应关系-批量删除", notes="销售与销售助理对应关系-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<CwjsSaleAssistantInfo> deleteBatch(@RequestParam(name="ids") String ids) {
+		Result<CwjsSaleAssistantInfo> result = new Result<>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.cwjsSaleAssistantInfoService.removeByIds(Arrays.asList(ids.split(",")));
+			result.success("删除成功!");
+		}
+		return result;
+	}
+
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@ApiOperation(value="销售与销售助理对应关系-通过id查询", notes="销售与销售助理对应关系-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<CwjsSaleAssistantInfo> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<CwjsSaleAssistantInfo> result = new Result<>();
+		CwjsSaleAssistantInfo cwjsSaleAssistantInfo = cwjsSaleAssistantInfoService.getById(id);
+		if(cwjsSaleAssistantInfo==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(cwjsSaleAssistantInfo);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+
+
+
+	 @ApiOperation(value="销售/销售助理下拉框", notes="销售/销售助理下拉框")
+	 @GetMapping(value = "/getSaleListByUserDepart")
+	 public Result<IPage<CwjsSaleAssistantInfo>> getSaleListByUserDepart(@RequestParam(name="userId") String userId) {
+	 	//查询用户角色
+		 String roleCode = roleService.getRoleCodeByUserId(userId);
+		 //管理员 查询全部
+		 if (StringUtils.equals("admin",roleCode)){
+		 	userId = null;
+		 }
+		return cwjsSaleAssistantInfoService.getSaleListByUserDepart(userId);
+
+	 }
+
+
+
+	 @ApiOperation(value="政策新增-销售回显下拉框", notes="政策新增-销售回显下拉框")
+	 @GetMapping(value = "/getCwSaleAndAssistantList")
+	 public Result<IPage<CwjsSaleAssistantInfo>> getCwSaleAndAssistantList(@RequestParam(name="userId") String userId) {
+		return cwjsSaleAssistantInfoService.getCwSaleAndAssistantList(userId);
+
+	 }
+
+
+}

+ 56 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsSaleAssistantInfo.java

@@ -0,0 +1,56 @@
+package org.jeecg.ctop.finance.policy.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * aaa
+ * @author jeecg-boot
+ * @date   2021-10-18
+ * @version V1.0
+ */
+@Data
+@TableName("ctop_cwjs_sale_assistant_info")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ctop_cwjs_sale_assistant_info对象", description="销售与销售助理对应关系")
+public class CwjsSaleAssistantInfo {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+	private Integer id;
+	/**销售人员id*/
+    @ApiModelProperty(value = "销售人员id")
+	private String saleId;
+	/**销售人员姓名*/
+    @ApiModelProperty(value = "销售人员姓名")
+	private String saleName;
+	/**销售助理id*/
+    @ApiModelProperty(value = "销售助理id")
+	private String assistantId;
+	/**销售助理名称*/
+    @ApiModelProperty(value = "销售助理名称")
+	private String assistantName;
+	/**是否 删除 0-否 1-是*/
+    @ApiModelProperty(value = "是否 删除 0-否 1-是")
+	private Integer delFlag;
+	/**createTime*/
+    @ApiModelProperty(value = "createTime")
+	private Date createTime;
+	/**updateTime*/
+    @ApiModelProperty(value = "updateTime")
+	private Date updateTime;
+}

+ 37 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsSaleAssistantInfoMapper.java

@@ -0,0 +1,37 @@
+package org.jeecg.ctop.finance.policy.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
+
+/**
+ * aaa
+ * @author jeecg-boot
+ * 2021-10-18
+ * @version V1.0
+ */
+public interface CwjsSaleAssistantInfoMapper extends BaseMapper<CwjsSaleAssistantInfo> {
+
+    /**
+     * 根据用户部门查看该部门下的人员
+     * @param userId
+     * @return
+     */
+    List <CwjsSaleAssistantInfo> getSaleListByUserDepart(String userId);
+
+    /**
+     * 查询对应销售
+     * @param userId
+     * @return
+     */
+    List <CwjsSaleAssistantInfo> getCwSaleNameList(String userId);
+
+    /**
+     * 查询对应销售助理
+     * @param userId
+     * @return
+     */
+    List <CwjsSaleAssistantInfo> getCwAssistantNameList(String userId);
+}

+ 83 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsSaleAssistantInfoMapper.xml

@@ -0,0 +1,83 @@
+<?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.jeecg.ctop.finance.policy.mapper.CwjsSaleAssistantInfoMapper">
+
+
+    <!-- 根据用户部门查看该部门下的人员-->
+    <select id="getSaleListByUserDepart" resultType="org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo">
+        SELECT
+            id as saleId,
+            realname as saleName
+        FROM
+            sys_user
+        WHERE
+            STATUS = 1
+          AND del_flag = 0
+          AND org_code IN (
+            SELECT
+                u.org_code
+            FROM
+                sys_user u,
+                sys_depart d
+            WHERE
+                u.org_code = d.org_code
+              AND d.del_flag = 0
+            AND u.status = 1
+            AND u.del_flag = 0
+              <choose>
+                <when test="userId !=null and userId != ''">
+                    AND u.id = #{userId}
+                </when>
+                <otherwise>
+                    AND ( d.depart_name LIKE '%销售%' OR d.depart_name LIKE '%渠道%' )
+                </otherwise>
+              </choose>
+            GROUP BY
+                d.id
+        )
+        ORDER BY
+            create_time
+    </select>
+
+<!--查询对应销售 -->
+    <select id="getCwSaleNameList" resultType="org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo">
+        SELECT
+            u.id AS sale_id,
+            u.realname AS sale_name
+        FROM
+            sys_user u
+        WHERE
+                u.id IN ( SELECT s.sale_id FROM ctop_cwjs_sale_assistant_info s WHERE s.del_flag = 0
+                            <if test="userId !=null and userId != ''">
+                                AND s.sale_id = #{userId}
+                            </if>
+                        )
+        <if test="userId !=null and userId != ''">
+            OR u.id = #{userId};
+        </if>
+        GROUP BY u.create_time DESC
+
+
+    </select>
+    <!--查询对应销售助理 -->
+    <select id="getCwAssistantNameList" resultType="org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo">
+        SELECT
+            u.id AS sale_id,
+            u.realname as sale_name
+        FROM
+            sys_user u
+        WHERE
+                u.id IN ( SELECT s.sale_id FROM ctop_cwjs_sale_assistant_info s WHERE s.del_flag = 0
+                            <if test="userId !=null and userId != ''">
+                                AND s.assistant_id = #{userId}
+                            </if>
+                        )
+        <if test="userId !=null and userId != ''">
+            OR u.id = #{userId};
+        </if>
+        GROUP BY u.create_time DESC
+    </select>
+
+
+
+</mapper>

+ 23 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsSaleAssistantInfoService.java

@@ -0,0 +1,23 @@
+package org.jeecg.ctop.finance.policy.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * aaa
+ * @author jeecg-boot
+ * 2021-10-18
+ * @version V1.0
+ */
+public interface ICwjsSaleAssistantInfoService extends IService<CwjsSaleAssistantInfo> {
+
+    Result getSaleListByUserDepart(String userId);
+
+    Result getCwSaleAndAssistantList(String userId);
+
+}

+ 78 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsSaleAssistantInfoServiceImpl.java

@@ -0,0 +1,78 @@
+package org.jeecg.ctop.finance.policy.service.impl;
+
+import cn.com.ctop.common.module.mapper.SysRoleMapper;
+import cn.com.ctop.common.module.mapper.SysUserMapper;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.ctop.finance.policy.entity.CwjsSaleAssistantInfo;
+import org.jeecg.ctop.finance.policy.mapper.CwjsSaleAssistantInfoMapper;
+import org.jeecg.ctop.finance.policy.service.ICwjsSaleAssistantInfoService;
+import org.jeecg.ctop.finance.policy.utils.Check;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
+
+/**
+ * aaa
+ * @author jeecg-boot
+ * 2021-10-18
+ * @version V1.0
+ */
+@Service
+public class CwjsSaleAssistantInfoServiceImpl extends ServiceImpl<CwjsSaleAssistantInfoMapper, CwjsSaleAssistantInfo> implements ICwjsSaleAssistantInfoService {
+
+
+    @Resource
+    private  CwjsSaleAssistantInfoMapper cwjsSaleAssistantInfoMapper;
+
+    @Resource
+    private SysRoleMapper roleMapper;
+
+    @Override
+    public Result getSaleListByUserDepart(String userId) {
+        List <CwjsSaleAssistantInfo> list = cwjsSaleAssistantInfoMapper.getSaleListByUserDepart(userId);
+        return Result.successMsg("查询成功。",list);
+    }
+
+
+
+    public Result getCwSaleAndAssistantList(String userId){
+        List<CwjsSaleAssistantInfo> resultList = new ArrayList();
+        String roleCode = roleMapper.getRoleCodeByUserId(userId);
+        //管理员 查询全部
+        if (StringUtils.equals("admin",roleCode)){
+            CwjsSaleAssistantInfo info = new CwjsSaleAssistantInfo();
+            info.setSaleId(userId);
+            info.setSaleName("管理员");
+            resultList.add(info);//追加 管理员
+            userId = null;
+            //查询 销售
+            List <CwjsSaleAssistantInfo> saleList = cwjsSaleAssistantInfoMapper.getCwSaleNameList(userId);
+            resultList.addAll(saleList);
+            //查询助理
+            List <CwjsSaleAssistantInfo> assistantList = cwjsSaleAssistantInfoMapper.getCwAssistantNameList(userId);
+            resultList.addAll(assistantList);
+            resultList = resultList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CwjsSaleAssistantInfo :: getSaleId))),ArrayList :: new));
+            return Result.successMsg("查询成功-管理员。",resultList);
+        }
+        //查询助理
+        List <CwjsSaleAssistantInfo> assistantList = cwjsSaleAssistantInfoMapper.getCwAssistantNameList(userId);
+        //如果该用户是 助理角色 则 对应的销售加自己的id list 必然 > 2
+        if (assistantList.size() < 2){
+            return Result.successMsg("查询成功-销售。",cwjsSaleAssistantInfoMapper.getCwSaleNameList(userId));
+        }
+        return Result.successMsg("查询成功-助理。",assistantList);
+
+
+    }
+
+
+}