From 669d72beac32e169fd2b43c38417becdccd3f0ba Mon Sep 17 00:00:00 2001 From: Tom Li Date: Mon, 29 Dec 2025 17:58:56 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E9=99=84=E4=BB=B6id=E6=98=AF=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/LauncherConstant.java | 4 ++-- .../desk/basic/mapper/TeamSetMapper.java | 2 +- .../desk/basic/mapper/WorkCenterMapper.java | 2 +- .../desk/quality/service/CycleTestItemService2.java | 13 ++++++++----- .../quality/service/CycleTestStandardService2.java | 11 +++++++---- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 2b485859..ae76ab63 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -14,9 +14,9 @@ public interface LauncherConstant { */ // 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 用户名 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamSetMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamSetMapper.java index 4f7ed3f0..d60e0d17 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamSetMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamSetMapper.java @@ -20,7 +20,7 @@ import java.util.List; * @author Tom Shuo * @since 2025-12-16 */ -public interface TeamSetMapper extends EnBaseMapper { +public interface TeamSetMapper extends BaseMapper { /** * 自定义分页 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/WorkCenterMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/WorkCenterMapper.java index 929c58c6..d9424e25 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/WorkCenterMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/WorkCenterMapper.java @@ -20,7 +20,7 @@ import java.util.List; * @author Tom Shuo * @since 2025-12-16 */ -public interface WorkCenterMapper extends EnBaseMapper { +public interface WorkCenterMapper extends BaseMapper { /** * 自定义分页 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java index 990376d6..3b57bfe1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java @@ -14,6 +14,7 @@ import org.springblade.desk.quality.pojo.entity.CycleTestItem; import org.springblade.desk.quality.pojo.entity.CycleTestStandard; import org.springblade.desk.quality.pojo.request.CycleTestItemSubmit; import org.springblade.desk.quality.pojo.vo.CycleTestItemVO; +import org.springblade.desk.quality.util.IdUtil; import org.springblade.desk.quality.wrapper.CycleTestItemWrapper; import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.pojo.entity.Attach; @@ -144,11 +145,13 @@ public class CycleTestItemService2 { CycleTestStandard standard = standardService.getById(vo.getCycleTestStandardId()); if (standard != null) { vo.setCycleTestStandardName(standard.getName()); - Attach attach = attachClient.detailById(standard.getStandardAttachId()).getData(); - if (attach != null) { - vo.setStandardAttachId(attach.getId()); - vo.setLink(attach.getLink()); - vo.setOriginalName(attach.getOriginalName()); + if (IdUtil.isValid(standard.getStandardAttachId())) { + Attach attach = attachClient.detailById(standard.getStandardAttachId()).getData(); + if (attach != null) { + vo.setStandardAttachId(attach.getId()); + vo.setLink(attach.getLink()); + vo.setOriginalName(attach.getOriginalName()); + } } } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java index 3ef72175..1eeb7f12 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestStandardService2.java @@ -10,6 +10,7 @@ import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.quality.mapper.CycleTestStandardMapper; import org.springblade.desk.quality.pojo.entity.CycleTestStandard; import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO; +import org.springblade.desk.quality.util.IdUtil; import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.pojo.entity.Attach; import org.springframework.stereotype.Service; @@ -61,10 +62,12 @@ public class CycleTestStandardService2 { } public void setVOValue(CycleTestStandardVO vo) { - Attach attach = attachClient.detailById(vo.getStandardAttachId()).getData(); - if (attach != null) { - vo.setOriginalName(attach.getOriginalName()); - vo.setLink(attach.getLink()); + if(IdUtil.isValid(vo.getStandardAttachId())) { + Attach attach = attachClient.detailById(vo.getStandardAttachId()).getData(); + if (attach != null) { + vo.setOriginalName(attach.getOriginalName()); + vo.setLink(attach.getLink()); + } } } } From a0d29d1898402a8630889a42c470991669696954 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Mon, 29 Dec 2025 18:14:18 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E7=9B=B8=E5=85=B3-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WorkOrderController.java | 2 +- .../scheduling/dto/WorkOrderDto.java | 2 + .../entity/PersonResourceEntity.java | 22 +++++ .../scheduling/mapper/WorkOrderMapper.xml | 1 + .../scheduling/service/IWorkOrderService.java | 2 +- .../impl/PersonResourceServiceImpl.java | 48 ++++++---- .../service/impl/WorkOrderServiceImpl.java | 88 +++++++++++++++---- 7 files changed, 128 insertions(+), 37 deletions(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java index a54f2d1a..332cd8ba 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java @@ -181,7 +181,7 @@ public class WorkOrderController extends BladeController { @PostMapping("/schedulingBoard") @ApiOperationSupport(order = 6) @Operation(summary = "排产看板", description = "传入WorkOrderDto") - public R>> schedulingBoard(@RequestBody WorkOrderDto workOrderDto) { + public R> schedulingBoard(@RequestBody WorkOrderDto workOrderDto) { return R.data(workOrderService.schedulingBoard(workOrderDto)); } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/dto/WorkOrderDto.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/dto/WorkOrderDto.java index 3c4043d4..162d2c2a 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/dto/WorkOrderDto.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/dto/WorkOrderDto.java @@ -46,4 +46,6 @@ public class WorkOrderDto { private List planStatusList; + private List workOrderList; + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/PersonResourceEntity.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/PersonResourceEntity.java index e92c019f..791b2c2e 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/PersonResourceEntity.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/PersonResourceEntity.java @@ -104,7 +104,29 @@ public class PersonResourceEntity extends BaseEntity { private String dateTime; + /** + * 工序id + */ + @Schema(description = "工序id") + private Long processId; + + /** + * 工序名称 + */ + @Schema(description = "工序名称") + private String processName; + /** + * 作业中心Id + */ + @Schema(description = "作业中心Id") + private Long workCenterId; + + /** + * 作业中心名称 + */ + @Schema(description = "作业中心名称") + private String workCenterName; diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml index f0be1ad0..36d40609 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml @@ -117,6 +117,7 @@ LEFT JOIN MES_YIELD_ORDER g on g.id = a.yo_id a.is_deleted = 0 and b.is_deleted = 0 and a.status in (1,2,3,5) + and b.start_time is not null and b.end_time is not null and to_char(b.start_time,'YYYY-MM-DD') = ]]> #{startTime} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java index 1a808082..0afcc1fb 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java @@ -71,7 +71,7 @@ public interface IWorkOrderService extends BaseService { **/ void scheduling(); - Map> schedulingBoard(WorkOrderDto workOrder); + List schedulingBoard(WorkOrderDto workOrder); /** * 向旧mes发送排产结果数据 diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java index 1b22a53d..cfbd2508 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java @@ -33,6 +33,7 @@ import lombok.AllArgsConstructor; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.scheduling.scheduling.entity.EquipResourceEntity; import org.springblade.scheduling.scheduling.entity.PersonAbilityEntity; import org.springblade.scheduling.scheduling.entity.PersonResourceEntity; import org.springblade.scheduling.scheduling.excel.PersonResourceExcel; @@ -74,28 +75,20 @@ public class PersonResourceServiceImpl extends BaseServiceImpl list1 = this.list(Wrappers.lambdaQuery().eq(PersonResourceEntity::getDateTime,today)); - List list2 = this.list(Wrappers.lambdaQuery().eq(PersonResourceEntity::getDateTime,tomorrow)); - List list3 = this.list(Wrappers.lambdaQuery().eq(PersonResourceEntity::getDateTime,dayAfterTomorrow)); - if(CollectionUtils.isEmpty(list1)){ - generateData(today); - } - if(CollectionUtils.isEmpty(list2)){ - generateData(tomorrow); - } - if(CollectionUtils.isEmpty(list3)){ - generateData(dayAfterTomorrow); + for(int i=0;i<7;i++){ + String today = DateFormatUtils.format(DateUtils.addDays(date,i),"yyyy-MM-dd"); + List list = this.list(Wrappers.lambdaQuery().eq(PersonResourceEntity::getDateTime,today)); + if(CollectionUtils.isEmpty(list)){ + generateData(today); + } } } public void generateData(String day){ //获取设备能力列表 - List workCenterList = Arrays.asList("86","85"); - List personAbilityList = personAbilityService.list(Wrappers.lambdaQuery().in(PersonAbilityEntity::getWorkCenterId,workCenterList)); +// List workCenterList = Arrays.asList("86","85"); + List personAbilityList = personAbilityService.list(); if(CollectionUtils.isNotEmpty(personAbilityList)){ DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm"); @@ -105,11 +98,12 @@ public class PersonResourceServiceImpl extends BaseServiceImpl> teamIdList = baseMapper.selectTeamByWorkCenter(personAbility.getWorkCenterId()); + List resourceList = new ArrayList<>(); //普通设备每30分钟间隔生成数据 - int interval = 30; + /*int interval = 30; int totalMinutes = 24 * 60; // 一天总分钟数 int totalCount = totalMinutes / interval; // 生成条数 - List resourceList = new ArrayList<>(); + for (int i = 0; i < totalCount; i++) { LocalDateTime startTime = startOfDay.plusMinutes(i * interval); LocalDateTime endTime = startTime.plusMinutes(30); @@ -136,6 +130,24 @@ public class PersonResourceServiceImpl extends BaseServiceImpl map : teamIdList){ + LocalDateTime teamStartTime = LocalDateTime.parse(day + ' '+ map.get("startTime").toString(), dateTimeFormatter); + LocalDateTime teamEndTime = LocalDateTime.parse(day + ' '+ map.get("endTime").toString(), dateTimeFormatter); + PersonResourceEntity personResource = new PersonResourceEntity(); + personResource.setDateTime(day); + personResource.setCraftId(personAbility.getCraftId()); + personResource.setCraftName(personAbility.getCraftName()); + personResource.setPeriod(map.get("startTime").toString() + "-" + map.get("endTime").toString()); + personResource.setStartTime(teamStartTime); + personResource.setEndTime(teamEndTime); + personResource.setIsUsed("0"); + personResource.setProcessId(personAbility.getProcessId()); + personResource.setProcessName(personAbility.getProcessName()); + personResource.setTeamId(Long.parseLong(map.get("teamId").toString())); + personResource.setWorkCenterId(personAbility.getWorkCenterId()); + personResource.setWorkCenterName(personAbility.getWorkCenterName()); + resourceList.add(personResource); } if(CollectionUtils.isNotEmpty(resourceList)){ this.saveBatch(resourceList); diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index b0607cac..24707fd7 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -119,12 +119,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl list = - yieldOrderService.list(Wrappers.lambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory(),YieldOrderEnum.STATUS_PROCESS_ERROR.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate)); + yieldOrderService.list(Wrappers.lambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory(),YieldOrderEnum.STATUS_PROCESS_ERROR.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate).isNotNull(YieldOrderEntity::getDemandDate)); log.info("待排产订单数量为:" + list.size()); if (CollectionUtils.isNotEmpty(list)) { //校验已排产订单 checkSchedulingOrder(list); - list = yieldOrderService.list(Wrappers.lambdaQuery().eq(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate)); + list = yieldOrderService.list(Wrappers.lambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory(),YieldOrderEnum.STATUS_PROCESS_ERROR.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate).isNotNull(YieldOrderEntity::getDemandDate)); //初始化人员能力 List personAbilityEntityList = personAbilityService.list(Wrappers.lambdaQuery().isNotNull(PersonAbilityEntity::getWorkCenterId).isNotNull(PersonAbilityEntity::getProcessId).isNotNull(PersonAbilityEntity::getCraftId)); Map personAbilityMap = new HashMap<>(); @@ -182,12 +182,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl> schedulingBoard(WorkOrderDto workOrder) { + public List schedulingBoard(WorkOrderDto workOrder) { List list = baseMapper.selectWorkOrderList(workOrder); - Map> resultList = new HashMap<>(); + //Map> resultList = new HashMap<>(); Map> woCodeGroup = list.stream().collect(Collectors.groupingBy(WorkOrderDto::getWoCode)); - + List resultList = new ArrayList<>(); for (Map.Entry> entry : woCodeGroup.entrySet()) { + WorkOrderDto workOrderDto = new WorkOrderDto(); String woCode = entry.getKey(); List woList = entry.getValue(); @@ -232,12 +233,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl sintList = sintMap.get(craft.getPpsId()); List> sintMaterialList = new ArrayList<>(); @@ -430,12 +431,43 @@ public class WorkOrderServiceImpl extends BaseServiceImpl equipResourceList = sameFurnaceMap.get(glassCodeStr); + //计算生产所需产能,需将m2换算成dm2 + BigDecimal sumCapacity = order.getYpArea().multiply(BigDecimal.valueOf(order.getYpQty())); + for(EquipResourceEntity equipResource : equipResourceList){ + if(equipResource.getRestCapacity().compareTo(sumCapacity) > 0){ + //生成车间订单 + WorkPlanEntity workPlan = new WorkPlanEntity(); + workPlan.setStartTime(equipResource.getStartTime()); + if ("0".equals(equipResource.getEquipType())) { + workPlan.setEndTime(equipResource.getStartTime().plusMinutes(equipResource.getStandardTime().longValue())); + } else { + workPlan.setEndTime(equipResource.getEndTime()); + } + workPlan.setWorkQty(order.getYpQty()); + workPlan.setCaId(craft.getCaId()); + workPlan.setPpsId(craft.getPpsId()); + workPlan.setMakeTeam(equipResource.getTeamId()); + workPlan.setWorkCenterId(craft.getWorkCenterId()); + workPlan.setOrders(craft.getProcessNo()); + workPlan.setWoId(order.getId()); + workPlan.setOem("0"); + workPlan.setTestQty(0); + workPlan.setQualifiedQty(0); + workPlan.setUnqualifiedQty(0); + workPlan.setScrapQty(0); + workPlan.setHourQuota(BigDecimal.valueOf(ChronoUnit.MINUTES.between(workPlan.getStartTime(), workPlan.getEndTime()))); + workPlan.setEquipCode(equipResource.getEquipCode()); + workPlan.setEquipName(equipResource.getEquipName()); + workPlan.setEquipResourceId(equipResource.getId()); + workPlanList.add(workPlan); + equipResource.setRestCapacity(equipResource.getRestCapacity().subtract(sumCapacity)); + equipResourceService.updateById(equipResource); + } + } } - }else if("3".equals(order.getYieldType())){//玻璃饼 - - } } @@ -498,7 +530,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl personResourceList = personResourceService.list(Wrappers.lambdaQuery() + .eq(PersonResourceEntity::getWorkCenterId, craft.getWorkCenterId()) + .eq(PersonResourceEntity::getProcessId, craft.getPpsId()) + .eq(PersonResourceEntity::getCraftId, craft.getCaId()) + .le(PersonResourceEntity::getStartTime, prevProcessEnd) + .ge(PersonResourceEntity::getEndTime, prevProcessEnd)); + if(CollectionUtils.isNotEmpty(personResourceList)){ + workPlan.setMakeTeam(personResourceList.get(0).getTeamId()); + } //通过加锁的方式保证每次查询到的人力资源都是最新的 /*Long craftId = craft.getCaId(); Lock craftLock = getCraftLock(craftId); From b2b374852daffb595a6c0f797ec2ba80b7d8b98a Mon Sep 17 00:00:00 2001 From: Tom Li Date: Mon, 29 Dec 2025 18:22:58 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=94=B9=E5=9B=9E=20=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=20NACOS=5FNAMESPACE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/common/constant/LauncherConstant.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index ae76ab63..79c69ebb 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -14,9 +14,9 @@ public interface LauncherConstant { */ // 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 用户名 From 1ee4a0d4e0aac5422a09cb45b4ae5a0ff9569dbe Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Mon, 29 Dec 2025 19:23:37 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E7=9B=B8=E5=85=B3-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkOrderServiceImpl.java | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 24707fd7..3bdd679f 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -333,6 +333,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl list, Map personAbilityMap, Map mainProducerMap, Map> planMap, Map processMap, Map> sintMap) { List workOrderList = new ArrayList<>(); + Map> sameFurnaceMap = new HashMap<>(); for (YieldOrderEntity order : list) { try { //是否可以排产 @@ -398,7 +399,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl> sameFurnaceMap = new HashMap<>(); + String glassCodeStr = null; //烧结 if(sintMap.containsKey(craft.getPpsId())){ @@ -430,10 +431,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl equipResourceList = equipResourceService.list(Wrappers.lambdaQuery().eq(EquipResourceEntity::getWorkCenterId)) if(sameFurnaceMap.containsKey(glassCodeStr)){ List equipResourceList = sameFurnaceMap.get(glassCodeStr); //计算生产所需产能,需将m2换算成dm2 BigDecimal sumCapacity = order.getYpArea().multiply(BigDecimal.valueOf(order.getYpQty())); + Boolean isSameFurnace = false; for(EquipResourceEntity equipResource : equipResourceList){ if(equipResource.getRestCapacity().compareTo(sumCapacity) > 0){ //生成车间订单 @@ -464,7 +468,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Mon, 29 Dec 2025 19:43:15 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E7=9B=B8=E5=85=B3-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkOrderServiceImpl.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 3bdd679f..6a09cf74 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -124,7 +124,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpllambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory(),YieldOrderEnum.STATUS_PROCESS_ERROR.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate).isNotNull(YieldOrderEntity::getDemandDate)); + list = yieldOrderService.list(Wrappers.lambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate).isNotNull(YieldOrderEntity::getDemandDate)); //初始化人员能力 List personAbilityEntityList = personAbilityService.list(Wrappers.lambdaQuery().isNotNull(PersonAbilityEntity::getWorkCenterId).isNotNull(PersonAbilityEntity::getProcessId).isNotNull(PersonAbilityEntity::getCraftId)); Map personAbilityMap = new HashMap<>(); @@ -333,7 +333,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl list, Map personAbilityMap, Map mainProducerMap, Map> planMap, Map processMap, Map> sintMap) { List workOrderList = new ArrayList<>(); - Map> sameFurnaceMap = new HashMap<>(); for (YieldOrderEntity order : list) { try { //是否可以排产 @@ -432,9 +431,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl equipResourceList = equipResourceService.list(Wrappers.lambdaQuery().eq(EquipResourceEntity::getWorkCenterId)) - if(sameFurnaceMap.containsKey(glassCodeStr)){ - List equipResourceList = sameFurnaceMap.get(glassCodeStr); + List equipResourceList = equipResourceService.list(Wrappers.lambdaQuery() + .eq(EquipResourceEntity::getWorkCenterId,craft.getWorkCenterId()) + .eq(EquipResourceEntity::getCraftId,craft.getCaId()) + .ge(EquipResourceEntity::getStartTime,prevProcessEnd) + .eq(EquipResourceEntity::getGlassCode,glassCodeStr)); + if(CollectionUtils.isNotEmpty(equipResourceList)){ //计算生产所需产能,需将m2换算成dm2 BigDecimal sumCapacity = order.getYpArea().multiply(BigDecimal.valueOf(order.getYpQty())); Boolean isSameFurnace = false; @@ -527,7 +529,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl capacityList = capacitySplit(equipResourceMap, sumCapacity); - List sameFurnaceList = new ArrayList<>(); for (BigDecimal capacity : capacityList) { for (Map.Entry> entry1 : equipResourceMap.entrySet()) { Boolean isOccupied = false; @@ -565,9 +566,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl personResourceList = personResourceService.list(Wrappers.lambdaQuery() + /*List personResourceList = personResourceService.list(Wrappers.lambdaQuery() .eq(PersonResourceEntity::getWorkCenterId, craft.getWorkCenterId()) .eq(PersonResourceEntity::getProcessId, craft.getPpsId()) .eq(PersonResourceEntity::getCraftId, craft.getCaId()) @@ -653,7 +651,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Tue, 30 Dec 2025 09:19:24 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E7=9B=B8=E5=85=B3-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/scheduling/entity/EquipResourceEntity.java | 6 ++++++ .../scheduling/service/impl/WorkOrderServiceImpl.java | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/EquipResourceEntity.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/EquipResourceEntity.java index d36bd2e1..099c4616 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/EquipResourceEntity.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/entity/EquipResourceEntity.java @@ -151,6 +151,12 @@ public class EquipResourceEntity extends BaseEntity { @Schema(description = "设备顺序") private Long workCenterId; + /** + * 玻璃粉牌号 + */ + @Schema(description = "玻璃粉牌号") + private String GlassCode; + diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 6a09cf74..810f1923 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -124,7 +124,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpllambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate).isNotNull(YieldOrderEntity::getDemandDate)); + list = yieldOrderService.list(Wrappers.lambdaQuery().in(BaseEntity::getStatus, YieldOrderEnum.STATUS_APS.getCategory(),YieldOrderEnum.STATUS_PROCESS_ERROR.getCategory()).isNotNull(YieldOrderEntity::getWorkCenterId).isNotNull(YieldOrderEntity::getReleaseDate).isNotNull(YieldOrderEntity::getDemandDate)); //初始化人员能力 List personAbilityEntityList = personAbilityService.list(Wrappers.lambdaQuery().isNotNull(PersonAbilityEntity::getWorkCenterId).isNotNull(PersonAbilityEntity::getProcessId).isNotNull(PersonAbilityEntity::getCraftId)); Map personAbilityMap = new HashMap<>(); @@ -643,7 +643,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl personResourceList = personResourceService.list(Wrappers.lambdaQuery() + List personResourceList = personResourceService.list(Wrappers.lambdaQuery() .eq(PersonResourceEntity::getWorkCenterId, craft.getWorkCenterId()) .eq(PersonResourceEntity::getProcessId, craft.getPpsId()) .eq(PersonResourceEntity::getCraftId, craft.getCaId()) @@ -651,7 +651,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Tue, 30 Dec 2025 09:20:43 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E8=A1=A8=E5=BB=BA=E8=A1=A8sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/sql/mes/increase-251226.sql | 267 ++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 doc/sql/mes/increase-251226.sql diff --git a/doc/sql/mes/increase-251226.sql b/doc/sql/mes/increase-251226.sql new file mode 100644 index 00000000..d48ba9fc --- /dev/null +++ b/doc/sql/mes/increase-251226.sql @@ -0,0 +1,267 @@ +CREATE TABLE "MES_OUTSOURCE_PROCESS" +( + "ID" NUMBER(20, 0) PRIMARY KEY, + "PROCESS_ID" NUMBER(20, 0), + "PROCESS_NAME" NVARCHAR2(255), + "DAYS" NUMBER(10, 0), + "REMARKS" NVARCHAR2(255), + "CREATE_USER" NUMBER(20, 0), + "CREATE_DEPT" NUMBER(20, 0), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0 +); + +-- 添加表注释 +COMMENT ON TABLE mes_outsource_process IS '外协工序表'; + +-- 添加字段注释 +COMMENT ON COLUMN mes_outsource_process.id IS 'ID'; +COMMENT ON COLUMN mes_outsource_process.process_id IS '工序id'; +COMMENT ON COLUMN mes_outsource_process.process_name IS '工序名称'; +COMMENT ON COLUMN mes_outsource_process.days IS '时间'; +COMMENT ON COLUMN mes_outsource_process.remarks IS '备注'; +COMMENT ON COLUMN mes_outsource_process.create_user IS '创建人'; +COMMENT ON COLUMN mes_outsource_process.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_outsource_process.create_time IS '创建时间'; +COMMENT ON COLUMN mes_outsource_process.update_user IS '更新人'; +COMMENT ON COLUMN mes_outsource_process.update_time IS '更新时间'; +COMMENT ON COLUMN mes_outsource_process.status IS '业务状态'; +COMMENT ON COLUMN mes_outsource_process.is_deleted IS '是否已删除'; + +DROP TABLE MES_RACK_SET; +CREATE TABLE "MES_RACK_SET" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "RS_CODE" NVARCHAR2(255) NOT NULL ENABLE, + "RS_TYPE" NVARCHAR2(255) NOT NULL ENABLE, + "BIND_QTY" NUMBER DEFAULT 0 NOT NULL ENABLE, + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_rack_set IS '挂具设置'; +COMMENT ON COLUMN mes_rack_set.rs_code IS '编码'; +COMMENT ON COLUMN mes_rack_set.rs_type IS '类型'; +COMMENT ON COLUMN mes_rack_set.create_user IS '创建人'; +COMMENT ON COLUMN mes_rack_set.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_rack_set.create_time IS '创建时间'; +COMMENT ON COLUMN mes_rack_set.update_user IS '更新人'; +COMMENT ON COLUMN mes_rack_set.update_time IS '更新时间'; +COMMENT ON COLUMN mes_rack_set.status IS '状态;1、空闲;2、使用中;3、已绑定'; +COMMENT ON COLUMN mes_rack_set.is_deleted IS '是否已删除'; + +-- MES_FEI_BA_SET definition +DROP TABLE MES_FEI_BA_SET; +CREATE TABLE "MES_FEI_BA_SET" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "FS_CODE" NVARCHAR2(255) NOT NULL ENABLE, + "FS_TYPE" NVARCHAR2(255) NOT NULL ENABLE, + "BIND_QTY" NUMBER DEFAULT 0 NOT NULL ENABLE, + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_fei_ba_set IS '飞跋设置'; +COMMENT ON COLUMN mes_fei_ba_set.fs_code IS '编码'; +COMMENT ON COLUMN mes_fei_ba_set.fs_type IS '类型'; +COMMENT ON COLUMN mes_fei_ba_set.create_user IS '创建人'; +COMMENT ON COLUMN mes_fei_ba_set.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_fei_ba_set.create_time IS '创建时间'; +COMMENT ON COLUMN mes_fei_ba_set.update_user IS '更新人'; +COMMENT ON COLUMN mes_fei_ba_set.update_time IS '更新时间'; +COMMENT ON COLUMN mes_fei_ba_set.status IS '状态;1、空闲;2、使用中'; +COMMENT ON COLUMN mes_fei_ba_set.is_deleted IS '删除标记;1:删除,0:正常'; + +DROP TABLE MES_RECORDER_TYPE; +CREATE TABLE "MES_RECORDER_TYPE" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "CRT_CODE" NVARCHAR2(255) NOT NULL ENABLE, + "MEMO" NVARCHAR2(900), + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_recorder_type IS '记录仪分类'; +COMMENT ON COLUMN mes_recorder_type.id IS '流水号'; +COMMENT ON COLUMN mes_recorder_type.crt_code IS '编码'; +COMMENT ON COLUMN mes_recorder_type.memo IS '备注'; +COMMENT ON COLUMN mes_recorder_type.create_user IS '创建人'; +COMMENT ON COLUMN mes_recorder_type.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_recorder_type.create_time IS '创建时间'; +COMMENT ON COLUMN mes_recorder_type.update_user IS '更新人'; +COMMENT ON COLUMN mes_recorder_type.update_time IS '更新时间'; +COMMENT ON COLUMN mes_recorder_type.status IS '状态;'; +COMMENT ON COLUMN mes_recorder_type.is_deleted IS '删除标记;1:删除,0:正常'; + +-- MES_RECORDER_COMPARE definition +DROP TABLE MES_RECORDER_COMPARE; +CREATE TABLE "MES_RECORDER_COMPARE" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "CODE" NVARCHAR2(255) NOT NULL ENABLE, + "NAME" NVARCHAR2(255) NOT NULL ENABLE, + "SHOW_NAME" NVARCHAR2(255), + "SHOW_GRAPH" CHAR(1), + "CRC_X" NUMBER(*, 0), + "CRC_Y" NUMBER(20, 10), + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_recorder_compare IS '记录仪曲线设置'; +COMMENT ON COLUMN mes_recorder_compare.id IS '流水号'; +COMMENT ON COLUMN mes_recorder_compare.code IS '设备编号'; +COMMENT ON COLUMN mes_recorder_compare.name IS '参数名称'; +COMMENT ON COLUMN mes_recorder_compare.show_name IS '参数显示名称'; +COMMENT ON COLUMN mes_recorder_compare.show_graph IS '是否显示曲线图'; +COMMENT ON COLUMN mes_recorder_compare.crc_x IS '曲线X间隔'; +COMMENT ON COLUMN mes_recorder_compare.crc_y IS '曲线Y比例尺'; +COMMENT ON COLUMN mes_recorder_compare.create_user IS '创建人'; +COMMENT ON COLUMN mes_recorder_compare.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_recorder_compare.create_time IS '创建时间'; +COMMENT ON COLUMN mes_recorder_compare.update_user IS '更新人'; +COMMENT ON COLUMN mes_recorder_compare.update_time IS '更新时间'; +COMMENT ON COLUMN mes_recorder_compare.status IS '状态;'; +COMMENT ON COLUMN mes_recorder_compare.is_deleted IS '删除标记;1:删除,0:正常'; + +DROP TABLE MES_MEA_TOOL; +CREATE TABLE "MES_MEA_TOOL" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "MT_SIZE" NVARCHAR2(255), + "MT_NAME" NVARCHAR2(255), + "ORDERS" NVARCHAR2(255), + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_mea_tool IS '量具信息'; +COMMENT ON COLUMN mes_mea_tool.id IS '流水号'; +COMMENT ON COLUMN mes_mea_tool.mt_size IS '尺寸'; +COMMENT ON COLUMN mes_mea_tool.mt_name IS '量具'; +COMMENT ON COLUMN mes_mea_tool.orders IS '序号'; +COMMENT ON COLUMN mes_mea_tool.create_user IS '创建人'; +COMMENT ON COLUMN mes_mea_tool.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_mea_tool.create_time IS '创建时间'; +COMMENT ON COLUMN mes_mea_tool.update_user IS '更新人'; +COMMENT ON COLUMN mes_mea_tool.update_time IS '更新时间'; +COMMENT ON COLUMN mes_mea_tool.status IS '状态;1、空闲;2、使用中'; +COMMENT ON COLUMN mes_mea_tool.is_deleted IS '删除标记;1:删除,0:正常'; + +DROP TABLE MES_UPKEEP_RECORDS; +CREATE TABLE "MES_UPKEEP_RECORDS" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "DEVICE" NVARCHAR2(255), + "DEVICE_CODE" NVARCHAR2(255), + "FAULT_DATE" DATE, + "FAULT_MEMO" NVARCHAR2(255), + "UPKEEP_DATE" DATE, + "UPKEEP_RESULT" NVARCHAR2(255), + "MEMO" NVARCHAR2(255), + "UPKEEP_MAN" NVARCHAR2(255), + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_upkeep_records IS '设备维修记录'; +COMMENT ON COLUMN mes_upkeep_records.id IS '流水号'; +COMMENT ON COLUMN mes_upkeep_records.device IS '设备'; +COMMENT ON COLUMN mes_upkeep_records.device_code IS '设备编号'; +COMMENT ON COLUMN mes_upkeep_records.fault_date IS '故障日期'; +COMMENT ON COLUMN mes_upkeep_records.fault_memo IS '故障描述'; +COMMENT ON COLUMN mes_upkeep_records.upkeep_date IS '维修日期'; +COMMENT ON COLUMN mes_upkeep_records.upkeep_result IS '维修结果'; +COMMENT ON COLUMN mes_upkeep_records.memo IS '备注'; +COMMENT ON COLUMN mes_upkeep_records.upkeep_man IS '维修人'; +COMMENT ON COLUMN mes_upkeep_records.create_user IS '创建人'; +COMMENT ON COLUMN mes_upkeep_records.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_upkeep_records.create_time IS '创建时间'; +COMMENT ON COLUMN mes_upkeep_records.update_user IS '更新人'; +COMMENT ON COLUMN mes_upkeep_records.update_time IS '更新时间'; +COMMENT ON COLUMN mes_upkeep_records.status IS '状态;'; +COMMENT ON COLUMN mes_upkeep_records.is_deleted IS '删除标记;1:删除,0:正常'; + +-- MES_MEASURING_upkeep definition +DROP TABLE MES_MEASURING_UPKEEP; +CREATE TABLE "MES_MEASURING_UPKEEP" +( + "ID" NUMBER(20, 0) NOT NULL ENABLE, + "TENANT_ID" NVARCHAR2(12), + "CREATE_USER" NUMBER(20, 0), + "CREATE_TIME" DATE, + "CREATE_DEPT" NUMBER(20, 0), + "UPDATE_USER" NUMBER(20, 0), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11, 0) DEFAULT 1, + "IS_DELETED" NUMBER(11, 0) DEFAULT 0, + "MM_CODE" NVARCHAR2(255) NOT NULL ENABLE, + "MI_ID" NUMBER(18, 0), + "MEMO" NVARCHAR2(900), + "CREATE_MAN" NUMBER(18, 0) NOT NULL ENABLE, + "APPROVAL_STATUS" NUMBER DEFAULT -1 NOT NULL ENABLE, + "RLS_ID" NUMBER(18, 0), + PRIMARY KEY ("ID") +) SEGMENT CREATION IMMEDIATE TABLESPACE "JONHON_MES_DATA"; + +COMMENT ON TABLE mes_measuring_upkeep IS '量具保养'; +COMMENT ON COLUMN mes_measuring_upkeep.id IS '流水号'; +COMMENT ON COLUMN mes_measuring_upkeep.mm_code IS '保养单号'; +COMMENT ON COLUMN mes_measuring_upkeep.mi_id IS '库存物料;外键(库存物料)'; +COMMENT ON COLUMN mes_measuring_upkeep.memo IS '备注'; +COMMENT ON COLUMN mes_measuring_upkeep.approval_status IS '审批状态;-1'; +COMMENT ON COLUMN mes_measuring_upkeep.rls_id IS '库存物料'; +COMMENT ON COLUMN mes_measuring_upkeep.create_user IS '创建人'; +COMMENT ON COLUMN mes_measuring_upkeep.create_dept IS '创建部门'; +COMMENT ON COLUMN mes_measuring_upkeep.create_time IS '创建时间'; +COMMENT ON COLUMN mes_measuring_upkeep.update_user IS '更新人'; +COMMENT ON COLUMN mes_measuring_upkeep.update_time IS '更新时间'; +COMMENT ON COLUMN mes_measuring_upkeep.status IS '状态;0:待保养;1:已保养;21:作废'; +COMMENT ON COLUMN mes_measuring_upkeep.is_deleted IS '删除标记;1:删除,0:正常';