排产相关-sjx

develop-QA
sunjianxi 4 months ago
parent d70cf50650
commit 1cfa50b78d
  1. 160
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/DifferentFurnaceTankController.java
  2. 160
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/InspectionItemController.java
  3. 160
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java
  4. 129
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/DifferentFurnaceTankEntity.java
  5. 84
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/InspectionItemEntity.java
  6. 64
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/QualityGradeEntity.java
  7. 159
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/excel/DifferentFurnaceTankExcel.java
  8. 105
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/excel/InspectionItemExcel.java
  9. 81
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/excel/QualityGradeExcel.java
  10. 64
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/DifferentFurnaceTankMapper.java
  11. 42
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/DifferentFurnaceTankMapper.xml
  12. 64
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/InspectionItemMapper.java
  13. 33
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/InspectionItemMapper.xml
  14. 64
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/QualityGradeMapper.java
  15. 29
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/QualityGradeMapper.xml
  16. 3
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
  17. 62
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IDifferentFurnaceTankService.java
  18. 62
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IInspectionItemService.java
  19. 62
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IQualityGradeService.java
  20. 63
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/DifferentFurnaceTankServiceImpl.java
  21. 64
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/InspectionItemServiceImpl.java
  22. 64
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/QualityGradeServiceImpl.java
  23. 262
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  24. 46
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/DifferentFurnaceTankVO.java
  25. 46
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/InspectionItemVO.java
  26. 46
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/QualityGradeVO.java
  27. 60
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/DifferentFurnaceTankWrapper.java
  28. 60
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/InspectionItemWrapper.java
  29. 60
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/QualityGradeWrapper.java

