1、收支明细流水号生成方式修正,新增yyyyMMddHHmmss+7位顺序号的流水号的公用生成方式;2、管理端分析页组织总数/用户总数/用户活跃数迁移到system;3、组织管理查询首购记录不展示问题恢复;

This commit is contained in:
gaoqr
2025-09-29 15:32:53 +08:00
parent 00d58afeb1
commit cd466f2777
24 changed files with 258 additions and 205 deletions
@@ -5,7 +5,6 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisti
import com.cf.imes.module.executor.service.order.OrderSupStatisticsService;
import com.cf.imes.module.system.api.organ.OrganApi;
import com.cf.imes.module.system.api.organ.dto.OrgStatisticsReqDTO;
import com.cf.imes.module.system.api.user.AdminUserApi;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -35,30 +34,6 @@ public class OrderSupStatisticsController {
@Resource
private OrganApi organApi;
@Resource
private AdminUserApi adminUserApi;
@GetMapping("/total/org")
@Operation(summary = "组织总数")
@PreAuthorize("@ss.hasPermission('homePage:analysis:org-statistic')")
public CommonResult<Map<String, Integer>> getOrgTotal() {
return success(organApi.getOrgTotal().getData());
}
@GetMapping("/total/user")
@Operation(summary = "用户总数")
@PreAuthorize("@ss.hasPermission('homePage:analysis:org-statistic')")
public CommonResult<Map<String, Integer>> getUserTotal() {
return success(adminUserApi.getUserTotal().getData());
}
@GetMapping("/total/userAct")
@Operation(summary = "用户活跃数")
@PreAuthorize("@ss.hasPermission('homePage:analysis:org-statistic')")
public CommonResult<Map<String, Integer>> getUserActTotal() {
return success(adminUserApi.getUserActTotal().getData());
}
@GetMapping("/total/order")
@Operation(summary = "生产单总数")
@PreAuthorize("@ss.hasPermission('homePage:analysis:org-statistic')")
@@ -86,12 +61,6 @@ public class OrderSupStatisticsController {
return organApi.getOrgSeparate(reqVO);
}
@GetMapping("/separate/plateArea")
@Operation(summary = "有效、无效拆单板件平方统计")
public CommonResult<Map<String, Object>> getPlateAreaSeparate(@Valid OrderStatisticsReqVO reqVO) {
return success(orderSupStatisticsService.plateAreaSeparate(reqVO));
}
@GetMapping("/warn/org")
@Operation(summary = "组织过期日期统计")
public CommonResult<Map<String, List<Object>>> getWarnToOrg() {
@@ -1,7 +1,6 @@
package com.cf.imes.module.executor.dal.mysql.order;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsAreaRespVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsIsLapseRespVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
@@ -28,14 +27,4 @@ public interface OrderSupStatisticsMapper extends BaseMapperX<OrderDO> {
* 生产单按时间分组统计未失效数量
*/
List<OrderStatisticsIsLapseRespVO> selectOrderCountNotLapseByOrderDate(@Param("req") OrderStatisticsReqVO reqVO);
/**
* 生产单按时间统计无效板件平方数
*/
List<OrderStatisticsAreaRespVO> selectPlateAreaLapseByOrderDate(@Param("req") OrderStatisticsReqVO reqVO);
/**
* 生产单按时间分组统计有效板件平方数
*/
List<OrderStatisticsAreaRespVO> selectPlateAreaNotLapseByOrderDate(@Param("req") OrderStatisticsReqVO reqVO);
}
@@ -23,9 +23,4 @@ public interface OrderSupStatisticsService {
* 有效、无效生产单数量统计
*/
Map<String, Object> orderSeparate(OrderStatisticsReqVO reqVO);
/**
* 有效、无效拆单板件平方统计
*/
Map<String, Object> plateAreaSeparate(OrderStatisticsReqVO reqVO);
}
@@ -3,17 +3,14 @@ package com.cf.imes.module.executor.service.order;
import cn.hutool.core.util.ObjectUtil;
import com.cf.imes.framework.common.enums.OrderStatisticsUnit;
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsAreaRespVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsIsLapseRespVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;
import com.cf.imes.module.executor.dal.mysql.order.OrderStatisticsMapper;
import com.cf.imes.module.executor.dal.mysql.order.OrderSupStatisticsMapper;
import com.cf.imes.module.system.api.organ.OrganApi;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import jakarta.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -31,9 +28,6 @@ public class OrderSupStatisticsServiceImpl implements OrderSupStatisticsService{
@Resource
private OrderSupStatisticsMapper orderSupStatisticsMapper;
@Resource
private OrganApi organApi;
@Override
@OrganIgnore
public Map<String, Integer> orderTotal() {
@@ -110,50 +104,6 @@ public class OrderSupStatisticsServiceImpl implements OrderSupStatisticsService{
return resultMap;
}
@Override
@OrganIgnore
public Map<String, Object> plateAreaSeparate(OrderStatisticsReqVO reqVO) {
setOrderStatisticsReqVO(reqVO);
Map<String, Object> resultMap = new LinkedHashMap<>();
// 所有的日期集合
List<String> dateList = getDateList(reqVO.getCreateTime(),reqVO.getUnit());
// 生产单有效板件平方数量
Map<String, List<OrderStatisticsAreaRespVO>> orderLapseRespMap = orderSupStatisticsMapper.selectPlateAreaNotLapseByOrderDate(reqVO).stream()
.sorted(Comparator.naturalOrder())
.collect(Collectors.groupingBy(OrderStatisticsAreaRespVO::getDate, LinkedHashMap::new, Collectors.toList()));
// 生产单无效板件平方数量
Map<String, List<OrderStatisticsAreaRespVO>> orderNotLapseRespMap = orderSupStatisticsMapper.selectPlateAreaLapseByOrderDate(reqVO).stream()
.sorted(Comparator.naturalOrder())
.collect(Collectors.groupingBy(OrderStatisticsAreaRespVO::getDate, LinkedHashMap::new, Collectors.toList()));
// 遍历时间跨度列表,匹配数量存入数组,没有补0存入数组
for (String dateStr : dateList) {
BigDecimal[] countArr = new BigDecimal[2];
// 生产单有效数量
BigDecimal orderNotLapseCount = Optional.ofNullable(orderNotLapseRespMap.get(dateStr))
.map(list -> list.stream().findFirst().orElse(new OrderStatisticsAreaRespVO()))
.map(OrderStatisticsAreaRespVO::getAreaSum)
.orElse(BigDecimal.valueOf(0));
countArr[0] = orderNotLapseCount;
// 生产单无效数量
BigDecimal orderLapseCount = Optional.ofNullable(orderLapseRespMap.get(dateStr))
.map(list -> list.stream().findFirst().orElse(new OrderStatisticsAreaRespVO()))
.map(OrderStatisticsAreaRespVO::getAreaSum)
.orElse(BigDecimal.valueOf(0));
countArr[1] = orderLapseCount;
resultMap.put(generateDateRangeAxis(dateStr, reqVO.getUnit()), countArr);
}
return resultMap;
}
private void setOrderStatisticsReqVO(OrderStatisticsReqVO reqVO){
if (ObjectUtil.isNull(reqVO.getUnit())){
reqVO.setUnit(OrderStatisticsUnit.DAY.getValue());
@@ -44,26 +44,4 @@
group by date;
</select>
<select id="selectPlateAreaLapseByOrderDate"
resultType="com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsAreaRespVO">
select sum(op.area) as areaSum
<include refid="dateFormat"/>
from orders o
left join order_plate op on op.order_id = o.id and op.deleted = 0
where o.order_date between #{req.createTime[0]} and #{req.createTime[1]}
and (o.deleted = 1 or o.status = 0)
group by date;
</select>
<select id="selectPlateAreaNotLapseByOrderDate"
resultType="com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsAreaRespVO">
select sum(op.area) as areaSum
<include refid="dateFormat"/>
from orders o
left join order_plate op on op.order_id = o.id and op.deleted = 0
where o.order_date between #{req.createTime[0]} and #{req.createTime[1]}
and o.deleted = 0 and o.status != 0
group by date;
</select>
</mapper>