Browse Source

公出审核自己BUG修复

anderx 2 years ago
parent
commit
185bb0f7a3

+ 157 - 0
src/main/java/com/goafanti/admin/bo/ConsultantStatisticsBo.java

@@ -0,0 +1,157 @@
+package com.goafanti.admin.bo;
+
+public class ConsultantStatisticsBo {
+    private String aid;
+    private Integer projectCount;
+    private Integer inProgress;
+    private Integer complete;
+    private Integer stop;
+    private Integer countPublicRelease;
+    private Integer countAssist;
+    private Integer notStarted;
+    private Integer rangeProjectCount;
+    private Integer rangeInProgress;
+    private Integer rangeComplete;
+    private Integer rangeStop;
+    private Integer rangeCountPublicRelease;
+    private Integer rangeCountAssist;
+    private Integer rangeNotStarted;
+    private Integer countChange;
+    private Integer orderPayment;
+
+    public Integer getRangeProjectCount() {
+        return rangeProjectCount;
+    }
+
+    public void setRangeProjectCount(Integer rangeProjectCount) {
+        this.rangeProjectCount = rangeProjectCount;
+    }
+
+    public Integer getRangeInProgress() {
+        return rangeInProgress;
+    }
+
+    public void setRangeInProgress(Integer rangeInProgress) {
+        this.rangeInProgress = rangeInProgress;
+    }
+
+    public Integer getRangeComplete() {
+        return rangeComplete;
+    }
+
+    public void setRangeComplete(Integer rangeComplete) {
+        this.rangeComplete = rangeComplete;
+    }
+
+    public Integer getRangeStop() {
+        return rangeStop;
+    }
+
+    public void setRangeStop(Integer rangeStop) {
+        this.rangeStop = rangeStop;
+    }
+
+    public Integer getRangeCountPublicRelease() {
+        return rangeCountPublicRelease;
+    }
+
+    public void setRangeCountPublicRelease(Integer rangeCountPublicRelease) {
+        this.rangeCountPublicRelease = rangeCountPublicRelease;
+    }
+
+    public Integer getRangeCountAssist() {
+        return rangeCountAssist;
+    }
+
+    public void setRangeCountAssist(Integer rangeCountAssist) {
+        this.rangeCountAssist = rangeCountAssist;
+    }
+
+    public Integer getRangeNotStarted() {
+        return rangeNotStarted;
+    }
+
+    public void setRangeNotStarted(Integer rangeNotStarted) {
+        this.rangeNotStarted = rangeNotStarted;
+    }
+
+    public Integer getProjectCount() {
+        return projectCount;
+    }
+
+    public void setProjectCount(Integer projectCount) {
+        this.projectCount = projectCount;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public Integer getInProgress() {
+        return inProgress;
+    }
+
+    public void setInProgress(Integer inProgress) {
+        this.inProgress = inProgress;
+    }
+
+    public Integer getComplete() {
+        return complete;
+    }
+
+    public void setComplete(Integer complete) {
+        this.complete = complete;
+    }
+
+    public Integer getStop() {
+        return stop;
+    }
+
+    public void setStop(Integer stop) {
+        this.stop = stop;
+    }
+
+    public Integer getCountPublicRelease() {
+        return countPublicRelease;
+    }
+
+    public void setCountPublicRelease(Integer countPublicRelease) {
+        this.countPublicRelease = countPublicRelease;
+    }
+
+    public Integer getCountAssist() {
+        return countAssist;
+    }
+
+    public void setCountAssist(Integer countAssist) {
+        this.countAssist = countAssist;
+    }
+
+    public Integer getCountChange() {
+        return countChange;
+    }
+
+    public void setCountChange(Integer countChange) {
+        this.countChange = countChange;
+    }
+
+    public Integer getNotStarted() {
+        return notStarted;
+    }
+
+    public void setNotStarted(Integer notStarted) {
+        this.notStarted = notStarted;
+    }
+
+    public Integer getOrderPayment() {
+        return orderPayment;
+    }
+
+    public void setOrderPayment(Integer orderPayment) {
+        this.orderPayment = orderPayment;
+    }
+}

+ 20 - 4
src/main/java/com/goafanti/admin/controller/AdminStatisticsController.java

@@ -41,14 +41,30 @@ public class AdminStatisticsController extends CertifyApiController {
         return res;
     }
 
+
+    /**
+     * 咨询师首页信息
+     * @param startTime  开始时间
+     * @param endTime  结束时间
+     * @return
+     */
+    @RequestMapping(value = "/consultant/info", method = RequestMethod.GET)
+    public Result consultantInfo(String startTime,String endTime) {
+        Result res =new Result();
+        res.data(adminStatisticsService.consultantInfo(startTime, endTime));
+        return res;
+
+    }
+
     /**
-     * 营销首页信息清除
+     * 营销首页折线图
      * @return
      */
-    @RequestMapping(value = "/lists/clean", method = RequestMethod.GET)
-    public Result listsClean () {
+    @RequestMapping(value = "/consultant/lists", method = RequestMethod.GET)
+    public Result consultantLists() {
         Result res =new Result();
-        res.data(adminStatisticsService.listsClean(TokenManager.getAdminId()));
+        res.data(adminStatisticsService.lists(TokenManager.getAdminId()));
         return res;
     }
+
 }

+ 1 - 1
src/main/java/com/goafanti/admin/service/AdminStatisticsService.java

@@ -5,5 +5,5 @@ public interface AdminStatisticsService {
 
     Object lists(String aid);
 
-    Object listsClean(String adminId);
+    Object consultantInfo(String startTime, String endTime);
 }

+ 20 - 6
src/main/java/com/goafanti/admin/service/impl/AdminStatisticsServiceImpl.java

@@ -1,15 +1,14 @@
 package com.goafanti.admin.service.impl;
 
 import com.goafanti.admin.bo.AdminStatisticsBo;
+import com.goafanti.admin.bo.ConsultantStatisticsBo;
 import com.goafanti.admin.service.AdminStatisticsService;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.AdminMapper;
 import com.goafanti.common.model.AdminUserCount;
 import com.goafanti.common.utils.DateUtils;
-import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.core.shiro.token.TokenManager;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -117,12 +116,27 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
     }
 
     @Override