@ -0,0 +1,160 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.secure.annotation.IsAdmin;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel;
import org.springblade.scheduling.scheduling.service.IDifferentFurnaceTankService;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO;
import org.springblade.scheduling.scheduling.wrapper.DifferentFurnaceTankWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 非同炉同槽因素表 控制器
*
* @author BladeX
* @since 2025-12-18
*/
@RestController
@AllArgsConstructor
@RequestMapping("/differentFurnaceTank")
@Tag(name = "非同炉同槽因素表", description = "非同炉同槽因素表接口")
public class DifferentFurnaceTankController extends BladeController {
private final IDifferentFurnaceTankService differentFurnaceTankService;
/**
* 非同炉同槽因素表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入DifferentFurnaceTank")
public R<DifferentFurnaceTankVO> detail(DifferentFurnaceTankEntity DifferentFurnaceTank) {
DifferentFurnaceTankEntity detail = differentFurnaceTankService.getOne(Condition.getQueryWrapper(DifferentFurnaceTank));
return R.data(DifferentFurnaceTankWrapper.build().entityVO(detail));
}
/**
* 非同炉同槽因素表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入DifferentFurnaceTank")
public R<IPage<DifferentFurnaceTankVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> DifferentFurnaceTank, Query query) {
IPage<DifferentFurnaceTankEntity> pages = differentFurnaceTankService.page(Condition.getPage(query), Condition.getQueryWrapper(DifferentFurnaceTank, DifferentFurnaceTankEntity.class));
return R.data(DifferentFurnaceTankWrapper.build().pageVO(pages));
}
/**
* 非同炉同槽因素表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入DifferentFurnaceTank")
public R<IPage<DifferentFurnaceTankVO>> page(DifferentFurnaceTankVO DifferentFurnaceTank, Query query) {
IPage<DifferentFurnaceTankVO> pages = differentFurnaceTankService.selectDifferentFurnaceTankPage(Condition.getPage(query), DifferentFurnaceTank);
return R.data(pages);
}
/**
* 非同炉同槽因素表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入DifferentFurnaceTank")
public R save(@Valid @RequestBody DifferentFurnaceTankEntity DifferentFurnaceTank) {
return R.status(differentFurnaceTankService.save(DifferentFurnaceTank));
}
/**
* 非同炉同槽因素表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入DifferentFurnaceTank")
public R update(@Valid @RequestBody DifferentFurnaceTankEntity DifferentFurnaceTank) {
return R.status(differentFurnaceTankService.updateById(DifferentFurnaceTank));
}
/**
* 非同炉同槽因素表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入DifferentFurnaceTank")
public R submit(@Valid @RequestBody DifferentFurnaceTankEntity DifferentFurnaceTank) {
return R.status(differentFurnaceTankService.saveOrUpdate(DifferentFurnaceTank));
}
/**
* 非同炉同槽因素表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(differentFurnaceTankService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入DifferentFurnaceTank")
public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> DifferentFurnaceTank, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<DifferentFurnaceTankEntity> queryWrapper = Condition.getQueryWrapper(DifferentFurnaceTank, DifferentFurnaceTankEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(DifferentFurnaceTank::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(DifferentFurnaceTankEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<DifferentFurnaceTankExcel> list = differentFurnaceTankService.export(queryWrapper);
ExcelUtil.export(response, "非同炉同槽因素表数据" + DateUtil.time(), "非同炉同槽因素表数据表", list, DifferentFurnaceTankExcel.class);
}
}

@ -0,0 +1,160 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.secure.annotation.IsAdmin;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.scheduling.scheduling.entity.InspectionItemEntity;
import org.springblade.scheduling.scheduling.excel.InspectionItemExcel;
import org.springblade.scheduling.scheduling.service.IInspectionItemService;
import org.springblade.scheduling.scheduling.vo.InspectionItemVO;
import org.springblade.scheduling.scheduling.wrapper.InspectionItemWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 检验工时表 控制器
*
* @author BladeX
* @since 2025-12-18
*/
@RestController
@AllArgsConstructor
@RequestMapping("/inspectionItem")
@Tag(name = "检验工时表", description = "检验工时表接口")
public class InspectionItemController extends BladeController {
private final IInspectionItemService inspectionItemService;
/**
* 检验工时表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入InspectionItem")
public R<InspectionItemVO> detail(InspectionItemEntity InspectionItem) {
InspectionItemEntity detail = inspectionItemService.getOne(Condition.getQueryWrapper(InspectionItem));
return R.data(InspectionItemWrapper.build().entityVO(detail));
}
/**
* 检验工时表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入InspectionItem")
public R<IPage<InspectionItemVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> InspectionItem, Query query) {
IPage<InspectionItemEntity> pages = inspectionItemService.page(Condition.getPage(query), Condition.getQueryWrapper(InspectionItem, InspectionItemEntity.class));
return R.data(InspectionItemWrapper.build().pageVO(pages));
}
/**
* 检验工时表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入InspectionItem")
public R<IPage<InspectionItemVO>> page(InspectionItemVO InspectionItem, Query query) {
IPage<InspectionItemVO> pages = inspectionItemService.selectInspectionItemPage(Condition.getPage(query), InspectionItem);
return R.data(pages);
}
/**
* 检验工时表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入InspectionItem")
public R save(@Valid @RequestBody InspectionItemEntity InspectionItem) {
return R.status(inspectionItemService.save(InspectionItem));
}
/**
* 检验工时表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入InspectionItem")
public R update(@Valid @RequestBody InspectionItemEntity InspectionItem) {
return R.status(inspectionItemService.updateById(InspectionItem));
}
/**
* 检验工时表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入InspectionItem")
public R submit(@Valid @RequestBody InspectionItemEntity InspectionItem) {
return R.status(inspectionItemService.saveOrUpdate(InspectionItem));
}
/**
* 检验工时表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(inspectionItemService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入InspectionItem")
public void exportInspectionItem(@Parameter(hidden = true) @RequestParam Map<String, Object> InspectionItem, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<InspectionItemEntity> queryWrapper = Condition.getQueryWrapper(InspectionItem, InspectionItemEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(InspectionItem::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(InspectionItemEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<InspectionItemExcel> list = inspectionItemService.export(queryWrapper);
ExcelUtil.export(response, "检验工时表数据" + DateUtil.time(), "检验工时表数据表", list, InspectionItemExcel.class);
}
}

@ -0,0 +1,160 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.secure.annotation.IsAdmin;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.scheduling.scheduling.entity.QualityGradeEntity;
import org.springblade.scheduling.scheduling.excel.QualityGradeExcel;
import org.springblade.scheduling.scheduling.service.IQualityGradeService;
import org.springblade.scheduling.scheduling.vo.QualityGradeVO;
import org.springblade.scheduling.scheduling.wrapper.QualityGradeWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 质量等级表 控制器
*
* @author BladeX
* @since 2025-12-18
*/
@RestController
@AllArgsConstructor
@RequestMapping("/qualityGrade")
@Tag(name = "质量等级表", description = "质量等级表接口")
public class QualityGradeController extends BladeController {
private final IQualityGradeService qualityGradeService;
/**
* 质量等级表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入QualityGrade")
public R<QualityGradeVO> detail(QualityGradeEntity QualityGrade) {
QualityGradeEntity detail = qualityGradeService.getOne(Condition.getQueryWrapper(QualityGrade));
return R.data(QualityGradeWrapper.build().entityVO(detail));
}
/**
* 质量等级表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入QualityGrade")
public R<IPage<QualityGradeVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> QualityGrade, Query query) {
IPage<QualityGradeEntity> pages = qualityGradeService.page(Condition.getPage(query), Condition.getQueryWrapper(QualityGrade, QualityGradeEntity.class));
return R.data(QualityGradeWrapper.build().pageVO(pages));
}
/**
* 质量等级表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入QualityGrade")
public R<IPage<QualityGradeVO>> page(QualityGradeVO QualityGrade, Query query) {
IPage<QualityGradeVO> pages = qualityGradeService.selectQualityGradePage(Condition.getPage(query), QualityGrade);
return R.data(pages);
}
/**
* 质量等级表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入QualityGrade")
public R save(@Valid @RequestBody QualityGradeEntity QualityGrade) {
return R.status(qualityGradeService.save(QualityGrade));
}
/**
* 质量等级表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入QualityGrade")
public R update(@Valid @RequestBody QualityGradeEntity QualityGrade) {
return R.status(qualityGradeService.updateById(QualityGrade));
}
/**
* 质量等级表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入QualityGrade")
public R submit(@Valid @RequestBody QualityGradeEntity QualityGrade) {
return R.status(qualityGradeService.saveOrUpdate(QualityGrade));
}
/**
* 质量等级表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(qualityGradeService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入QualityGrade")
public void exportQualityGrade(@Parameter(hidden = true) @RequestParam Map<String, Object> QualityGrade, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<QualityGradeEntity> queryWrapper = Condition.getQueryWrapper(QualityGrade, QualityGradeEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(QualityGrade::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(QualityGradeEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<QualityGradeExcel> list = qualityGradeService.export(queryWrapper);
ExcelUtil.export(response, "质量等级表数据" + DateUtil.time(), "质量等级表数据表", list, QualityGradeExcel.class);
}
}

@ -0,0 +1,129 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 非同炉同槽因素表 实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@TableName("MES_DIFFERENT_FURNACE_TANK")
@Schema(description = "MesDifferentFurnaceTank对象")
@EqualsAndHashCode(callSuper = true)
public class DifferentFurnaceTankEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 作业中心id
*/
@Schema(description = "作业中心id")
private BigDecimal workCenterId;
/**
* 作业中心名称
*/
@Schema(description = "作业中心名称")
private String workCenterName;
/**
* 工序id
*/
@Schema(description = "工序id")
private BigDecimal processId;
/**
* 工序名称
*/
@Schema(description = "工序名称")
private String processName;
/**
* 工艺能力id
*/
@Schema(description = "工艺能力id")
private BigDecimal craftId;
/**
* 工艺能力
*/
@Schema(description = "工艺能力")
private String craftName;
/**
* 键位
*/
@Schema(description = "键位")
private String keyBinding;
/**
* 生产厂家
*/
@Schema(description = "生产厂家")
private String factory;
/**
* 检验编号
*/
@Schema(description = "检验编号")
private String inspectionCode;
/**
* 材料
*/
@Schema(description = "材料")
private String material;
/**
* 厚度
*/
@Schema(description = "厚度")
private String thickness;
/**
* 镀化
*/
@Schema(description = "镀化")
private String passivation;
/**
* 硬度
*/
@Schema(description = "硬度")
private String hardness;
/**
* 生产标识
*/
@Schema(description = "生产标识")
private String productionIdent;
/**
* 结构/单件面积
*/
@Schema(description = "结构/单件面积")
private String singleArea;
}

@ -0,0 +1,84 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 检验工时表 实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@TableName("MES_INSPECTION_ITEM")
@Schema(description = "MesInspectionItem对象")
@EqualsAndHashCode(callSuper = true)
public class InspectionItemEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 抽样数量
*/
@Schema(description = "抽样数量")
private String samplingQuantity;
/**
* 额定工时
*/
@Schema(description = "额定工时")
private BigDecimal standardTime;
/**
* 准备时间
*/
@Schema(description = "准备时间")
private BigDecimal prepareTime;
/**
* 单位
*/
@Schema(description = "单位")
private String unit;
/**
* 备注
*/
@Schema(description = "备注")
private String remarks;
/**
* 检验项目
*/
@Schema(description = "检验项目")
private String inspectionItem;
}

@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 质量等级表 实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@TableName("MES_QUALITY_GRADE")
@Schema(description = "MesQualityGrade对象")
@EqualsAndHashCode(callSuper = true)
public class QualityGradeEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 质量等级
*/
@Schema(description = "质量等级")
private String qualityGrade;
/**
* 类型 1-军品 2-商飞 3-宇航
*/
@Schema(description = "类型 1-军品 2-商飞 3-宇航")
private String type;
}

