From 98fc64576d9cb494dddefa8e1ecdf28fd0774fc1 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 27 Feb 2026 14:24:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E7=BB=9F=E8=AE=A1=E5=88=86?= =?UTF-8?q?=E6=9E=90-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/WorkPlanEntity.java | 5 +- .../FmProjectApplicationController.java | 8 + .../controller/CertificateTypeController.java | 134 ++++++++++++++++ .../controller/QualityGradeController.java | 11 ++ .../controller/WorkOrderController.java | 24 ++- .../mapper/CertificateTypeMapper.java | 39 +++++ .../mapper/CertificateTypeMapper.xml | 36 +++++ .../scheduling/mapper/WorkOrderMapper.java | 5 + .../scheduling/mapper/WorkOrderMapper.xml | 147 +++++++++++++++++- .../service/ICertificateTypeService.java | 37 +++++ .../scheduling/service/IWorkOrderService.java | 5 + .../impl/CertificateTypeServiceImpl.java | 39 +++++ .../service/impl/WorkOrderServiceImpl.java | 59 ++++++- .../service/impl/WorkPlanServiceImpl.java | 20 +++ .../scheduling/scheduling/vo/WorkPlanVO.java | 7 +- .../wrapper/CertificateTypeWrapper.java | 35 +++++ 16 files changed, 598 insertions(+), 13 deletions(-) create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java index 0f41ac6d..0bd714cf 100644 --- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java +++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java @@ -274,9 +274,6 @@ public class WorkPlanEntity extends BaseEntity { */ private String factTeamMembers; - /** - * 零件号 - */ - private String partCode; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java index bcf09a40..d43202d5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java @@ -40,6 +40,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; @@ -50,6 +51,8 @@ import org.springblade.desk.process.pojo.vo.FmProjectApplicationVO; import org.springblade.desk.process.service.IFmProjectApplicationService; import org.springblade.desk.process.service.IFmProjectMilestoneService; import org.springblade.desk.process.wrapper.FmProjectApplicationWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; @@ -73,6 +76,8 @@ public class FmProjectApplicationController extends BladeController { private final IFmProjectMilestoneService fmProjectMilestoneService; + private final IUserClient userClient; + /** * 项目管理 详情 */ @@ -145,6 +150,9 @@ public class FmProjectApplicationController extends BladeController { if(fmProjectApplication.getTouchingTime()==null){ fmProjectApplication.setTouchingTime(new Date()); } + BladeUser bladeUser = AuthUtil.getUser(); + User user = userClient.userInfoById(bladeUser.getUserId()).getData(); + fmProjectApplication.setTouchingMan(user.getRealName()); Boolean flag=fmProjectApplicationService.saveOrUpdate(fmProjectApplication); if(flag){ List stoneList=fmProjectApplication.getStoneList(); diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java new file mode 100644 index 00000000..61f50a6d --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java @@ -0,0 +1,134 @@ +package org.springblade.scheduling.scheduling.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; +import org.springblade.scheduling.scheduling.service.ICertificateTypeService; +import org.springblade.scheduling.scheduling.wrapper.CertificateTypeWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 证书类型 控制器 + * + * @author qyl + * @since 2026-01-08 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/certificateType") +@Tag(name = "证书类型维护", description = "证书类型维护接口") +public class CertificateTypeController extends BladeController { + + private final ICertificateTypeService certificateTypeService; + + /** + * 证书类型 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入certificateType") + public R detail(CertificateTypeEntity certificateType) { + CertificateTypeEntity detail = certificateTypeService.getOne(Condition.getQueryWrapper(certificateType)); + return R.data(CertificateTypeWrapper.build().entityVO(detail)); + } + + /** + * 证书类型 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入certificateType") + public R> page(CertificateTypeVO certificateType, Query query) { + IPage pages = certificateTypeService.selectCertificateTypePage(Condition.getPage(query), certificateType); + return R.data(pages); + } + + /** + * 证书类型 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入certificateType") + public R save(@Valid @RequestBody CertificateTypeEntity certificateType) { + return R.status(certificateTypeService.save(certificateType)); + } + + /** + * 证书类型 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入certificateType") + public R update(@Valid @RequestBody CertificateTypeEntity certificateType) { + return R.status(certificateTypeService.updateById(certificateType)); + } + + /** + * 证书类型 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入certificateType") + public R submit(@Valid @RequestBody CertificateTypeEntity certificateType) { + return R.status(certificateTypeService.saveOrUpdate(certificateType)); + } + + /** + * 证书类型 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(certificateTypeService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-certificateType") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入certificateType") + public void exportCertificateType(@Parameter(hidden = true) @RequestParam Map certificateType, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(certificateType, CertificateTypeEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(CertificateType::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(CertificateTypeEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = certificateTypeService.exportCertificateType(queryWrapper); + ExcelUtil.export(response, "证书类型数据" + DateUtil.time(), "证书类型数据表", list, CertificateTypeExcel.class); + } + + /** + * 质量等级表 分页 + */ + @GetMapping("/selectList") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入QualityGrade") + public R> selectGradeList() { + List list = certificateTypeService.list(); + return R.data(list); + } + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java index c121b502..310287fc 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java @@ -220,4 +220,15 @@ public class QualityGradeController extends BladeController { ExcelUtil.export(response, "质量等级表数据" + DateUtil.time(), "质量等级表数据表", list, QualityGradeExcel.class); } + /** + * 质量等级表 分页 + */ + @GetMapping("/selectList") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入QualityGrade") + public R> selectGradeList() { + List list = qualityGradeService.list(); + return R.data(list); + } + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java index 5f022d9b..0fb68fcd 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java @@ -287,7 +287,7 @@ public class WorkOrderController extends BladeController { } /** - * 资质执行分析 自定义分页 + * 订单执行分析 自定义分页 */ @GetMapping("/selectOrderExecuteDetailPage") @ApiOperationSupport(order = 3) @@ -297,4 +297,26 @@ public class WorkOrderController extends BladeController { return R.data(pages); } + /** + * 工序执行分析 自定义分页 + */ + @GetMapping("/selectProcessExecutePage") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入WorkOrder") + public R> selectProcessExecutePage(WorkPlanVO workPlan, Query query) { + IPage pages = workOrderService.selectProcessExecutePage(Condition.getPage(query), workPlan); + return R.data(pages); + } + + /** + * 工序执行分析明细 自定义分页 + */ + @GetMapping("/selectProcessExecuteDetailPage") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入WorkOrder") + public R> selectProcessExecuteDetailPage(WorkPlanVO workPlan, Query query) { + IPage pages = workOrderService.selectProcessExecuteDetailPage(Condition.getPage(query), workPlan); + return R.data(pages); + } + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java new file mode 100644 index 00000000..912c2c1b --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java @@ -0,0 +1,39 @@ +package org.springblade.scheduling.scheduling.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; + +import java.util.List; + +/** + * 证书类型 Mapper 接口 + * + * @author qyl + * @since 2026-01-08 + */ +public interface CertificateTypeMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param certificateType 查询参数 + * @return List + */ + List selectCertificateTypePage(IPage page, CertificateTypeVO certificateType); + + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportCertificateType(@Param("ew") Wrapper queryWrapper); + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml new file mode 100644 index 00000000..8432019f --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java index 1926cd65..b2dce072 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java @@ -89,4 +89,9 @@ public interface WorkOrderMapper extends BaseMapper { List selectOrderExecuteDetailPage(IPage page, WorkPlanVO workPlan); + List selectProcessExecutePage(IPage page, WorkPlanVO workPlan); + + List selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan); + + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml index b5e42fe3..5098abf6 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml @@ -395,7 +395,7 @@ sum( CASE WHEN a.FACT_END_TIME a.PLAN_END_TIME - #{interval} / 1440 THEN 1 ELSE 0 END ) AS earlyFinishCount, sum( CASE WHEN a.FACT_END_TIME BETWEEN a.PLAN_END_TIME - #{interval} / 1440 AND a.PLAN_END_TIME + #{interval} / 1440 THEN 1 ELSE 0 END ) AS onTimeFinishCount, sum( CASE WHEN a.FACT_END_TIME ]]> a.PLAN_END_TIME + #{interval} / 1440 THEN 1 ELSE 0 END ) AS delayFinishCount, - count( 1 ) AS totalOrderCount + count( 1 ) AS totalCount FROM MES_WORK_ORDER a LEFT JOIN MES_YIELD_ORDER b ON a.yo_id = b.id @@ -496,4 +496,149 @@ + + + + diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java new file mode 100644 index 00000000..736de04f --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java @@ -0,0 +1,37 @@ +package org.springblade.scheduling.scheduling.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; + +import java.util.List; + +/** + * 证书类型 服务类 + * + * @author qyl + * @since 2026-01-08 + */ +public interface ICertificateTypeService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param certificateType 查询参数 + * @return IPage + */ + IPage selectCertificateTypePage(IPage page, CertificateTypeVO certificateType); + + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportCertificateType(Wrapper queryWrapper); + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java index 4eef3a0d..8a4b6ea4 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java @@ -113,4 +113,9 @@ public interface IWorkOrderService extends BaseService { List selectCenterExecuteList(WorkPlanVO workPlan); IPage selectOrderExecuteDetailPage(IPage page, WorkPlanVO workPlan); + + IPage selectProcessExecutePage(IPage page, WorkPlanVO workPlan); + + IPage selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan); + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java new file mode 100644 index 00000000..4f4a1cbf --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java @@ -0,0 +1,39 @@ +package org.springblade.scheduling.scheduling.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; +import org.springblade.scheduling.scheduling.mapper.CertificateTypeMapper; +import org.springblade.scheduling.scheduling.service.ICertificateTypeService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 证书类型 服务实现类 + * + * @author qyl + * @since 2026-01-08 + */ +@Service +public class CertificateTypeServiceImpl extends BaseServiceImpl implements ICertificateTypeService { + + @Override + public IPage selectCertificateTypePage(IPage page, CertificateTypeVO certificateType) { + return page.setRecords(baseMapper.selectCertificateTypePage(page, certificateType)); + } + + + @Override + public List exportCertificateType(Wrapper queryWrapper) { + List certificateTypeList = baseMapper.exportCertificateType(queryWrapper); + //certificateTypeList.forEach(certificateType -> { + // certificateType.setTypeName(DictCache.getValue(DictEnum.YES_NO, CertificateType.getType())); + //}); + return certificateTypeList; + } + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 50b6f1eb..40792205 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -1472,15 +1472,18 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectCenterExecuteList(WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } List list = baseMapper.selectCenterExecuteList(workPlan); if (CollectionUtils.isNotEmpty(list)) { for (WorkPlanVO vo : list) { - vo.setEarlyStartCountRate(vo.getEarlyStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyStartCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setOnTimeStartCountRate(vo.getOnTimeStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeStartCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setDelayStartCountRate(vo.getDelayStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayStartCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setEarlyFinishCountRate(vo.getEarlyFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyFinishCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setOnTimeFinishCountRate(vo.getOnTimeFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeFinishCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setDelayFinishCountRate(vo.getDelayFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayFinishCount() / vo.getTotalOrderCount())) * 100 + "%"); + vo.setEarlyStartCountRate(vo.getEarlyStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeStartCountRate(vo.getOnTimeStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayStartCountRate(vo.getDelayStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setEarlyFinishCountRate(vo.getEarlyFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeFinishCountRate(vo.getOnTimeFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayFinishCountRate(vo.getDelayFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayFinishCount() / vo.getTotalCount())) * 100 + "%"); } } return list; @@ -1488,6 +1491,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectOrderExecuteDetailPage(IPage page, WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } if (StringUtils.isNotEmpty(workPlan.getStartTime())) { workPlan.setStartTime(workPlan.getStartTime() + " 00:00:00"); } @@ -1498,5 +1504,46 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectProcessExecutePage(IPage page, WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } + if (StringUtils.isNotEmpty(workPlan.getStartTime())) { + workPlan.setStartTime(workPlan.getStartTime() + " 00:00:00"); + } + if (StringUtils.isNotEmpty(workPlan.getEndTime())) { + workPlan.setEndTime(workPlan.getEndTime() + " 23:59:59"); + } + List list = baseMapper.selectProcessExecutePage(page, workPlan); + if (CollectionUtils.isNotEmpty(list)) { + for (WorkPlanVO vo : list) { + vo.setEarlyStartCountRate(vo.getEarlyStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeStartCountRate(vo.getOnTimeStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayStartCountRate(vo.getDelayStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setEarlyFinishCountRate(vo.getEarlyFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeFinishCountRate(vo.getOnTimeFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayFinishCountRate(vo.getDelayFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayFinishCount() / vo.getTotalCount())) * 100 + "%"); + } + } + return page.setRecords(list); + } + + @Override + public IPage selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } + if (StringUtils.isNotEmpty(workPlan.getStartTime())) { + workPlan.setStartTime(workPlan.getStartTime() + " 00:00:00"); + } + if (StringUtils.isNotEmpty(workPlan.getEndTime())) { + workPlan.setEndTime(workPlan.getEndTime() + " 23:59:59"); + } + List list = baseMapper.selectProcessExecuteDetailPage(page, workPlan); + return page.setRecords(list); + } + + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java index 09d0122f..1d42cc5b 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java @@ -26,11 +26,15 @@ package org.springblade.scheduling.scheduling.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import org.springblade.scheduling.scheduling.excel.WorkPlanExcel; +import org.springblade.scheduling.scheduling.mapper.WorkOrderMapper; import org.springblade.scheduling.scheduling.mapper.WorkPlanMapper; +import org.springblade.scheduling.scheduling.service.ICraftAbilityService; import org.springblade.scheduling.scheduling.service.IWorkPlanService; import org.springblade.scheduling.scheduling.vo.WorkPlanVO; import org.springframework.stereotype.Service; @@ -51,8 +55,11 @@ import java.util.List; * @since 2025-11-28 */ @Service +@RequiredArgsConstructor public class WorkPlanServiceImpl extends BaseServiceImpl implements IWorkPlanService { + private final WorkOrderMapper workOrderMapper; + @Override public IPage selectWorkPlanPage(IPage page, WorkPlanVO workPlan) { return page.setRecords(baseMapper.selectWorkPlanPage(page, workPlan)); @@ -83,11 +90,24 @@ public class WorkPlanServiceImpl extends BaseServiceImpl allPlanList = baseMapper.selectList(Wrappers.lambdaQuery().eq(WorkPlanEntity::getWoId,workPlan.getWoId()).orderByAsc(WorkPlanEntity::getOrders)); + //获取车间订单 + WorkOrderEntity workOrder = workOrderMapper.selectById(workPlan.getWoId()); + if(workOrder.getFactStartTime() == null && allPlanList.get(0).getFactStartTime() != null){ + workOrder.setFactStartTime(allPlanList.get(0).getFactStartTime()); + } + if(workOrder.getFactEndTime() == null && allPlanList.get(allPlanList.size()-1).getFactEndTime()!=null){ + workOrder.setFactEndTime(allPlanList.get(allPlanList.size()-1).getFactEndTime()); + } + workOrderMapper.updateById(workOrder); } } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java index 79e9bbfb..3caa6c1c 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java @@ -43,6 +43,11 @@ public class WorkPlanVO extends WorkPlanEntity { @Serial private static final long serialVersionUID = 1L; + /** + * 零件号 + */ + private String partCode; + private String partName; private String batchNo; @@ -81,7 +86,7 @@ public class WorkPlanVO extends WorkPlanEntity { private String earlyFinishCountRate; private String onTimeFinishCountRate; private String delayFinishCountRate; - private Integer totalOrderCount; + private Integer totalCount; private Integer interval; private String startType; private String endType; diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java new file mode 100644 index 00000000..77d985a4 --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java @@ -0,0 +1,35 @@ +package org.springblade.scheduling.scheduling.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; + +import java.util.Objects; + +/** + * 证书类型 包装类,返回视图层所需的字段 + * + * @author qyl + * @since 2026-01-08 + */ +public class CertificateTypeWrapper extends BaseEntityWrapper { + + public static CertificateTypeWrapper build() { + return new CertificateTypeWrapper(); + } + + @Override + public CertificateTypeVO entityVO(CertificateTypeEntity certificateType) { + CertificateTypeVO certificateTypeVO = Objects.requireNonNull(BeanUtil.copyProperties(certificateType, CertificateTypeVO.class)); + + //User createUser = UserCache.getUser(certificateType.getCreateUser()); + //User updateUser = UserCache.getUser(certificateType.getUpdateUser()); + //certificateTypeVO.setCreateUserName(createUser.getName()); + //certificateTypeVO.setUpdateUserName(updateUser.getName()); + + return certificateTypeVO; + } + + +}