桌面端新增密炼计划获取

This commit is contained in:
2026-06-17 17:52:31 +08:00
parent 816af5df6e
commit 372dc10be2
23 changed files with 1335 additions and 92 deletions

View File

@@ -13,6 +13,7 @@ import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.xslmes.entity.MesXslMixingProductionPlan;
import org.jeecg.modules.xslmes.service.IMesXslMixingProductionPlanService;
import org.jeecg.modules.xslmes.service.MesXslStompNotifyService;
import org.jeecg.modules.xslmes.vo.MesXslMixingProductionPlanOrderOptionVO;
import org.jeecg.modules.xslmes.vo.MesXslMixingProductionPlanSaveAllVO;
import org.springframework.web.bind.annotation.GetMapping;
@@ -29,10 +30,13 @@ public class MesXslMixingProductionPlanController
extends JeecgController<MesXslMixingProductionPlan, IMesXslMixingProductionPlanService> {
private final IMesXslMixingProductionPlanService mixingProductionPlanService;
private final MesXslStompNotifyService stompNotify;
public MesXslMixingProductionPlanController(
IMesXslMixingProductionPlanService mixingProductionPlanService) {
IMesXslMixingProductionPlanService mixingProductionPlanService,
MesXslStompNotifyService stompNotify) {
this.mixingProductionPlanService = mixingProductionPlanService;
this.stompNotify = stompNotify;
}
@Operation(summary = "密炼生产计划维护-分页列表查询")
@@ -56,6 +60,9 @@ public class MesXslMixingProductionPlanController
@PostMapping("/saveAll")
public Result<String> saveAll(@RequestBody MesXslMixingProductionPlanSaveAllVO req) {
mixingProductionPlanService.saveAllRows(req == null ? null : req.getRows());
//update-begin---author:jiangxh ---date:20260617 for【密炼计划】整表保存后广播桌面端同步-----------
stompNotify.publishMixingProductionPlanChanged("saveAll", null);
//update-end---author:jiangxh ---date:20260617 for【密炼计划】整表保存后广播桌面端同步-----------
return Result.OK("保存成功");
}

View File

@@ -99,6 +99,14 @@ public class MesXslStompNotifyService {
}
//update-end---author:jiangxh ---date:20260617 for【快检实验标准】桌面端只读同步 STOMP-----------
//update-begin---author:jiangxh ---date:20260617 for【密炼计划】桌面端只读同步 STOMP-----------
/** 广播密炼生产计划变更事件到 /topic/sync/mes-mixing-production-plans */
public void publishMixingProductionPlanChanged(String action, String mixingProductionPlanId) {
publish("/topic/sync/mes-mixing-production-plans", "MIXING_PRODUCTION_PLAN_CHANGED",
"mixingProductionPlanId", mixingProductionPlanId, action);
}
//update-end---author:jiangxh ---date:20260617 for【密炼计划】桌面端只读同步 STOMP-----------
// ─────────────────────────── 私有辅助 ────────────────────────────
private void publish(String topic, String cmd, String idKey, String idValue, String action) {

View File

@@ -0,0 +1,374 @@
{
"scanKeyword": "MesXslMixingProductionPlan",
"entityClass": "MesXslMixingProductionPlan",
"tableName": "mes_xsl_mixing_production_plan",
"javaEntityFile": "jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\entity\\MesXslMixingProductionPlan.java",
"hasIzEnable": false,
"hasCodeUniqueness": false,
"uniquenessFields": [],
"backendArch": {
"unifiedAnonCtrl": "jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\controller\\MesXslDesktopAnonController.java",
"registeredInAnonCtrl": true,
"anonEndpoints": [
"list"
],
"stompNotifySvc": "jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\service\\MesXslStompNotifyService.java",
"registeredInStompSvc": false,
"bizCtrlFile": "jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\controller\\MesXslMixingProductionPlanController.java",
"bizCtrlUsesSharedNotify": false,
"bizCtrlHasPrivatePublish": false
},
"wpfRegistrationStatus": {
"syncModuleService": false,
"syncModuleCoordinator": false,
"navigationView": false,
"stompSubscribe": false,
"menuRegistered": false,
"tenantMenuRegistered": false,
"syncModuleFilePath": "yy-admin-master\\YY.Admin\\Module\\SyncModule.cs",
"navExtFilePath": "yy-admin-master\\YY.Admin\\Module\\NavigationExtensions.cs",
"stompWsFilePath": "yy-admin-master\\YY.Admin\\Infrastructure\\Hubs\\StompWebSocketService.cs",
"menuSeedFilePath": "yy-admin-master\\YY.Admin.Core\\SeedData\\SysMenuSeedData.cs",
"summary": "✗ 待完成: SyncModule服务注册, SyncModule协调器注册, NavigationExtensions视图注册, STOMP订阅, 菜单注册"
},
"menuSuggestion": {
"parentMenuId": 1300150000101,
"parentMenuTitle": "基础资料",
"nextMenuId": 1300150011401,
"nextOrderNo": 113,
"menuIdPattern": "130015001{N}01N 每次 +11→101,2→201...",
"alreadyExists": false,
"existingMenuId": null
},
"apiPrefix": "/xslmes/mesXslMixingProductionPlan",
"stompCmd": "MIXING_PRODUCTION_PLAN_CHANGED",
"stompTopic": "/topic/sync/mes-mixing-production-plans",
"stompSubscriptionId": "sub-mes-xsl-mixing-production-plan",
"syncMode": "B",
"syncModeReason": "有/anon/免密端点适合模式B",
"filterFields": [
"machineId",
"machineName",
"planNo",
"planType",
"materialName"
],
"fields": [
{
"javaName": "sortNo",
"csName": "SortNo",
"sqlName": "sort_no",
"javaType": "Integer",
"csType": "int?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "machineId",
"csName": "MachineId",
"sqlName": "machine_id",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": "id"
},
{
"javaName": "machineName",
"csName": "MachineName",
"sqlName": "machine_name",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "shiftFlag",
"csName": "ShiftFlag",
"sqlName": "shift_flag",
"javaType": "Integer",
"csType": "int?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "planDate",
"csName": "PlanDate",
"sqlName": "plan_date",
"javaType": "Date",
"csType": "DateTime?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "planNo",
"csName": "PlanNo",
"sqlName": "plan_no",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "planId",
"csName": "PlanId",
"sqlName": "plan_id",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "planType",
"csName": "PlanType",
"sqlName": "plan_type",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "sourceOrderId",
"csName": "SourceOrderId",
"sqlName": "source_order_id",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "materialId",
"csName": "MaterialId",
"sqlName": "material_id",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "materialName",
"csName": "MaterialName",
"sqlName": "material_name",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "orderNo",
"csName": "OrderNo",
"sqlName": "order_no",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "orderDate",
"csName": "OrderDate",
"sqlName": "order_date",
"javaType": "Date",
"csType": "DateTime?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "formulaName",
"csName": "FormulaName",
"sqlName": "formula_name",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "planWeight",
"csName": "PlanWeight",
"sqlName": "plan_weight",
"javaType": "BigDecimal",
"csType": "double?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "plannedCarCount",
"csName": "PlannedCarCount",
"sqlName": "planned_car_count",
"javaType": "Integer",
"csType": "int?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "scheduledCarCount",
"csName": "ScheduledCarCount",
"sqlName": "scheduled_car_count",
"javaType": "Integer",
"csType": "int?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "finishedCarCount",
"csName": "FinishedCarCount",
"sqlName": "finished_car_count",
"javaType": "Integer",
"csType": "int?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "planCount",
"csName": "PlanCount",
"sqlName": "plan_count",
"javaType": "Integer",
"csType": "int?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
{
"javaName": "remark",
"csName": "Remark",
"sqlName": "remark",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": false,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
}
],
"pkField": {
"javaName": "id",
"csName": "Id",
"sqlName": "id",
"javaType": "String",
"csType": "string?",
"comment": "",
"isPk": true,
"isAudit": false,
"isIzEnable": false,
"required": false,
"dictCode": null
},
"auditFields": [
"TenantId",
"SysOrgCode",
"CreateBy",
"CreateTime",
"UpdateBy",
"UpdateTime",
"DelFlag"
],
"dbConfig": {
"url": "jdbc:mysql://localhost:3306/jeecg-boot-dev?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai",
"username": "root",
"configFile": "jeecg-boot\\jeecg-boot-module\\jeecg-boot-module-airag\\src\\main\\resources\\application.yml"
},
"dbColumns": [],
"csEntityStub": "public class MesXslMixingProductionPlan\n{\n public string? Id { get; set; }\n public int? SortNo { get; set; }\n public string? MachineId { get; set; } [Dict:id]\n public string? MachineName { get; set; }\n public int? ShiftFlag { get; set; }\n public DateTime? PlanDate { get; set; }\n public string? PlanNo { get; set; }\n public string? PlanId { get; set; }\n public string? PlanType { get; set; }\n public string? SourceOrderId { get; set; }\n public string? MaterialId { get; set; }\n public string? MaterialName { get; set; }\n public string? OrderNo { get; set; }\n public DateTime? OrderDate { get; set; }\n public string? FormulaName { get; set; }\n public double? PlanWeight { get; set; }\n public int? PlannedCarCount { get; set; }\n public int? ScheduledCarCount { get; set; }\n public int? FinishedCarCount { get; set; }\n public int? PlanCount { get; set; }\n public string? Remark { get; set; }\n public int? TenantId { get; set; }\n public string? SysOrgCode { get; set; }\n public string? CreateBy { get; set; }\n public DateTime? CreateTime { get; set; }\n public string? UpdateBy { get; set; }\n public DateTime? UpdateTime { get; set; }\n public int? DelFlag { get; set; }\n // 只读显示属性:\n // public string StatusText => Status == \"1\" ? \"停用\" : \"启用\";\n}",
"generationHints": {
"eventClassName": "MesXslMixingProductionPlanChangedEvent",
"serviceInterface": "IMixingProductionPlanService",
"serviceImpl": "MixingProductionPlanService",
"syncCoordinator": "MixingProductionPlanSyncCoordinator",
"listViewModel": "MixingProductionPlanListViewModel",
"editDialogViewModel": "MixingProductionPlanEditDialogViewModel",
"listView": "MixingProductionPlanListView",
"editDialogView": "MixingProductionPlanEditDialogView",
"pendingOpsFile": "mes-xsl-mixing-production-plan-pending-ops.json",
"cacheFile": "mes-xsl-mixing-production-plan-cache.json",
"nextMenuId": 1300150011401,
"nextMenuOrderNo": 113,
"backendFilesToModify": [
"jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\controller\\MesXslDesktopAnonController.java",
"jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\service\\MesXslStompNotifyService.java",
"jeecg-boot\\jeecg-boot-module\\jeecg-module-xslmes\\src\\main\\java\\org\\jeecg\\modules\\xslmes\\controller\\MesXslMixingProductionPlanController.java",
"jeecg-boot-base-core/.../ShiroConfig.java"
],
"wpfFilesToModify": [
"yy-admin-master\\YY.Admin\\Module\\SyncModule.cs",
"yy-admin-master\\YY.Admin\\Module\\NavigationExtensions.cs",
"yy-admin-master\\YY.Admin\\Infrastructure\\Hubs\\StompWebSocketService.cs",
"yy-admin-master\\YY.Admin.Core\\SeedData\\SysMenuSeedData.cs",
"YY.Admin.Core/SeedData/SysTenantMenuSeedData.cs"
]
}
}