diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java index 98a707e82..a40f54801 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java @@ -340,31 +340,19 @@ public class OrderController { @DeleteMapping("/delete-body") @Operation(summary = "删除柜体") - @Parameters({ - @Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024"), - @Parameter(name = "roomIds", description = "房间编号", example = "1"), - @Parameter(name = "bodyId", description = "柜体编号", example = "1") - }) @PreAuthorize("@ss.hasPermission('production:manager-list:deleteCabinet')") - public CommonResult deleteBody(@RequestParam("orderId") Long orderId, - @RequestParam(value = "roomIds", required = false, defaultValue = "0") Set roomIds, - @RequestParam(value = "bodyId", required = false, defaultValue = "0") Long bodyId) { - orderService.updateBodyDeletedByOrderId(orderId, roomIds, bodyId, OrderDeletedEnum.DELETED.getStatus()); + public CommonResult deleteBody(@Valid @RequestBody OrderModuleParameterRespVO orderModuleParameterRespVO) { + orderService.updateBodyDeletedByOrderId(orderModuleParameterRespVO.getOrderId(), orderModuleParameterRespVO.getRoomIds(), + orderModuleParameterRespVO.getBodyId(), OrderDeletedEnum.DELETED.getStatus()); return success(true); } @PutMapping("/restore-body") @Operation(summary = "还原柜体") - @Parameters({ - @Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024"), - @Parameter(name = "roomIds", description = "房间编号", example = "1"), - @Parameter(name = "bodyId", description = "柜体编号", example = "1") - }) @PreAuthorize("@ss.hasPermission('production:manager-list:restoreCabinet')") - public CommonResult restoreBody(@RequestParam("orderId") Long orderId, - @RequestParam(value = "roomIds", required = false, defaultValue = "0") Set roomIds, - @RequestParam(value = "bodyId", required = false, defaultValue = "0") Long bodyId) { - orderService.updateBodyDeletedByOrderId(orderId, roomIds, bodyId, OrderDeletedEnum.NOT_DELETED.getStatus()); + public CommonResult restoreBody(@Valid @RequestBody OrderModuleParameterRespVO orderModuleParameterRespVO) { + orderService.updateBodyDeletedByOrderId(orderModuleParameterRespVO.getOrderId(), orderModuleParameterRespVO.getRoomIds(), + orderModuleParameterRespVO.getBodyId(), OrderDeletedEnum.NOT_DELETED.getStatus()); return success(true); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderSupStatisticsController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderSupStatisticsController.java index 8bac74204..1121d6776 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderSupStatisticsController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderSupStatisticsController.java @@ -4,6 +4,7 @@ import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; 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; @@ -14,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; import java.util.Map; import static com.cf.imes.framework.common.pojo.CommonResult.success; @@ -66,19 +69,25 @@ public class OrderSupStatisticsController { @GetMapping("/separate/order") @Operation(summary = "有效、无效生产单数量统计") - public CommonResult> getOrderSeparate(OrderStatisticsReqVO reqVO) { + public CommonResult> getOrderSeparate(@Valid OrderStatisticsReqVO reqVO) { return success(orderSupStatisticsService.orderSeparate(reqVO)); } @GetMapping("/separate/org") @Operation(summary = "新增、注销组织数量统计") - public CommonResult> getOrgSeparate(OrderStatisticsReqVO reqVO) { - return success(orderSupStatisticsService.orgSeparate(reqVO)); + public CommonResult> getOrgSeparate(@Valid OrgStatisticsReqDTO reqVO) { + return organApi.getOrgSeparate(reqVO); } @GetMapping("/separate/plateArea") - @Operation(summary = "有效、无效拆单板件数量统计") - public CommonResult> getPlateAreaSeparate(OrderStatisticsReqVO reqVO) { + @Operation(summary = "有效、无效拆单板件平方统计") + public CommonResult> getPlateAreaSeparate(@Valid OrderStatisticsReqVO reqVO) { return success(orderSupStatisticsService.plateAreaSeparate(reqVO)); } + + @GetMapping("/warn/org") + @Operation(summary = "组织过期日期统计") + public CommonResult>> getWarnToOrg() { + return organApi.getWarnToOrg(); + } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleParameterRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleParameterRespVO.java new file mode 100644 index 000000000..654d8f6e3 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleParameterRespVO.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.controller.admin.order.vo.order; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.util.Set; + +@Schema(description = "管理后台 - 柜体删除传参") +@Data +@ToString(callSuper = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class OrderModuleParameterRespVO { + + @Schema(description = "生产单号", example = "1024") + private Long orderId; + + @Schema(description = "房间编号", example = "1024") + private Set roomIds; + + @Schema(description = "柜体编号", example = "1024") + private Long bodyId; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderSupStatisticsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderSupStatisticsMapper.java index defaf2e65..7664fed4a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderSupStatisticsMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderSupStatisticsMapper.java @@ -1,6 +1,7 @@ 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; @@ -16,7 +17,7 @@ public interface OrderSupStatisticsMapper extends BaseMapperX { /** * 当日生产单板件平方数 */ - Integer selectOrderSquareProduceToday(LocalDateTime startTime, LocalDateTime endTime); + Integer selectOrderSquareProduceToday(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); /** * 生产单按时间统计失效数量 @@ -28,4 +29,13 @@ public interface OrderSupStatisticsMapper extends BaseMapperX { */ List selectOrderCountNotLapseByOrderDate(@Param("req") OrderStatisticsReqVO reqVO); + /** + * 生产单按时间统计无效板件平方数 + */ + List selectPlateAreaLapseByOrderDate(@Param("req") OrderStatisticsReqVO reqVO); + + /** + * 生产单按时间分组统计有效板件平方数 + */ + List selectPlateAreaNotLapseByOrderDate(@Param("req") OrderStatisticsReqVO reqVO); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index 3c67be098..642b11e5d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -150,7 +150,7 @@ public class OrderServiceImpl implements OrderService { validateCustomOrderNoExists(updateReqVO.getCustomOrderNo(), updateReqVO.getId()); // 更新 OrderDO updateObj = BeanUtils.toBean(updateReqVO, OrderDO.class); - if (updateReqVO.getCustomOrderNo() == null || updateReqVO.getCustomOrderNo().equals("")){ + if (updateReqVO.getCustomOrderNo() == null || updateReqVO.getCustomOrderNo().equals("")) { updateObj.setCustomOrderNo(""); } orderMapper.updateById(updateObj); @@ -209,7 +209,7 @@ public class OrderServiceImpl implements OrderService { public PageResult getPartsDetail(Long orderId, Set roomId, Set bodyId, Set groupId, String name, Integer pageNo, Integer pageSize, Integer deleted) { PageDTO page = new PageDTO<>(pageNo, pageSize); - IPage orderDetail = orderItemMapper.selectPartsDetailByOrderId(page, orderId, roomId, bodyId,groupId, name, getUserOrganId(), deleted); + IPage orderDetail = orderItemMapper.selectPartsDetailByOrderId(page, orderId, roomId, bodyId, groupId, name, getUserOrganId(), deleted); return new PageResult(orderDetail.getRecords(), orderDetail.getTotal()); } @@ -244,33 +244,36 @@ public class OrderServiceImpl implements OrderService { orderBodyMapper.updateDeletedById(id, status, getUserOrganId());// 柜体 orderGroupMapper.updateDeletedById(id, status, getUserOrganId());// 加工组 - // (删除小板) 小板变为删除状态 - plateMapper.updateDeletedById(plateDOList, status, getUserOrganId()); - // 删除大板 - List goodsIdList = plateMapper.selectPlateNum(orderId, getUserOrganId()); - Map> goodsIdMap = goodsIdList.stream() - .collect(Collectors.groupingBy(PlateDO::getGoodsId)); + if (CollectionUtils.isNotEmpty(plateDOList) ){ + // (删除小板) 小板变为删除状态 + plateMapper.updateDeletedById(plateDOList, status, getUserOrganId()); + // 删除大板 + List goodsIdList = plateMapper.selectPlateNum(orderId, getUserOrganId()); + Map> goodsIdMap = goodsIdList.stream() + .collect(Collectors.groupingBy(PlateDO::getGoodsId)); - List goodsIdDeleted = new ArrayList<>(); + List goodsIdDeleted = new ArrayList<>(); - if (status == 1) { - goodsIdMap.forEach((k, v) -> { - boolean allDeleted = true; - for (PlateDO plateDO : v) { - if (!plateDO.getDeleted()) { - allDeleted = false; - break; + if (status == 1) { + goodsIdMap.forEach((k, v) -> { + boolean allDeleted = true; + for (PlateDO plateDO : v) { + if (!plateDO.getDeleted()) { + allDeleted = false; + break; + } } - } - if (allDeleted) { - goodsIdDeleted.add(k); - } - }); + if (allDeleted) { + goodsIdDeleted.add(k); + } + }); + } + + if (goodsIdDeleted.size() > 0) { + goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId()); + } } - if (goodsIdDeleted.size() > 0) { - goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId()); - } List partsList = orderPartsMapper.selectPartsIdListByBodyId(id, getUserOrganId()); // 配件 orderPartsMapper.updateDeletedById(partsList, status, getUserOrganId()); }); @@ -707,11 +710,9 @@ public class OrderServiceImpl implements OrderService { if (orderDO == null) throw exception(ORDER_NOT_EXISTS); // 状态排除 - if (Objects.equals(orderDO.getStatus(), OrderStatusEnum.EMPTY.getStatus())) { - throw exception(ORDER_IS_EMPTY); - } if (!Objects.equals(orderDO.getStatus(), OrderStatusEnum.NEW_ORDER.getStatus()) && - !Objects.equals(orderDO.getStatus(), OrderStatusEnum.SORTED.getStatus())) + !Objects.equals(orderDO.getStatus(), OrderStatusEnum.SORTED.getStatus()) && + !Objects.equals(orderDO.getStatus(), OrderStatusEnum.EMPTY.getStatus())) throw exception(ORDER_NOT_CANCEL); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsService.java index a9d12ffe5..2532604f3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsService.java @@ -25,12 +25,7 @@ public interface OrderSupStatisticsService { Map orderSeparate(OrderStatisticsReqVO reqVO); /** - * 新增、注销组织数量统计 - */ - Map orgSeparate(OrderStatisticsReqVO reqVO); - - /** - * 有效、无效拆单板件数量统计 + * 有效、无效拆单板件平方统计 */ Map plateAreaSeparate(OrderStatisticsReqVO reqVO); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsServiceImpl.java index b60511c43..f239c9b22 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderSupStatisticsServiceImpl.java @@ -3,16 +3,17 @@ 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.controller.admin.order.vo.order.OrderStatisticsStatusRespVO; -import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO; 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 javax.annotation.Resource; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; @@ -29,6 +30,10 @@ public class OrderSupStatisticsServiceImpl implements OrderSupStatisticsService{ @Resource private OrderSupStatisticsMapper orderSupStatisticsMapper; + + @Resource + private OrganApi organApi; + @Override @OrganIgnore public Map orderTotal() { @@ -62,6 +67,7 @@ public class OrderSupStatisticsServiceImpl implements OrderSupStatisticsService{ } @Override + @OrganIgnore public Map orderSeparate(OrderStatisticsReqVO reqVO) { setOrderStatisticsReqVO(reqVO); @@ -105,7 +111,8 @@ public class OrderSupStatisticsServiceImpl implements OrderSupStatisticsService{ } @Override - public Map orgSeparate(OrderStatisticsReqVO reqVO) { + @OrganIgnore + public Map plateAreaSeparate(OrderStatisticsReqVO reqVO) { setOrderStatisticsReqVO(reqVO); Map resultMap = new LinkedHashMap<>(); @@ -113,44 +120,38 @@ public class OrderSupStatisticsServiceImpl implements OrderSupStatisticsService{ // 所有的日期集合 List dateList = getDateList(reqVO.getCreateTime(),reqVO.getUnit()); - // 生产单有效数量 - Map> orderLapseRespMap = orderSupStatisticsMapper.selectOrderCountLapseByOrderDate(reqVO).stream() + // 生产单有效板件平方数量 + Map> orderLapseRespMap = orderSupStatisticsMapper.selectPlateAreaNotLapseByOrderDate(reqVO).stream() .sorted(Comparator.naturalOrder()) - .collect(Collectors.groupingBy(OrderStatisticsIsLapseRespVO::getDate, LinkedHashMap::new, Collectors.toList())); + .collect(Collectors.groupingBy(OrderStatisticsAreaRespVO::getDate, LinkedHashMap::new, Collectors.toList())); - // 生产单无效数量 - Map> orderNotLapseRespMap = orderSupStatisticsMapper.selectOrderCountNotLapseByOrderDate(reqVO).stream() + // 生产单无效板件平方数量 + Map> orderNotLapseRespMap = orderSupStatisticsMapper.selectPlateAreaLapseByOrderDate(reqVO).stream() .sorted(Comparator.naturalOrder()) - .collect(Collectors.groupingBy(OrderStatisticsIsLapseRespVO::getDate, LinkedHashMap::new, Collectors.toList())); + .collect(Collectors.groupingBy(OrderStatisticsAreaRespVO::getDate, LinkedHashMap::new, Collectors.toList())); // 遍历时间跨度列表,匹配数量存入数组,没有补0存入数组 for (String dateStr : dateList) { - int[] countArr = new int[2]; + BigDecimal[] countArr = new BigDecimal[2]; // 生产单有效数量 - Integer orderNotLapseCount = Optional.ofNullable(orderNotLapseRespMap.get(dateStr)) - .map(list -> list.stream().findFirst().orElse(new OrderStatisticsIsLapseRespVO())) - .map(OrderStatisticsIsLapseRespVO::getOrderCount) - .orElse(0); + 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; // 生产单无效数量 - Integer orderLapseCount = Optional.ofNullable(orderLapseRespMap.get(dateStr)) - .map(list -> list.stream().findFirst().orElse(new OrderStatisticsIsLapseRespVO())) - .map(OrderStatisticsIsLapseRespVO::getOrderCount) - .orElse(0); + 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; - - } - - @Override - public Map plateAreaSeparate(OrderStatisticsReqVO reqVO) { - return null; } private void setOrderStatisticsReqVO(OrderStatisticsReqVO reqVO){ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderSupStatisticsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderSupStatisticsMapper.xml index 828dc1210..b7005f09b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderSupStatisticsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderSupStatisticsMapper.xml @@ -44,4 +44,26 @@ group by date; + + + + \ No newline at end of file diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/OrganApi.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/OrganApi.java index 3d49a52fd..8d0936ce9 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/OrganApi.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/OrganApi.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.api.organ; import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsReqDTO; import com.cf.imes.module.system.enums.ApiConstants; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; @@ -9,6 +10,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import javax.validation.Valid; import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -34,6 +36,9 @@ public interface OrganApi { @GetMapping(PREFIX + "/separate/org") @Operation(summary = "新增、注销组织数量统计") - CommonResult> getOrgSeparate(@RequestParam("time") LocalDate[] createTime, @RequestParam("unit")Integer unit); + CommonResult> getOrgSeparate(@Valid OrgStatisticsReqDTO reqVO); + @GetMapping(PREFIX + "/warn/org") + @Operation(summary = "组织过期日期统计") + CommonResult>> getWarnToOrg(); } diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/dto/OrgStatisticsIsLapseRespDTO.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/dto/OrgStatisticsIsLapseRespDTO.java new file mode 100644 index 000000000..752dc482c --- /dev/null +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/dto/OrgStatisticsIsLapseRespDTO.java @@ -0,0 +1,60 @@ +package com.cf.imes.module.system.api.organ.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 组织是否新增统计") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ToString(callSuper = true) +public class OrgStatisticsIsLapseRespDTO implements Comparable{ + + @Schema(description = "组织状态") + private Integer orgStatus; + + @Schema(description = "组织数量") + private Integer orgCount; + + @Schema(description = "组织时间") + private String date; + + @Schema(description = "是否删除") + private Boolean deleted; + + + @Override + public int compareTo(@NotNull OrgStatisticsIsLapseRespDTO o) { + // 解析 orderDate 字符串为年、月、周 + String[] partsThis = date.split("-"); + String[] partsOther = o.date.split("-"); + + // 比较年份 + int yearComparison = Integer.compare(Integer.parseInt(partsThis[0]), Integer.parseInt(partsOther[0])); + if (yearComparison != 0) { + return yearComparison; + } + + // 比较月份 + if (partsThis.length > 1 && partsOther.length > 1) { + int monthComparison = Integer.compare(Integer.parseInt(partsThis[1]), Integer.parseInt(partsOther[1])); + if (monthComparison != 0) { + return monthComparison; + } + } + + // 比较周数 + if (partsThis.length > 2 && partsOther.length > 2) { + int weekComparison = Integer.compare(Integer.parseInt(partsThis[2]), Integer.parseInt(partsOther[2])); + if (weekComparison != 0) { + return weekComparison; + } + } + + // 如果所有部分都相同,则按状态排序 + return this.orgStatus.compareTo(o.orgStatus); + } +} diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/dto/OrgStatisticsReqDTO.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/dto/OrgStatisticsReqDTO.java new file mode 100644 index 000000000..16dce00d3 --- /dev/null +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/organ/dto/OrgStatisticsReqDTO.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.system.api.organ.dto; + +import com.cf.imes.module.system.validation.org.OrgStatisticsUnitInEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +/** + * 统计集合 --- 组织统计 + */ +@Schema(description = "管理后台 - 生产单统计 Request VO") +@Data +public class OrgStatisticsReqDTO { + @Schema(description = "组织id") + private Long organId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate[] createTime; + + /** + * 统计维度单位 + */ + @Schema(description = "统计维度单位", example = "0", allowableValues = {"0", "1", "2", "3"}, type = "integer") + @OrgStatisticsUnitInEnum + private Integer unit; +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/validation/org/OrgStatisticsUnitInEnum.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/validation/org/OrgStatisticsUnitInEnum.java new file mode 100644 index 000000000..f211a79bd --- /dev/null +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/validation/org/OrgStatisticsUnitInEnum.java @@ -0,0 +1,35 @@ +package com.cf.imes.module.system.validation.org; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/8/19 9:56 + */ + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +/** + * 生产单统计维度单位入参校验注解 + */ +@Target({ + ElementType.METHOD, + ElementType.FIELD, + ElementType.ANNOTATION_TYPE, + ElementType.CONSTRUCTOR, + ElementType.PARAMETER, + ElementType.TYPE_USE +}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Constraint( + validatedBy = {OrgStatisticsUnitInEnumValidator.class} +) +public @interface OrgStatisticsUnitInEnum { + String message() default "生产单统计维度单位[unit]错误,请检查"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/validation/org/OrgStatisticsUnitInEnumValidator.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/validation/org/OrgStatisticsUnitInEnumValidator.java new file mode 100644 index 000000000..1f4cef231 --- /dev/null +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/validation/org/OrgStatisticsUnitInEnumValidator.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.system.validation.org; + +import cn.hutool.core.util.ObjectUtil; +import com.cf.imes.framework.common.enums.OrderStatisticsUnit; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +/** + * 生产单统计维度单位入参校验器 + */ +public class OrgStatisticsUnitInEnumValidator implements ConstraintValidator { + + @Override + public void initialize(OrgStatisticsUnitInEnum constraintAnnotation) { + ConstraintValidator.super.initialize(constraintAnnotation); + } + + @Override + public boolean isValid(Integer value, ConstraintValidatorContext context) { + if (ObjectUtil.isNull(value)) { + return true; + } + OrderStatisticsUnit unit = OrderStatisticsUnit.fromValue(value); + if (ObjectUtil.isNotNull(unit)) { + return true; + } else { + return false; + } + } + +} \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/organ/OrganApiImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/organ/OrganApiImpl.java index ec5a67fd5..4d46dd299 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/organ/OrganApiImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/organ/OrganApiImpl.java @@ -1,16 +1,24 @@ package com.cf.imes.module.system.api.organ; +import cn.hutool.core.util.ObjectUtil; +import com.cf.imes.framework.common.enums.OrderStatisticsUnit; import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsIsLapseRespDTO; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsReqDTO; +import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganRespVO; import com.cf.imes.module.system.service.organ.OrganService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.time.LocalDate; -import java.util.List; -import java.util.Map; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; import static com.cf.imes.framework.common.pojo.CommonResult.success; +import static com.cf.imes.framework.common.util.time.StatisticsChangeUtils.generateDateRangeAxis; +import static com.cf.imes.framework.common.util.time.StatisticsChangeUtils.getDateList; @RestController // 提供 RESTful API 接口,给 Feign 调用 @Validated @@ -36,8 +44,77 @@ public class OrganApiImpl implements OrganApi { } @Override - public CommonResult> getOrgSeparate(LocalDate[] createTime, Integer unit) { - return null; + public CommonResult> getOrgSeparate(OrgStatisticsReqDTO reqVO) { + setOrgStatisticsReqVO(reqVO); + + Map resultMap = new LinkedHashMap<>(); + + // 所有的日期集合 + List dateList = getDateList(reqVO.getCreateTime(),reqVO.getUnit()); + + + // 生产单有效数量 + Map> orderLapseRespMap = organService.orgCountAddByOrderDateAdd(reqVO).stream() + .sorted(Comparator.naturalOrder()) + .collect(Collectors.groupingBy(OrgStatisticsIsLapseRespDTO::getDate, LinkedHashMap::new, Collectors.toList())); + + // 组织无效数量 + Map> orderNotLapseRespMap = organService.orgCountLapseByOrderDate(reqVO).stream() + .sorted(Comparator.naturalOrder()) + .collect(Collectors.groupingBy(OrgStatisticsIsLapseRespDTO::getDate, LinkedHashMap::new, Collectors.toList())); + + // 遍历时间跨度列表,匹配数量存入数组,没有补0存入数组 + for (String dateStr : dateList) { + int[] countArr = new int[2]; + // 组织有效数量 + Integer orderNotLapseCount = Optional.ofNullable(orderNotLapseRespMap.get(dateStr)) + .map(list -> list.stream().findFirst().orElse(new OrgStatisticsIsLapseRespDTO())) + .map(OrgStatisticsIsLapseRespDTO::getOrgCount) + .orElse(0); + countArr[0] = orderNotLapseCount; + + + // 组织无效数量 + Integer orderLapseCount = Optional.ofNullable(orderLapseRespMap.get(dateStr)) + .map(list -> list.stream().findFirst().orElse(new OrgStatisticsIsLapseRespDTO())) + .map(OrgStatisticsIsLapseRespDTO::getOrgCount) + .orElse(0); + countArr[1] = orderLapseCount; + + resultMap.put(generateDateRangeAxis(dateStr, reqVO.getUnit()), countArr); + } + + return success(resultMap); + } + @Override + public CommonResult>> getWarnToOrg() { + Map> map = new HashMap<>(); + + LocalDateTime today = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0); + LocalDateTime afterDay = today.plusDays(15).withHour(23).withMinute(59).withSecond(59); + LocalDateTime alertDay = LocalDateTime.now().withHour(23).withMinute(59).withSecond(59); + + // 即将过期组织 + List expireOrg = organService.orgCountExpire(today, afterDay); + map.put("expireOrg", Collections.singletonList(expireOrg)); + + // 已过期组织 + List lapseOrg = organService.orgCountExpired(alertDay); + map.put("expiredOrg", Collections.singletonList(lapseOrg)); + + return success(map); + } + + private void setOrgStatisticsReqVO(OrgStatisticsReqDTO reqVO){ + if (ObjectUtil.isNull(reqVO.getUnit())){ + reqVO.setUnit(OrderStatisticsUnit.DAY.getValue()); + } + if (ObjectUtil.isNull(reqVO.getCreateTime())){ + reqVO.setCreateTime(new LocalDate[2]); + } + LocalDate[] time = reqVO.getCreateTime(); + reqVO.setCreateTime(new LocalDate[]{time[0], time[1]}); + } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java index 2391e86f2..b629790f2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java @@ -5,6 +5,8 @@ import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.executor.enums.OrderDeletedEnum; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsIsLapseRespDTO; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsReqDTO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganPageReqVO; import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO; import org.apache.ibatis.annotations.Mapper; @@ -61,7 +63,7 @@ public interface OrganMapper extends BaseMapperX { default Integer selectOrgCount() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eq(OrganizationDO::getUpdateTime, OrderDeletedEnum.NOT_DELETED.getStatus()))); + .eq(OrganizationDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()))); } default Integer selectOrgCountAdd() { @@ -91,6 +93,25 @@ public interface OrganMapper extends BaseMapperX { List selectTestSQL(@Param("sql") String sql); + /** + * 组织按时间统计新增数量 + */ + List selectOrgCountAddByOrderDate(@Param("req") OrgStatisticsReqDTO reqVO); + /** + * 组织按时间分组统计注销数量 + */ + List selectOrgCountLapseByOrderDate(@Param("req") OrgStatisticsReqDTO reqVO); + default List selectOrgCountExpire(LocalDateTime today, LocalDateTime afterDay){ + return selectList(new LambdaQueryWrapperX() + .eq(OrganizationDO::getDeleted,false) + .between(OrganizationDO::getExpireTime,today,afterDay)); + } + + default List selectOrgCountExpired(LocalDateTime alertDay){ + return selectList(new LambdaQueryWrapperX() + .eq(OrganizationDO::getDeleted,false) + .lt(OrganizationDO::getExpireTime,alertDay)); + } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java index 8fc5f8f5f..074e8c1b1 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java @@ -129,12 +129,16 @@ public interface AdminUserMapper extends BaseMapperX { LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59))))); } - Integer selectUserSilentCount(@Param("dateTime")LocalDateTime dateTime); + default Integer selectUserCountSilent(LocalDateTime dateTime) { + return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eq(AdminUserDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()) + .lt(AdminUserDO::getLoginDate, dateTime))); + } default Integer selectUserActCountTime(LocalDateTime startTime, LocalDateTime endTIme) { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() .eq(AdminUserDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()) .eq(AdminUserDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) - .between(AdminUserDO::getCreateTime, startTime, endTIme))); + .between(AdminUserDO::getLoginDate, startTime, endTIme))); } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/order/OrderStatisticsUnitInEnum.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/order/OrderStatisticsUnitInEnum.java new file mode 100644 index 000000000..6bc77140e --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/order/OrderStatisticsUnitInEnum.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.system.order; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +/** + * 生产单统计维度单位入参校验注解 + * + * @author Gqr + * @since 2024/7/17 9:33 + */ +@Target({ + ElementType.METHOD, + ElementType.FIELD, + ElementType.ANNOTATION_TYPE, + ElementType.CONSTRUCTOR, + ElementType.PARAMETER, + ElementType.TYPE_USE +}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Constraint( + validatedBy = {OrderStatisticsUnitInEnumValidator.class} +) +public @interface OrderStatisticsUnitInEnum { + String message() default "生产单统计维度单位[unit]错误,请检查"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/order/OrderStatisticsUnitInEnumValidator.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/order/OrderStatisticsUnitInEnumValidator.java new file mode 100644 index 000000000..85cd02a5e --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/order/OrderStatisticsUnitInEnumValidator.java @@ -0,0 +1,36 @@ +package com.cf.imes.module.system.order; + +import cn.hutool.core.util.ObjectUtil; +import com.cf.imes.module.executor.enums.OrderStatisticsUnit; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +/** + * 生产单统计维度单位入参校验器 + * + * @author Gqr + * @since 2024/7/17 9:33 + */ +public class OrderStatisticsUnitInEnumValidator implements ConstraintValidator { + + @Override + public void initialize(OrderStatisticsUnitInEnum constraintAnnotation) { + ConstraintValidator.super.initialize(constraintAnnotation); + } + + @Override + public boolean isValid(Integer value, ConstraintValidatorContext context) { + if (ObjectUtil.isNull(value)) { + return true; + } + OrderStatisticsUnit unit = OrderStatisticsUnit.fromValue(value); + if (ObjectUtil.isNotNull(unit)) { + return true; + } else { + return false; + } + } + +} + diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganService.java index d882f6ed6..c0d23c792 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganService.java @@ -2,15 +2,18 @@ package com.cf.imes.module.system.service.organ; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.organ.core.context.OrganContextHolder; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsIsLapseRespDTO; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsReqDTO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganPageReqVO; +import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganRespVO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSaveReqVO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO; -import com.cf.imes.module.system.controller.admin.user.vo.user.UserSimpleRespVO; import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO; import com.cf.imes.module.system.service.organ.handler.OrganInfoHandler; import com.cf.imes.module.system.service.organ.handler.OrganMenuHandler; import javax.validation.Valid; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Set; @@ -136,4 +139,24 @@ public interface OrganService { * 组织总数统计 */ Map orgTotal(); + + /** + * 组织新增统计 + */ + List orgCountAddByOrderDateAdd(OrgStatisticsReqDTO reqVO); + + /** + * 组织注销统计 + */ + List orgCountLapseByOrderDate(OrgStatisticsReqDTO reqVO); + + /** + * 即将过期组织统计 + */ + List orgCountExpire(LocalDateTime today, LocalDateTime afterDay); + + /** + * 已过期组织统计 + */ + List orgCountExpired(LocalDateTime alertDay); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java index 12c95e6ec..16c62f3c8 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java @@ -15,7 +15,10 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.organ.config.OrganProperties; import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.framework.organ.core.util.OrganUtils; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsIsLapseRespDTO; +import com.cf.imes.module.system.api.organ.dto.OrgStatisticsReqDTO; import com.cf.imes.module.system.constants.permission.InternalRoleConstants; +import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganRespVO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO; import com.cf.imes.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganPageReqVO; @@ -44,6 +47,7 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.*; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -372,4 +376,24 @@ public class OrganServiceImpl implements OrganService { return map; } + @Override + public List orgCountAddByOrderDateAdd(OrgStatisticsReqDTO reqVO) { + return organMapper.selectOrgCountAddByOrderDate(reqVO); + } + + @Override + public List orgCountLapseByOrderDate(OrgStatisticsReqDTO reqVO) { + return organMapper.selectOrgCountLapseByOrderDate(reqVO); + } + + @Override + public List orgCountExpire(LocalDateTime today, LocalDateTime afterDay) { + return BeanUtils.toBean(organMapper.selectOrgCountExpire(today, afterDay), OrganRespVO.class); + } + + @Override + public List orgCountExpired(LocalDateTime alertDay) { + return BeanUtils.toBean(organMapper.selectOrgCountExpired(alertDay), OrganRespVO.class); + } + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java index 74343df01..42e949da7 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java @@ -597,7 +597,7 @@ public class AdminUserServiceImpl implements AdminUserService { map.put("userTodayDel", userTodayDel); // 当日沉寂数 (30天未登录) Date date = DateUtil.offsetDay(new Date(), -30); - Integer userTodaySilent = userMapper.selectUserSilentCount(DateUtil.beginOfDay(date).toLocalDateTime()); + Integer userTodaySilent = userMapper.selectUserCountSilent(DateUtil.beginOfDay(date).toLocalDateTime()); map.put("userTodaySilent", userTodaySilent); return map; diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/organ/OrganMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/organ/OrganMapper.xml index b47107e52..3593bf4ef 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/organ/OrganMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/organ/OrganMapper.xml @@ -28,8 +28,39 @@ + + + ,CONCAT(YEAR(o.order_date), '-', QUARTER(o.order_date)) as date + + + ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date)) as date + + + ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date), '-', FLOOR((DayOfMonth(o.order_date)-1)/7)+1) AS date + + + ,CONCAT(YEAR(o.order_date), '-', MONTH(o.order_date), '-', DAY(o.order_date)) as date + + + - + \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml index ddfd9380f..707288c5c 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml @@ -1,6 +1,6 @@ - +