From b4daa66a64fe80ebb53916647776f815872c4eec Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Wed, 29 Apr 2026 14:46:55 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E6=88=90=E6=9C=AC=E7=AE=A1=E7=90=86-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/desk/cost/mapper/CostStatisticsMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml index 6514c33b..66f52227 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml @@ -75,6 +75,7 @@ WHERE a.is_deleted = 0 AND NOT EXISTS ( SELECT 1 FROM BS_REL_TEAM_SET_USER b WHERE b.user_id = a.user_id ) + AND a.IN_OUT_TYPE = 1 AND to_char( IN_OUT_DATE, 'yyyy-MM' ) = #{month} AND a.GOODS_ID NOT IN ( SELECT id FROM ST_GOODS WHERE GOODS_CODE IN ( SELECT GOODS_CODE FROM MES_COST_CALCULATION_GOODS ) ) From 35ef15858cb8c58b650ec95d1701e352da76735e Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Wed, 29 Apr 2026 14:47:31 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E6=88=90=E6=9C=AC=E7=AE=A1=E7=90=86-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/desk/cost/mapper/CostStatisticsMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml index 66f52227..8c358308 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml @@ -181,6 +181,7 @@ WHERE a.is_deleted = 0 AND NOT EXISTS ( SELECT 1 FROM BS_REL_TEAM_SET_USER b WHERE b.user_id = a.user_id ) + AND a.IN_OUT_TYPE = 1 AND to_char( IN_OUT_DATE, 'yyyy-MM' ) = #{month} AND a.GOODS_ID NOT IN ( SELECT id FROM ST_GOODS WHERE GOODS_CODE IN ( SELECT GOODS_CODE FROM MES_COST_CALCULATION_GOODS ) ) From 677580002c512f0d3fcf82f9419dd126766aaa8a Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Wed, 29 Apr 2026 16:25:01 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/service/impl/WorkOrderServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 4df8be2c..2b4a6492 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 @@ -1952,7 +1952,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl voList = JsonUtil.readValue(personAbility.getStandardTime(), new TypeReference>() {}); for(PersonAbilityVO vo : voList){ - if(part.getExternalDiameter() > vo.getStartNum() && part.getExternalDiameter() <= vo.getEndNum()){ + if(part.getExternalDiameter() != null && part.getExternalDiameter() > vo.getStartNum() && part.getExternalDiameter() <= vo.getEndNum()){ personTime = Double.parseDouble(vo.getStandardTime()) * order.getYpQty() + personAbility.getPrepareTime().doubleValue(); break; } @@ -1965,7 +1965,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl voList = JsonUtil.readValue(personAbility.getStandardTime(), new TypeReference>() {}); for(PersonAbilityVO vo : voList){ - if(part.getBlbDiameter() >vo.getStartNum() && part.getBlbDiameter() <= vo.getEndNum()){ + if(part.getBlbDiameter() != null && part.getBlbDiameter() >vo.getStartNum() && part.getBlbDiameter() <= vo.getEndNum()){ personTime = Double.parseDouble(vo.getStandardTime()) * order.getYpQty() + personAbility.getPrepareTime().doubleValue(); break; } From 53b8c9825c97409e18d32e6eeec44dcf1aeeac15 Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Wed, 29 Apr 2026 16:32:17 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/service/IStOtherOutRecordService.java | 2 +- .../wms/service/impl/StExpireRecordServiceImpl.java | 2 +- .../service/impl/StOtherOutRecordServiceImpl.java | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStOtherOutRecordService.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStOtherOutRecordService.java index 8fe1086b..5d981b08 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStOtherOutRecordService.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStOtherOutRecordService.java @@ -45,7 +45,7 @@ public interface IStOtherOutRecordService extends BaseService void approvalRequest(Long id, Short approvalResult, BladeUser user); - void createPendingOutRecord(StOtherOutRecord record, List stockList, BladeUser user); + void createPendingOutRecord(StOtherOutRecord record, List stockList, BladeUser user, Long rrId); StOtherOutRecordVO getDetail(Long id); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireRecordServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireRecordServiceImpl.java index 41b6e4f4..7d072d16 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireRecordServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireRecordServiceImpl.java @@ -138,7 +138,7 @@ public class StExpireRecordServiceImpl extends BaseServiceImpl stockList, BladeUser user) { + public void createPendingOutRecord(StOtherOutRecord stOtherOutRecord, List stockList, BladeUser user, Long rrId) { // 1. 设置默认审批状态:待审批 // 2. 补充审计字段 @@ -72,6 +76,12 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl Date: Wed, 29 Apr 2026 17:01:16 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=AE=A1=E7=90=86-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/service/impl/YieldOrderServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 20371023..0e3b0565 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -46,7 +46,6 @@ import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.pojo.enums.MoldDemandEnum; import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.pojo.vo.LineMemoVo; -import org.springblade.desk.order.pojo.vo.YieldOrderVo; import org.springblade.desk.order.service.IPlateGoodsRecordService; import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderService; @@ -1253,7 +1252,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl list = yieldOrderCraftService.list(Wrappers.lambdaQuery().eq(YieldOrderCraft::getYoId,yieldOrder.getId())); + List list = yieldOrderCraftService.list(Wrappers.lambdaQuery().eq(YieldOrderCraft::getYoId,yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo)); list.stream().forEach(craft -> { if(craft.getWorkCenterId() != null){ WorkCenter workCenter = workCenterService.getById(craft.getWorkCenterId()); From aac86fd8f54f2b79de0d95bcd77c14f11d62a87f Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Wed, 29 Apr 2026 17:09:38 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E6=A0=87=E5=87=86?= =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/OemStandardProcessEntity.java | 53 +++++++ .../pojo/excel/OemStandardProcessExcel.java | 47 ++++++ .../oem/pojo/vo/OemStandardProcessVO.java | 38 +++++ .../OemStandardProcessController.java | 146 ++++++++++++++++++ .../oem/mapper/OemStandardProcessMapper.java | 27 ++++ .../oem/mapper/OemStandardProcessMapper.xml | 63 ++++++++ .../service/IOemStandardProcessService.java | 25 +++ .../impl/OemStandardProcessServiceImpl.java | 25 +++ 8 files changed, 424 insertions(+) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java new file mode 100644 index 00000000..57117a6b --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java @@ -0,0 +1,53 @@ +package org.springblade.desk.oem.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 外协标准工序代码 实体类 + * + * @author maxg + * @since 2026-04-29 + */ +@Data +@TableName("MES_OEM_STANDARD_PROCESS") +@Schema(description = "OemStandardProcess对象") +@EqualsAndHashCode(callSuper = true) +public class OemStandardProcessEntity extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + @Schema(description = "工序ID") + private Long processId; + /** + * 镀种 + */ + @Schema(description = "镀种") + private String plate; + /** + * 镀层厚度 + */ + @Schema(description = "镀层厚度") + private String plateThickness; + /** + * 零件名称 + */ + @Schema(description = "零件名称") + private String partName; + /** + * 标准工序代码 + */ + @Schema(description = "标准工序代码") + private String standardProcessCode; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java new file mode 100644 index 00000000..7c6b62d4 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java @@ -0,0 +1,47 @@ +package org.springblade.desk.oem.pojo.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 外协标准工序代码模板导入 + * + * @author maxg + * @since 2026-04-29 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OemStandardProcessExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty("工序") + private String processName; + + @ColumnWidth(20) + @ExcelProperty("镀种") + private String plate; + + @ColumnWidth(20) + @ExcelProperty("镀层厚度") + private String plateThickness; + + @ColumnWidth(20) + @ExcelProperty("零件名称") + private String partName; + + @ColumnWidth(20) + @ExcelProperty("标准工序代码") + private String standardProcessCode; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java new file mode 100644 index 00000000..1638eb4f --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java @@ -0,0 +1,38 @@ +package org.springblade.desk.oem.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; + +import java.io.Serial; + +/** + * 外协标准工序代码 视图实体类 + * + * @author maxg + * @since 2026-04-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OemStandardProcessVO extends OemStandardProcessEntity { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "工序名称") + private String processName; + + @Schema(description = "维护人") + private String updateUserName; + + /** + * 排序字段 + */ + private String orderByField; + /** + * true: 升序,false: 降序 + */ + private boolean isAsc; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java new file mode 100644 index 00000000..4fc5428e --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java @@ -0,0 +1,146 @@ +package org.springblade.desk.oem.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; +import org.springblade.desk.dashboard.service.IBsProcessSetService; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.excel.OemStandardProcessExcel; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; +import org.springblade.desk.oem.service.IOemStandardProcessService; +import org.springframework.beans.BeanUtils; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * 外协标准工序代码 控制器 + * + * @author maxg + * @since 2026-04-29 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/mesOemStandardProcess") +@Tag(name = "外协标准工序代码", description = "外协标准工序代码接口") +public class OemStandardProcessController { + + private final IOemStandardProcessService oemStandardProcessService; + + private final IBsProcessSetService bsProcessSetService; + + /** + * 外协标准工序代码 自定义分页 + */ + @GetMapping("/page") + @Operation(summary = "分页", description = "传入oemStandardProcess") + public R> page(OemStandardProcessVO oemStandardProcess, Query query) { + IPage pages = oemStandardProcessService.selectOemStandardProcessPage(Condition.getPage(query), oemStandardProcess); + return R.data(pages); + } + + /** + * 外协标准工序代码 新增或修改 + * + * @param oemStandardProcessList + * @return + */ + @PostMapping("/submit") + @Operation(summary = "新增或修改", description = "传入bsEfficiencyTempList") + public R submit(@Valid @RequestBody List oemStandardProcessList) { + for (OemStandardProcessEntity oemStandardProcessEntity : oemStandardProcessList) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper().eq(OemStandardProcessEntity::getProcessId, oemStandardProcessEntity.getProcessId()).eq(OemStandardProcessEntity::getPlate, oemStandardProcessEntity.getPlate()).eq(OemStandardProcessEntity::getPlateThickness, oemStandardProcessEntity.getPlateThickness()).eq(OemStandardProcessEntity::getPartName, oemStandardProcessEntity.getPartName()); + if (oemStandardProcessEntity.getId() != null) { + wrapper.ne(OemStandardProcessEntity::getId, oemStandardProcessEntity.getId()); + } + List list = oemStandardProcessService.list(wrapper); + if (!CollectionUtils.isEmpty(list)) { + return R.fail("数据已存在"); + } + } + return R.status(oemStandardProcessService.saveOrUpdateBatch(oemStandardProcessList)); + } + + /** + * 外协标准工序代码 删除 + */ + @PostMapping("/remove") + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(oemStandardProcessService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 外协标准工序代码 下载模板 + * @return + */ + @GetMapping("/download-excel-template") + @Operation(summary = "下载Excel模板", description = "") + public ResponseEntity downloadExcelTemplate() { + return ExcelExtUtil.downloadXlsTemplate("Excel/oem/标准工序代码.xls", "导入模版-标准工序代码.xls"); + } + + /** + * 外协标准工序代码 导入Excel + * @param file + * @return + */ + @PostMapping("/import-excel") + @Operation(summary = "导入Excel", description = "MultipartFile") + public R importExcel(@RequestParam("file") MultipartFile file) { + R checkR = ExcelExtUtil.importExcelCheck(file); + if (checkR != null) { + return checkR; + } + List importList = ExcelUtil.read(file, 0, 1, OemStandardProcessExcel.class); + Set uniqueSet = new HashSet<>(); + List entityList = new ArrayList<>(); + for (int i = 0; i < importList.size(); i++) { + int rowNum = i + 2; + OemStandardProcessExcel row = importList.get(i); + if (StringUtils.isEmpty(row.getProcessName())) { + return R.fail(rowNum + "行工序未填写"); + } + if(StringUtils.isEmpty(row.getStandardProcessCode())){ + return R.fail(rowNum + "行标准工序代码未填写"); + } + String uniqueStr = StringUtils.joinWith("|", row.getProcessName(), row.getPlate(), row.getPlateThickness(), row.getPartName()); + if (!uniqueSet.add(uniqueStr)) { + return R.fail(rowNum + "行在Excel中重复"); + } + BsProcessSetEntity processSet = bsProcessSetService.getOne(new LambdaQueryWrapper().eq(BsProcessSetEntity::getName, row.getProcessName())); + if (processSet == null) { + return R.fail(rowNum + "行错误,系统无此工序"); + } + OemStandardProcessEntity exist = oemStandardProcessService.getOne(new LambdaQueryWrapper().eq(OemStandardProcessEntity::getProcessId, processSet.getId()).eq(OemStandardProcessEntity::getPlate, row.getPlate()).eq(OemStandardProcessEntity::getPlateThickness, row.getPlateThickness()).eq(OemStandardProcessEntity::getPartName, row.getPartName())); + if (exist != null) { + return R.fail(rowNum + "行错误,数据已存在"); + } + OemStandardProcessEntity entity = new OemStandardProcessEntity(); + BeanUtils.copyProperties(row, entity); + entity.setProcessId(processSet.getId()); + entityList.add(entity); + } + return R.status(oemStandardProcessService.saveBatch(entityList)); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java new file mode 100644 index 00000000..6869939a --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java @@ -0,0 +1,27 @@ +package org.springblade.desk.oem.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskVO; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; + +import java.util.List; + +/** + * 外协标准工序代码 Mapper接口 + * + * @author maxg + * @since 2026-04-29 + */ +public interface OemStandardProcessMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param oemStandardProcess 查询参数 + * @return List + */ + List selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml new file mode 100644 index 00000000..4cdb8d80 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java new file mode 100644 index 00000000..680d55fa --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java @@ -0,0 +1,25 @@ +package org.springblade.desk.oem.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskParamVO; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; + +/** + * 外协标准工序代码 服务类 + * + * @author maxg + * @since 2026-04-29 + */ +public interface IOemStandardProcessService extends BaseService { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param oemStandardProcess 查询参数 + * @return IPage + */ + IPage selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java new file mode 100644 index 00000000..d5774b88 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java @@ -0,0 +1,25 @@ +package org.springblade.desk.oem.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.oem.mapper.OemStandardProcessMapper; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; +import org.springblade.desk.oem.service.IOemStandardProcessService; +import org.springframework.stereotype.Service; + +/** + * 外协标准工序代码 服务实现类 + * + * @author maxg + * @since 2026-04-29 + */ +@Service +public class OemStandardProcessServiceImpl extends BaseServiceImpl implements IOemStandardProcessService { + + @Override + public IPage selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess) { + return page.setRecords(baseMapper.selectOemStandardProcessPage(page, oemStandardProcess)); + } + +} From 80e89bdcefa63b2aecb1b9664370a27a4feec8c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Wed, 29 Apr 2026 09:24:14 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/desk/ehs/feign/IAcidMistTowerClient.java | 3 ++- .../springblade/desk/basic/feign/AcidMistTowerClientImpl.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/ehs/feign/IAcidMistTowerClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/ehs/feign/IAcidMistTowerClient.java index e378bea3..c365f32a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/ehs/feign/IAcidMistTowerClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/ehs/feign/IAcidMistTowerClient.java @@ -3,6 +3,7 @@ package org.springblade.desk.ehs.feign; import org.springblade.core.launch.constant.AppConstant; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; /** * 酸雾塔报警记录查询Feign客户端接口 @@ -16,5 +17,5 @@ public interface IAcidMistTowerClient { String RP_ACID_MIST_TOWER = API_PREFIX + "/rp-acid-mist-tower"; @GetMapping(RP_ACID_MIST_TOWER) - void rpAcidMistTower(String str); + void rpAcidMistTower(@RequestParam("str") String str); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/AcidMistTowerClientImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/AcidMistTowerClientImpl.java index d5d125b1..c51ec6d7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/AcidMistTowerClientImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/AcidMistTowerClientImpl.java @@ -5,6 +5,7 @@ import jakarta.annotation.Resource; import org.springblade.desk.ehs.feign.IAcidMistTowerClient; import org.springblade.desk.energy.util.HttpRequestService; import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -21,6 +22,7 @@ public class AcidMistTowerClientImpl implements IAcidMistTowerClient { private String deviceId; @Override + @GetMapping(RP_ACID_MIST_TOWER) public void rpAcidMistTower(String str) { httpRequestService.getWasteWaterAndGas(deviceId, true, str); } From fd279466998032f35209e131b06d784519ef8f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Wed, 29 Apr 2026 09:32:28 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasicClazzController.java | 4 + .../basic/controller/BatConfigController.java | 2 + .../basic/controller/BsAssignController.java | 5 +- .../controller/CraftAbilityController.java | 6 +- .../LocallyPlatedPartController.java | 7 +- .../desk/basic/controller/OemController.java | 2 + .../basic/controller/PlatingController.java | 26 ++++-- .../basic/controller/TeamSetController.java | 8 +- .../controller/WorkCenterController.java | 13 +-- .../basic/controller/WorkTankController.java | 68 ++++++++++++++- .../desk/basic/util/QueryUtils.java | 86 +++++++++++++++++++ .../mapper/EpciuPatrolInspectionMapper.xml | 10 ++- .../desk/energy/mapper/InsTestMapper.xml | 5 +- .../desk/energy/mapper/TowerReportMapper.xml | 10 +-- .../controller/QualityGradeController.java | 50 ++++++++++- 15 files changed, 260 insertions(+), 42 deletions(-) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java index 2eee8bb1..344a7c87 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java @@ -37,6 +37,7 @@ import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.vo.BasicClazzVO; import org.springblade.desk.basic.service.IBasicClazzService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.BasicClazzWrapper; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; @@ -115,6 +116,9 @@ public class BasicClazzController extends BladeController { @ApiOperationSupport(order = 21) @Operation(summary = "page分页", description = "传入BasicClazz Obj") public R> page(BasicClazzVO basicClazz, Query query) { + // 处理排序字段转换:将前端虚拟字段转换为实际数据库字段(如 MEMO -> CREATE_TIME) + QueryUtils.convertSortField(query); + IPage pagesVO = service.selectBasicClazzPage( Condition.getPage(query), basicClazz ); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java index 4fce8693..8fc055fe 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java @@ -31,6 +31,7 @@ import org.springblade.desk.basic.pojo.entity.BatConfig; import org.springblade.desk.basic.pojo.vo.BatConfigVO; import org.springblade.desk.basic.service.IBatConfigService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.BatConfigWrapper; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -99,6 +100,7 @@ public class BatConfigController extends BladeController { @ApiOperationSupport(order = 21) @Operation(summary = "page分页", description = "传入BatConfig Obj") public R> page(BatConfigVO batConfig, Query query) { + QueryUtils.convertSortField( query); IPage pagesVO = service.selectBatConfigPage( Condition.getPage(query), batConfig ); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java index c7fcc3e1..0552d3c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java @@ -57,6 +57,7 @@ import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.BsAssignWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.system.cache.DictCache; @@ -123,9 +124,7 @@ public class BsAssignController extends BladeController { @ApiOperationSupport(order = 3) @Operation(summary = "分页", description = "传入bsAssign") public R> page(BsAssignVO bsAssign, Query query) { - query.setDescs(null); - query.setAscs(null); - + QueryUtils.convertSortField(query); IPage pages = bsAssignService.selectBsAssignPage(Condition.getPage(query), bsAssign); List list = pages.getRecords(); for(BsAssignVO vo:list){ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java index a4da8226..a25fd4cb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java @@ -50,6 +50,7 @@ import org.springblade.desk.basic.excel.CraftAbilityExcel; import org.springblade.desk.basic.pojo.vo.CraftAbilityVO; import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.CraftAbilityWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; @@ -121,10 +122,7 @@ public class CraftAbilityController extends BladeController { @ApiOperationSupport(order = 2) @Operation(summary = "分页", description = "传入CraftAbility") public R> list(@Parameter(hidden = true) @RequestParam Map craftAbility, Query query) { - craftAbility.remove("descs"); - craftAbility.remove("ascs"); - query.setDescs(null); - query.setAscs(null); + QueryUtils.convertSortField(query); Date startTime = null; Date endTime = null; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java index c31a69aa..0ff38343 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java @@ -84,12 +84,9 @@ public class LocallyPlatedPartController extends BladeController { @Operation(summary = "list分页", description = "传入LocallyPlatedPart Obj") public R> list(@Parameter(hidden = true) @RequestParam Map locallyPlatedPart, Query query) { - locallyPlatedPart.remove("descs"); - locallyPlatedPart.remove("ascs"); - query.setDescs(null); - query.setAscs(null); + QueryWrapper qw = Condition.getQueryWrapper(locallyPlatedPart, LocallyPlatedPart.class); - qw.last("ORDER BY UPDATE_TIME DESC "); + IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LocallyPlatedPartWrapper.build().pageVO(pages); pagesVO.getRecords() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java index ae1e97e8..95f6b4dd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java @@ -37,6 +37,7 @@ import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.IOemCraftAbilityService; import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.OemWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.system.feign.IUserClient; @@ -210,6 +211,7 @@ public class OemController extends BladeController { @Operation(summary = "list分页", description = "传入Oem Obj") public R> list(@Parameter(hidden = true) @RequestParam Map map, Query query) { + QueryUtils.convertSortField(query); // build QueryWrapper QueryWrapper qw = Condition.getQueryWrapper(map, Oem.class); qw.eq(map.containsKey(Oem.COL_CODE), Oem.COL_CODE, (Func.toStr(map.get(OemSearch.COL_CODE)))); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java index 7c25a48b..054867d1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java @@ -3,6 +3,8 @@ */ package org.springblade.desk.basic.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -45,10 +47,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -97,17 +96,26 @@ public class PlatingController extends BladeController { @Operation(summary = "list分页", description = "传入Plating Obj") public R> list(@Parameter(hidden = true) @RequestParam Map plating, Query query) { - QueryWrapper qw = Condition.getQueryWrapper(plating, Plating.class); - qw.like(plating.containsKey("configNo"), Plating.COL_CONFIG_NO, Func.toStr(plating.get("configNo"))); - qw.eq(plating.containsKey("bcId"), Plating.COL_BC_ID, Func.toInt(plating.get("bcId"))); - qw.like(plating.containsKey("plating"), Plating.COL_PLATING, Func.toStr(plating.get("plating"))); + String configNo = Func.toStr(plating.getOrDefault("configNo", null)); + Object bcId = plating.getOrDefault("bcId", null); + String platingStr = Func.toStr(plating.getOrDefault("plating", null)); + plating.remove("configNo"); + plating.remove("plating"); + plating.remove("bcId"); + QueryWrapper qw = Condition.getQueryWrapper(plating,Plating.class); + qw.like(StrUtil.isNotEmpty(configNo), Plating.COL_CONFIG_NO, configNo); + qw.eq(Objects.nonNull(bcId), Plating.COL_BC_ID, Func.toLong(bcId)); + qw.like(StrUtil.isNotEmpty(platingStr), Plating.COL_PLATING, platingStr); + - qw.orderByAsc(BaseCol.ID); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = PlatingWrapper.build().pageVO(pages); //bcId //镀种ID , 镀种名称 Set bcIds = pagesVO.getRecords().stream().map(PlatingVO::getBcId).collect(Collectors.toSet()); + if (CollUtil.isEmpty(bcIds)){ + return R.data(pagesVO); + } Map bcIdAndName = basicClazzService .listByIds(bcIds) .stream() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java index e3e85705..00fe6598 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java @@ -247,10 +247,10 @@ public class TeamSetController extends BladeController { @Operation(summary = "list分页", description = "传入TeamSet Obj") public R> list(@Parameter(hidden = true) @RequestParam Map map, Query query) { - map.remove("descs"); - map.remove("ascs"); - query.setDescs(null); - query.setAscs(null); + //map.remove("descs"); + //map.remove("ascs"); + //query.setDescs(null); + //query.setAscs(null); // List ids = new ArrayList<>(); // if(map.containsKey("dispatcherRealName")){ // List users = iUserClient.userListByName(Func.toStr(map.get("dispatcherRealName"))); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java index 8cf29bd3..090da012 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java @@ -33,6 +33,7 @@ import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.vo.WorkCenterVO; import org.springblade.desk.basic.service.*; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.WorkCenterWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.system.feign.IUserClient; @@ -95,10 +96,10 @@ public class WorkCenterController extends BladeController { @Operation(summary = "list分页", description = "传入WorkCenter Obj") public R> list(@Parameter(hidden = true) @RequestParam Map workCenter, Query query) { - query.setDescs(null); - query.setAscs(null); - workCenter.remove("descs"); - workCenter.remove("ascs"); + //query.setDescs(null); + //query.setAscs(null); + //workCenter.remove("descs"); + //workCenter.remove("ascs"); QueryWrapper qw = Condition.getQueryWrapper(workCenter, WorkCenter.class); @@ -109,8 +110,8 @@ public class WorkCenterController extends BladeController { qw.eq(workCenter.containsKey("leaderUser"), WorkCenter.COL_LEADER_USER, Func.toLong(workCenter.get("leaderUser"))); qw.like(workCenter.containsKey("team"), WorkCenter.COL_TEAM, Func.toStr(workCenter.get("team"))); qw.like(workCenter.containsKey("teamId"), WorkCenter.COL_TEAM_ID, Func.toStr(workCenter.get("teamId"))); - - qw.last("ORDER BY UPDATE_TIME DESC "); + QueryUtils.convertSortField( query); + //qw.last("ORDER BY UPDATE_TIME DESC "); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = WorkCenterWrapper.build().pageVO(pages); List vos = pagesVO.getRecords(); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java index 827c9374..1cbd358d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java @@ -37,6 +37,7 @@ import org.springblade.desk.basic.pojo.vo.WorkTankVO; import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.service.IWorkTankService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.WorkTankWrapper; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; @@ -90,8 +91,14 @@ public class WorkTankController extends BladeController { @Operation(summary = "list分页", description = "传入WorkTank Obj") public R> list(@Parameter(hidden = true) @RequestParam Map workTank, Query query) { + // QueryWrapper qw = Condition.getQueryWrapper(workTank, WorkTank.class); - IPage pages = service.page(Condition.getPage(query), qw); + + QueryUtils.convertSortField(query); + + IPage page = Condition.getPage(query); + + IPage pages = service.page(page, qw); IPage pagesVO = WorkTankWrapper.build().pageVO(pages); List listVO = pagesVO.getRecords(); for(WorkTankVO one : listVO){ @@ -123,6 +130,9 @@ public class WorkTankController extends BladeController { @ApiOperationSupport(order = 21) @Operation(summary = "page分页", description = "传入WorkTank Obj") public R> page(WorkTankVO workTank, Query query) { + // 处理排序字段转换:将前端传来的虚拟字段转换为实际数据库字段 + convertSortField(query); + IPage pagesVO = service.selectWorkTankPage( Condition.getPage(query), workTank ); @@ -309,4 +319,60 @@ public class WorkTankController extends BladeController { }); return R.data(service.saveBatch(noticeList)); } + + /** + * 转换排序字段:将前端虚拟字段名转换为数据库实际字段名 + * 例如:OP_USER_REAL_NAME -> UPDATE_TIME + */ + private void convertSortField(Query query) { + if (query == null) { + return; + } + + // 处理降序排序字段 + if (Func.isNotEmpty(query.getDescs())) { + String descs = query.getDescs(); + descs = convertSingleSortField(descs); + query.setDescs(descs); + } + + // 处理升序排序字段 + if (Func.isNotEmpty(query.getAscs())) { + String ascs = query.getAscs(); + ascs = convertSingleSortField(ascs); + query.setAscs(ascs); + } + } + + /** + * 转换单个排序字段 + * @param sortField 排序字段字符串(可能包含多个字段,逗号分隔) + * @return 转换后的排序字段 + */ + private String convertSingleSortField(String sortField) { + if (Func.isEmpty(sortField)) { + return sortField; + } + + // 定义字段映射关系:前端字段名 -> 数据库字段名 + String[] fields = sortField.split(","); + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < fields.length; i++) { + String field = fields[i].trim(); + String convertedField = switch (field.toUpperCase()) { + case "OP_USER_REAL_NAME" -> "UPDATE_TIME"; // 操作人姓名转换为更新时间排序 + // 可以在此添加更多字段映射 + // case "OTHER_FIELD" -> "ACTUAL_COLUMN"; + default -> field; // 其他字段保持不变 + }; + + result.append(convertedField); + if (i < fields.length - 1) { + result.append(","); + } + } + + return result.toString(); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java new file mode 100644 index 00000000..ccfd1ae6 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java @@ -0,0 +1,86 @@ +package org.springblade.desk.basic.util;/** + * @date : 2026/4/28 13:27 + */ + +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.controller.BatConfigController; + +/** + * 文件名称 + * @module 归属项目 + * @author *** + * @date 2025/11/26 10:27 + */ +public class QueryUtils { + /** + * 转换排序字段:将前端虚拟字段名转换为数据库实际字段名 + * 例如:OP_USER_REAL_NAME -> UPDATE_TIME + */ + public static void convertSortField(Query query) { + if (query == null) { + return; + } + + // 处理降序排序字段 + if (Func.isNotEmpty(query.getDescs())) { + String descs = query.getDescs(); + descs = convertSingleSortField(descs); + query.setDescs(descs); + } + + // 处理升序排序字段 + if (Func.isNotEmpty(query.getAscs())) { + String ascs = query.getAscs(); + ascs = convertSingleSortField(ascs); + query.setAscs(ascs); + } + } + + /** + * 转换单个排序字段 + * @param sortField 排序字段字符串(可能包含多个字段,逗号分隔) + * @return 转换后的排序字段 + */ + public static String convertSingleSortField(String sortField) { + if (Func.isEmpty(sortField)) { + return sortField; + } + + // 定义字段映射关系:前端字段名 -> 数据库字段名 + String[] fields = sortField.split(","); + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < fields.length; i++) { + String field = fields[i].trim(); + String convertedField = switch (field.toUpperCase()) { + // 操作人姓名转换为更新时间排序 + case "OP_USER_REAL_NAME" -> "UPDATE_USER"; + /** + * {@link org.springblade.desk.basic.controller.OemController.list} + * */ + case "CUR_STATUS_TEXT" -> "status"; + /** + * {@link BatConfigController#page(org.springblade.desk.basic.pojo.vo.BatConfigVO, org.springblade.core.mp.support.Query)} + * */ + case "UPDATE_USER_NAME" -> "UPDATE_USER"; + /** + * {@link org.springblade.desk.basic.controller.WorkCenterController#list(java.util.Map, org.springblade.core.mp.support.Query)} + * */ + case "LEADER_USER_NAME" -> "LEADER_USER"; + /** + * {@link } + * */ + case "CREATE_USER_NAME" -> "CREATE_USER"; + default -> field; + }; + + result.append(convertedField); + if (i < fields.length - 1) { + result.append(","); + } + } + + return result.toString(); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml index dea5924a..6a57c857 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml @@ -8,9 +8,9 @@ - + - + @@ -27,7 +27,11 @@ - select * from BS_INS_TEST n + select n.ID, n.DEVICE, n.DOSING_TIME, n.DOSING_MAN, n.IT_NI, n.IT_CU, + n.IT_CR, n.IT_CN2, n.IT_PH, n.MEMO, n.CREATE_USER, n.CREATE_DEPT, + n.CREATE_TIME, n.UPDATE_USER, n.UPDATE_TIME, n.STATUS, n.IS_DELETED + from BS_INS_TEST n n.is_deleted = 0 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml index ca73b5f0..c028be95 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml @@ -23,7 +23,10 @@ + SELECT + splycode, + splyname, + province, + splyadd, + producttype, + splystat, + linkman, + email, + ctactqumd + FROM dba_mgr.V_MES_RB_SPLY@erp_mes_link + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSplyService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSplyService.java new file mode 100644 index 00000000..f41247e3 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbSplyService.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.service; + +import org.springblade.erpdata.pojo.dto.view.MesRbSply; + +import java.util.List; + +/** + * ERP供应商数据服务接口 + * + * @author BladeX + * @since 2026-04-29 + */ +public interface IErpMesRbSplyService { + + /** + * 从ERP视图获取所有供应商数据 + * + * @return 供应商列表 + */ + List getSplyListFromErp(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSplyServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSplyServiceImpl.java new file mode 100644 index 00000000..b10f7700 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbSplyServiceImpl.java @@ -0,0 +1,34 @@ +package org.springblade.erpdata.service.impl; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.erpdata.mapper.ErpMesRbSplyMapper; +import org.springblade.erpdata.pojo.dto.view.MesRbSply; +import org.springblade.erpdata.service.IErpMesRbSplyService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * ERP供应商数据服务实现类 + * + * @author BladeX + * @since 2026-04-29 + */ +@NonDS +@Slf4j +@Service +@AllArgsConstructor +public class ErpMesRbSplyServiceImpl implements IErpMesRbSplyService { + + private final ErpMesRbSplyMapper erpMesRbSplyMapper; + + @Override + public List getSplyListFromErp() { + log.info("开始从ERP视图 V_MES_RB_SPLY 获取供应商数据"); + List splyList = erpMesRbSplyMapper.getSplyListFromErp(); + log.info("从ERP获取到 {} 条供应商数据", splyList != null ? splyList.size() : 0); + return splyList; + } +} From 2223a0496621469ee57d8b1ae6b586b552d299ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Wed, 29 Apr 2026 17:31:34 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E5=90=8C=E6=AD=A5ERP=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oem/OemCustomerSyncProcessor.java | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemCustomerSyncProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemCustomerSyncProcessor.java index 12c82ccd..dd8ca920 100644 --- a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemCustomerSyncProcessor.java +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemCustomerSyncProcessor.java @@ -31,23 +31,13 @@ public class OemCustomerSyncProcessor implements BasicProcessor { log.info("========== 开始执行外协厂家管理数据同步定时任务 =========="); log.info("任务参数: {}", context.getJobParams()); - CompletableFuture runFuture = CompletableFuture.runAsync(() -> { - try { - oemCustomerTaskClient.syncCustomerFromErp(); - log.info("外协厂家管理数据同步成功"); - } catch (Exception e) { - log.error("外协厂家管理数据同步异常", e); - } - }); - - runFuture.whenComplete((result, exception) -> { - if (exception != null) { - log.error("========== 外协厂家管理数据同步定时任务执行失败 ==========", exception); - } else { - log.info("========== 外协厂家管理数据同步定时任务执行完毕 =========="); - } - }); - - return new ProcessResult(true); + try { + oemCustomerTaskClient.syncCustomerFromErp(); + log.info("========== 外协厂家管理数据同步定时任务执行成功 =========="); + return new ProcessResult(true, "同步成功"); + } catch (Exception e) { + log.error("========== 外协厂家管理数据同步定时任务执行失败 ==========", e); + throw new RuntimeException("外协厂家管理数据同步定时任务执行失败 :" + e.getMessage()); + } } } From 3dd592bea9ec2be6a19d8c0e7649201fd795d3eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Wed, 29 Apr 2026 19:59:30 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blade-service/blade-desk/pom.xml | 54 +++++++++---------- .../service/impl/PipelineServiceImpl.java | 29 ---------- .../impl/TaskExecuteRecordServiceImpl.java | 2 +- 3 files changed, 25 insertions(+), 60 deletions(-) diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index b2ec9998..1b9675c3 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -77,39 +77,39 @@ - - org.codehaus.groovy - groovy - 3.0.9 - + + + + + - - com.itextpdf - itext7-core - 7.1.16 - pom - - - com.lowagie - itext - 2.1.7 - - - org.springblade - blade-resource-api - + + + + + + + + + + + + + + + org.springblade blade-system-api - - org.springblade - blade-scheduling-api - + + + + @@ -145,12 +145,6 @@ com.qcloud cos_api - - - org.springblade - blade-auth - 4.6.0.RELEASE - diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/PipelineServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/PipelineServiceImpl.java index a43eeea1..138dd0d9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/PipelineServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/PipelineServiceImpl.java @@ -1,37 +1,8 @@ -/** - * BladeX Commercial License Agreement - * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. - *