-    @CacheEvict(value = "adminStatisticeLists#300", key = "'key:'+#aid")
-    public Object listsClean(String aid) {
-        LoggerUtils.debug(getClass(), "管理员信息统计缓存清除。");
-        return 1;
+    public Object consultantInfo(String startTime, String endTime) {
+        String aid=TokenManager.getAdminId();
+        endTime=endTime+" 23:59:59";
+        ConsultantStatisticsBo res = adminMapper.consultantStatisticsInfo(aid);
+        if (res.getCountPublicRelease()==null)res.setCountPublicRelease(0);
+        if (res.getOrderPayment()==null)res.setOrderPayment(0);
+        ConsultantStatisticsBo asb = adminMapper.consultantStatisticsInfoByTime(aid, startTime, endTime);
+        if (asb!=null){
+            res.setRangeProjectCount(asb.getProjectCount());
+            res.setRangeInProgress(asb.getInProgress());
+            res.setRangeNotStarted(asb.getNotStarted());
+            res.setRangeComplete(asb.getComplete());
+            res.setRangeStop(asb.getStop());
+            res.setRangeCountPublicRelease(asb.getCountPublicRelease());
+            res.setRangeCountAssist(asb.getCountAssist());
+        }
+        return res;
     }
 
+
+
     public  List<String> getThisMonth(Days days) {
         //获取当月的第一天
         Date date=new Date();

+ 5 - 4
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -1,9 +1,6 @@
 package com.goafanti.common.dao;
 
-import com.goafanti.admin.bo.AdminContacts;
-import com.goafanti.admin.bo.AdminCustomerBo;
-import com.goafanti.admin.bo.AdminListBo;
-import com.goafanti.admin.bo.AdminStatisticsBo;
+import com.goafanti.admin.bo.*;
 import com.goafanti.common.bo.AdminNoticeBo;
 import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.AdminUserCount;
@@ -193,4 +190,8 @@ public interface AdminMapper {
     Integer adminStatisticsPublicReleaseByAidAndTime(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     BigDecimal addAdminContactsRangeReceivables(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    ConsultantStatisticsBo consultantStatisticsInfo(String aid);
+
+    ConsultantStatisticsBo consultantStatisticsInfoByTime(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 }

+ 23 - 0
src/main/java/com/goafanti/common/dao/TaskTimeMapper.java

@@ -0,0 +1,23 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TaskTime;
+
+import java.util.List;
+
+public interface TaskTimeMapper {
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(TaskTime record);
+
+    int insertSelective(TaskTime record);
+
+    TaskTime selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(TaskTime record);
+
+    int updateByPrimaryKey(TaskTime record);
+
+    int updateByTidAndProjectSelective(TaskTime tt);
+
+    List<TaskTime> selectByTidAndProject(TaskTime tt);
+}

+ 28 - 0
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -1320,4 +1320,32 @@
       and b.salesman_id = #{aid}
       and a.start_time  between #{startTime} and #{endTime}
   </select>
+  <select id="consultantStatisticsInfo" resultType="com.goafanti.admin.bo.ConsultantStatisticsBo">
+    SELECT x.aid,x.projectCount,x.inProgress,x.complete,x.notStarted,x.stop,y.countPublicRelease,y.countAssist,z.countChange
+    from (select a.task_receiver aid,sum(commodity_quantity) projectCount, sum(if(a.project_status=1,commodity_quantity,0)) inProgress,
+         sum(if(a.project_status in (19,27) ,commodity_quantity,0)) complete, sum(if(a.project_status=0,commodity_quantity,0)) notStarted,
+         sum(if(a.project_status in (2,3,29),commodity_quantity,0)) stop
+        from t_order_task a  where a.split_status in (0,2) and a.task_receiver = #{aid} group by a.task_receiver)x
+    left join (select aid,sum(if(a.`type` in (0,1,2),1,0)) countPublicRelease,sum(if(a.`type` in (3),1,0)) countAssist
+        from public_release a left join public_release_details b on a.id=b.prid where aid= #{aid})y on x.aid=y.aid
+    left join (SELECT b.aid,count(DISTINCT a.order_no) countChange from new_order_change a
+        left join order_examine b on a.order_no =b.order_no where a.process_state in (3,4)  and b.aid=#{aid}
+        and b.status =0  group by b.aid)z on x.aid=z.aid
+    LEFT join (select b.task_receiver aid, count(*) orderPayment from t_order_payment a
+        left join t_order_task b on a.tid=b.id left join t_order_new c on b.order_no=c.order_no
+        where b.task_receiver= #{aid} and a.status in(0,1,2) group by b.task_receiver )v on x.aid=v.aid
+  </select>
+  <select id="consultantStatisticsInfoByTime" resultType="com.goafanti.admin.bo.ConsultantStatisticsBo">
+    select x.aid,x.projectCount,x.inProgress,x.notStarted,y.complete,y.stop,z.countPublicRelease,z.countAssist
+    from (select a.task_receiver aid,sum(commodity_quantity) projectCount, sum(if(a.project_status=1,commodity_quantity,0)) inProgress,
+        sum(if(a.project_status=0,commodity_quantity,0)) notStarted from t_order_task a  where a.split_status in (0,2)
+        and a.task_receiver = #{aid} and a.task_distribution_time BETWEEN #{startTime} and #{endTime} group by a.task_receiver )x
+    left join (SELECT a.task_receiver aid,sum(if(a.project_status in (19,27) ,commodity_quantity,0)) complete,
+        sum(if(a.project_status in (2,3,29),commodity_quantity,0)) stop from t_order_task a left join task_time b on a.id=b.tid
+        where a.split_status in (0,2) and b.project_status =a.project_status and a.task_receiver = #{aid}
+        and b.date_time  BETWEEN #{startTime} and #{endTime} group by a.task_receiver )y on x.aid=y.aid
+    left join (select aid,sum(if(a.`type` in (0,1,2),1,0)) countPublicRelease,sum(if(a.`type` in (3),1,0)) countAssist
+        from public_release a left join public_release_details b on a.id=b.prid where aid=  #{aid}
+        and a.release_start BETWEEN #{startTime} and #{endTime} group by a.aid)z on x.aid=z.aid
+  </select>
 </mapper>

+ 103 - 0
src/main/java/com/goafanti/common/mapper/TaskTimeMapper.xml

@@ -0,0 +1,103 @@
+<?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.goafanti.common.dao.TaskTimeMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TaskTime">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="tid" jdbcType="INTEGER" property="tid" />
+    <result column="project_status" jdbcType="INTEGER" property="projectStatus" />
+    <result column="date_time" jdbcType="DATE" property="dateTime" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, tid, project_status, date_time, create_time
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from task_time
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from task_time
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TaskTime" useGeneratedKeys="true">
+    insert into task_time (tid, project_status, date_time,
+      create_time)
+    values (#{tid,jdbcType=INTEGER}, #{projectStatus,jdbcType=INTEGER}, #{dateTime,jdbcType=DATE},
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TaskTime" useGeneratedKeys="true">
+    insert into task_time
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="tid != null">
+        tid,
+      </if>
+      <if test="projectStatus != null">
+        project_status,
+      </if>
+      <if test="dateTime != null">
+        date_time,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="tid != null">
+        #{tid,jdbcType=INTEGER},
+      </if>
+      <if test="projectStatus != null">
+        #{projectStatus,jdbcType=INTEGER},
+      </if>
+      <if test="dateTime != null">
+        #{dateTime,jdbcType=DATE},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TaskTime">
+    update task_time
+    <set>
+      <if test="tid != null">
+        tid = #{tid,jdbcType=INTEGER},
+      </if>
+      <if test="projectStatus != null">
+        project_status = #{projectStatus,jdbcType=INTEGER},
+      </if>
+      <if test="dateTime != null">
+        date_time = #{dateTime,jdbcType=DATE},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TaskTime">
+    update task_time
+    set tid = #{tid,jdbcType=INTEGER},
+      project_status = #{projectStatus,jdbcType=INTEGER},
+      date_time = #{dateTime,jdbcType=DATE},
+      create_time = #{createTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+    <update id="updateByTidAndProjectSelective">
+      update task_time
+      <set>
+        <if test="dateTime != null">
+          date_time = #{dateTime,jdbcType=DATE},
+        </if>
+      </set>
+
+    </update>
+  <select id="selectByTidAndProject" parameterType="com.goafanti.common.model.TaskTime" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from task_time
+    where tid = #{tid,jdbcType=INTEGER} and project_status =  #{projectStatus,jdbcType=INTEGER}
+  </select>
+</mapper>

File diff suppressed because it is too large
+ 71 - 0
src/main/java/com/goafanti/common/model/TaskTime.java


+ 0 - 1
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -955,7 +955,6 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 					newAUC.setChannelCount(selectAUC.getChannelCount());
 					newAUC.setSignCount(selectAUC.getSignCount());
 				}
-
 				adminUserCountMapper.updateByPrimaryKeySelective(newAUC);
 			}
 

+ 47 - 1
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -124,6 +124,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private TaskStopLogMapper taskStopLogMapper;
 	@Autowired
 	private CustomerService customerService;
+	@Autowired
+	private TaskTimeMapper taskTimeMapper;
 
 
 
@@ -422,6 +424,18 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	@Override
 	public TOrderTaskDetailBo orderTaskDetail(Integer id) {
 		TOrderTaskDetailBo t=tOrderTaskMapper.getOrderTaskDetail(id);
+		TaskTime tt=new TaskTime();
+		tt.setTid(t.getId());
+		tt.setProjectStatus(t.getProjectStatus());
+		List<TaskTime> taskTimes = taskTimeMapper.selectByTidAndProject(tt);
+		Map<String,Object> map=new HashMap<>();
+		for (TaskTime e : taskTimes) {
+			Map<String,Object> param=new HashMap<>();
+			param.put("date",DateUtils.formatDate(e.getDateTime(),AFTConstants.YYYYMMDD));
+			param.put("title",NewProjectStatus.getValueByCode(e.getProjectStatus()));
+			map.put(e.getProjectStatus().toString(),param);
+		}
+		t.setTimeRecord(JSON.toJSONString(map));
 		if (TokenManager.hasRole(AFTConstants.SUPERADMIN)||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)
 				||TokenManager.hasRole(AFTConstants.CUSTOMER_SERVICE)
 					||TokenManager.getAdminId().equals(t.getTaskReceiver())) {
@@ -552,7 +566,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		if(b.getSetUpAmount()!=null)t.setSetUpAmount(new BigDecimal(b.getSetUpAmount()));
 		if (b.getPubicityUrl()!=null)t.setPubicityUrl(b.getPubicityUrl());
 		TOrderTask task2=tOrderTaskMapper.selectByPrimaryKey(b.getTid());//查询出项目信息
-		if(b.getProjectStatus()!=task2.getProjectStatus()){
+		if(b.getProjectStatus()!=task2.getProjectStatus()||!b.getTimeRecord().equals(task2.getTimeRecord())){
 				TTaskMid taskMid = new TTaskMid();
 				taskMid.setTid(b.getTid());
 			if(b.getProjectStatus()==NewProjectStatus.YLX.getCode()||b.getProjectStatus()==NewProjectStatus.YNGS.getCode()){
@@ -578,6 +592,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					taskMid.getCompleteCount()!=null ||taskMid.getStockCount()!=null){
 				tTaskMidMapper.updateByTid(taskMid);
 			}
+			//做计时处理
+			pushTaskTimes(t);
 			tOrderTaskMapper.updateByPrimaryKeySelective(t);
 			projectSplitPush(b.getTid(), b.getProjectStatus(),task2);
 			pushTaskLog(b.getTid(), b.getProjectStatus());
@@ -586,6 +602,22 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		return 1;
 	}
 
+	private void pushTaskTimes(TOrderTask t) {
+		Map<String,Object> map = JSON.parseObject(t.getTimeRecord(), Map.class);
+		for (String key : map.keySet()) {
+			Map map1 = JSON.parseObject(map.get(key).toString(), Map.class);
+				TaskTime tt=new TaskTime();
+				tt.setTid(t.getId());
+				tt.setProjectStatus(Integer.valueOf(key));
+			String date = map1.get("date").toString();
+			tt.setDateTime(DateUtils.StringToDate(date,AFTConstants.YYYYMMDD));
+			int i = taskTimeMapper.updateByTidAndProjectSelective(tt);
+			if (i==0){
+				taskTimeMapper.insertSelective(tt);
+			}
+		}
+	}
+
 	private void completeSendCustomerService(Integer id) {
 		OrderOperator orderOperator = tOrderTaskMapper.selectAidByParam(id);
 		String content=String.format("[%s]企业[%s]项目已完成,订单编号[%s]。",orderOperator.getBuyerName(),orderOperator.getProjectName(),orderOperator.getOrderNo());
@@ -1630,6 +1662,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			if (use.getType()==0){
 				task.setProjectStatus(NewProjectStatus.ZT.getCode());
 				str=str.append("已暂停");
+				//处理时间
+				pushExamineTaskTimes(task);
+
 			}else {
 				task.setProjectStatus(NewProjectStatus.JXZ.getCode());
 				str=str.append("进行中");
@@ -1643,6 +1678,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			TOrderTask task2 =new TOrderTask();
 			task2.setId(task.getId());
 			task2.setProjectStatus(task.getProjectStatus());
+
 			tOrderTaskMapper.updateByPrimaryKeySelective(task2);
 			tOrderMidMapper.updateStopProjectByOrderNo(task.getOrderNo());
 			if (task.getSplitStatus()==1){
@@ -1671,6 +1707,16 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		return taskStopMapper.updateByPrimaryKeySelective(t);
 	}
 
+	private void pushExamineTaskTimes(TOrderTask task) {
+		TaskTime tt=new TaskTime();
+		tt.setTid(task.getId());
+		tt.setProjectStatus(task.getProjectStatus());
+		tt.setDateTime(new Date());
+		int i = taskTimeMapper.updateByTidAndProjectSelective(tt);
+		if (i==0){
+			taskTimeMapper.insertSelective(tt);
+		}
+	}
 
 
 	private void examineProjectSotpAddNotice(TOrderTask task,Integer status,Integer sotpType) {