@ -0,0 +1,159 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.excel;
import lombok.Data;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serializable;
import java.io.Serial;
/**
* 非同炉同槽因素表 Excel实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class DifferentFurnaceTankExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ColumnWidth(20)
@ExcelProperty("ID")
private BigDecimal id;
/**
* 作业中心id
*/
@ColumnWidth(20)
@ExcelProperty("作业中心id")
private BigDecimal workCenterId;
/**
* 作业中心名称
*/
@ColumnWidth(20)
@ExcelProperty("作业中心名称")
private String workCenterName;
/**
* 工序id
*/
@ColumnWidth(20)
@ExcelProperty("工序id")
private BigDecimal processId;
/**
* 工序名称
*/
@ColumnWidth(20)
@ExcelProperty("工序名称")
private String processName;
/**
* 工艺能力id
*/
@ColumnWidth(20)
@ExcelProperty("工艺能力id")
private BigDecimal craftId;
/**
* 工艺能力
*/
@ColumnWidth(20)
@ExcelProperty("工艺能力")
private String craftName;
/**
* 键位
*/
@ColumnWidth(20)
@ExcelProperty("键位")
private String keyBinding;
/**
* 生产厂家
*/
@ColumnWidth(20)
@ExcelProperty("生产厂家")
private String factory;
/**
* 检验编号
*/
@ColumnWidth(20)
@ExcelProperty("检验编号")
private String inspectionCode;
/**
* 材料
*/
@ColumnWidth(20)
@ExcelProperty("材料")
private String material;
/**
* 厚度
*/
@ColumnWidth(20)
@ExcelProperty("厚度")
private String thickness;
/**
* 镀化
*/
@ColumnWidth(20)
@ExcelProperty("镀化")
private String passivation;
/**
* 硬度
*/
@ColumnWidth(20)
@ExcelProperty("硬度")
private String hardness;
/**
* 生产标识
*/
@ColumnWidth(20)
@ExcelProperty("生产标识")
private String productionIdent;
/**
* 结构/单件面积
*/
@ColumnWidth(20)
@ExcelProperty("结构/单件面积")
private String singleArea;
/**
* 是否已删除
*/
@ColumnWidth(20)
@ExcelProperty("是否已删除")
private Long isDeleted;
}

@ -0,0 +1,105 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.excel;
import lombok.Data;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serializable;
import java.io.Serial;
/**
* 检验工时表 Excel实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class InspectionItemExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 抽样数量
*/
@ColumnWidth(20)
@ExcelProperty("抽样数量")
private String samplingQuantity;
/**
* 额定工时
*/
@ColumnWidth(20)
@ExcelProperty("额定工时")
private BigDecimal standardTime;
/**
* 准备时间
*/
@ColumnWidth(20)
@ExcelProperty("准备时间")
private BigDecimal prepareTime;
/**
* 单位
*/
@ColumnWidth(20)
@ExcelProperty("单位")
private String unit;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remarks;
/**
* 是否已删除
*/
@ColumnWidth(20)
@ExcelProperty("是否已删除")
private Long isDeleted;
/**
* ID
*/
@ColumnWidth(20)
@ExcelProperty("ID")
private BigDecimal id;
/**
* 检验项目
*/
@ColumnWidth(20)
@ExcelProperty("检验项目")
private String inspectionItem;
}

@ -0,0 +1,81 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.excel;
import lombok.Data;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serializable;
import java.io.Serial;
/**
* 质量等级表 Excel实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class QualityGradeExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ColumnWidth(20)
@ExcelProperty("ID")
private BigDecimal id;
/**
* 质量等级
*/
@ColumnWidth(20)
@ExcelProperty("质量等级")
private String qualityGrade;
/**
* 类型 1-军品 2-商飞 3-宇航
*/
@ColumnWidth(20)
@ExcelProperty("类型 1-军品 2-商飞 3-宇航")
private String type;
/**
* 是否已删除
*/
@ColumnWidth(20)
@ExcelProperty("是否已删除")
private Long isDeleted;
}

@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO;
import java.util.List;
/**
* 非同炉同槽因素表 Mapper 接口
*
* @author BladeX
* @since 2025-12-18
*/
public interface DifferentFurnaceTankMapper extends BaseMapper<DifferentFurnaceTankEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param DifferentFurnaceTank 查询参数
* @return List<DifferentFurnaceTankVO>
*/
List<DifferentFurnaceTankVO> selectDifferentFurnaceTankPage(IPage page, DifferentFurnaceTankVO DifferentFurnaceTank);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<DifferentFurnaceTankExcel>
*/
List<DifferentFurnaceTankExcel> export(@Param("ew") Wrapper<DifferentFurnaceTankEntity> queryWrapper);
}

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.scheduling.scheduling.mapper.DifferentFurnaceTankMapper">
<!-- 通用查询映射结果 -->
<resultMap id="differentFurnaceTankResultMap" type="org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity">
<result column="ID" property="id"/>
<result column="WORK_CENTER_ID" property="workCenterId"/>
<result column="WORK_CENTER_NAME" property="workCenterName"/>
<result column="PROCESS_ID" property="processId"/>
<result column="PROCESS_NAME" property="processName"/>
<result column="CRAFT_ID" property="craftId"/>
<result column="CRAFT_NAME" property="craftName"/>
<result column="KEY_BINDING" property="keyBinding"/>
<result column="FACTORY" property="factory"/>
<result column="INSPECTION_CODE" property="inspectionCode"/>
<result column="MATERIAL" property="material"/>
<result column="THICKNESS" property="thickness"/>
<result column="PASSIVATION" property="passivation"/>
<result column="HARDNESS" property="hardness"/>
<result column="PRODUCTION_IDENT" property="productionIdent"/>
<result column="SINGLE_AREA" property="singleArea"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
</resultMap>
<select id="selectDifferentFurnaceTankPage" resultMap="differentFurnaceTankResultMap">
select * from MES_DIFFERENT_FURNACE_TANK where is_deleted = 0
</select>
<select id="export" resultType="org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel">
SELECT * FROM MES_DIFFERENT_FURNACE_TANK ${ew.customSqlSegment}
</select>
</mapper>

@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.scheduling.scheduling.entity.InspectionItemEntity;
import org.springblade.scheduling.scheduling.excel.InspectionItemExcel;
import org.springblade.scheduling.scheduling.vo.InspectionItemVO;
import java.util.List;
/**
* 检验工时表 Mapper 接口
*
* @author BladeX
* @since 2025-12-18
*/
public interface InspectionItemMapper extends BaseMapper<InspectionItemEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param InspectionItem 查询参数
* @return List<InspectionItemVO>
*/
List<InspectionItemVO> selectInspectionItemPage(IPage page, InspectionItemVO InspectionItem);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<InspectionItemExcel>
*/
List<InspectionItemExcel> export(@Param("ew") Wrapper<InspectionItemEntity> queryWrapper);
}

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.scheduling.scheduling.mapper.InspectionItemMapper">
<!-- 通用查询映射结果 -->
<resultMap id="inspectionItemResultMap" type="org.springblade.scheduling.scheduling.entity.InspectionItemEntity">
<result column="SAMPLING_QUANTITY" property="samplingQuantity"/>
<result column="STANDARD_TIME" property="standardTime"/>
<result column="PREPARE_TIME" property="prepareTime"/>
<result column="UNIT" property="unit"/>
<result column="REMARKS" property="remarks"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="ID" property="id"/>
<result column="INSPECTION_ITEM" property="inspectionItem"/>
</resultMap>
<select id="selectInspectionItemPage" resultMap="inspectionItemResultMap">
select * from MES_INSPECTION_ITEM where is_deleted = 0
</select>
<select id="export" resultType="org.springblade.scheduling.scheduling.excel.InspectionItemExcel">
SELECT * FROM MES_INSPECTION_ITEM ${ew.customSqlSegment}
</select>
</mapper>

@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.scheduling.scheduling.entity.QualityGradeEntity;
import org.springblade.scheduling.scheduling.excel.QualityGradeExcel;
import org.springblade.scheduling.scheduling.vo.QualityGradeVO;
import java.util.List;
/**
* 质量等级表 Mapper 接口
*
* @author BladeX
* @since 2025-12-18
*/
public interface QualityGradeMapper extends BaseMapper<QualityGradeEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param QualityGrade 查询参数
* @return List<QualityGradeVO>
*/
List<QualityGradeVO> selectQualityGradePage(IPage page, QualityGradeVO QualityGrade);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<QualityGradeExcel>
*/
List<QualityGradeExcel> export(@Param("ew") Wrapper<QualityGradeEntity> queryWrapper);
}

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.scheduling.scheduling.mapper.QualityGradeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="qualityGradeResultMap" type="org.springblade.scheduling.scheduling.entity.QualityGradeEntity">
<result column="ID" property="id"/>
<result column="QUALITY_GRADE" property="qualityGrade"/>
<result column="TYPE" property="type"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
</resultMap>
<select id="selectQualityGradePage" resultMap="qualityGradeResultMap">
select * from MES_QUALITY_GRADE where is_deleted = 0
</select>
<select id="export" resultType="org.springblade.scheduling.scheduling.excel.QualityGradeExcel">
SELECT * FROM MES_QUALITY_GRADE ${ew.customSqlSegment}
</select>
</mapper>

@ -113,7 +113,7 @@
LEFT JOIN MES_WORK_PLAN e on a.wp_id = e.id LEFT JOIN MES_WORK_PLAN e on a.wp_id = e.id
LEFT JOIN BS_PROCESS_SET f on e.pps_id = f.id LEFT JOIN BS_PROCESS_SET f on e.pps_id = f.id
<where> <where>
c.ts_name is not null and b.EQUIP_CODE is not null and a.is_deleted = 0 c.ts_name is not null and a.is_deleted = 0
<if test="startTime !=null and startTime != ''"> <if test="startTime !=null and startTime != ''">
and (to_char(b.start_time,'YYYY-MM-DD') = #{startTime} or (b.start_time <![CDATA[ < ]]> to_date(CONCAT(#{startTime},' 00:00:00'),'YYYY-MM-DD HH24:MI:SS') and b.end_time <![CDATA[ > ]]> to_date(CONCAT(#{startTime},' 23:59:59'),'YYYY-MM-DD HH24:MI:SS'))) and (to_char(b.start_time,'YYYY-MM-DD') = #{startTime} or (b.start_time <![CDATA[ < ]]> to_date(CONCAT(#{startTime},' 00:00:00'),'YYYY-MM-DD HH24:MI:SS') and b.end_time <![CDATA[ > ]]> to_date(CONCAT(#{startTime},' 23:59:59'),'YYYY-MM-DD HH24:MI:SS')))
</if> </if>
@ -150,6 +150,7 @@
FROM MES_YIELD_ORDER a FROM MES_YIELD_ORDER a
LEFT JOIN BS_WORK_CENTER b ON a.WORK_CENTER_ID = b.ID LEFT JOIN BS_WORK_CENTER b ON a.WORK_CENTER_ID = b.ID
<where> <where>
a.is_deleted = 0
<if test="startTime !=null and startTime != ''"> <if test="startTime !=null and startTime != ''">
and a.receive_time <![CDATA[ >= ]]> to_date(#{startTime},'YYYY-MM-DD HH24:MI:SS') and a.receive_time <![CDATA[ >= ]]> to_date(#{startTime},'YYYY-MM-DD HH24:MI:SS')
</if> </if>

@ -0,0 +1,62 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.scheduling.scheduling.entity.DifferentFurnaceTankEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO;
import java.util.List;
/**
* 非同炉同槽因素表 服务类
*
* @author BladeX
* @since 2025-12-18
*/
public interface IDifferentFurnaceTankService extends BaseService<DifferentFurnaceTankEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param DifferentFurnaceTank 查询参数
* @return IPage<DifferentFurnaceTankVO>
*/
IPage<DifferentFurnaceTankVO> selectDifferentFurnaceTankPage(IPage<DifferentFurnaceTankVO> page, DifferentFurnaceTankVO DifferentFurnaceTank);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<DifferentFurnaceTankExcel>
*/
List<DifferentFurnaceTankExcel> export(Wrapper<DifferentFurnaceTankEntity> queryWrapper);
}

@ -0,0 +1,62 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.scheduling.scheduling.entity.InspectionItemEntity;
import org.springblade.scheduling.scheduling.excel.InspectionItemExcel;
import org.springblade.scheduling.scheduling.vo.InspectionItemVO;
import java.util.List;
/**
* 检验工时表 服务类
*
* @author BladeX
* @since 2025-12-18
*/
public interface IInspectionItemService extends BaseService<InspectionItemEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param InspectionItem 查询参数
* @return IPage<InspectionItemVO>
*/
IPage<InspectionItemVO> selectInspectionItemPage(IPage<InspectionItemVO> page, InspectionItemVO InspectionItem);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<InspectionItemExcel>
*/
List<InspectionItemExcel> export(Wrapper<InspectionItemEntity> queryWrapper);
}