- * Use of this software is governed by the Commercial License Agreement - * obtained after purchasing a license from BladeX. - *

- * 1. This software is for development use only under a valid license - * from BladeX. - *

- * 2. Redistribution of this software's source code to any third party - * without a commercial license is strictly prohibited. - *

- * 3. Licensees may copyright their own code but cannot use segments - * from this software for such purposes. Copyright of this software - * remains with BladeX. - *

- * Using this software signifies agreement to this License, and the software - * must not be used for illegal purposes. - *

- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is - * not liable for any claims arising from secondary or illegal development. - *

- * Author: Chill Zhuang (bladejava@qq.com) - */ package org.springblade.desk.logistics.service.impl; -import groovy.lang.Lazy; import lombok.extern.slf4j.Slf4j; import org.springblade.common.exception.BusinessException; -import org.springblade.core.tool.api.R; import org.springblade.desk.logistics.constant.AgvConstant; -import org.springblade.desk.logistics.pojo.dto.BoxBindingDto; import org.springblade.desk.logistics.pojo.entity.*; -import org.springblade.desk.logistics.pojo.vo.AgvSchedulingTaskVO; import org.springblade.desk.logistics.service.*; import org.springblade.desk.logistics.utils.AgvTaskTypeUtil; import org.springframework.beans.factory.annotation.Autowired; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java index c61fb2e4..f72c0319 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import groovy.lang.Lazy; import lombok.extern.slf4j.Slf4j; import org.redisson.executor.TasksService; import org.springblade.core.log.exception.ServiceException; @@ -21,6 +20,7 @@ import org.springblade.desk.logistics.pojo.vo.AgvSchedulingTaskVO; import org.springblade.desk.logistics.service.*; import org.springblade.desk.logistics.utils.AgvTaskTypeUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils;