1
This commit is contained in:
parent
1dd088a320
commit
7dc148e5b2
@ -35,6 +35,10 @@ public enum RecordTypeEnum {
|
||||
* 总检
|
||||
*/
|
||||
ZJ("zj","总检"),
|
||||
/**
|
||||
* 结算
|
||||
*/
|
||||
JS("js","结算"),
|
||||
/**
|
||||
* 结束工单
|
||||
*/
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.tickets.controller.admin;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.iocoder.yudao.common.RepairCons;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
|
||||
@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@ -311,15 +315,45 @@ public class DlRepairTicketsController {
|
||||
return CommonResult.ok();
|
||||
}
|
||||
/**
|
||||
* 从总检的角度差维修中、已完成的工单数量
|
||||
* 从总检的角度查进场数、维修中、已完成、已交车、在厂的工单数量
|
||||
* @author vinjor-M
|
||||
* @date 11:29 2024/10/24
|
||||
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||
**/
|
||||
@GetMapping("/getBossNum")
|
||||
@Operation(summary = "从总检的角度查维修中、已完成的工单数量")
|
||||
public CommonResult<?> getBossNum(String selectType) {
|
||||
return success(dlRepairTicketsService.getBossNum(selectType));
|
||||
@Operation(summary = "从总检的角度查进场数、维修中、已完成、已交车、在厂的工单数量")
|
||||
public CommonResult<?> getBossNum(String selectType,String startDate,String endDate) {
|
||||
return success(dlRepairTicketsService.getBossNum(selectType, startDate, endDate));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取日期范围
|
||||
* @author vinjor-M
|
||||
* @date 11:29 2024/10/24
|
||||
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||
**/
|
||||
@GetMapping("/getDateRange")
|
||||
@Operation(summary = "获取日期范围")
|
||||
public CommonResult<?> getDateRange(String selectType) {
|
||||
Map<String,String> rtnMap = new HashMap<>();
|
||||
// 获取当前日期
|
||||
Date currentDate = new Date();
|
||||
String nowDay = DateUtil.formatDate(new Date());
|
||||
rtnMap.put("endDate",nowDay);
|
||||
if("threeMonth".equals(selectType)){
|
||||
//近3个月
|
||||
// 使用Hutool的DateUtil推移3个月
|
||||
Date threeMonthsAgo = DateUtil.offsetMonth(currentDate, -3);
|
||||
String startDay = DateUtil.formatDate(threeMonthsAgo);
|
||||
rtnMap.put("startDate",startDay);
|
||||
}else {
|
||||
//近6个月
|
||||
// 使用Hutool的DateUtil推移6个月
|
||||
Date threeMonthsAgo = DateUtil.offsetMonth(currentDate, -6);
|
||||
String startDay = DateUtil.formatDate(threeMonthsAgo);
|
||||
rtnMap.put("startDate",startDay);
|
||||
}
|
||||
return success(rtnMap);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -42,6 +42,16 @@ public interface DlRepairTicketsMapper extends BaseMapper<DlRepairTickets> {
|
||||
* @param repairTicketsReqVO 查询对象
|
||||
**/
|
||||
IPage<DlRepairTickets> getPageTypeAll(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);
|
||||
|
||||
/**
|
||||
* 根据条件查询指定工单数量
|
||||
* @author vinjor-M
|
||||
* @date 15:46 2024/11/18
|
||||
* @param dayDate 某一天日期
|
||||
* @param recordCode 操作记录code
|
||||
* @return java.lang.Long
|
||||
**/
|
||||
Long selectCountByParams(@Param("nowDate")String dayDate, @Param("recordCode")String recordCode, @Param("startTime")String startTime, @Param("endTime")String endTime);
|
||||
}
|
||||
|
||||
|
||||
|
@ -172,7 +172,7 @@ public interface DlRepairTicketsService extends IService<DlRepairTickets> {
|
||||
* @date 11:30 2024/10/24
|
||||
* @return java.util.Map<java.lang.String,java.lang.Integer>
|
||||
**/
|
||||
Map<String,Integer> getBossNum(String selectType);
|
||||
Map<String,Long> getBossNum(String selectType,String startDate,String endDate);
|
||||
|
||||
/**
|
||||
* 服务顾问通知客户取车
|
||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.tickets.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.common.*;
|
||||
import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
|
||||
@ -102,6 +103,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
|
||||
|
||||
@Resource
|
||||
private DlRepairTitemService titemService;
|
||||
@Resource
|
||||
private DlRepairTicketsMapper repairTicketsMapper;
|
||||
|
||||
@Resource
|
||||
private DeptApi deptApi;
|
||||
@ -1405,23 +1408,54 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
|
||||
* @date 11:30 2024/10/24
|
||||
**/
|
||||
@Override
|
||||
public Map<String, Integer> getBossNum(String selectType) {
|
||||
Map<String, Integer> rtnMap = new HashMap<>();
|
||||
int workingNum = 0;
|
||||
int doneNum = 0;
|
||||
|
||||
public Map<String, Long> getBossNum(String selectType,String startDate,String endDate) {
|
||||
Map<String, Long> rtnMap = new HashMap<>();
|
||||
//维修中---当前这一时刻
|
||||
long workingNum = 0;
|
||||
//在厂数--当前这一时刻
|
||||
long inCompanyNum = 0;
|
||||
//进场数
|
||||
long newOrderNum=0;
|
||||
//已完成
|
||||
long overNum=0;
|
||||
//已交车
|
||||
long giveCusNum=0;
|
||||
List<DlRepairTickets> repairTickets = this.list();
|
||||
if (!repairTickets.isEmpty()) {
|
||||
Map<String, List<DlRepairTickets>> ifFinishMap = repairTickets.stream().collect(Collectors.groupingBy(DlRepairTickets::getIsFinish));
|
||||
if (ifFinishMap.containsKey("0")) {
|
||||
workingNum = ifFinishMap.get("0").size();
|
||||
}
|
||||
if (ifFinishMap.containsKey("1")) {
|
||||
doneNum = ifFinishMap.get("1").size();
|
||||
workingNum = repairTickets.stream().filter(item -> TicketsStatusEnum.WORKING.getCode().equals(item.getTicketsStatus())).count();
|
||||
inCompanyNum = repairTickets.stream().filter(item -> TicketsStatusEnum.NO_PAY.getCode().equals(item.getTicketsStatus())).count();
|
||||
LocalDateTime currentTime = LocalDateTime.now();
|
||||
if("today".equals(selectType)){
|
||||
String nowDayStr = DateUtil.formatDate(new Date());
|
||||
//查当日进厂数、已完成、已交车
|
||||
newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().toLocalDate().equals(currentTime.toLocalDate())).count();
|
||||
//查当日已完成的(总检完成的)
|
||||
overNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.ZJ.getCode(),null,null);
|
||||
//查当日已交车的(已结算的)
|
||||
giveCusNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.JS.getCode(),null,null);
|
||||
}else if("all".equals(selectType)){
|
||||
//查累计进厂数、已完成、已交车
|
||||
newOrderNum = repairTickets.size();
|
||||
//查累计已完成的(总检完成的)
|
||||
overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(),null,null);
|
||||
//查累计已交车的(已结算的)
|
||||
giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(),null,null);
|
||||
}else {
|
||||
//查某个时间范围内进厂数、已完成、已交车
|
||||
LocalDateTime startTime = LocalDateTime.parse(startDate+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
LocalDateTime endTime = LocalDateTime.parse(endDate+" 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().isAfter(startTime) && item.getCreateTime().isBefore(endTime)).count();
|
||||
//查某区间范围内已完成的(总检完成的)
|
||||
overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(), startDate+" 00:00:00", endDate+" 23:59:59");
|
||||
//查某区间范围内已交车的(已结算的)
|
||||
giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(), startDate+" 00:00:00", endDate+" 23:59:59");
|
||||
}
|
||||
}
|
||||
rtnMap.put("workingNum", workingNum);
|
||||
rtnMap.put("doneNum", doneNum);
|
||||
rtnMap.put("inCompanyNum", inCompanyNum);
|
||||
rtnMap.put("newOrderNum", newOrderNum);
|
||||
rtnMap.put("overNum", overNum);
|
||||
rtnMap.put("giveCusNum", giveCusNum);
|
||||
return rtnMap;
|
||||
}
|
||||
|
||||
|
@ -349,4 +349,23 @@
|
||||
GROUP BY drt.id
|
||||
order by drt.update_time desc
|
||||
</select>
|
||||
<select id="selectCountByParams" resultType="java.lang.Long">
|
||||
SELECT
|
||||
COUNT(DISTINCT drt.id)
|
||||
FROM
|
||||
dl_repair_tickets drt
|
||||
LEFT JOIN dl_repair_records drr ON drt.id = drr.ticket_id
|
||||
AND drr.deleted = '0'
|
||||
WHERE
|
||||
drt.deleted = '0'
|
||||
AND drt.tickets_status !='03'
|
||||
AND drr.type = #{recordCode}
|
||||
<if test="nowDate!=null and nowDate!=''">
|
||||
AND drr.create_time LIKE CONCAT(#{nowDate},'%')
|
||||
</if>
|
||||
<if test="startTime!=null">
|
||||
AND drr.create_time >= #{startTime}
|
||||
AND drr.create_time <= #{endTime}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
Loading…
Reference in New Issue
Block a user