From 0d15a761181fded7a6512e4146e5156725fde1f7 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 19 十一月 2022 09:00:00 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/crm/manager/service/impl/PlanServiceImpl.java | 55 ++++++++
src/main/resources/mapper/PlanMapper.xml | 60 +++++++++
src/main/java/com/zy/crm/manager/controller/PlanController.java | 50 ++------
src/main/webapp/static/js/plan/plan.js | 140 ++---------------------
src/main/java/com/zy/crm/manager/service/PlanService.java | 9 +
src/main/java/com/zy/crm/manager/entity/Plan.java | 12 +-
src/main/java/com/zy/crm/manager/mapper/PlanMapper.java | 12 +
7 files changed, 161 insertions(+), 177 deletions(-)
diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java
index 29631d1..2936d2e 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -7,7 +7,6 @@
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
-import com.core.common.DateUtils;
import com.core.common.R;
import com.core.domain.KeyValueVo;
import com.zy.crm.common.web.BaseController;
@@ -33,33 +32,19 @@
return R.ok(planService.selectById(String.valueOf(id)));
}
- @RequestMapping(value = "/plan/list/auth")
+ @RequestMapping(value = "/plan/page/auth")
@ManagerAuth
- public R list(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam(required = false)String condition,
- @RequestParam Map<String, Object> param){
- EntityWrapper<Plan> wrapper = new EntityWrapper<>();
- excludeTrash(param);
- convert(param, wrapper);
- allLike(Plan.class, param.keySet(), wrapper, condition);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
- return R.ok(planService.selectPage(new Page<>(curr, limit), wrapper));
- }
-
- private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
- for (Map.Entry<String, Object> entry : map.entrySet()){
- String val = String.valueOf(entry.getValue());
- if (val.contains(RANGE_TIME_LINK)){
- String[] dates = val.split(RANGE_TIME_LINK);
- wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
- wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
- } else {
- wrapper.like(entry.getKey(), val);
- }
- }
+ public R page(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String condition,
+ @RequestParam(required = false, value = "dept_id") Long deptId,
+ @RequestParam(required = false, value = "user_id") Long userId) {
+ return R.ok(planService.getPage(new Page<>(curr, limit)
+ , getHostId()
+ , deptId == null ? null : String.valueOf(deptId)
+ , userId == null ? getUserId() : userId
+ , condition)
+ );
}
@RequestMapping(value = "/plan/add/auth")
@@ -86,17 +71,6 @@
planService.deleteById(id);
}
return R.ok();
- }
-
- @RequestMapping(value = "/plan/export/auth")
- @ManagerAuth
- public R export(@RequestBody JSONObject param){
- EntityWrapper<Plan> wrapper = new EntityWrapper<>();
- List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
- Map<String, Object> map = excludeTrash(param.getJSONObject("plan"));
- convert(map, wrapper);
- List<Plan> list = planService.selectList(wrapper);
- return R.ok(exportSupport(list, fields));
}
@RequestMapping(value = "/planQuery/auth")
diff --git a/src/main/java/com/zy/crm/manager/entity/Plan.java b/src/main/java/com/zy/crm/manager/entity/Plan.java
index f73dec4..355652f 100644
--- a/src/main/java/com/zy/crm/manager/entity/Plan.java
+++ b/src/main/java/com/zy/crm/manager/entity/Plan.java
@@ -113,6 +113,12 @@
private Integer beItem;
/**
+ * 琛ㄥ崟鍐呭
+ */
+ @ApiModelProperty(value= "琛ㄥ崟鍐呭")
+ private String form;
+
+ /**
* 瑙勫垝鍛�
*/
@ApiModelProperty(value= "瑙勫垝鍛�")
@@ -125,12 +131,6 @@
@TableField("finish_time")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date finishTime;
-
- /**
- * 琛ㄥ崟鍐呭
- */
- @ApiModelProperty(value= "琛ㄥ崟鍐呭")
- private String form;
/**
* 鏇存敼鏂规 1: 鏄� 0: 鍚�
diff --git a/src/main/java/com/zy/crm/manager/mapper/PlanMapper.java b/src/main/java/com/zy/crm/manager/mapper/PlanMapper.java
index bbd587a..9199dc0 100644
--- a/src/main/java/com/zy/crm/manager/mapper/PlanMapper.java
+++ b/src/main/java/com/zy/crm/manager/mapper/PlanMapper.java
@@ -1,12 +1,22 @@
package com.zy.crm.manager.mapper;
-import com.zy.crm.manager.entity.Plan;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.zy.crm.manager.entity.Plan;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+
+import java.util.List;
@Mapper
@Repository
public interface PlanMapper extends BaseMapper<Plan> {
+ Plan selectByUuid(@Param("hostId") Long hostId, @Param("uuid") String uuid);
+
+ Plan selectPlanByNewestUuid(@Param("hostId") Long hostId);
+
+ List<Plan> listByPage(Page<Plan> page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("userId") Long userId , @Param("condition") String condition);
+
}
diff --git a/src/main/java/com/zy/crm/manager/service/PlanService.java b/src/main/java/com/zy/crm/manager/service/PlanService.java
index cf0f278..bb6ba37 100644
--- a/src/main/java/com/zy/crm/manager/service/PlanService.java
+++ b/src/main/java/com/zy/crm/manager/service/PlanService.java
@@ -1,8 +1,15 @@
package com.zy.crm.manager.service;
-import com.zy.crm.manager.entity.Plan;
+import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
+import com.zy.crm.manager.entity.Plan;
public interface PlanService extends IService<Plan> {
+ Plan selectByUuid(Long hostId, String uuid);
+
+ String getUuid(Long hostId);
+
+ Page<Plan> getPage(Page<Plan> page, Long hostId, String deptId, Long userId, String condition);
+
}
diff --git a/src/main/java/com/zy/crm/manager/service/impl/PlanServiceImpl.java b/src/main/java/com/zy/crm/manager/service/impl/PlanServiceImpl.java
index d9cae79..b374ea7 100644
--- a/src/main/java/com/zy/crm/manager/service/impl/PlanServiceImpl.java
+++ b/src/main/java/com/zy/crm/manager/service/impl/PlanServiceImpl.java
@@ -1,12 +1,61 @@
package com.zy.crm.manager.service.impl;
-import com.zy.crm.manager.mapper.PlanMapper;
-import com.zy.crm.manager.entity.Plan;
-import com.zy.crm.manager.service.PlanService;
+import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.zy.crm.manager.entity.Plan;
+import com.zy.crm.manager.mapper.PlanMapper;
+import com.zy.crm.manager.service.PlanService;
import org.springframework.stereotype.Service;
@Service("planService")
public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
+ @Override
+ public Plan selectByUuid(Long hostId, String uuid) {
+ return this.baseMapper.selectByUuid(hostId, uuid);
+ }
+
+ @Override
+ public String getUuid(Long hostId) {
+ String uuid = null;
+ int times = 0;
+ while (Cools.isEmpty(uuid)) {
+ if (times > 100) { break; }
+ String nextUuid = getNextUuid(hostId);
+ if (selectByUuid(hostId, nextUuid) == null) {
+ uuid = nextUuid;
+ }
+ times ++;
+ }
+ return uuid;
+ }
+
+ @Override
+ public Page<Plan> getPage(Page<Plan> page, Long hostId, String deptId, Long userId, String condition) {
+ return page.setRecords(baseMapper.listByPage(page, hostId, deptId, userId, condition));
+ }
+
+ private String getNextUuid(Long hostId) {
+ Plan plan = this.baseMapper.selectPlanByNewestUuid(hostId);
+ if (plan == null) {
+ return "0001";
+ }
+ return zerofill(String.valueOf(Integer.parseInt(plan.getUuid()) + 1), 4);
+ }
+
+ public static String zerofill(String msg, Integer count){
+ if (msg.length() == count){
+ return msg;
+ } else if (msg.length() > count){
+ return msg.substring(0, 16);
+ } else {
+ StringBuilder msgBuilder = new StringBuilder(msg);
+ for (int i = 0; i<count-msg.length(); i++){
+ msgBuilder.insert(0,"0");
+ }
+ return msgBuilder.toString();
+ }
+ }
+
}
diff --git a/src/main/resources/mapper/PlanMapper.xml b/src/main/resources/mapper/PlanMapper.xml
index be12701..20b1160 100644
--- a/src/main/resources/mapper/PlanMapper.xml
+++ b/src/main/resources/mapper/PlanMapper.xml
@@ -16,9 +16,9 @@
<result column="apple_time" property="appleTime" />
<result column="plan_need" property="planNeed" />
<result column="be_item" property="beItem" />
+ <result column="form" property="form" />
<result column="planner" property="planner" />
<result column="finish_time" property="finishTime" />
- <result column="form" property="form" />
<result column="change" property="change" />
<result column="change_time" property="changeTime" />
<result column="change_reason" property="changeReason" />
@@ -37,4 +37,62 @@
</resultMap>
+ <select id="selectByUuid" resultMap="BaseResultMap">
+ select * from man_plan
+ where 1=1
+ and uuid = #{uuid}
+ <if test="hostId != null">
+ and host_id = #{hostId}
+ </if>
+ </select>
+
+ <select id="selectPlanByNewestUuid" resultMap="BaseResultMap">
+ select top 1 * from man_plan
+ where 1=1
+ <if test="hostId != null">
+ and host_id = #{hostId}
+ </if>
+ order by uuid + 0 desc
+ </select>
+
+ <select id="listByPage" resultMap="BaseResultMap">
+ SELECT
+ mp.*
+ FROM man_plan mp
+ LEFT JOIN sys_dept sd ON mp.dept_id = sd.id
+ WHERE 1=1
+ <choose>
+ <when test="deptId != null and deptId != ''">
+ AND (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
+ </when>
+ <otherwise>
+ and
+ (
+ user_id = #{userId}
+ or
+ mp.id in
+ (
+ select
+ order_id
+ from man_order_foll
+ where 1=1
+ and user_id = #{userId}
+ )
+ )
+ </otherwise>
+ </choose>
+ <if test="hostId != null">
+ and mp.host_id = #{hostId}
+ </if>
+ <if test="condition != null and condition != ''">
+ and (
+ mp.uuid like concat('%',#{condition},'%')
+ or mp.name like concat('%',#{condition},'%')
+ or mp.planner like concat('%',#{condition},'%')
+ or mp.remarks like concat('%',#{condition},'%')
+ )
+ </if>
+ ORDER BY mp.create_time DESC
+ </select>
+
</mapper>
diff --git a/src/main/webapp/static/js/plan/plan.js b/src/main/webapp/static/js/plan/plan.js
index 659d3ea..d0b73ea 100644
--- a/src/main/webapp/static/js/plan/plan.js
+++ b/src/main/webapp/static/js/plan/plan.js
@@ -18,7 +18,7 @@
tableIns = table.render({
elem: '#plan',
headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/plan/list/auth',
+ url: baseUrl+'/plan/page/auth',
page: true,
limit: 15,
limits: [15, 30, 50, 100, 200, 500],
@@ -27,17 +27,18 @@
height: 'full-120',
cols: [[
{type: 'checkbox'}
- ,{field: 'id', align: 'center',title: 'ID'}
- ,{field: 'hostId$', align: 'center',title: '鎵�灞炲晢鎴�'}
- ,{field: 'deptId$', align: 'center',title: '鎵�灞為儴闂�'}
- ,{field: 'planType$', align: 'center',title: '涓氬姟绫诲瀷'}
+ // ,{field: 'id', align: 'center',title: 'ID'}
+ // ,{field: 'hostId$', align: 'center',title: '鎵�灞炲晢鎴�'}
,{field: 'userId$', align: 'center',title: '涓氬姟鍛�'}
+ ,{field: 'planType$', align: 'center',title: '涓氬姟绫诲瀷'}
+ ,{field: 'name', align: 'center',title: '鍞墠瑙勫垝鐢宠鍗曞悕绉�'}
+ ,{field: 'planNeed$', align: 'center',title: '鎵�闇�'}
+ ,{field: 'deptId$', align: 'center',title: '鎵�灞為儴闂�'}
,{field: 'orderId$', align: 'center',title: '璺熻釜椤圭洰'}
,{field: 'cstmrId$', align: 'center',title: '鐢叉柟鍗曚綅'}
,{field: 'uuid', align: 'center',title: '瑙勫垝鍗曚唬鍙�'}
- ,{field: 'name', align: 'center',title: '瑙勫垝鍗曞悕绉�'}
,{field: 'appleTime$', align: 'center',title: '鐢宠鏃ユ湡'}
- ,{field: 'planNeed$', align: 'center',title: '鏂规鎵�闇�'}
+
,{field: 'beItem$', align: 'center',title: '绔嬮」'}
,{field: 'planner', align: 'center',title: '瑙勫垝鍛�'}
,{field: 'finishTime$', align: 'center',title: '瀹屾垚鏃堕棿'}
@@ -47,13 +48,11 @@
,{field: 'changeReason', align: 'center',title: '鏇存敼鏂规鍘熷洜'}
,{field: 'planBonus', align: 'center',title: '瑙勬牸濂栭噾'}
,{field: 'planLeaderBonus', align: 'center',title: '瑙勬牸缁勯暱濂栭噾'}
- ,{field: 'files', align: 'center',title: '闄勪欢'}
- ,{field: 'settle$', align: 'center',title: '杩涘害'}
- ,{field: 'settleMsg', align: 'center',title: '瀹℃牳杩涘害'}
- ,{field: 'comment', align: 'center',title: '璇勮'}
- ,{field: 'status$', align: 'center',title: '鐘舵��'}
- ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
- ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'files', align: 'center',title: '闄勪欢'}
+ // ,{field: 'settle$', align: 'center',title: '杩涘害'}
+ // ,{field: 'settleMsg', align: 'center',title: '瀹℃牳杩涘害'}
+ // ,{field: 'comment', align: 'center',title: '璇勮'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
,{field: 'memo', align: 'center',title: '娉ㄩ噴'}
@@ -280,34 +279,6 @@
}
layDateRender();
- window.loadHostSel = function () {
- return xmSelect.render({
- el: '#hostXmlSel',
- autoRow: true,
- filterable: true,
- remoteSearch: true,
- radio: true,
- remoteMethod: function (val, cb, show) {
- $.ajax({
- url: baseUrl + "/host/all/get/kv",
- headers: {'token': localStorage.getItem('token')},
- data: {
- condition: val
- },
- method: 'POST',
- success: function (res) {
- if (res.code === 200) {
- cb(res.data)
- } else {
- cb([]);
- layer.msg(res.msg, {icon: 2});
- }
- }
- });
- }
- });
- }
-
window.loadDeptSel = function () {
return xmSelect.render({
el: '#deptXmlSel',
@@ -346,62 +317,6 @@
remoteMethod: function (val, cb, show) {
$.ajax({
url: baseUrl + "/planType/all/get/kv",
- headers: {'token': localStorage.getItem('token')},
- data: {
- condition: val
- },
- method: 'POST',
- success: function (res) {
- if (res.code === 200) {
- cb(res.data)
- } else {
- cb([]);
- layer.msg(res.msg, {icon: 2});
- }
- }
- });
- }
- });
- }
-
- window.loadUserSel = function () {
- return xmSelect.render({
- el: '#userXmlSel',
- autoRow: true,
- filterable: true,
- remoteSearch: true,
- radio: true,
- remoteMethod: function (val, cb, show) {
- $.ajax({
- url: baseUrl + "/user/all/get/kv",
- headers: {'token': localStorage.getItem('token')},
- data: {
- condition: val
- },
- method: 'POST',
- success: function (res) {
- if (res.code === 200) {
- cb(res.data)
- } else {
- cb([]);
- layer.msg(res.msg, {icon: 2});
- }
- }
- });
- }
- });
- }
-
- window.loadUserSel = function () {
- return xmSelect.render({
- el: '#userXmlSel',
- autoRow: true,
- filterable: true,
- remoteSearch: true,
- radio: true,
- remoteMethod: function (val, cb, show) {
- $.ajax({
- url: baseUrl + "/user/all/get/kv",
headers: {'token': localStorage.getItem('token')},
data: {
condition: val
@@ -503,35 +418,6 @@
}
});
}
-
- window.loadUserSel = function () {
- return xmSelect.render({
- el: '#userXmlSel',
- autoRow: true,
- filterable: true,
- remoteSearch: true,
- radio: true,
- remoteMethod: function (val, cb, show) {
- $.ajax({
- url: baseUrl + "/user/all/get/kv",
- headers: {'token': localStorage.getItem('token')},
- data: {
- condition: val
- },
- method: 'POST',
- success: function (res) {
- if (res.code === 200) {
- cb(res.data)
- } else {
- cb([]);
- layer.msg(res.msg, {icon: 2});
- }
- }
- });
- }
- });
- }
-
});
--
Gitblit v1.9.1