排产相关-sjx

develop-QA
sunjianxi 3 months ago
parent 918691bc8f
commit 1df70a1e4f
  1. 8
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 160
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/DifferentFurnaceTankController.java
  3. 12
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/EquipAbilityController.java
  4. 161
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/SameTroughController.java
  5. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/EquipAbilityEntity.java
  6. 53
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/SameTroughEntity.java
  7. 171
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/excel/SameTroughExcel.java
  8. 22
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.java
  9. 32
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml
  10. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/YieldOrderMapper.xml
  11. 1
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IEquipResourceService.java
  12. 22
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ISameTroughService.java
  13. 48
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/EquipResourceServiceImpl.java
  14. 30
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/SameTroughServiceImpl.java
  15. 28
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  16. 9
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/SameTroughVO.java
  17. 28
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/SameTroughWrapper.java

@ -13,10 +13,10 @@ public interface LauncherConstant {
* nacos 命名空间 * nacos 命名空间
*/ */
// String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; // String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e";
// 生产环境 // 生产环境
String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; // String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
// 测试环境 // 测试环境
// String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";
/** /**
* nacos 用户名 * nacos 用户名

@ -1,160 +0,0 @@
/**
* 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);
}
}

@ -49,6 +49,7 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.scheduling.scheduling.entity.EquipAbilityEntity; import org.springblade.scheduling.scheduling.entity.EquipAbilityEntity;
import org.springblade.scheduling.scheduling.excel.EquipAbilityExcel; import org.springblade.scheduling.scheduling.excel.EquipAbilityExcel;
import org.springblade.scheduling.scheduling.service.IEquipAbilityService; import org.springblade.scheduling.scheduling.service.IEquipAbilityService;
import org.springblade.scheduling.scheduling.service.IEquipResourceService;
import org.springblade.scheduling.scheduling.vo.EquipAbilityVO; import org.springblade.scheduling.scheduling.vo.EquipAbilityVO;
import org.springblade.scheduling.scheduling.wrapper.EquipAbilityWrapper; import org.springblade.scheduling.scheduling.wrapper.EquipAbilityWrapper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -69,6 +70,7 @@ import java.util.Map;
public class EquipAbilityController extends BladeController { public class EquipAbilityController extends BladeController {
private final IEquipAbilityService equipAbilityService; private final IEquipAbilityService equipAbilityService;
private final IEquipResourceService equipResourceService;
/** /**
* 设备能力表 详情 * 设备能力表 详情
@ -113,7 +115,10 @@ public class EquipAbilityController extends BladeController {
if(CollectionUtils.isNotEmpty(list)){ if(CollectionUtils.isNotEmpty(list)){
return R.status(false,"该设备能力已存在!"); return R.status(false,"该设备能力已存在!");
} }
return R.status(equipAbilityService.save(entity)); equipAbilityService.save(entity);
//初始化设备资源
equipResourceService.initSingleEquipResource(entity.getWorkCenterId(),entity.getCraftId(),entity.getEquipCode());
return R.status(true);
} }
/** /**
@ -123,7 +128,10 @@ public class EquipAbilityController extends BladeController {
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入mesEquipAbility") @Operation(summary = "修改", description = "传入mesEquipAbility")
public R update(@Valid @RequestBody EquipAbilityEntity entity) { public R update(@Valid @RequestBody EquipAbilityEntity entity) {
return R.status(equipAbilityService.updateById(entity)); equipAbilityService.updateById(entity);
//初始化设备资源
equipResourceService.initSingleEquipResource(entity.getWorkCenterId(),entity.getCraftId(),entity.getEquipCode());
return R.status(true);
} }
/** /**

@ -0,0 +1,161 @@
/**
* 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 io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import jakarta.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.IsAdmin;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.scheduling.scheduling.entity.SameTroughEntity;
import org.springblade.scheduling.scheduling.excel.SameTroughExcel;
import org.springblade.scheduling.scheduling.service.ISameTroughService;
import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import org.springblade.scheduling.scheduling.wrapper.SameTroughWrapper;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.Map;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
/**
* 非同槽因素表 控制器
*
* @author BladeX
* @since 2026-01-07
*/
@RestController
@AllArgsConstructor
@RequestMapping("/sameTrough")
@Tag(name = "非同槽因素表", description = "非同槽因素表接口")
public class SameTroughController extends BladeController {
private final ISameTroughService sameTroughService;
/**
* 非同槽因素表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入SameTrough")
public R<SameTroughVO> detail(SameTroughEntity sameTrough) {
SameTroughEntity detail = sameTroughService.getOne(Condition.getQueryWrapper(sameTrough));
return R.data(SameTroughWrapper.build().entityVO(detail));
}
/**
* 非同槽因素表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入SameTrough")
public R<IPage<SameTroughVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> sameTrough, Query query) {
IPage<SameTroughEntity> pages = sameTroughService.page(Condition.getPage(query), Condition.getQueryWrapper(sameTrough, SameTroughEntity.class));
return R.data(SameTroughWrapper.build().pageVO(pages));
}
/**
* 非同槽因素表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入SameTrough")
public R<IPage<SameTroughVO>> page(SameTroughVO sameTrough, Query query) {
IPage<SameTroughVO> pages = sameTroughService.selectSameTroughPage(Condition.getPage(query), sameTrough);
return R.data(pages);
}
/**
* 非同槽因素表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入SameTrough")
public R save(@Valid @RequestBody SameTroughEntity sameTrough) {
return R.status(sameTroughService.save(sameTrough));
}
/**
* 非同槽因素表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入SameTrough")
public R update(@Valid @RequestBody SameTroughEntity sameTrough) {
return R.status(sameTroughService.updateById(sameTrough));
}
/**
* 非同槽因素表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入SameTrough")
public R submit(@Valid @RequestBody SameTroughEntity sameTrough) {
return R.status(sameTroughService.saveOrUpdate(sameTrough));
}
/**
* 非同槽因素表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(sameTroughService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入SameTrough")
public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> sameTrough, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<SameTroughEntity> queryWrapper = Condition.getQueryWrapper(sameTrough, SameTroughEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(SameTrough::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(SameTroughEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<SameTroughExcel> list = sameTroughService.export(queryWrapper);
ExcelUtil.export(response, "非同槽因素表数据" + DateUtil.time(), "非同槽因素表数据表", list, SameTroughExcel.class);
}
}

@ -84,7 +84,7 @@ public class EquipAbilityEntity extends BaseEntity {
* 工艺能力Id * 工艺能力Id
*/ */
@Schema(description = "工艺能力Id") @Schema(description = "工艺能力Id")
private String craftId; private Long craftId;
/** /**
* 工艺能力名称 * 工艺能力名称

@ -25,27 +25,26 @@
*/ */
package org.springblade.scheduling.scheduling.entity; package org.springblade.scheduling.scheduling.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial; import java.io.Serial;
import java.math.BigDecimal;
/** /**
* 非同炉同槽因素表 实体类 * 非同槽因素表 实体类
* *
* @author BladeX * @author BladeX
* @since 2025-12-18 * @since 2026-01-07
*/ */
@Data @Data
@TableName("MES_DIFFERENT_FURNACE_TANK") @TableName("MES_SAME_TROUGH")
@Schema(description = "MesDifferentFurnaceTank对象") @Schema(description = "MesSameTrough对象")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class DifferentFurnaceTankEntity extends BaseEntity { public class SameTroughEntity extends BaseEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -71,14 +70,14 @@ public class DifferentFurnaceTankEntity extends BaseEntity {
@Schema(description = "工序名称") @Schema(description = "工序名称")
private String processName; private String processName;
/** /**
* 工艺能力id * 工艺id
*/ */
@Schema(description = "工艺能力id") @Schema(description = "工艺id")
private BigDecimal craftId; private BigDecimal craftId;
/** /**
* 工艺能力 * 工艺名称
*/ */
@Schema(description = "工艺能力") @Schema(description = "工艺名称")
private String craftName; private String craftName;
/** /**
* 键位 * 键位
@ -89,11 +88,11 @@ public class DifferentFurnaceTankEntity extends BaseEntity {
* 生产厂家 * 生产厂家
*/ */
@Schema(description = "生产厂家") @Schema(description = "生产厂家")
private String factory; private String producter;
/** /**
* 检验编 * 检验编
*/ */
@Schema(description = "检验编") @Schema(description = "检验编")
private String inspectionCode; private String inspectionCode;
/** /**
* 材料 * 材料
@ -106,7 +105,7 @@ public class DifferentFurnaceTankEntity extends BaseEntity {
@Schema(description = "厚度") @Schema(description = "厚度")
private String thickness; private String thickness;
/** /**
* *
*/ */
@Schema(description = "钝化") @Schema(description = "钝化")
private String passivation; private String passivation;
@ -119,11 +118,21 @@ public class DifferentFurnaceTankEntity extends BaseEntity {
* 生产标识 * 生产标识
*/ */
@Schema(description = "生产标识") @Schema(description = "生产标识")
private String productionIdent; private String productIdent;
/**
* 结构
*/
@Schema(description = "结构")
private String structure;
/**
* 磁性
*/
@Schema(description = "磁性")
private String magnetism;
/** /**
* 结构/单件面积 * 批次号
*/ */
@Schema(description = "结构/单件面积") @Schema(description = "批次号")
private String singleArea; private String batchNo;
} }

@ -0,0 +1,171 @@
/**
* 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 2026-01-07
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class SameTroughExcel 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 producter;
/**
* 检验编码
*/
@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 productIdent;
/**
* 结构
*/
@ColumnWidth(20)
@ExcelProperty("结构")
private String structure;
/**
* 磁性
*/
@ColumnWidth(20)
@ExcelProperty("磁性")
private String magnetism;
/**
* 批次号
*/
@ColumnWidth(20)
@ExcelProperty("批次号")
private String batchNo;
/**
* 是否已删除
*/
@ColumnWidth(20)
@ExcelProperty("是否已删除")
private Long isDeleted;
}

@ -29,36 +29,36 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity; import org.springblade.scheduling.scheduling.entity.SameTroughEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel; import org.springblade.scheduling.scheduling.excel.SameTroughExcel;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO; import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import java.util.List; import java.util.List;
/** /**
* 非同炉同槽因素表 Mapper 接口 * 非同槽因素表 Mapper 接口
* *
* @author BladeX * @author BladeX
* @since 2025-12-18 * @since 2026-01-07
*/ */
public interface DifferentFurnaceTankMapper extends BaseMapper<DifferentFurnaceTankEntity> { public interface SameTroughMapper extends BaseMapper<SameTroughEntity> {
/** /**
* 自定义分页 * 自定义分页
* *
* @param page 分页参数 * @param page 分页参数
* @param DifferentFurnaceTank 查询参数 * @param SameTrough 查询参数
* @return List<DifferentFurnaceTankVO> * @return List<SameTroughVO>
*/ */
List<DifferentFurnaceTankVO> selectDifferentFurnaceTankPage(IPage page, DifferentFurnaceTankVO DifferentFurnaceTank); List<SameTroughVO> selectSameTroughPage(IPage page, SameTroughVO SameTrough);
/** /**
* 获取导出数据 * 获取导出数据
* *
* @param queryWrapper 查询条件 * @param queryWrapper 查询条件
* @return List<DifferentFurnaceTankExcel> * @return List<SameTroughExcel>
*/ */
List<DifferentFurnaceTankExcel> export(@Param("ew") Wrapper<DifferentFurnaceTankEntity> queryWrapper); List<SameTroughExcel> export(@Param("ew") Wrapper<SameTroughEntity> queryWrapper);
} }

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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"> <mapper namespace="org.springblade.scheduling.scheduling.mapper.SameTroughMapper">
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="differentFurnaceTankResultMap" type="org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity"> <resultMap id="sameTroughResultMap" type="org.springblade.scheduling.scheduling.entity.SameTroughEntity">
<result column="ID" property="id"/> <result column="ID" property="id"/>
<result column="WORK_CENTER_ID" property="workCenterId"/> <result column="WORK_CENTER_ID" property="workCenterId"/>
<result column="WORK_CENTER_NAME" property="workCenterName"/> <result column="WORK_CENTER_NAME" property="workCenterName"/>
@ -12,14 +12,16 @@
<result column="CRAFT_ID" property="craftId"/> <result column="CRAFT_ID" property="craftId"/>
<result column="CRAFT_NAME" property="craftName"/> <result column="CRAFT_NAME" property="craftName"/>
<result column="KEY_BINDING" property="keyBinding"/> <result column="KEY_BINDING" property="keyBinding"/>
<result column="FACTORY" property="factory"/> <result column="PRODUCTER" property="producter"/>
<result column="INSPECTION_CODE" property="inspectionCode"/> <result column="INSPECTION_CODE" property="inspectionCode"/>
<result column="MATERIAL" property="material"/> <result column="MATERIAL" property="material"/>
<result column="THICKNESS" property="thickness"/> <result column="THICKNESS" property="thickness"/>
<result column="PASSIVATION" property="passivation"/> <result column="PASSIVATION" property="passivation"/>
<result column="HARDNESS" property="hardness"/> <result column="HARDNESS" property="hardness"/>
<result column="PRODUCTION_IDENT" property="productionIdent"/> <result column="PRODUCT_IDENT" property="productIdent"/>
<result column="SINGLE_AREA" property="singleArea"/> <result column="STRUCTURE" property="structure"/>
<result column="MAGNETISM" property="magnetism"/>
<result column="BATCH_NO" property="batchNo"/>
<result column="CREATE_USER" property="createUser"/> <result column="CREATE_USER" property="createUser"/>
<result column="CREATE_DEPT" property="createDept"/> <result column="CREATE_DEPT" property="createDept"/>
<result column="CREATE_TIME" property="createTime"/> <result column="CREATE_TIME" property="createTime"/>
@ -30,25 +32,13 @@
</resultMap> </resultMap>
<select id="selectDifferentFurnaceTankPage" resultMap="differentFurnaceTankResultMap"> <select id="selectSameTroughPage" resultMap="sameTroughResultMap">
select * from MES_DIFFERENT_FURNACE_TANK select * from MES_SAME_TROUGH where is_deleted = 0
<where>
is_deleted = 0
<if test="param2.workCenterId !=null">
and work_center_id = #{param2.workCenterId}
</if>
<if test="param2.processId !=null">
and process_id = #{param2.processId}
</if>
<if test="param2.craftId !=null">
and craft_id = #{param2.craftId}
</if>
</where>
</select> </select>
<select id="export" resultType="org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel"> <select id="export" resultType="org.springblade.scheduling.scheduling.excel.SameTroughExcel">
SELECT * FROM MES_DIFFERENT_FURNACE_TANK ${ew.customSqlSegment} SELECT * FROM MES_SAME_TROUGH ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>

@ -61,7 +61,7 @@
<select id="selectYieldOrderPage" resultType="org.springblade.scheduling.scheduling.vo.YieldOrderVO"> <select id="selectYieldOrderPage" resultType="org.springblade.scheduling.scheduling.vo.YieldOrderVO">
select * from MES_YIELD_ORDER select * from MES_YIELD_ORDER
<where> <where>
is_deleted = 0 is_deleted = 0 and work_center_id is not null
<if test="yieldOrder.status != null and yieldOrder.status != ''"> <if test="yieldOrder.status != null and yieldOrder.status != ''">
and status = #{yieldOrder.status} and status = #{yieldOrder.status}
</if> </if>

@ -59,6 +59,7 @@ public interface IEquipResourceService extends BaseService<EquipResourceEntity>
List<EquipResourceExcel> export(Wrapper<EquipResourceEntity> queryWrapper); List<EquipResourceExcel> export(Wrapper<EquipResourceEntity> queryWrapper);
public void initEquipResource(); public void initEquipResource();
public void initSingleEquipResource(Long workCenterId,Long craftId,String equipCode);
List<EquipResourceEntity> selectCommonCraftList(); List<EquipResourceEntity> selectCommonCraftList();

@ -28,35 +28,35 @@ package org.springblade.scheduling.scheduling.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity; import org.springblade.scheduling.scheduling.entity.SameTroughEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel; import org.springblade.scheduling.scheduling.excel.SameTroughExcel;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO; import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import java.util.List; import java.util.List;
/** /**
* 非同炉同槽因素表 服务类 * 非同槽因素表 服务类
* *
* @author BladeX * @author BladeX
* @since 2025-12-18 * @since 2026-01-07
*/ */
public interface IDifferentFurnaceTankService extends BaseService<DifferentFurnaceTankEntity> { public interface ISameTroughService extends BaseService<SameTroughEntity> {
/** /**
* 自定义分页 * 自定义分页
* *
* @param page 分页参数 * @param page 分页参数
* @param DifferentFurnaceTank 查询参数 * @param SameTrough 查询参数
* @return IPage<DifferentFurnaceTankVO> * @return IPage<SameTroughVO>
*/ */
IPage<DifferentFurnaceTankVO> selectDifferentFurnaceTankPage(IPage<DifferentFurnaceTankVO> page, DifferentFurnaceTankVO DifferentFurnaceTank); IPage<SameTroughVO> selectSameTroughPage(IPage<SameTroughVO> page, SameTroughVO SameTrough);
/** /**
* 导出数据 * 导出数据
* *
* @param queryWrapper 查询条件 * @param queryWrapper 查询条件
* @return List<DifferentFurnaceTankExcel> * @return List<SameTroughExcel>
*/ */
List<DifferentFurnaceTankExcel> export(Wrapper<DifferentFurnaceTankEntity> queryWrapper); List<SameTroughExcel> export(Wrapper<SameTroughEntity> queryWrapper);
} }

@ -26,10 +26,12 @@
package org.springblade.scheduling.scheduling.service.impl; package org.springblade.scheduling.scheduling.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.DateUtils;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
@ -79,13 +81,15 @@ public class EquipResourceServiceImpl extends BaseServiceImpl<EquipResourceMappe
} }
public void initEquipResource(){ public void initEquipResource(){
//获取包括今天在内未来3 //获取包括今天在内未来7
Date date = new Date(); Date date = new Date();
for(int i=0;i<7;i++){ for(int i=0;i<7;i++){
String today = DateFormatUtils.format(DateUtils.addDays(date,i),"yyyy-MM-dd"); String today = DateFormatUtils.format(DateUtils.addDays(date,i),"yyyy-MM-dd");
List<EquipResourceEntity> list = this.list(Wrappers.<EquipResourceEntity>lambdaQuery().eq(EquipResourceEntity::getDateTime,today)); LambdaQueryWrapper<EquipResourceEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EquipResourceEntity::getDateTime,today);
List<EquipResourceEntity> list = this.list(wrapper);
if(CollectionUtils.isEmpty(list)){ if(CollectionUtils.isEmpty(list)){
generateData(today); generateData(today,null,null,null);
} }
} }
//删除3天之前的数据 //删除3天之前的数据
@ -93,16 +97,46 @@ public class EquipResourceServiceImpl extends BaseServiceImpl<EquipResourceMappe
deleteList.forEach(item -> baseMapper.deleteById(item.getId())); deleteList.forEach(item -> baseMapper.deleteById(item.getId()));
} }
public void initSingleEquipResource(Long workCenterId,Long craftId,String equipCode){
//获取包括今天在内未来7天
Date date = new Date();
for(int i=0;i<7;i++){
String today = DateFormatUtils.format(DateUtils.addDays(date,i),"yyyy-MM-dd");
generateData(today,workCenterId,craftId,equipCode);
}
}
@Override @Override
public List<EquipResourceEntity> selectCommonCraftList() { public List<EquipResourceEntity> selectCommonCraftList() {
return baseMapper.selectCommonCraftList(); return baseMapper.selectCommonCraftList();
} }
public void generateData(String day){ public void generateData(String day,Long workCenterId,Long craftId,String equipCode){
//获取设备能力列表 //获取设备能力列表
List<EquipAbilityEntity> equipAbilityList = equipAbilityService.list(Wrappers.<EquipAbilityEntity>lambdaQuery().isNotNull(EquipAbilityEntity::getStandardTime)); LambdaQueryWrapper<EquipAbilityEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.isNotNull(EquipAbilityEntity::getStandardTime);
if(workCenterId != null){
wrapper.eq(EquipAbilityEntity::getWorkCenterId,workCenterId);
}
if(craftId != null){
wrapper.eq(EquipAbilityEntity::getCraftId,craftId);
}
if(StringUtils.isNotBlank(equipCode)){
wrapper.eq(EquipAbilityEntity::getEquipCode,equipCode);
}
List<EquipAbilityEntity> equipAbilityList = equipAbilityService.list(wrapper);
if(CollectionUtils.isNotEmpty(equipAbilityList)){ if(CollectionUtils.isNotEmpty(equipAbilityList)){
if(workCenterId != null && craftId != null && StringUtils.isNotBlank(equipCode)){
List<EquipResourceEntity> list = this.list(Wrappers.<EquipResourceEntity>lambdaQuery()
.eq(EquipResourceEntity::getWorkCenterId,workCenterId)
.eq(EquipResourceEntity::getCraftId,craftId)
.eq(EquipResourceEntity::getEquipCode,equipCode)
.eq(EquipResourceEntity::getDateTime,day));
if(CollectionUtils.isNotEmpty(list)){
list.forEach(item -> baseMapper.deleteById(item.getId()));
}
}
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm"); DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
@ -125,7 +159,7 @@ public class EquipResourceServiceImpl extends BaseServiceImpl<EquipResourceMappe
equipResource.setDateTime(day); equipResource.setDateTime(day);
equipResource.setEquipCode(equipAbility.getEquipCode()); equipResource.setEquipCode(equipAbility.getEquipCode());
equipResource.setEquipName(equipAbility.getEquipName()); equipResource.setEquipName(equipAbility.getEquipName());
equipResource.setCraftId(equipAbility.getCraftId()); equipResource.setCraftId(equipAbility.getCraftId().toString());
equipResource.setCraftName(equipAbility.getCraftName()); equipResource.setCraftName(equipAbility.getCraftName());
equipResource.setPeriod(startTime.format(timeFormatter) + "-" + endTime.format(timeFormatter)); equipResource.setPeriod(startTime.format(timeFormatter) + "-" + endTime.format(timeFormatter));
equipResource.setTotalCapacity(equipAbility.getStandardProcessAbility()); equipResource.setTotalCapacity(equipAbility.getStandardProcessAbility());
@ -170,7 +204,7 @@ public class EquipResourceServiceImpl extends BaseServiceImpl<EquipResourceMappe
equipResource.setDateTime(day); equipResource.setDateTime(day);
equipResource.setEquipCode(equipAbility.getEquipCode()); equipResource.setEquipCode(equipAbility.getEquipCode());
equipResource.setEquipName(equipAbility.getEquipName()); equipResource.setEquipName(equipAbility.getEquipName());
equipResource.setCraftId(equipAbility.getCraftId()); equipResource.setCraftId(equipAbility.getCraftId().toString());
equipResource.setCraftName(equipAbility.getCraftName()); equipResource.setCraftName(equipAbility.getCraftName());
equipResource.setPeriod(startTime.format(timeFormatter) + "-" + endTime.format(timeFormatter)); equipResource.setPeriod(startTime.format(timeFormatter) + "-" + endTime.format(timeFormatter));
equipResource.setTotalCapacity(equipAbility.getStandardProcessAbility()); equipResource.setTotalCapacity(equipAbility.getStandardProcessAbility());

@ -25,11 +25,11 @@
*/ */
package org.springblade.scheduling.scheduling.service.impl; package org.springblade.scheduling.scheduling.service.impl;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity; import org.springblade.scheduling.scheduling.entity.SameTroughEntity;
import org.springblade.scheduling.scheduling.excel.DifferentFurnaceTankExcel; import org.springblade.scheduling.scheduling.excel.SameTroughExcel;
import org.springblade.scheduling.scheduling.mapper.DifferentFurnaceTankMapper; import org.springblade.scheduling.scheduling.mapper.SameTroughMapper;
import org.springblade.scheduling.scheduling.service.IDifferentFurnaceTankService; import org.springblade.scheduling.scheduling.service.ISameTroughService;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO; import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -37,27 +37,25 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import java.util.List; import java.util.List;
/** /**
* 非同炉同槽因素表 服务实现类 * 非同槽因素表 服务实现类
* *
* @author BladeX * @author BladeX
* @since 2025-12-18 * @since 2026-01-07
*/ */
@Service @Service
public class DifferentFurnaceTankServiceImpl extends BaseServiceImpl<DifferentFurnaceTankMapper, DifferentFurnaceTankEntity> implements IDifferentFurnaceTankService { public class SameTroughServiceImpl extends BaseServiceImpl<SameTroughMapper, SameTroughEntity> implements ISameTroughService {
@Override @Override
public IPage<DifferentFurnaceTankVO> selectDifferentFurnaceTankPage(IPage<DifferentFurnaceTankVO> page, DifferentFurnaceTankVO DifferentFurnaceTank) { public IPage<SameTroughVO> selectSameTroughPage(IPage<SameTroughVO> page, SameTroughVO SameTrough) {
return page.setRecords(baseMapper.selectDifferentFurnaceTankPage(page, DifferentFurnaceTank)); return page.setRecords(baseMapper.selectSameTroughPage(page, SameTrough));
} }
@Override @Override
public List<DifferentFurnaceTankExcel> export(Wrapper<DifferentFurnaceTankEntity> queryWrapper) { public List<SameTroughExcel> export(Wrapper<SameTroughEntity> queryWrapper) {
List<DifferentFurnaceTankExcel> DifferentFurnaceTankList = baseMapper.export(queryWrapper); List<SameTroughExcel> SameTroughList = baseMapper.export(queryWrapper);
//DifferentFurnaceTankList.forEach(DifferentFurnaceTank -> {
// DifferentFurnaceTank.setTypeName(DictCache.getValue(DictEnum.YES_NO, DifferentFurnaceTank.getType())); return SameTroughList;
//});
return DifferentFurnaceTankList;
} }
} }

@ -86,6 +86,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IPartService partService; private final IPartService partService;
private final ISintTempCurveService sintTempCurveService; private final ISintTempCurveService sintTempCurveService;
private final ITeamSetService teamSetService; private final ITeamSetService teamSetService;
private final ISameTroughService sameTroughService;
private final IWorkCenterService workCenterService;
private final ICraftAbilityService craftAbilityService;
@Value("${business.oldMes.url}") @Value("${business.oldMes.url}")
private String oldMesUrl; private String oldMesUrl;
@ -144,6 +147,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
processList.forEach(item -> { processList.forEach(item -> {
processMap.put(item.getId(), item.getName()); processMap.put(item.getId(), item.getName());
}); });
//初始化作业中心
List<WorkCenterEntity> workCenterList = workCenterService.list();
Map<Long,String> workCenterMap = workCenterList.stream().collect(Collectors.toMap(BaseEntity::getId,WorkCenterEntity::getWcName));
//初始化工艺能力
List<CraftAbilityEntity> craftAbilityList = craftAbilityService.list();
Map<Long,String> craftAbilityMap = craftAbilityList.stream().collect(Collectors.toMap(BaseEntity::getId,CraftAbilityEntity::getCaName));
//初始化烧结温度曲线 //初始化烧结温度曲线
List<SintTempCurveEntity> sintList = sintTempCurveService.list(); List<SintTempCurveEntity> sintList = sintTempCurveService.list();
Map<Long, List<SintTempCurveEntity>> sintMap = sintList.stream().collect(Collectors.groupingBy(SintTempCurveEntity::getProcessId)); Map<Long, List<SintTempCurveEntity>> sintMap = sintList.stream().collect(Collectors.groupingBy(SintTempCurveEntity::getProcessId));
@ -176,7 +185,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
new LinkedBlockingQueue<>(), new LinkedBlockingQueue<>(),
r -> new Thread(r, "scheduling-thread-" + System.currentTimeMillis())); r -> new Thread(r, "scheduling-thread-" + System.currentTimeMillis()));
map.forEach((workcenter, orders) -> { map.forEach((workcenter, orders) -> {
threadPool.execute(() -> allocateResources(orders, personAbilityMap, mainProducerMap, planMap, processMap,sintMap)); threadPool.execute(() -> allocateResources(orders, personAbilityMap, mainProducerMap, planMap, processMap,sintMap,workCenterMap,craftAbilityMap));
}); });
} }
@ -298,7 +307,14 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
* @since 2025/12/1 18:08 * @since 2025/12/1 18:08
**/ **/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void allocateResources(List<YieldOrderEntity> list, Map<String, PersonAbilityEntity> personAbilityMap, Map<Long, String> mainProducerMap, Map<String, List<WorkPlanEntity>> planMap, Map<Long, String> processMap, Map<Long, List<SintTempCurveEntity>> sintMap) { public void allocateResources(List<YieldOrderEntity> list,
Map<String, PersonAbilityEntity> personAbilityMap,
Map<Long, String> mainProducerMap,
Map<String, List<WorkPlanEntity>> planMap,
Map<Long, String> processMap,
Map<Long, List<SintTempCurveEntity>> sintMap,
Map<Long, String> workCenterMap,
Map<Long, String> craftAbilityMap) {
List<WorkOrderEntity> workOrderList = new ArrayList<>(); List<WorkOrderEntity> workOrderList = new ArrayList<>();
for (YieldOrderEntity order : list) { for (YieldOrderEntity order : list) {
try { try {
@ -453,7 +469,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
//根据作业中心查询所有设备 //根据作业中心查询所有设备
List<EquipAbilityEntity> equipAbilityList = equipAbilityService.list(Wrappers.<EquipAbilityEntity>lambdaQuery().in(EquipAbilityEntity::getWorkCenterId, craft.getWorkCenterId()).eq(EquipAbilityEntity::getCraftId, craft.getCaId())); 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("工序:"+processMap.get(craft.getPpsId()) +",未匹配到对应的设备能力"); order.setErrorInfo("作业中心:"+workCenterMap.get(craft.getWorkCenterId())+",工艺:"+craftAbilityMap.get(craft.getCaId())+",工序:"+processMap.get(craft.getPpsId()) +",未匹配到对应的设备能力");
order.setStatus(YieldOrderEnum.STATUS_PROCESS_ERROR.getCode()); order.setStatus(YieldOrderEnum.STATUS_PROCESS_ERROR.getCode());
yieldOrderService.updateById(order); yieldOrderService.updateById(order);
isSchecuding = false; isSchecuding = false;
@ -1151,13 +1167,15 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
} }
public void sameTrough(List<YieldOrderEntity> list){ public void sameTrough(List<YieldOrderEntity> list,Long workCenterId){
List<SameTroughEntity> sameTroughEntities = sameTroughService.list();
//相同零件号判断键位、生产厂家、检验编号、生产标识 //相同零件号判断键位、生产厂家、检验编号、生产标识
//按照零件号分组
Map<String,List<YieldOrderEntity>> map = list.stream().collect(Collectors.groupingBy(YieldOrderEntity::getPartCode)); Map<String,List<YieldOrderEntity>> map = list.stream().collect(Collectors.groupingBy(YieldOrderEntity::getPartCode));
for(Map.Entry<String,List<YieldOrderEntity>> entry : map.entrySet()){ for(Map.Entry<String,List<YieldOrderEntity>> entry : map.entrySet()){
List<YieldOrderEntity> list1 = entry.getValue(); List<YieldOrderEntity> list1 = entry.getValue();
if(list1.size() > 1){ if(list1.size() > 1){
List<YieldOrderCraftEntity> craftList = yieldOrderCraftService.list(Wrappers.<YieldOrderCraftEntity>lambdaQuery().in(YieldOrderCraftEntity::getYoId,list1.stream().map(BaseEntity::getId).collect(Collectors.toList())));
} }
} }

@ -24,22 +24,21 @@
* Author: Chill Zhuang (bladejava@qq.com) * Author: Chill Zhuang (bladejava@qq.com)
*/ */
package org.springblade.scheduling.scheduling.vo; package org.springblade.scheduling.scheduling.vo;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity; import org.springblade.scheduling.scheduling.entity.SameTroughEntity;
import java.io.Serial; import java.io.Serial;
/** /**
* 非同炉同槽因素表 视图实体类 * 非同槽因素表 视图实体类
* *
* @author BladeX * @author BladeX
* @since 2025-12-18 * @since 2026-01-07
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class DifferentFurnaceTankVO extends DifferentFurnaceTankEntity { public class SameTroughVO extends SameTroughEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -27,33 +27,33 @@ package org.springblade.scheduling.scheduling.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.scheduling.scheduling.entity.DifferentFurnaceTankEntity; import org.springblade.scheduling.scheduling.entity.SameTroughEntity;
import org.springblade.scheduling.scheduling.vo.DifferentFurnaceTankVO; import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import java.util.Objects; import java.util.Objects;
/** /**
* 非同炉同槽因素表 包装类,返回视图层所需的字段 * 非同槽因素表 包装类,返回视图层所需的字段
* *
* @author BladeX * @author BladeX
* @since 2025-12-18 * @since 2026-01-07
*/ */
public class DifferentFurnaceTankWrapper extends BaseEntityWrapper<DifferentFurnaceTankEntity, DifferentFurnaceTankVO> { public class SameTroughWrapper extends BaseEntityWrapper<SameTroughEntity, SameTroughVO> {
public static DifferentFurnaceTankWrapper build() { public static SameTroughWrapper build() {
return new DifferentFurnaceTankWrapper(); return new SameTroughWrapper();
} }
@Override @Override
public DifferentFurnaceTankVO entityVO(DifferentFurnaceTankEntity DifferentFurnaceTank) { public SameTroughVO entityVO(SameTroughEntity SameTrough) {
DifferentFurnaceTankVO DifferentFurnaceTankVO = Objects.requireNonNull(BeanUtil.copyProperties(DifferentFurnaceTank, DifferentFurnaceTankVO.class)); SameTroughVO SameTroughVO = Objects.requireNonNull(BeanUtil.copyProperties(SameTrough, SameTroughVO.class));
//User createUser = UserCache.getUser(DifferentFurnaceTank.getCreateUser()); //User createUser = UserCache.getUser(SameTrough.getCreateUser());
//User updateUser = UserCache.getUser(DifferentFurnaceTank.getUpdateUser()); //User updateUser = UserCache.getUser(SameTrough.getUpdateUser());
//DifferentFurnaceTankVO.setCreateUserName(createUser.getName()); //SameTroughVO.setCreateUserName(createUser.getName());
//DifferentFurnaceTankVO.setUpdateUserName(updateUser.getName()); //SameTroughVO.setUpdateUserName(updateUser.getName());
return DifferentFurnaceTankVO; return SameTroughVO;
} }
Loading…
Cancel
Save