@ -0,0 +1,62 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.scheduling.scheduling.entity.QualityGradeEntity;
import org.springblade.scheduling.scheduling.excel.QualityGradeExcel;
import org.springblade.scheduling.scheduling.vo.QualityGradeVO;
import java.util.List;
/**
* 质量等级表 服务类
*
* @author BladeX
* @since 2025-12-18
*/
public interface IQualityGradeService extends BaseService<QualityGradeEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param QualityGrade 查询参数
* @return IPage<QualityGradeVO>
*/
IPage<QualityGradeVO> selectQualityGradePage(IPage<QualityGradeVO> page, QualityGradeVO QualityGrade);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<QualityGradeExcel>
*/
List<QualityGradeExcel> export(Wrapper<QualityGradeEntity> queryWrapper);
}

@ -0,0 +1,63 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.service.impl;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel;
import org.springblade.scheduling.scheduling.mapper.DifferentFurnaceTankMapper;
import org.springblade.scheduling.scheduling.service.IDifferentFurnaceTankService;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import java.util.List;
/**
* 非同炉同槽因素表 服务实现类
*
* @author BladeX
* @since 2025-12-18
*/
@Service
public class DifferentFurnaceTankServiceImpl extends BaseServiceImpl<DifferentFurnaceTankMapper, DifferentFurnaceTankEntity> implements IDifferentFurnaceTankService {
@Override
public IPage<DifferentFurnaceTankVO> selectDifferentFurnaceTankPage(IPage<DifferentFurnaceTankVO> page, DifferentFurnaceTankVO DifferentFurnaceTank) {
return page.setRecords(baseMapper.selectDifferentFurnaceTankPage(page, DifferentFurnaceTank));
}
@Override
public List<DifferentFurnaceTankExcel> export(Wrapper<DifferentFurnaceTankEntity> queryWrapper) {
List<DifferentFurnaceTankExcel> DifferentFurnaceTankList = baseMapper.export(queryWrapper);
//DifferentFurnaceTankList.forEach(DifferentFurnaceTank -> {
// DifferentFurnaceTank.setTypeName(DictCache.getValue(DictEnum.YES_NO, DifferentFurnaceTank.getType()));
//});
return DifferentFurnaceTankList;
}
}

@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.scheduling.scheduling.entity.InspectionItemEntity;
import org.springblade.scheduling.scheduling.excel.InspectionItemExcel;
import org.springblade.scheduling.scheduling.mapper.InspectionItemMapper;
import org.springblade.scheduling.scheduling.service.IInspectionItemService;
import org.springblade.scheduling.scheduling.vo.InspectionItemVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 检验工时表 服务实现类
*
* @author BladeX
* @since 2025-12-18
*/
@Service
public class InspectionItemServiceImpl extends BaseServiceImpl<InspectionItemMapper, InspectionItemEntity> implements IInspectionItemService {
@Override
public IPage<InspectionItemVO> selectInspectionItemPage(IPage<InspectionItemVO> page, InspectionItemVO InspectionItem) {
return page.setRecords(baseMapper.selectInspectionItemPage(page, InspectionItem));
}
@Override
public List<InspectionItemExcel> export(Wrapper<InspectionItemEntity> queryWrapper) {
List<InspectionItemExcel> InspectionItemList = baseMapper.export(queryWrapper);
//InspectionItemList.forEach(InspectionItem -> {
// InspectionItem.setTypeName(DictCache.getValue(DictEnum.YES_NO, InspectionItem.getType()));
//});
return InspectionItemList;
}
}

@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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.scheduling.scheduling.entity.QualityGradeEntity;
import org.springblade.scheduling.scheduling.excel.QualityGradeExcel;
import org.springblade.scheduling.scheduling.mapper.QualityGradeMapper;
import org.springblade.scheduling.scheduling.service.IQualityGradeService;
import org.springblade.scheduling.scheduling.vo.QualityGradeVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 质量等级表 服务实现类
*
* @author BladeX
* @since 2025-12-18
*/
@Service
public class QualityGradeServiceImpl extends BaseServiceImpl<QualityGradeMapper, QualityGradeEntity> implements IQualityGradeService {
@Override
public IPage<QualityGradeVO> selectQualityGradePage(IPage<QualityGradeVO> page, QualityGradeVO QualityGrade) {
return page.setRecords(baseMapper.selectQualityGradePage(page, QualityGrade));
}
@Override
public List<QualityGradeExcel> export(Wrapper<QualityGradeEntity> queryWrapper) {
List<QualityGradeExcel> QualityGradeList = baseMapper.export(queryWrapper);
//QualityGradeList.forEach(QualityGrade -> {
// QualityGrade.setTypeName(DictCache.getValue(DictEnum.YES_NO, QualityGrade.getType()));
//});
return QualityGradeList;
}
}

@ -169,216 +169,62 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
public Map<String,List<WorkOrderDto>> schedulingBoard(WorkOrderDto workOrder) { public Map<String,List<WorkOrderDto>> schedulingBoard(WorkOrderDto workOrder) {
List<WorkOrderDto> list = baseMapper.selectWorkOrderList(workOrder); List<WorkOrderDto> list = baseMapper.selectWorkOrderList(workOrder);
Map<String,List<WorkOrderDto>> resultList = new HashMap<>(); Map<String,List<WorkOrderDto>> resultList = new HashMap<>();
if("1".equals(workOrder.getType())){ Map<String, List<WorkOrderDto>> woCodeGroup = list.stream().collect(Collectors.groupingBy(WorkOrderDto::getWoCode));
Map<String, List<WorkOrderDto>> woCodeGroup = list.stream().collect(Collectors.groupingBy(WorkOrderDto::getWoCode));
for (Map.Entry<String, List<WorkOrderDto>> entry : woCodeGroup.entrySet()) {
for (Map.Entry<String, List<WorkOrderDto>> entry : woCodeGroup.entrySet()) { String woCode = entry.getKey();
String woCode = entry.getKey(); List<WorkOrderDto> woList = entry.getValue();
List<WorkOrderDto> woList = entry.getValue();
//按processName二次分组
//按processName二次分组 Map<String, List<WorkOrderDto>> processGroup = woList.stream()
Map<String, List<WorkOrderDto>> processGroup = woList.stream() .collect(Collectors.groupingBy(WorkOrderDto::getProcessName));
.collect(Collectors.groupingBy(WorkOrderDto::getProcessName));
//整合每个processName的时间
//整合每个processName的时间 List<WorkOrderDto> mergedProcessList = new ArrayList<>();
List<WorkOrderDto> mergedProcessList = new ArrayList<>(); for (Map.Entry<String, List<WorkOrderDto>> processEntry : processGroup.entrySet()) {
for (Map.Entry<String, List<WorkOrderDto>> processEntry : processGroup.entrySet()) { String processName = processEntry.getKey();
String processName = processEntry.getKey(); List<WorkOrderDto> processList = processEntry.getValue();
List<WorkOrderDto> processList = processEntry.getValue();
// 计算最早的开始时间、最晚的结束时间
// 计算最早的开始时间、最晚的结束时间 String minStartTime = getMinTime(processList.stream().map(WorkOrderDto::getPlanStartTime).toList());
String minStartTime = getMinTime(processList.stream().map(WorkOrderDto::getPlanStartTime).toList()); String maxEndTime = getMaxTime(processList.stream().map(WorkOrderDto::getPlanEndTime).toList());
String maxEndTime = getMaxTime(processList.stream().map(WorkOrderDto::getPlanEndTime).toList());
// 封装整合后的DTO(复用第一个对象或新建)
// 封装整合后的DTO(复用第一个对象或新建) WorkOrderDto mergedDto = new WorkOrderDto();
WorkOrderDto mergedDto = new WorkOrderDto(); mergedDto.setWoCode(woCode);
mergedDto.setWoCode(woCode); mergedDto.setProcessName(processName);
mergedDto.setProcessName(processName); for(WorkOrderDto dto : processList){
for(WorkOrderDto dto : processList){ mergedDto.setTeamName(dto.getTeamName());
mergedDto.setTeamName(dto.getTeamName()); mergedDto.setCardNo(dto.getCardNo());
mergedDto.setCardNo(dto.getCardNo()); mergedDto.setBatchNo(dto.getBatchNo());
mergedDto.setBatchNo(dto.getBatchNo()); mergedDto.setPartCode(dto.getPartCode());
mergedDto.setPartCode(dto.getPartCode()); mergedDto.setCurrentProcessName(dto.getCurrentProcessName());
mergedDto.setCurrentProcessName(dto.getCurrentProcessName()); mergedDto.setMakeQty(dto.getMakeQty());
mergedDto.setMakeQty(dto.getMakeQty()); if(dto.getPlanStartTime().equals(minStartTime)){
if(dto.getPlanStartTime().equals(minStartTime)){ mergedDto.setStartTime(dto.getStartTime());
mergedDto.setStartTime(dto.getStartTime());
}
if(dto.getPlanEndTime().equals(maxEndTime)){
mergedDto.setEndTime(dto.getEndTime());
mergedDto.setPlanStatus(dto.getPlanStatus());
}
} }
//处理跨天的工序 if(dto.getPlanEndTime().equals(maxEndTime)){
if(!maxEndTime.substring(0,10).equals(minStartTime.substring(0,10))){ mergedDto.setEndTime(dto.getEndTime());
if(minStartTime.substring(0,10).equals(workOrder.getStartTime())){ mergedDto.setPlanStatus(dto.getPlanStatus());
mergedDto.setEndTime("24:00");
}
if(maxEndTime.substring(0,10).equals(workOrder.getStartTime())){
mergedDto.setStartTime("0:00");
}
} }
mergedDto.setPlanStartTime(minStartTime);
mergedDto.setPlanEndTime(maxEndTime);
mergedProcessList.add(mergedDto);
} }
//处理跨天的工序
if(!maxEndTime.substring(0,10).equals(minStartTime.substring(0,10))){
if(minStartTime.substring(0,10).equals(workOrder.getStartTime())){
mergedDto.setEndTime("24:00");
}
if(maxEndTime.substring(0,10).equals(workOrder.getStartTime())){
mergedDto.setStartTime("0:00");
}
resultList.put(woCode, mergedProcessList);
}
}else if("2".equals(workOrder.getType())){
Map<String, Map<String, List<WorkOrderDto>>> teamWoGroupMap = list.stream()
.collect(Collectors.groupingBy(
WorkOrderDto::getTeamName, // 第一层分组:teamName
Collectors.groupingBy(WorkOrderDto::getWoCode) // 第二层分组:woCode
));
for (Map.Entry<String, Map<String, List<WorkOrderDto>>> teamEntry : teamWoGroupMap.entrySet()) {
String teamName = teamEntry.getKey();
Map<String, List<WorkOrderDto>> woMap = teamEntry.getValue();
List<WorkOrderDto> list1 = new ArrayList<>();
for (Map.Entry<String, List<WorkOrderDto>> woEntry : woMap.entrySet()) {
WorkOrderDto workOrderDto = new WorkOrderDto();
String woCode = woEntry.getKey();
List<WorkOrderDto> woList = woEntry.getValue();
// 计算最小开始时间
String minStartTime = woList.stream()
.map(WorkOrderDto::getStartTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.min(String::compareTo)
.orElse(null);
// 计算最大结束时间
String maxEndTime = woList.stream()
.map(WorkOrderDto::getEndTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.max(String::compareTo)
.orElse(null);
// 计算最小开始时间
String minPlanStartTime = woList.stream()
.map(WorkOrderDto::getPlanStartTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.min(String::compareTo)
.orElse(null);
// 计算最大结束时间
String maxPlanEndTime = woList.stream()
.map(WorkOrderDto::getPlanEndTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.max(String::compareTo)
.orElse(null);
// 计算实际最小开始时间
String minFactStartTime = woList.stream()
.map(WorkOrderDto::getFactStartTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.min(String::compareTo)
.orElse(null);
// 计算实际最大结束时间
String maxFactEndTime = woList.stream()
.map(WorkOrderDto::getFactEndTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.max(String::compareTo)
.orElse(null);
workOrderDto.setWoCode(woCode);
workOrderDto.setStartTime(minStartTime);
workOrderDto.setEndTime(maxEndTime);
workOrderDto.setPlanStartTime(minPlanStartTime);
workOrderDto.setPlanEndTime(maxPlanEndTime);
workOrderDto.setFactStartTime(minFactStartTime);
workOrderDto.setFactEndTime(maxFactEndTime);
workOrderDto.setTeamName(teamName);
workOrderDto.setOrderStatus(woList.get(0).getOrderStatus());
workOrderDto.setPartCode(woList.get(0).getPartCode());
workOrderDto.setBatchNo(woList.get(0).getBatchNo());
workOrderDto.setCardNo(woList.get(0).getCardNo());
workOrderDto.setCurrentProcessName(woList.get(0).getCurrentProcessName());
workOrderDto.setMakeQty(woList.get(0).getMakeQty());
list1.add(workOrderDto);
} }
resultList.put(teamName,list1); mergedDto.setPlanStartTime(minStartTime);
} mergedDto.setPlanEndTime(maxEndTime);
}else if("3".equals(workOrder.getType())){ mergedProcessList.add(mergedDto);
Map<String, Map<String, List<WorkOrderDto>>> equipWoGroupMap = list.stream().filter(e -> e.getEquipName() != null)
.collect(Collectors.groupingBy(
dto -> String.format("%s(%s)", dto.getEquipName(), dto.getEquipCode()), // 第一层分组:equipName
Collectors.groupingBy(WorkOrderDto::getWoCode) // 第二层分组:woCode
));
for (Map.Entry<String, Map<String, List<WorkOrderDto>>> equipEntry : equipWoGroupMap.entrySet()) {
String equipName = equipEntry.getKey();
Map<String, List<WorkOrderDto>> woMap = equipEntry.getValue();
List<WorkOrderDto> list1 = new ArrayList<>();
for (Map.Entry<String, List<WorkOrderDto>> woEntry : woMap.entrySet()) {
WorkOrderDto workOrderDto = new WorkOrderDto();
String woCode = woEntry.getKey();
List<WorkOrderDto> woList = woEntry.getValue();
// 计算最小开始时间
String minStartTime = woList.stream()
.map(WorkOrderDto::getStartTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.min(String::compareTo)
.orElse(null);
// 计算最大结束时间
String maxEndTime = woList.stream()
.map(WorkOrderDto::getEndTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.max(String::compareTo)
.orElse(null);
// 计算最小开始时间
String minPlanStartTime = woList.stream()
.map(WorkOrderDto::getPlanStartTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.min(String::compareTo)
.orElse(null);
// 计算最大结束时间
String maxPlanEndTime = woList.stream()
.map(WorkOrderDto::getPlanEndTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.max(String::compareTo)
.orElse(null);
// 计算实际最小开始时间
String minFactStartTime = woList.stream()
.map(WorkOrderDto::getFactStartTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.min(String::compareTo)
.orElse(null);
// 计算最大结束时间
String maxFactEndTime = woList.stream()
.map(WorkOrderDto::getFactEndTime)
.filter(Objects::nonNull) // 过滤空时间,避免NPE
.max(String::compareTo)
.orElse(null);
workOrderDto.setPlanStartTime(minPlanStartTime);
workOrderDto.setPlanEndTime(maxPlanEndTime);
workOrderDto.setFactStartTime(minFactStartTime);
workOrderDto.setFactEndTime(maxFactEndTime);
workOrderDto.setWoCode(woCode);
workOrderDto.setStartTime(minStartTime);
workOrderDto.setEndTime(maxEndTime);
workOrderDto.setEquipName(equipName);
workOrderDto.setOrderStatus(woList.get(0).getOrderStatus());
workOrderDto.setPartCode(woList.get(0).getPartCode());
workOrderDto.setBatchNo(woList.get(0).getBatchNo());
workOrderDto.setCardNo(woList.get(0).getCardNo());
workOrderDto.setCurrentProcessName(woList.get(0).getCurrentProcessName());
workOrderDto.setMakeQty(woList.get(0).getMakeQty());
list1.add(workOrderDto);
}
resultList.put(equipName,list1);
} }
resultList.put(woCode, mergedProcessList);
} }
return resultList; return resultList;
@ -493,7 +339,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
YieldOrderCraftEntity craft = craftList.get(i); YieldOrderCraftEntity craft = craftList.get(i);
if ("设备".equals(mainProducerMap.get(craft.getPpsId()))) { if ("设备".equals(mainProducerMap.get(craft.getPpsId()))) {
//根据作业中心查询所有设备 //根据作业中心查询所有设备
List<EquipAbilityEntity> equipAbilityList = equipAbilityService.list(Wrappers.<EquipAbilityEntity>lambdaQuery().in(EquipAbilityEntity::getWorkCenterId, craft.getWorkCenterId())); List<EquipAbilityEntity> equipAbilityList = equipAbilityService.list(Wrappers.<EquipAbilityEntity>lambdaQuery().in(EquipAbilityEntity::getWorkCenterId, craft.getWorkCenterId()).eq(EquipAbilityEntity::getCraftId,craft.getCaId()));
if(CollectionUtils.isEmpty(equipAbilityList)){ if(CollectionUtils.isEmpty(equipAbilityList)){
order.setErrorInfo("设备未匹配到对应的设备能力"); order.setErrorInfo("设备未匹配到对应的设备能力");
order.setStatus(6); order.setStatus(6);
@ -627,20 +473,20 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
WorkPlanEntity workPlan = new WorkPlanEntity(); WorkPlanEntity workPlan = new WorkPlanEntity();
BigDecimal totalTime = new BigDecimal(0); BigDecimal totalTime = new BigDecimal(0);
PersonAbilityEntity ability = personAbilityMap.get(craft.getWorkCenterId() + "-" + craft.getPpsId() + "-" + craft.getCaId()); PersonAbilityEntity ability = personAbilityMap.get(craft.getWorkCenterId() + "-" + craft.getPpsId() + "-" + craft.getCaId());
//由于客户提供的数据不全,先判断有没有对应的能力,如果没有先不计算时间
List<Long> ppsIds = Arrays.asList(Long.valueOf(10),Long.valueOf(21)); List<Long> ppsIds = Arrays.asList(Long.valueOf(10),Long.valueOf(21));
//镀后检验和镀后接收先按半小时计算 //镀后检验和镀后接收先按半小时计算
if(ability != null){ if(ability != null){
if(ppsIds.contains(craft.getPpsId())){ if(ppsIds.contains(craft.getPpsId())){
totalTime = BigDecimal.valueOf(30); totalTime = BigDecimal.valueOf(30);
workPlan.setStartTime(prevProcessEnd); workPlan.setStartTime(prevProcessEnd.plusMinutes(30));
workPlan.setEndTime(prevProcessEnd.plusMinutes(30)); workPlan.setEndTime(prevProcessEnd.plusMinutes(60));
if(craft.getPpsId() == 10){ if(craft.getPpsId() == 10){
workPlan.setMakeTeam(Long.valueOf(64)); workPlan.setMakeTeam(Long.valueOf(64));
} }
if(craft.getPpsId() == 21){ if(craft.getPpsId() == 21){
workPlan.setMakeTeam(Long.valueOf(65)); workPlan.setMakeTeam(Long.valueOf(65));
} }
prevProcessEnd = workPlan.getEndTime();
}else{ }else{
totalTime = totalTime.add(BigDecimal.valueOf(order.getYpQty()).multiply(personAbilityMap.get(craft.getWorkCenterId() + "-" + craft.getPpsId() + "-" + craft.getCaId()).getStandardTime()).add(personAbilityMap.get(craft.getWorkCenterId() + "-" + craft.getPpsId() + "-" + craft.getCaId()).getPrepareTime())); totalTime = totalTime.add(BigDecimal.valueOf(order.getYpQty()).multiply(personAbilityMap.get(craft.getWorkCenterId() + "-" + craft.getPpsId() + "-" + craft.getCaId()).getStandardTime()).add(personAbilityMap.get(craft.getWorkCenterId() + "-" + craft.getPpsId() + "-" + craft.getCaId()).getPrepareTime()));
} }
@ -712,6 +558,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}finally { }finally {
craftLock.unlock(); // 释放本地锁 craftLock.unlock(); // 释放本地锁
}*/ }*/
} }
workPlan.setWoId(order.getId()); workPlan.setWoId(order.getId());
@ -728,6 +575,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workPlan.setScrapQty(0); workPlan.setScrapQty(0);
workPlanList.add(workPlan); workPlanList.add(workPlan);
}else{ }else{
//未匹配到设备和人力资源,将工序状态改为6,标识为未排产 //未匹配到设备和人力资源,将工序状态改为6,标识为未排产
craft.setStatus(6); craft.setStatus(6);

@ -0,0 +1,46 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity;
import java.io.Serial;
/**
* 非同炉同槽因素表 视图实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DifferentFurnaceTankVO extends DifferentFurnaceTankEntity {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,46 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.scheduling.scheduling.entity.InspectionItemEntity;
import java.io.Serial;
/**
* 检验工时表 视图实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class InspectionItemVO extends InspectionItemEntity {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,46 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.scheduling.scheduling.entity.QualityGradeEntity;
import java.io.Serial;
/**
* 质量等级表 视图实体类
*
* @author BladeX
* @since 2025-12-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QualityGradeVO extends QualityGradeEntity {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,60 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO;
import java.util.Objects;
/**
* 非同炉同槽因素表 包装类,返回视图层所需的字段
*
* @author BladeX
* @since 2025-12-18
*/
public class DifferentFurnaceTankWrapper extends BaseEntityWrapper<DifferentFurnaceTankEntity, DifferentFurnaceTankVO> {
public static DifferentFurnaceTankWrapper build() {
return new DifferentFurnaceTankWrapper();
}
@Override
public DifferentFurnaceTankVO entityVO(DifferentFurnaceTankEntity DifferentFurnaceTank) {
DifferentFurnaceTankVO DifferentFurnaceTankVO = Objects.requireNonNull(BeanUtil.copyProperties(DifferentFurnaceTank, DifferentFurnaceTankVO.class));
//User createUser = UserCache.getUser(DifferentFurnaceTank.getCreateUser());
//User updateUser = UserCache.getUser(DifferentFurnaceTank.getUpdateUser());
//DifferentFurnaceTankVO.setCreateUserName(createUser.getName());
//DifferentFurnaceTankVO.setUpdateUserName(updateUser.getName());
return DifferentFurnaceTankVO;
}
}

@ -0,0 +1,60 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.scheduling.scheduling.entity.InspectionItemEntity;
import org.springblade.scheduling.scheduling.vo.InspectionItemVO;
import java.util.Objects;
/**
* 检验工时表 包装类,返回视图层所需的字段
*
* @author BladeX
* @since 2025-12-18
*/
public class InspectionItemWrapper extends BaseEntityWrapper<InspectionItemEntity, InspectionItemVO> {
public static InspectionItemWrapper build() {
return new InspectionItemWrapper();
}
@Override
public InspectionItemVO entityVO(InspectionItemEntity InspectionItem) {
InspectionItemVO InspectionItemVO = Objects.requireNonNull(BeanUtil.copyProperties(InspectionItem, InspectionItemVO.class));
//User createUser = UserCache.getUser(InspectionItem.getCreateUser());
//User updateUser = UserCache.getUser(InspectionItem.getUpdateUser());
//InspectionItemVO.setCreateUserName(createUser.getName());
//InspectionItemVO.setUpdateUserName(updateUser.getName());
return InspectionItemVO;
}
}

@ -0,0 +1,60 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.scheduling.scheduling.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.scheduling.scheduling.entity.QualityGradeEntity;
import org.springblade.scheduling.scheduling.vo.QualityGradeVO;
import java.util.Objects;
/**
* 质量等级表 包装类,返回视图层所需的字段
*
* @author BladeX
* @since 2025-12-18
*/
public class QualityGradeWrapper extends BaseEntityWrapper<QualityGradeEntity, QualityGradeVO> {
public static QualityGradeWrapper build() {
return new QualityGradeWrapper();
}
@Override
public QualityGradeVO entityVO(QualityGradeEntity QualityGrade) {
QualityGradeVO QualityGradeVO = Objects.requireNonNull(BeanUtil.copyProperties(QualityGrade, QualityGradeVO.class));
//User createUser = UserCache.getUser(QualityGrade.getCreateUser());
//User updateUser = UserCache.getUser(QualityGrade.getUpdateUser());
//QualityGradeVO.setCreateUserName(createUser.getName());
//QualityGradeVO.setUpdateUserName(updateUser.getName());
return QualityGradeVO;
}
}
Loading…
Cancel
Save