From 68babc5786a6b03e3d1feca1fae8c2abe01175ea Mon Sep 17 00:00:00 2001 From: z Date: Fri, 20 Mar 2026 15:01:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=95=B0=E6=8D=AE=E9=87=87?= =?UTF-8?q?=E9=9B=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConfigurationController.java | 95 ++++++++++ .../vo/ConfigurationPageReqVO.java | 29 +++ .../configuration/vo/ConfigurationRespVO.java | 38 ++++ .../vo/ConfigurationSaveReqVO.java | 31 ++++ .../DataAcquisitionController.java | 118 ++++++++++++ .../vo/DataAcquisitionPageReqVO.java | 46 +++++ .../vo/DataAcquisitionRespVO.java | 56 ++++++ .../vo/DataAcquisitionSaveReqVO.java | 40 ++++ .../admin/orderyf/OrderYfController.java | 4 +- .../storagelog/StorageLogController.java | 8 +- .../storagelog/vo/StorageLogPageReqVO.java | 2 + .../configuration/ConfigurationDO.java | 49 +++++ .../dataacquisition/DataAcquisitionDO.java | 72 ++++++++ .../configuration/ConfigurationMapper.java | 30 +++ .../DataAcquisitionMapper.java | 66 +++++++ .../dal/mysql/material/MaterialMapper.java | 9 + .../configuration/ConfigurationService.java | 55 ++++++ .../ConfigurationServiceImpl.java | 74 ++++++++ .../DataAcquisitionService.java | 60 ++++++ .../DataAcquisitionServiceImpl.java | 95 ++++++++++ .../service/storagelog/StorageLogService.java | 3 + .../storagelog/StorageLogServiceImpl.java | 23 ++- .../dataacquisition/DataAcquisitionMapper.xml | 12 ++ .../configuration/ConfigurationMapper.xml | 12 ++ .../src/api/heli/dataacquisition/index.ts | 49 +++++ .../src/api/heli/storagelog/index.ts | 4 +- .../dataacquisition/DataAcquisitionForm.vue | 127 +++++++++++++ .../heli/dataacquisition/dataacquisition.vue | 161 +++++++++++++++++ .../src/views/heli/dataacquisition/index.vue | 171 ++++++++++++++++++ .../src/views/heli/orderyf/index.vue | 20 +- .../src/views/heli/orderys/index.vue | 20 +- .../src/views/heli/storagelog/index.vue | 92 +++++++++- 32 files changed, 1640 insertions(+), 31 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/ConfigurationController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationPageReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationRespVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationSaveReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/DataAcquisitionController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionPageReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionRespVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionSaveReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/configuration/ConfigurationDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/dataacquisition/DataAcquisitionDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/configuration/ConfigurationMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/dataacquisition/DataAcquisitionMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationService.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationServiceImpl.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionService.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionServiceImpl.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/dataacquisition/DataAcquisitionMapper.xml create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/mapper/configuration/ConfigurationMapper.xml create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/heli/dataacquisition/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/DataAcquisitionForm.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/dataacquisition.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/index.vue diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/ConfigurationController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/ConfigurationController.java new file mode 100644 index 00000000..a8882149 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/ConfigurationController.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.configuration; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration.ConfigurationDO; +import com.chanko.yunxi.mes.module.heli.service.configuration.ConfigurationService; + +@Tag(name = "管理后台 - 设备配置") +@RestController +@RequestMapping("/heli/configuration") +@Validated +public class ConfigurationController { + + @Resource + private ConfigurationService configurationService; + + @PostMapping("/create") + @Operation(summary = "创建设备配置") + @PreAuthorize("@ss.hasPermission('heli:configuration:create')") + public CommonResult createConfiguration(@Valid @RequestBody ConfigurationSaveReqVO createReqVO) { + return success(configurationService.createConfiguration(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新设备配置") + @PreAuthorize("@ss.hasPermission('heli:configuration:update')") + public CommonResult updateConfiguration(@Valid @RequestBody ConfigurationSaveReqVO updateReqVO) { + configurationService.updateConfiguration(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除设备配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:configuration:delete')") + public CommonResult deleteConfiguration(@RequestParam("id") Long id) { + configurationService.deleteConfiguration(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得设备配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:configuration:query')") + public CommonResult getConfiguration(@RequestParam("id") Long id) { + ConfigurationDO configuration = configurationService.getConfiguration(id); + return success(BeanUtils.toBean(configuration, ConfigurationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得设备配置分页") + @PreAuthorize("@ss.hasPermission('heli:configuration:query')") + public CommonResult> getConfigurationPage(@Valid ConfigurationPageReqVO pageReqVO) { + PageResult pageResult = configurationService.getConfigurationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ConfigurationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出设备配置 Excel") + @PreAuthorize("@ss.hasPermission('heli:configuration:export')") + @OperateLog(type = EXPORT) + public void exportConfigurationExcel(@Valid ConfigurationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configurationService.getConfigurationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "设备配置.xls", "数据", ConfigurationRespVO.class, + BeanUtils.toBean(list, ConfigurationRespVO.class)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationPageReqVO.java new file mode 100644 index 00000000..a26d74bd --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationPageReqVO.java @@ -0,0 +1,29 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +@Schema(description = "管理后台 - 设备配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConfigurationPageReqVO extends PageParam { + + @Schema(description = "设备编码") + private String code; + + @Schema(description = "主轴转速下限") + private Integer speedOfMainshaftLower; + + @Schema(description = "主轴转速上限") + private Integer speedOfMainshaftUpper; + + @Schema(description = "进给速度下限") + private Integer feedSpeedLower; + + @Schema(description = "进给速度上限") + private Integer feedSpeedUpper; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationRespVO.java new file mode 100644 index 00000000..17e0ff03 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationRespVO.java @@ -0,0 +1,38 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 设备配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConfigurationRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "5985") + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "设备编码") + @ExcelProperty("设备编码") + private String code; + + @Schema(description = "主轴转速下限") + @ExcelProperty("主轴转速下限") + private Integer speedOfMainshaftLower; + + @Schema(description = "主轴转速上限") + @ExcelProperty("主轴转速上限") + private Integer speedOfMainshaftUpper; + + @Schema(description = "进给速度下限") + @ExcelProperty("进给速度下限") + private Integer feedSpeedLower; + + @Schema(description = "进给速度上限") + @ExcelProperty("进给速度上限") + private Integer feedSpeedUpper; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationSaveReqVO.java new file mode 100644 index 00000000..b6a379d4 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/configuration/vo/ConfigurationSaveReqVO.java @@ -0,0 +1,31 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 设备配置新增/修改 Request VO") +@Data +public class ConfigurationSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "5985") + private Long id; + + @Schema(description = "设备编码") + private String code; + + @Schema(description = "主轴转速下限") + private Integer speedOfMainshaftLower; + + @Schema(description = "主轴转速上限") + private Integer speedOfMainshaftUpper; + + @Schema(description = "进给速度下限") + private Integer feedSpeedLower; + + @Schema(description = "进给速度上限") + private Integer feedSpeedUpper; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/DataAcquisitionController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/DataAcquisitionController.java new file mode 100644 index 00000000..3aacf2ac --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/DataAcquisitionController.java @@ -0,0 +1,118 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition; + +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition.DataAcquisitionDO; +import com.chanko.yunxi.mes.module.heli.service.dataacquisition.DataAcquisitionService; + +@Tag(name = "管理后台 - 设备数据采集") +@RestController +@RequestMapping("/heli/data-acquisition") +@Validated +public class DataAcquisitionController { + + @Resource + private DataAcquisitionService dataAcquisitionService; + + @PostMapping("/create") + @Operation(summary = "创建设备数据采集") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:create')") + public CommonResult createDataAcquisition(@Valid @RequestBody DataAcquisitionSaveReqVO createReqVO) { + return success(dataAcquisitionService.createDataAcquisition(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新设备数据采集") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:update')") + public CommonResult updateDataAcquisition(@Valid @RequestBody DataAcquisitionSaveReqVO updateReqVO) { + dataAcquisitionService.updateDataAcquisition(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除设备数据采集") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:delete')") + public CommonResult deleteDataAcquisition(@RequestParam("id") Long id) { + dataAcquisitionService.deleteDataAcquisition(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得设备数据采集") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:query')") + public CommonResult getDataAcquisition(@RequestParam("id") Long id) { + DataAcquisitionDO dataAcquisition = dataAcquisitionService.getDataAcquisition(id); + return success(BeanUtils.toBean(dataAcquisition, DataAcquisitionRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得设备数据采集分页") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:query')") + public CommonResult> getDataAcquisitionPage(@Valid DataAcquisitionPageReqVO pageReqVO) { + PageResult pageResult = dataAcquisitionService.getDataAcquisitionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DataAcquisitionRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出设备数据采集 Excel") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:export')") + @OperateLog(type = EXPORT) + public void exportDataAcquisitionExcel(@Valid DataAcquisitionPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = dataAcquisitionService.getDataAcquisitionPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "设备数据采集.xls", "数据", DataAcquisitionRespVO.class, + BeanUtils.toBean(list, DataAcquisitionRespVO.class)); + } + + @Scheduled(cron = "0/5 * * * * ?") + public void updateDataCollection(){ + dataAcquisitionService.updateDataCollection(); + } + @GetMapping("/getList") + @Operation(summary = "获得设备数据采集") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:query')") + public CommonResult> getList() { + List dataAcquisition = dataAcquisitionService.getList(); + return success(dataAcquisition); + } + @GetMapping("/getDataAcquisitionList") + @Operation(summary = "获得设备") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:data-acquisition:query')") + public CommonResult> getDataAcquisitionList(@RequestParam("code") String code) { + List dataAcquisition = dataAcquisitionService.getDataAcquisitionList(code); + return success(dataAcquisition); + } + + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionPageReqVO.java new file mode 100644 index 00000000..c4a666fd --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionPageReqVO.java @@ -0,0 +1,46 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 设备数据采集分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DataAcquisitionPageReqVO extends PageParam { + + @Schema(description = "设备编码") + private String code; + + @Schema(description = "程序号") + private String programNumber; + + @Schema(description = "刀具号") + private Integer toolNumber; + + @Schema(description = "运行时长") + private String runningDuration; + + @Schema(description = "运行状态", example = "2") + private String runningStatus; + + @Schema(description = "主轴转速") + private String speedOfMainshaft; + + @Schema(description = "进给速度") + private String feedSpeed; + + @Schema(description = "查询状态", example = "1") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionRespVO.java new file mode 100644 index 00000000..083163fa --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionRespVO.java @@ -0,0 +1,56 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 设备数据采集 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DataAcquisitionRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "27287") + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "设备编码") + @ExcelProperty("设备编码") + private String code; + + @Schema(description = "程序号") + @ExcelProperty("程序号") + private String programNumber; + + @Schema(description = "刀具号") + @ExcelProperty("刀具号") + private Integer toolNumber; + + @Schema(description = "运行时长") + @ExcelProperty("运行时长") + private String runningDuration; + + @Schema(description = "运行状态", example = "2") + @ExcelProperty("运行状态") + private String runningStatus; + + @Schema(description = "主轴转速") + @ExcelProperty("主轴转速") + private String speedOfMainshaft; + + @Schema(description = "进给速度") + @ExcelProperty("进给速度") + private String feedSpeed; + + @Schema(description = "查询状态", example = "1") + @ExcelProperty("查询状态") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionSaveReqVO.java new file mode 100644 index 00000000..12d75eeb --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/dataacquisition/vo/DataAcquisitionSaveReqVO.java @@ -0,0 +1,40 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 设备数据采集新增/修改 Request VO") +@Data +public class DataAcquisitionSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "27287") + private Long id; + + @Schema(description = "设备编码") + private String code; + + @Schema(description = "程序号") + private String programNumber; + + @Schema(description = "刀具号") + private Integer toolNumber; + + @Schema(description = "运行时长") + private String runningDuration; + + @Schema(description = "运行状态", example = "2") + private String runningStatus; + + @Schema(description = "主轴转速") + private String speedOfMainshaft; + + @Schema(description = "进给速度") + private String feedSpeed; + + @Schema(description = "查询状态", example = "1") + private Integer status; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderyf/OrderYfController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderyf/OrderYfController.java index 75ab28c6..eba3163c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderyf/OrderYfController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderyf/OrderYfController.java @@ -99,9 +99,9 @@ public class OrderYfController { }else { BigDecimal subtract = cgYf.subtract(cgYifu); if (subtract.compareTo(BigDecimal.ZERO) < 0){ - order.setSYAmount(BigDecimal.ZERO); + order.setCgSY(BigDecimal.ZERO); }else { - order.setSYAmount(subtract); + order.setCgSY(subtract); } } if (ObjectUtil.isEmpty(amount)){ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java index 2cc2beaa..730ff662 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java @@ -178,5 +178,11 @@ public class StorageLogController { PageResult pageResult = storageLogService.getSupplementPage(pageReqVO); return success(pageResult); } - + @PostMapping("/submitForm") + @Operation(summary = "生产导入新中大") + @PreAuthorize("@ss.hasPermission('heli:storage-log:update')") + public CommonResult submitForm( @RequestBody List list) { + storageLogService.submitForm(list); + return success(true); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java index 2a2a1bdd..8b26bcc4 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java @@ -52,5 +52,7 @@ public class StorageLogPageReqVO extends PageParam { private Long headerId; @Schema(description = "单据编号") private String codeNo; + @Schema(description = "获取物料信息id") + private List ids; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/configuration/ConfigurationDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/configuration/ConfigurationDO.java new file mode 100644 index 00000000..7e93d586 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/configuration/ConfigurationDO.java @@ -0,0 +1,49 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration; + +import lombok.*; +import java.util.*; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 设备配置 DO + * + * @author 管理员 + */ +@TableName("equipment_configuration") +@KeySequence("equipment_configuration_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ConfigurationDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 设备编码 + */ + private String code; + /** + * 主轴转速下限 + */ + private Integer speedOfMainshaftLower; + /** + * 主轴转速上限 + */ + private Integer speedOfMainshaftUpper; + /** + * 进给速度下限 + */ + private Integer feedSpeedLower; + /** + * 进给速度上限 + */ + private Integer feedSpeedUpper; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/dataacquisition/DataAcquisitionDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/dataacquisition/DataAcquisitionDO.java new file mode 100644 index 00000000..5a139252 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/dataacquisition/DataAcquisitionDO.java @@ -0,0 +1,72 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 设备数据采集 DO + * + * @author 管理员 + */ +@TableName("equipment_data_acquisition") +@KeySequence("equipment_data_acquisition_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DataAcquisitionDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 设备编码 + */ + private String code; + /** + * 程序号 + */ + private String programNumber; + /** + * 刀具号 + */ + private Integer toolNumber; + /** + * 运行时长 + */ + private String runningDuration; + /** + * 运行状态 + */ + private String runningStatus; + /** + * 主轴转速 + */ + private String speedOfMainshaft; + /** + * 进给速度 + */ + private String feedSpeed; + /** + * 查询状态 + */ + private Integer status; + + @TableField(exist = false) + private Integer speedOfMainshaftLower; + + @TableField(exist = false) + private Integer speedOfMainshaftUpper; + @TableField(exist = false) + private Integer feedSpeedLower; + @TableField(exist = false) + private Integer feedSpeedUpper; +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/configuration/ConfigurationMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/configuration/ConfigurationMapper.java new file mode 100644 index 00000000..3053ea3b --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/configuration/ConfigurationMapper.java @@ -0,0 +1,30 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.configuration; + +import java.util.*; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration.ConfigurationDO; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo.*; + +/** + * 设备配置 Mapper + * + * @author 管理员 + */ +@Mapper +public interface ConfigurationMapper extends BaseMapperX { + + default PageResult selectPage(ConfigurationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ConfigurationDO::getCode, reqVO.getCode()) + .eqIfPresent(ConfigurationDO::getSpeedOfMainshaftLower, reqVO.getSpeedOfMainshaftLower()) + .eqIfPresent(ConfigurationDO::getSpeedOfMainshaftUpper, reqVO.getSpeedOfMainshaftUpper()) + .eqIfPresent(ConfigurationDO::getFeedSpeedLower, reqVO.getFeedSpeedLower()) + .eqIfPresent(ConfigurationDO::getFeedSpeedUpper, reqVO.getFeedSpeedUpper()) + .orderByDesc(ConfigurationDO::getId)); + } + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/dataacquisition/DataAcquisitionMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/dataacquisition/DataAcquisitionMapper.java new file mode 100644 index 00000000..2e823b5f --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/dataacquisition/DataAcquisitionMapper.java @@ -0,0 +1,66 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.dataacquisition; + +import java.util.*; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.bgmasterline.BgMasterLineDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration.ConfigurationDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition.DataAcquisitionDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.*; + +/** + * 设备数据采集 Mapper + * + * @author 管理员 + */ +@Mapper +public interface DataAcquisitionMapper extends BaseMapperX { + + default PageResult selectPage(DataAcquisitionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DataAcquisitionDO::getCode, reqVO.getCode()) + .eqIfPresent(DataAcquisitionDO::getProgramNumber, reqVO.getProgramNumber()) + .eqIfPresent(DataAcquisitionDO::getToolNumber, reqVO.getToolNumber()) + .eqIfPresent(DataAcquisitionDO::getRunningDuration, reqVO.getRunningDuration()) + .eqIfPresent(DataAcquisitionDO::getRunningStatus, reqVO.getRunningStatus()) + .eqIfPresent(DataAcquisitionDO::getSpeedOfMainshaft, reqVO.getSpeedOfMainshaft()) + .eqIfPresent(DataAcquisitionDO::getFeedSpeed, reqVO.getFeedSpeed()) + .eqIfPresent(DataAcquisitionDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(DataAcquisitionDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DataAcquisitionDO::getId)); + } + + @Select("SELECT * FROM equipment_data_acquisition WHERE (code, create_time) IN " + + "(SELECT code, MAX(create_time) FROM equipment_data_acquisition WHERE status = 1 GROUP BY code) AND status = 1 ORDER BY running_status ASC;") + List selectLatestByCode(); + + @Select("SELECT t1.id FROM equipment_data_acquisition t1 " + + "INNER JOIN (" + + " SELECT code, MAX(create_time) AS max_create_time " + + " FROM equipment_data_acquisition " + + " WHERE status = 1 " + + " GROUP BY code" + + ") t2 ON t1.code = t2.code " + + "WHERE t1.status = 0 " + + " AND t1.create_time > t2.max_create_time " + + "ORDER BY t1.create_time ASC") + List selectNextStatusZeroIds(); + + default List getDataAcquisitionList(String code){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(DataAcquisitionDO.class) + .select("c.speed_of_mainshaft_lower as speedOfMainshaftLower","c.speed_of_mainshaft_upper as speedOfMainshaftUpper", "c.feed_speed_lower as feedSpeedLower","c.feed_speed_upper as feedSpeedUpper") + .leftJoin(ConfigurationDO.class,"c",ConfigurationDO::getCode,DataAcquisitionDO::getCode) + .disableSubLogicDel(); + query.eq(DataAcquisitionDO::getCode,code) + .eq(DataAcquisitionDO::getStatus,1) + .orderByDesc(DataAcquisitionDO::getCreateTime) + .last("limit 10"); + return selectList(query); + } +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java index 18fb3138..652bac05 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java @@ -252,4 +252,13 @@ public interface MaterialMapper extends BaseMapperX { ; return selectPage(pageReqVO,query); } + + default List selectName(String matName){ + + return selectList(new MPJLambdaWrapper() + .select(MaterialDO::getName) + .like(MaterialDO::getName, matName) + .eq(MaterialDO::getStatus,1) + .eq(MaterialDO::getTenantId, 2)); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationService.java new file mode 100644 index 00000000..d6953225 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.service.configuration; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration.ConfigurationDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 设备配置 Service 接口 + * + * @author 管理员 + */ +public interface ConfigurationService { + + /** + * 创建设备配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createConfiguration(@Valid ConfigurationSaveReqVO createReqVO); + + /** + * 更新设备配置 + * + * @param updateReqVO 更新信息 + */ + void updateConfiguration(@Valid ConfigurationSaveReqVO updateReqVO); + + /** + * 删除设备配置 + * + * @param id 编号 + */ + void deleteConfiguration(Long id); + + /** + * 获得设备配置 + * + * @param id 编号 + * @return 设备配置 + */ + ConfigurationDO getConfiguration(Long id); + + /** + * 获得设备配置分页 + * + * @param pageReqVO 分页查询 + * @return 设备配置分页 + */ + PageResult getConfigurationPage(ConfigurationPageReqVO pageReqVO); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationServiceImpl.java new file mode 100644 index 00000000..437dc81b --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/configuration/ConfigurationServiceImpl.java @@ -0,0 +1,74 @@ +package com.chanko.yunxi.mes.module.heli.service.configuration; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.configuration.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration.ConfigurationDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.configuration.ConfigurationMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 设备配置 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class ConfigurationServiceImpl implements ConfigurationService { + + @Resource + private ConfigurationMapper configurationMapper; + + @Override + public Long createConfiguration(ConfigurationSaveReqVO createReqVO) { + // 插入 + ConfigurationDO configuration = BeanUtils.toBean(createReqVO, ConfigurationDO.class); + configurationMapper.insert(configuration); + // 返回 + return configuration.getId(); + } + + @Override + public void updateConfiguration(ConfigurationSaveReqVO updateReqVO) { + // 校验存在 + validateConfigurationExists(updateReqVO.getId()); + // 更新 + ConfigurationDO updateObj = BeanUtils.toBean(updateReqVO, ConfigurationDO.class); + configurationMapper.updateById(updateObj); + } + + @Override + public void deleteConfiguration(Long id) { + // 校验存在 + validateConfigurationExists(id); + // 删除 + configurationMapper.deleteById(id); + } + + private void validateConfigurationExists(Long id) { + if (configurationMapper.selectById(id) == null) { +// throw exception(CONFIGURATION_NOT_EXISTS); + } + } + + @Override + public ConfigurationDO getConfiguration(Long id) { + return configurationMapper.selectById(id); + } + + @Override + public PageResult getConfigurationPage(ConfigurationPageReqVO pageReqVO) { + return configurationMapper.selectPage(pageReqVO); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionService.java new file mode 100644 index 00000000..8cc626d7 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionService.java @@ -0,0 +1,60 @@ +package com.chanko.yunxi.mes.module.heli.service.dataacquisition; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition.DataAcquisitionDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; + +/** + * 设备数据采集 Service 接口 + * + * @author 管理员 + */ +public interface DataAcquisitionService { + + /** + * 创建设备数据采集 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDataAcquisition(@Valid DataAcquisitionSaveReqVO createReqVO); + + /** + * 更新设备数据采集 + * + * @param updateReqVO 更新信息 + */ + void updateDataAcquisition(@Valid DataAcquisitionSaveReqVO updateReqVO); + + /** + * 删除设备数据采集 + * + * @param id 编号 + */ + void deleteDataAcquisition(Long id); + + /** + * 获得设备数据采集 + * + * @param id 编号 + * @return 设备数据采集 + */ + DataAcquisitionDO getDataAcquisition(Long id); + + /** + * 获得设备数据采集分页 + * + * @param pageReqVO 分页查询 + * @return 设备数据采集分页 + */ + PageResult getDataAcquisitionPage(DataAcquisitionPageReqVO pageReqVO); + + void updateDataCollection(); + + List getList(); + + List getDataAcquisitionList(String code); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionServiceImpl.java new file mode 100644 index 00000000..ba18e689 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/dataacquisition/DataAcquisitionServiceImpl.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.heli.service.dataacquisition; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition.DataAcquisitionDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.dataacquisition.DataAcquisitionMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; + +/** + * 设备数据采集 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class DataAcquisitionServiceImpl implements DataAcquisitionService { + + @Resource + private DataAcquisitionMapper dataAcquisitionMapper; + + @Override + public Long createDataAcquisition(DataAcquisitionSaveReqVO createReqVO) { + // 插入 + DataAcquisitionDO dataAcquisition = BeanUtils.toBean(createReqVO, DataAcquisitionDO.class); + dataAcquisitionMapper.insert(dataAcquisition); + // 返回 + return dataAcquisition.getId(); + } + + @Override + public void updateDataAcquisition(DataAcquisitionSaveReqVO updateReqVO) { + // 校验存在 + validateDataAcquisitionExists(updateReqVO.getId()); + // 更新 + DataAcquisitionDO updateObj = BeanUtils.toBean(updateReqVO, DataAcquisitionDO.class); + dataAcquisitionMapper.updateById(updateObj); + } + + @Override + public void deleteDataAcquisition(Long id) { + // 校验存在 + validateDataAcquisitionExists(id); + // 删除 + dataAcquisitionMapper.deleteById(id); + } + + private void validateDataAcquisitionExists(Long id) { + if (dataAcquisitionMapper.selectById(id) == null) { +// throw exception(DATA_ACQUISITION_NOT_EXISTS); + } + } + + @Override + public DataAcquisitionDO getDataAcquisition(Long id) { + return dataAcquisitionMapper.selectById(id); + } + + @Override + public PageResult getDataAcquisitionPage(DataAcquisitionPageReqVO pageReqVO) { + return dataAcquisitionMapper.selectPage(pageReqVO); + } + + @Override + public void updateDataCollection() { + // 查找每个 code 分组中 status=1 的最大 createTime 之后的 status=0 的最小记录的 id + List ids = dataAcquisitionMapper.selectNextStatusZeroIds(); + if (ObjectUtil.isNotEmpty(ids)){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(DataAcquisitionDO::getId, ids); + updateWrapper.set(DataAcquisitionDO::getStatus, 1); + dataAcquisitionMapper.update(updateWrapper); + } + } + + @Override + public List getList() { + return dataAcquisitionMapper.selectLatestByCode(); + } + + @Override + public List getDataAcquisitionList(String code) { + return dataAcquisitionMapper.getDataAcquisitionList( code); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java index 1a347a59..78c88646 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java @@ -79,4 +79,7 @@ public interface StorageLogService { PageResult getSupplementPage(StorageLogPageReqVO pageReqVO); + void getMatCode(List list); + + void submitForm(List list); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java index ab9ff3c3..52fd6809 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java @@ -107,6 +107,10 @@ public class StorageLogServiceImpl implements StorageLogService { public PageResult getStorageLogPage(StorageLogPageReqVO pageReqVO) { // return storageLogAllMapper.selectPage(pageReqVO); PageResult pageResult = storageLogMapper.selectPage(pageReqVO); + Set idSet = Collections.unmodifiableSet(new HashSet<>()); + if (ObjectUtil.isNotEmpty(pageReqVO.getIds())){ + idSet = new HashSet<>(pageReqVO.getIds()); + } for (StorageLogDO logDO : pageResult.getList()) { if (logDO.getGoodsType()==2){ if (ObjectUtil.isNotEmpty(logDO.getMatName())){ @@ -114,6 +118,9 @@ public class StorageLogServiceImpl implements StorageLogService { queryWrapper.eq(MaterialDO::getName, logDO.getMatName()); List materialDOS = materialMapper.selectList(queryWrapper); logDO.setMaterialDOList(materialDOS); + if (idSet.contains(logDO.getId()) && materialDOS.size() == 1) { + logDO.setMatId(materialDOS.get(0).getId()); + } } } } @@ -235,6 +242,20 @@ public class StorageLogServiceImpl implements StorageLogService { public PageResult getSupplementPage(StorageLogPageReqVO pageReqVO) { return storageLogNowMapper.getSupplementPage(pageReqVO); } + @Override + public void getMatCode(List list) { + for (StorageLogDO logDO : list) { + List materialDOList = materialMapper.selectName(logDO.getMatName()); + if (ObjectUtil.isNotEmpty(materialDOList)&&materialDOList.size()==1){ + MaterialDO materialDO = materialDOList.get(0); + logDO.setMatId(materialDO.getId()); + storageLogMapper.updateById(logDO); + } + } + } - + @Override + public void submitForm(List list) { + storageLogMapper.updateBatch(list); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/dataacquisition/DataAcquisitionMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/dataacquisition/DataAcquisitionMapper.xml new file mode 100644 index 00000000..214abb0a --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/dataacquisition/DataAcquisitionMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/mapper/configuration/ConfigurationMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/mapper/configuration/ConfigurationMapper.xml new file mode 100644 index 00000000..17df5e53 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/mapper/configuration/ConfigurationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/dataacquisition/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/dataacquisition/index.ts new file mode 100644 index 00000000..b5e2048e --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/dataacquisition/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface DataAcquisitionVO { + id: number + code: string + programNumber: string + toolNumber: number + runningDuration: string + runningStatus: string + speedOfMainshaft: string + feedSpeed: string + status: number +} + +// 查询设备数据采集分页 +export const getDataAcquisitionPage = async (params) => { + return await request.get({ url: `/heli/data-acquisition/page`, params }) +} + +// 查询设备数据采集详情 +export const getDataAcquisition = async (id: number) => { + return await request.get({ url: `/heli/data-acquisition/get?id=` + id }) +} + +// 新增设备数据采集 +export const createDataAcquisition = async (data: DataAcquisitionVO) => { + return await request.post({ url: `/heli/data-acquisition/create`, data }) +} + +// 修改设备数据采集 +export const updateDataAcquisition = async (data: DataAcquisitionVO) => { + return await request.put({ url: `/heli/data-acquisition/update`, data }) +} + +// 删除设备数据采集 +export const deleteDataAcquisition = async (id: number) => { + return await request.delete({ url: `/heli/data-acquisition/delete?id=` + id }) +} + +// 导出设备数据采集 Excel +export const exportDataAcquisition = async (params) => { + return await request.download({ url: `/heli/data-acquisition/export-excel`, params }) +} +export const getList = async () => { + return await request.get({ url: `/heli/data-acquisition/getList` }) +} +export const getDataAcquisitionList = async (code: string) => { + return await request.get({ url: `/heli/data-acquisition/getDataAcquisitionList`, params: { code } }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts index 645665c1..7cc49eb2 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts @@ -89,4 +89,6 @@ export const exportStorageLog = async (params) => { export const getSupplementPage = async (params) => { return await request.get({ url: `/heli/storage-log/getSupplementPage`, params }) } - +export const submitForm = async (data) => { + return await request.post({ url: `/heli/storage-log/submitForm`, data }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/DataAcquisitionForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/DataAcquisitionForm.vue new file mode 100644 index 00000000..3ef1c0ee --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/DataAcquisitionForm.vue @@ -0,0 +1,127 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/dataacquisition.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/dataacquisition.vue new file mode 100644 index 00000000..858089c4 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/dataacquisition.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/index.vue new file mode 100644 index 00000000..3bc713d1 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/dataacquisition/index.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue index 5f412c0e..f38e8435 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue @@ -114,9 +114,12 @@ @@ -134,11 +137,12 @@ diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue index 02fd54c0..a5da6d93 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/index.vue @@ -131,9 +131,12 @@ @@ -151,11 +154,12 @@ diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue index a4d1a8ee..678b2438 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue @@ -44,6 +44,8 @@ 重置 + 获取物料编码 + 保存 @@ -51,9 +53,22 @@ - - - + + + + + + + + + + + + - + @@ -115,15 +130,14 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import * as WarehouseApi from '@/api/heli/warehouse' import routeParamsCache from '@/utils/routeParamsCache' -import axios from "axios"; -import {getAccessToken, getTenantId} from "@/utils/auth"; -import Material from "@/views/heli/material/index.vue"; -import MaterialSelect from "@/views/heli/hlvuestyle/materialSelect.vue"; +import {ElButton, ElTableColumn} from "element-plus"; +import {ref} from "vue"; + defineOptions({ name: 'StorageLog' }) const whList = ref([]) - +const multipleSelection = ref([]) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 const exportLoading = ref(false) // 导出的加载中 @@ -144,9 +158,13 @@ const queryParams = reactive({ headerNo: undefined, codeNo:undefined, matSpec:undefined, + ids:[], }) const queryFormRef = ref() // 搜索的表单 - +const handleSelectionChange = (val) => { + // 更新 multipleSelection + multipleSelection.value = val; +}; /** 查询列表 */ const getList = async () => { loading.value = true @@ -182,6 +200,60 @@ const init_page_wh = (async ()=>{ // const init_page_pn = (async ()=>{ // pnList.value = await PnApi.getSimpList() // }) +const getMatCode = async () => { + try { + + const list = multipleSelection.value || []; // 安全获取数据 + // 1. 检查空数据 + if (!list || list.length==null) { + message.error("提交明细不能为空,请确认"); + return; + } + queryParams.ids=list.map(item=>item.id) + getList(); + queryParams.ids=[] + message.success("获取成功"); + emit('success'); + + + } catch (error) { + console.error("获取失败:", error); + // message.error(`操作失败: ${error.message || "未知错误"}`); + } finally { + loading.value = false; + } +} + +const submitForm = async () => { + try { + + const list = multipleSelection.value || []; // 安全获取数据 + // 1. 检查空数据 + if (!list || list.length==null) { + message.error("提交明细不能为空,请确认"); + return; + } + loading.value = true; + // 5. 提交数据(添加超时处理) + const res = await Promise.race([ + StorageLogApi.submitForm(list), + new Promise((_, reject) => + setTimeout(() => reject(new Error("请求超时")), 30000) + ) + ]); + message.success("保存成功"); + getList(); // 确保刷新完成 + emit('success'); + + + } catch (error) { + console.error("获取失败:", error); + // message.error(`操作失败: ${error.message || "未知错误"}`); + } finally { + loading.value = false; + } +} + /** 初始化 **/ const route = useRoute()