diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionRecord.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionRecord.java index 6ee806d3..55a3aaff 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionRecord.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionRecord.java @@ -54,6 +54,10 @@ public class EqpEquipmentInspectionRecord extends BaseEntity { * 备注 */ private String remark; + /** + * 巡检照片URL,多个用英文逗号分隔 + */ + private String photo; /** * 删除标识 0正常 2删除 */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionRecordBo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionRecordBo.java index 7b447f2a..d7ca53a3 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionRecordBo.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionRecordBo.java @@ -59,5 +59,10 @@ public class EqpEquipmentInspectionRecordBo extends BaseEntity { */ private String remark; + /** + * 巡检照片URL,多个用英文逗号分隔 + */ + private String photo; + } diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionRecordVo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionRecordVo.java index ef7b09de..07cf066d 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionRecordVo.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionRecordVo.java @@ -69,5 +69,10 @@ public class EqpEquipmentInspectionRecordVo { @ExcelProperty(value = "备注") private String remark; + /** + * 巡检照片URL,多个用英文逗号分隔 + */ + private String photo; + } diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionRecordServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionRecordServiceImpl.java index 00ad8094..4fd4bd25 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionRecordServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionRecordServiceImpl.java @@ -62,6 +62,7 @@ public class EqpEquipmentInspectionRecordServiceImpl implements IEqpEquipmentIns Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getCheckId() != null, EqpEquipmentInspectionRecord::getCheckId, bo.getCheckId()); + lqw.eq(StringUtils.isNotBlank(bo.getPhoto()), EqpEquipmentInspectionRecord::getPhoto, bo.getPhoto()); lqw.eq(bo.getShift() != null, EqpEquipmentInspectionRecord::getShift, bo.getShift()); lqw.eq(bo.getInspectTime() != null, EqpEquipmentInspectionRecord::getInspectTime, bo.getInspectTime()); lqw.eq(bo.getRunStatus() != null, EqpEquipmentInspectionRecord::getRunStatus, bo.getRunStatus()); diff --git a/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionRecordMapper.xml b/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionRecordMapper.xml index a7714b48..1f5c97ad 100644 --- a/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionRecordMapper.xml +++ b/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionRecordMapper.xml @@ -13,6 +13,7 @@ + diff --git a/klp-wms/src/main/java/com/klp/controller/WmsAttendanceScheduleController.java b/klp-wms/src/main/java/com/klp/controller/WmsAttendanceScheduleController.java index 3963152c..271855c8 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsAttendanceScheduleController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsAttendanceScheduleController.java @@ -20,6 +20,7 @@ import com.klp.common.utils.poi.ExcelUtil; import com.klp.domain.vo.WmsAttendanceScheduleVo; import com.klp.domain.bo.WmsAttendanceScheduleBo; import com.klp.domain.bo.GenerateScheduleBo; +import com.klp.domain.bo.BatchUpdateScheduleBo; import com.klp.service.IWmsAttendanceScheduleService; import com.klp.common.core.page.TableDataInfo; @@ -107,4 +108,15 @@ public class WmsAttendanceScheduleController extends BaseController { iWmsAttendanceScheduleService.generateSchedule(boList); return R.ok(); } + + /** + * 批量修改指定日期多个员工的班次 + */ + @Log(title = "排班批量修改", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/batchUpdate") + public R batchUpdateSchedule(@Validated @RequestBody BatchUpdateScheduleBo bo) { + iWmsAttendanceScheduleService.batchUpdateSchedule(bo); + return R.ok(); + } } diff --git a/klp-wms/src/main/java/com/klp/controller/WmsReportConfigController.java b/klp-wms/src/main/java/com/klp/controller/WmsReportConfigController.java new file mode 100644 index 00000000..d348bfc7 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsReportConfigController.java @@ -0,0 +1,99 @@ +package com.klp.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.domain.vo.WmsReportConfigVo; +import com.klp.domain.bo.WmsReportConfigBo; +import com.klp.service.IWmsReportConfigService; +import com.klp.common.core.page.TableDataInfo; + +/** + * WMS报通用配置 + * + * @author klp + * @date 2026-05-25 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wms/reportConfig") +public class WmsReportConfigController extends BaseController { + + private final IWmsReportConfigService iWmsReportConfigService; + + /** + * 查询WMS报通用配置列表 + */ + @GetMapping("/list") + public TableDataInfo list(WmsReportConfigBo bo, PageQuery pageQuery) { + return iWmsReportConfigService.queryPageList(bo, pageQuery); + } + + /** + * 导出WMS报通用配置列表 + */ + @Log(title = "WMS报通用配置", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsReportConfigBo bo, HttpServletResponse response) { + List list = iWmsReportConfigService.queryList(bo); + ExcelUtil.exportExcel(list, "WMS报通用配置", WmsReportConfigVo.class, response); + } + + /** + * 获取WMS报通用配置详细信息 + * + * @param configId 主键 + */ + @GetMapping("/{configId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long configId) { + return R.ok(iWmsReportConfigService.queryById(configId)); + } + + /** + * 新增WMS报通用配置 + */ + @Log(title = "WMS报通用配置", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsReportConfigBo bo) { + return toAjax(iWmsReportConfigService.insertByBo(bo)); + } + + /** + * 修改WMS报通用配置 + */ + @Log(title = "WMS报通用配置", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsReportConfigBo bo) { + return toAjax(iWmsReportConfigService.updateByBo(bo)); + } + + /** + * 删除WMS报通用配置 + * + * @param configIds 主键串 + */ + @Log(title = "WMS报通用配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{configIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] configIds) { + return toAjax(iWmsReportConfigService.deleteWithValidByIds(Arrays.asList(configIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsReportConfig.java b/klp-wms/src/main/java/com/klp/domain/WmsReportConfig.java new file mode 100644 index 00000000..1241a96e --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsReportConfig.java @@ -0,0 +1,49 @@ +package com.klp.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * WMS报通用配置对象 wms_report_config + * + * @author klp + * @date 2026-05-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_report_config") +public class WmsReportConfig extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "config_id") + private Long configId; + /** + * 报表唯一编码(如:attendance_report、coil_report) + */ + private String reportCode; + /** + * 报表名称 + */ + private String reportName; + /** + * 报表配置JSON(列配置、查询条件、样式、权限等) + */ + private String configJson; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0正常 2删除 + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/BatchUpdateScheduleBo.java b/klp-wms/src/main/java/com/klp/domain/bo/BatchUpdateScheduleBo.java new file mode 100644 index 00000000..ee33da88 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/BatchUpdateScheduleBo.java @@ -0,0 +1,27 @@ +package com.klp.domain.bo; + +import lombok.Data; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +@Data +public class BatchUpdateScheduleBo { + + @NotEmpty(message = "员工ID列表不能为空") + private List userIds; + + @NotNull(message = "日期不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date workDate; + + @NotNull(message = "班次ID不能为空") + private Long shiftId; + + private String shiftName; +} diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsReportConfigBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsReportConfigBo.java new file mode 100644 index 00000000..a38e18d2 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsReportConfigBo.java @@ -0,0 +1,46 @@ +package com.klp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + + +/** + * WMS报通用配置业务对象 wms_report_config + * + * @author klp + * @date 2026-05-25 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class WmsReportConfigBo extends BaseEntity { + + /** + * 主键ID + */ + private Long configId; + + /** + * 报表唯一编码(如:attendance_report、coil_report) + */ + private String reportCode; + + /** + * 报表名称 + */ + private String reportName; + + /** + * 报表配置JSON(列配置、查询条件、样式、权限等) + */ + private String configJson; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsReportConfigVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsReportConfigVo.java new file mode 100644 index 00000000..176794e8 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsReportConfigVo.java @@ -0,0 +1,55 @@ +package com.klp.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * WMS报通用配置视图对象 wms_report_config + * + * @author klp + * @date 2026-05-25 + */ +@Data +@ExcelIgnoreUnannotated +public class WmsReportConfigVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long configId; + + /** + * 报表唯一编码(如:attendance_report、coil_report) + */ + @ExcelProperty(value = "报表唯一编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=:attendance_report、coil_report") + private String reportCode; + + /** + * 报表名称 + */ + @ExcelProperty(value = "报表名称") + private String reportName; + + /** + * 报表配置JSON(列配置、查询条件、样式、权限等) + */ + @ExcelProperty(value = "报表配置JSON", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "列=配置、查询条件、样式、权限等") + private String configJson; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsReportConfigMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsReportConfigMapper.java new file mode 100644 index 00000000..ecf8dc88 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsReportConfigMapper.java @@ -0,0 +1,15 @@ +package com.klp.mapper; + +import com.klp.domain.WmsReportConfig; +import com.klp.domain.vo.WmsReportConfigVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * WMS报通用配置Mapper接口 + * + * @author klp + * @date 2026-05-25 + */ +public interface WmsReportConfigMapper extends BaseMapperPlus { + +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsAttendanceScheduleService.java b/klp-wms/src/main/java/com/klp/service/IWmsAttendanceScheduleService.java index 8483d9f7..638215e2 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsAttendanceScheduleService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsAttendanceScheduleService.java @@ -4,6 +4,7 @@ import com.klp.domain.WmsAttendanceSchedule; import com.klp.domain.vo.WmsAttendanceScheduleVo; import com.klp.domain.bo.WmsAttendanceScheduleBo; import com.klp.domain.bo.GenerateScheduleBo; +import com.klp.domain.bo.BatchUpdateScheduleBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -52,4 +53,9 @@ public interface IWmsAttendanceScheduleService { * 生成排班 */ void generateSchedule(List boList); + + /** + * 批量修改指定日期多个员工的班次 + */ + void batchUpdateSchedule(BatchUpdateScheduleBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsReportConfigService.java b/klp-wms/src/main/java/com/klp/service/IWmsReportConfigService.java new file mode 100644 index 00000000..cd208eac --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsReportConfigService.java @@ -0,0 +1,49 @@ +package com.klp.service; + +import com.klp.domain.WmsReportConfig; +import com.klp.domain.vo.WmsReportConfigVo; +import com.klp.domain.bo.WmsReportConfigBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * WMS报通用配置Service接口 + * + * @author klp + * @date 2026-05-25 + */ +public interface IWmsReportConfigService { + + /** + * 查询WMS报通用配置 + */ + WmsReportConfigVo queryById(Long configId); + + /** + * 查询WMS报通用配置列表 + */ + TableDataInfo queryPageList(WmsReportConfigBo bo, PageQuery pageQuery); + + /** + * 查询WMS报通用配置列表 + */ + List queryList(WmsReportConfigBo bo); + + /** + * 新增WMS报通用配置 + */ + Boolean insertByBo(WmsReportConfigBo bo); + + /** + * 修改WMS报通用配置 + */ + Boolean updateByBo(WmsReportConfigBo bo); + + /** + * 校验并批量删除WMS报通用配置信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java index 9d2a2b7e..d9848854 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.klp.domain.bo.WmsAttendanceScheduleBo; import com.klp.domain.bo.GenerateScheduleBo; +import com.klp.domain.bo.BatchUpdateScheduleBo; import com.klp.domain.vo.WmsAttendanceScheduleVo; import com.klp.domain.WmsAttendanceSchedule; import com.klp.domain.WmsAttendanceShiftRule; @@ -149,6 +150,48 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS } } + /** + * 批量修改指定日期多个员工的班次 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void batchUpdateSchedule(BatchUpdateScheduleBo bo) { + Date workDate = bo.getWorkDate(); + Long shiftId = bo.getShiftId(); + String shiftName = bo.getShiftName(); + List userIds = bo.getUserIds(); + + baseMapper.update(null, Wrappers.lambdaUpdate() + .in(WmsAttendanceSchedule::getUserId, userIds) + .eq(WmsAttendanceSchedule::getWorkDate, workDate) + .set(WmsAttendanceSchedule::getShiftId, shiftId) + .set(WmsAttendanceSchedule::getShiftName, shiftName)); + + Set existingUserIds = baseMapper.selectList(Wrappers.lambdaQuery() + .in(WmsAttendanceSchedule::getUserId, userIds) + .eq(WmsAttendanceSchedule::getWorkDate, workDate) + .select(WmsAttendanceSchedule::getUserId)) + .stream() + .map(WmsAttendanceSchedule::getUserId) + .collect(Collectors.toSet()); + + List insertList = userIds.stream() + .filter(uid -> !existingUserIds.contains(uid)) + .map(uid -> { + WmsAttendanceSchedule s = new WmsAttendanceSchedule(); + s.setUserId(uid); + s.setWorkDate(workDate); + s.setShiftId(shiftId); + s.setShiftName(shiftName); + return s; + }) + .collect(Collectors.toList()); + + if (!insertList.isEmpty()) { + baseMapper.insertBatch(insertList); + } + } + /** * 生成正常排班 */ @@ -186,20 +229,28 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS /** * 生成倒班排班 + * 根据用户选择的倒班规则和起始日期,生成指定日期范围内的倒班排班表 + * + * @param bo 生成排班业务对象,包含用户ID、规则ID、起始班次等信息 + * @param startDate 排班开始日期 + * @param endDate 排班结束日期 */ private void generateShiftSchedule(GenerateScheduleBo bo, LocalDate startDate, LocalDate endDate) { // 获取倒班规则 + // 通过规则ID查询倒班规则信息 WmsAttendanceShiftRuleVo rule = shiftRuleService.queryById(bo.getRuleId()); if (rule == null) { throw new RuntimeException("倒班规则不存在"); } // 验证班次匹配 + // 检查用户选择的班次是否与规则中的班次匹配 if (!bo.getShiftId().equals(rule.getShiftA()) && !bo.getShiftId().equals(rule.getShiftB())) { throw new RuntimeException("班次ID与倒班规则不匹配"); } // 获取班次信息 + // 查询规则中定义的所有班次信息,包括常规班次和特殊交接班次 WmsAttendanceShiftVo shiftA = shiftService.queryById(rule.getShiftA()); WmsAttendanceShiftVo shiftB = shiftService.queryById(rule.getShiftB()); WmsAttendanceShiftVo changeShiftB = rule.getChangeShiftBId() != null ? @@ -212,26 +263,31 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS } // 一次查询整个日期范围内已存在的排班 + // 查询用户在指定日期范围内已有的排班日期,避免重复生成 Set existingDates = getExistingScheduleDates(bo.getUserId(), startDate, endDate); List schedules = new ArrayList<>(); LocalDate currentDate = startDate; - long daysFromStart = 0; - - // 确定初始班次 boolean isCurrentShiftA = bo.getShiftId().equals(rule.getShiftA()); - long cycleDays = rule.getCycleDays() != null ? rule.getCycleDays() : 10; + boolean firstDay = true; while (!currentDate.isAfter(endDate)) { + int dayOfMonth = currentDate.getDayOfMonth(); + + // 判断是否为交接班日(每月1日、11日、21日) + boolean isSwapDay = !firstDay + && (dayOfMonth == 1 || dayOfMonth == 11 || dayOfMonth == 21) + && dayOfMonth != 31; + if (!existingDates.contains(currentDate)) { WmsAttendanceSchedule schedule = new WmsAttendanceSchedule(); schedule.setUserId(bo.getUserId()); schedule.setWorkDate(java.sql.Date.valueOf(currentDate)); - boolean isChangeDay = daysFromStart > 0 && daysFromStart % cycleDays == 0; - - if (isChangeDay) { + // 处理交接班日 + if (isSwapDay) { if (isCurrentShiftA) { + // 白班转夜班 if (changeShiftB != null) { schedule.setShiftId(rule.getChangeShiftBId()); schedule.setShiftName(changeShiftB.getShiftName()); @@ -239,7 +295,6 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS schedule.setShiftId(rule.getShiftB()); schedule.setShiftName(shiftB.getShiftName()); } - isCurrentShiftA = false; } else { // 夜班转白班 if (changeShiftA != null) { @@ -249,8 +304,9 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS schedule.setShiftId(rule.getShiftA()); schedule.setShiftName(shiftA.getShiftName()); } - isCurrentShiftA = true; } + // 切换班次标识 + isCurrentShiftA = !isCurrentShiftA; } else { // 普通日 if (isCurrentShiftA) { @@ -265,13 +321,12 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS schedules.add(schedule); } currentDate = currentDate.plusDays(1); - daysFromStart++; + firstDay = false; } - // 批量插入 if (!schedules.isEmpty()) { - boolean i = baseMapper.insertBatch(schedules); - if (!i) { + boolean ok = baseMapper.insertBatch(schedules); + if (!ok) { throw new RuntimeException("批量插入倒班排班失败"); } } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsReportConfigServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsReportConfigServiceImpl.java new file mode 100644 index 00000000..e55b9c9e --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsReportConfigServiceImpl.java @@ -0,0 +1,112 @@ +package com.klp.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.domain.bo.WmsReportConfigBo; +import com.klp.domain.vo.WmsReportConfigVo; +import com.klp.domain.WmsReportConfig; +import com.klp.mapper.WmsReportConfigMapper; +import com.klp.service.IWmsReportConfigService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * WMS报通用配置Service业务层处理 + * + * @author klp + * @date 2026-05-25 + */ +@RequiredArgsConstructor +@Service +public class WmsReportConfigServiceImpl implements IWmsReportConfigService { + + private final WmsReportConfigMapper baseMapper; + + /** + * 查询WMS报通用配置 + */ + @Override + public WmsReportConfigVo queryById(Long configId){ + return baseMapper.selectVoById(configId); + } + + /** + * 查询WMS报通用配置列表 + */ + @Override + public TableDataInfo queryPageList(WmsReportConfigBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询WMS报通用配置列表 + */ + @Override + public List queryList(WmsReportConfigBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsReportConfigBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getReportCode()), WmsReportConfig::getReportCode, bo.getReportCode()); + lqw.like(StringUtils.isNotBlank(bo.getReportName()), WmsReportConfig::getReportName, bo.getReportName()); + lqw.like(StringUtils.isNotBlank(bo.getConfigJson()), WmsReportConfig::getConfigJson, bo.getConfigJson()); + lqw.eq(StringUtils.isNotBlank(bo.getRemark()), WmsReportConfig::getRemark, bo.getRemark()); + return lqw; + } + + /** + * 新增WMS报通用配置 + */ + @Override + public Boolean insertByBo(WmsReportConfigBo bo) { + WmsReportConfig add = BeanUtil.toBean(bo, WmsReportConfig.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setConfigId(add.getConfigId()); + } + return flag; + } + + /** + * 修改WMS报通用配置 + */ + @Override + public Boolean updateByBo(WmsReportConfigBo bo) { + WmsReportConfig update = BeanUtil.toBean(bo, WmsReportConfig.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsReportConfig entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除WMS报通用配置 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-wms/src/main/resources/mapper/klp/WmsReportConfigMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsReportConfigMapper.xml new file mode 100644 index 00000000..68c2bbc6 --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsReportConfigMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + +