From 35768acf9e21ceb6b23e4a294adb0fb9b341492a Mon Sep 17 00:00:00 2001 From: think <1787994136@qq.com> Date: Thu, 23 Jan 2025 17:38:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=91=98=E5=B7=A5=E7=BB=A9?= =?UTF-8?q?=E6=95=88=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/ygjx/YgJxController.java | 39 +++++++++++++++++++ .../admin/ygjx/vo/YgjxPageReqVO.java | 25 ++++++++++++ .../TaskDispatchDetailMapper.java | 27 +++++++++++++ .../taskdispatch/TaskDispatchService.java | 2 + .../taskdispatch/TaskDispatchServiceImpl.java | 7 ++++ 5 files changed, 100 insertions(+) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/YgJxController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/vo/YgjxPageReqVO.java diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/YgJxController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/YgJxController.java new file mode 100644 index 0000000..4daabe0 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/YgJxController.java @@ -0,0 +1,39 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.ygjx + ; + +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.heli.service.taskdispatch.TaskDispatchService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +@Slf4j +@Tag(name = "管理后台 - 车间") +@RestController +@RequestMapping("/heli/ygJx") +@Validated +public class YgJxController { + @Resource + private TaskDispatchService taskDispatchService; + + @GetMapping("/task-dispatch-detail/page") + @Operation(summary = "获得派工明细分页") + @PreAuthorize("@ss.hasPermission('heli:task-dispatch:query')") + public CommonResult> getTaskDispatchPageDetail(@Valid YgjxPageReqVO pageReqVO) { + PageResult pageResult = taskDispatchService.getGroupTaskDispatchDetailPage(pageReqVO); + return success(pageResult); + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/vo/YgjxPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/vo/YgjxPageReqVO.java new file mode 100644 index 0000000..76e778a --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/ygjx/vo/YgjxPageReqVO.java @@ -0,0 +1,25 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 员工绩效 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class YgjxPageReqVO extends PageParam { + + @Schema(description = "年月,唯一") + private String yearMonth; + + @Schema(description = "工号/名称,唯一", example = "芋艿") + private String workerIdOrName; + + @Schema(description = "制造设备", example = "14307") + private Long manufacturingEquipment; + + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java index beda93d..ba0946d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java @@ -6,6 +6,8 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailTotalVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; @@ -35,6 +37,31 @@ import java.util.Set; @Mapper public interface TaskDispatchDetailMapper extends BaseMapperX { + default PageResult selectPageGroup(YgjxPageReqVO pageReqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.select( "DATE_FORMAT(t.create_time, '%Y-%m') as yearMonth,\n" + + " t.owner," + + " t.device_model," + + " max(c.name) as manufacturingEquipment," + + " sum(t.work_time) as totalPlannedHours," + + " sum(b.work_time) as totalReportedHours," + + " sum(t.amount) as totalDispatchedQuantity," + + " sum(b.amount) as totalReportedQuantity,max(u2.username) as workerId ,max(u2.nickname) as workerName ") + .leftJoin(TaskReportDO.class,"b",TaskReportDO::getDispatchDetailId,TaskDispatchDetailDO::getId) + .leftJoin(EquipManufactureDO.class,"c",EquipManufactureDO::getId,TaskDispatchDetailDO::getDeviceModel) + .leftJoin("system_users u2 on u2.id = t.owner"); + if (pageReqVO.getWorkerIdOrName()!= null &&!pageReqVO.getWorkerIdOrName().isEmpty()) { + query.and(i -> i.like("u2.username", pageReqVO.getWorkerIdOrName()).or().like("u2.nickname", pageReqVO.getWorkerIdOrName())); + } + query.isNotNull(TaskReportDO::getOwner) + .isNotNull(TaskDispatchDetailDO::getOwner) + .eq(pageReqVO.getYearMonth() !=null&&pageReqVO.getYearMonth()!="","DATE_FORMAT(t.create_time, '%Y-%m')",pageReqVO.getYearMonth()) + .eq(pageReqVO.getManufacturingEquipment() !=null&&pageReqVO.getManufacturingEquipment()>0,"t.device_model",pageReqVO.getManufacturingEquipment()) + .groupBy("DATE_FORMAT(t.create_time, '%Y-%m'),t.OWNER,t.device_model"); + + return selectPage(pageReqVO, query); + } + public int updateOwnerAndPostIdById(@Param("id") Long id,@Param("type") Integer type); List planBbPage(@Param("reqVO")TaskPlanJDBaoBiaoPageReqVO reqVO); List planBb(@Param("reqVO")TaskPlanJDBaoBiaoPageReqVO reqVO); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java index 88e9d7b..2d67852 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java @@ -2,6 +2,7 @@ package com.chanko.yunxi.mes.module.heli.service.taskdispatch; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; @@ -76,6 +77,7 @@ public interface TaskDispatchService { void deleteTaskDispatchDetail(Long id); + PageResult getGroupTaskDispatchDetailPage(YgjxPageReqVO pageReqVO); PageResult getTaskDispatchDetailPage(TaskDispatchDetailPageReqVO pageReqVO); PageResult getTaskDispatchDetailPageWx(TaskDispatchDetailPageReqVO pageReqVO); TaskDispatchDetailDO getTaskDispatchDetail(TaskDispatchDetailPageReqVO pageReqVO); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index 30bf443..e271935 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; @@ -328,6 +329,12 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { taskDispatchDetailMapper.deleteByDispatchId(id); } + @Override + public PageResult getGroupTaskDispatchDetailPage(YgjxPageReqVO pageReqVO) { + + return taskDispatchDetailMapper.selectPageGroup(pageReqVO); + } + @Override public PageResult getTaskDispatchDetailPage(TaskDispatchDetailPageReqVO pageReqVO) { List fpUserDetailDOS = fpUserDetailMapper.selectList(new LambdaQueryWrapper().eq(FpUserDetailDO::getBusyId, pageReqVO.getOwner()));