diff --git a/klp-aps/src/main/java/com/klp/aps/controller/ApsPlanDetailController.java b/klp-aps/src/main/java/com/klp/aps/controller/ApsPlanDetailController.java index 0e5d0414..09d59ca3 100644 --- a/klp-aps/src/main/java/com/klp/aps/controller/ApsPlanDetailController.java +++ b/klp-aps/src/main/java/com/klp/aps/controller/ApsPlanDetailController.java @@ -76,6 +76,16 @@ public class ApsPlanDetailController extends BaseController { return toAjax(iApsPlanDetailService.insertByBo(bo)); } + /** + * 批量新增排产单明细 + */ + @Log(title = "排产单明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/batch") + public R batchAdd(@Validated(AddGroup.class) @RequestBody List boList) { + return toAjax(iApsPlanDetailService.insertBatchByBo(boList)); + } + /** * 修改排产单明细 */ diff --git a/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java b/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java index 3e90e266..ce8a4af9 100644 --- a/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java +++ b/klp-aps/src/main/java/com/klp/aps/domain/bo/ApsPlanDetailBo.java @@ -226,5 +226,9 @@ public class ApsPlanDetailBo extends BaseEntity { */ private String remark; + /** + * 排产日期(字符串格式,例如 '2025-12-29') + */ + private String detailDate; } diff --git a/klp-aps/src/main/java/com/klp/aps/domain/entity/ApsPlanDetail.java b/klp-aps/src/main/java/com/klp/aps/domain/entity/ApsPlanDetail.java index a1bd008a..f7629d74 100644 --- a/klp-aps/src/main/java/com/klp/aps/domain/entity/ApsPlanDetail.java +++ b/klp-aps/src/main/java/com/klp/aps/domain/entity/ApsPlanDetail.java @@ -184,6 +184,10 @@ public class ApsPlanDetail extends BaseEntity { * 备注 */ private String remark; + /** + * 排产日期(字符串格式,例如 '2025-12-29') + */ + private String detailDate; /** * 删除标记(0正常 1删除) */ diff --git a/klp-aps/src/main/java/com/klp/aps/domain/vo/ApsPlanDetailVo.java b/klp-aps/src/main/java/com/klp/aps/domain/vo/ApsPlanDetailVo.java index dac59bae..8855d2c8 100644 --- a/klp-aps/src/main/java/com/klp/aps/domain/vo/ApsPlanDetailVo.java +++ b/klp-aps/src/main/java/com/klp/aps/domain/vo/ApsPlanDetailVo.java @@ -261,6 +261,12 @@ public class ApsPlanDetailVo { @ExcelProperty(value = "备注") private String remark; + /** + * 排产日期(字符串格式,例如 '2025-12-29') + */ + @ExcelProperty(value = "排产日期") + private String detailDate; + /** * 技术附件 */ diff --git a/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java b/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java index 38c345f5..97f91606 100644 --- a/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java +++ b/klp-aps/src/main/java/com/klp/aps/service/IApsPlanDetailService.java @@ -43,6 +43,11 @@ public interface IApsPlanDetailService { */ Boolean insertByBo(ApsPlanDetailBo bo); + /** + * 批量新增排产单明细 + */ + Boolean insertBatchByBo(List boList); + /** * 修改排产单明细 */ diff --git a/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java b/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java index 11a8f84f..9525ef7d 100644 --- a/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java +++ b/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanDetailServiceImpl.java @@ -101,6 +101,7 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService { qw.eq(StringUtils.isNotBlank(bo.getSampleReq()), "d.sample_req", bo.getSampleReq()); qw.eq(bo.getStartTime() != null, "d.start_time", bo.getStartTime()); qw.eq(bo.getEndTime() != null, "d.end_time", bo.getEndTime()); + qw.eq(StringUtils.isNotBlank(bo.getDetailDate()), "d.detail_date", bo.getDetailDate()); //根据创建时间倒叙 qw.orderByDesc("d.create_time"); return qw; @@ -168,6 +169,7 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService { lqw.eq(StringUtils.isNotBlank(bo.getSampleReq()), ApsPlanDetail::getSampleReq, bo.getSampleReq()); lqw.eq(bo.getStartTime() != null, ApsPlanDetail::getStartTime, bo.getStartTime()); lqw.eq(bo.getEndTime() != null, ApsPlanDetail::getEndTime, bo.getEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getDetailDate()), ApsPlanDetail::getDetailDate, bo.getDetailDate()); return lqw; } @@ -185,6 +187,16 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService { return flag; } + /** + * 批量新增排产单明细 + */ + @Override + public Boolean insertBatchByBo(List boList) { + List list = BeanUtil.copyToList(boList, ApsPlanDetail.class); + list.forEach(this::validEntityBeforeSave); + return baseMapper.insertBatch(list); + } + /** * 修改排产单明细 */ diff --git a/klp-aps/src/main/resources/mapper/aps/ApsPlanDetailMapper.xml b/klp-aps/src/main/resources/mapper/aps/ApsPlanDetailMapper.xml index b5d6c2c4..5ac6b4ba 100644 --- a/klp-aps/src/main/resources/mapper/aps/ApsPlanDetailMapper.xml +++ b/klp-aps/src/main/resources/mapper/aps/ApsPlanDetailMapper.xml @@ -44,6 +44,7 @@ + diff --git a/klp-common/src/main/java/com/klp/common/utils/poi/ExcelUtil.java b/klp-common/src/main/java/com/klp/common/utils/poi/ExcelUtil.java index 06fc93c0..773abe33 100644 --- a/klp-common/src/main/java/com/klp/common/utils/poi/ExcelUtil.java +++ b/klp-common/src/main/java/com/klp/common/utils/poi/ExcelUtil.java @@ -29,6 +29,7 @@ import java.io.UnsupportedEncodingException; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Set; /** * Excel相关处理 @@ -149,6 +150,33 @@ public class ExcelUtil { builder.doWrite(list); } + /** + * 导出excel(仅导出指定列) + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param includeColumnFieldNames 需要导出的字段名集合(Java字段名,非Excel列名) + * @param response 响应体 + */ + public static void exportExcel(List list, String sheetName, Class clazz, + Set includeColumnFieldNames, + HttpServletResponse response) { + try { + resetResponse(sheetName, response); + ServletOutputStream os = response.getOutputStream(); + EasyExcel.write(os, clazz) + .autoCloseStream(false) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .registerConverter(new ExcelBigNumberConvert()) + .includeColumnFieldNames(includeColumnFieldNames) + .sheet(sheetName) + .doWrite(list); + } catch (IOException e) { + throw new RuntimeException("导出Excel异常"); + } + } + /** * 单表多数据模板导出 模板格式为 {.属性} * diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java b/klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java new file mode 100644 index 00000000..a432ca4c --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java @@ -0,0 +1,99 @@ +package com.klp.mes.eqp.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.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo; +import com.klp.mes.eqp.service.IEqpEquipmentInspectionApprovalService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 设备巡检审批(按产线+时间范围审批) + * + * @author klp + * @date 2026-05-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/eqp/equipmentInspectionApproval") +public class EqpEquipmentInspectionApprovalController extends BaseController { + + private final IEqpEquipmentInspectionApprovalService iEqpEquipmentInspectionApprovalService; + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + @GetMapping("/list") + public TableDataInfo list(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery) { + return iEqpEquipmentInspectionApprovalService.queryPageList(bo, pageQuery); + } + + /** + * 导出设备巡检审批(按产线+时间范围审批)列表 + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EqpEquipmentInspectionApprovalBo bo, HttpServletResponse response) { + List list = iEqpEquipmentInspectionApprovalService.queryList(bo); + ExcelUtil.exportExcel(list, "设备巡检审批(按产线+时间范围审批)", EqpEquipmentInspectionApprovalVo.class, response); + } + + /** + * 获取设备巡检审批(按产线+时间范围审批)详细信息 + * + * @param approvalId 主键 + */ + @GetMapping("/{approvalId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long approvalId) { + return R.ok(iEqpEquipmentInspectionApprovalService.queryById(approvalId)); + } + + /** + * 新增设备巡检审批(按产线+时间范围审批) + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody EqpEquipmentInspectionApprovalBo bo) { + return toAjax(iEqpEquipmentInspectionApprovalService.insertByBo(bo)); + } + + /** + * 修改设备巡检审批(按产线+时间范围审批) + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody EqpEquipmentInspectionApprovalBo bo) { + return toAjax(iEqpEquipmentInspectionApprovalService.updateByBo(bo)); + } + + /** + * 删除设备巡检审批(按产线+时间范围审批) + * + * @param approvalIds 主键串 + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.DELETE) + @DeleteMapping("/{approvalIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] approvalIds) { + return toAjax(iEqpEquipmentInspectionApprovalService.deleteWithValidByIds(Arrays.asList(approvalIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java new file mode 100644 index 00000000..6af2fa9d --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java @@ -0,0 +1,75 @@ +package com.klp.mes.eqp.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 设备巡检审批(按产线+时间范围审批)对象 eqp_equipment_inspection_approval + * + * @author klp + * @date 2026-05-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("eqp_equipment_inspection_approval") +public class EqpEquipmentInspectionApproval extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 审批ID 主键 + */ + @TableId(value = "approval_id") + private Long approvalId; + /** + * 产线ID(对应你刚改的bigint类型) + */ + private Long productionLine; + /** + * 巡检开始时间 + */ + private Date insStartTime; + /** + * 巡检结束时间 + */ + private Date insEndTime; + /** + * 申请人 + */ + private String applyUser; + /** + * 申请时间 + */ + private Date applyTime; + /** + * 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销 + */ + private Integer approvalStatus; + /** + * 审批人 + */ + private String approvalUser; + /** + * 审批时间 + */ + private Date approvalTime; + /** + * 审批意见 + */ + private String approvalOpinion; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0正常 2删除 + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java new file mode 100644 index 00000000..f7d52619 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java @@ -0,0 +1,78 @@ +package com.klp.mes.eqp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 设备巡检审批(按产线+时间范围审批)业务对象 eqp_equipment_inspection_approval + * + * @author klp + * @date 2026-05-29 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class EqpEquipmentInspectionApprovalBo extends BaseEntity { + + /** + * 审批ID 主键 + */ + private Long approvalId; + + /** + * 产线ID(对应你刚改的bigint类型) + */ + private Long productionLine; + + /** + * 巡检开始时间 + */ + private Date insStartTime; + + /** + * 巡检结束时间 + */ + private Date insEndTime; + + /** + * 申请人 + */ + private String applyUser; + + /** + * 申请时间 + */ + private Date applyTime; + + /** + * 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销 + */ + private Integer approvalStatus; + + /** + * 审批人 + */ + private String approvalUser; + + /** + * 审批时间 + */ + private Date approvalTime; + + /** + * 审批意见 + */ + private String approvalOpinion; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java new file mode 100644 index 00000000..c6233487 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java @@ -0,0 +1,92 @@ +package com.klp.mes.eqp.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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; + + +/** + * 设备巡检审批(按产线+时间范围审批)视图对象 eqp_equipment_inspection_approval + * + * @author klp + * @date 2026-05-29 + */ +@Data +@ExcelIgnoreUnannotated +public class EqpEquipmentInspectionApprovalVo { + + private static final long serialVersionUID = 1L; + + /** + * 审批ID 主键 + */ + @ExcelProperty(value = "审批ID 主键") + private Long approvalId; + + /** + * 产线ID(对应你刚改的bigint类型) + */ + @ExcelProperty(value = "产线ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "对=应你刚改的bigint类型") + private Long productionLine; + + /** + * 巡检开始时间 + */ + @ExcelProperty(value = "巡检开始时间") + private Date insStartTime; + + /** + * 巡检结束时间 + */ + @ExcelProperty(value = "巡检结束时间") + private Date insEndTime; + + /** + * 申请人 + */ + @ExcelProperty(value = "申请人") + private String applyUser; + + /** + * 申请时间 + */ + @ExcelProperty(value = "申请时间") + private Date applyTime; + + /** + * 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销 + */ + @ExcelProperty(value = "审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销") + private Integer approvalStatus; + + /** + * 审批人 + */ + @ExcelProperty(value = "审批人") + private String approvalUser; + + /** + * 审批时间 + */ + @ExcelProperty(value = "审批时间") + private Date approvalTime; + + /** + * 审批意见 + */ + @ExcelProperty(value = "审批意见") + private String approvalOpinion; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java b/klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java new file mode 100644 index 00000000..eafcae8b --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.eqp.mapper; + +import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 设备巡检审批(按产线+时间范围审批)Mapper接口 + * + * @author klp + * @date 2026-05-29 + */ +public interface EqpEquipmentInspectionApprovalMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java new file mode 100644 index 00000000..4c0d20d7 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java @@ -0,0 +1,49 @@ +package com.klp.mes.eqp.service; + +import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 设备巡检审批(按产线+时间范围审批)Service接口 + * + * @author klp + * @date 2026-05-29 + */ +public interface IEqpEquipmentInspectionApprovalService { + + /** + * 查询设备巡检审批(按产线+时间范围审批) + */ + EqpEquipmentInspectionApprovalVo queryById(Long approvalId); + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + TableDataInfo queryPageList(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery); + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + List queryList(EqpEquipmentInspectionApprovalBo bo); + + /** + * 新增设备巡检审批(按产线+时间范围审批) + */ + Boolean insertByBo(EqpEquipmentInspectionApprovalBo bo); + + /** + * 修改设备巡检审批(按产线+时间范围审批) + */ + Boolean updateByBo(EqpEquipmentInspectionApprovalBo bo); + + /** + * 校验并批量删除设备巡检审批(按产线+时间范围审批)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java new file mode 100644 index 00000000..7f9b1cdb --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java @@ -0,0 +1,125 @@ +package com.klp.mes.eqp.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.helper.LoginHelper; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval; +import com.klp.mes.eqp.mapper.EqpEquipmentInspectionApprovalMapper; +import com.klp.mes.eqp.service.IEqpEquipmentInspectionApprovalService; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 设备巡检审批(按产线+时间范围审批)Service业务层处理 + * + * @author klp + * @date 2026-05-29 + */ +@RequiredArgsConstructor +@Service +public class EqpEquipmentInspectionApprovalServiceImpl implements IEqpEquipmentInspectionApprovalService { + + private final EqpEquipmentInspectionApprovalMapper baseMapper; + + /** + * 查询设备巡检审批(按产线+时间范围审批) + */ + @Override + public EqpEquipmentInspectionApprovalVo queryById(Long approvalId){ + return baseMapper.selectVoById(approvalId); + } + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + @Override + public TableDataInfo queryPageList(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + @Override + public List queryList(EqpEquipmentInspectionApprovalBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(EqpEquipmentInspectionApprovalBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getProductionLine() != null, EqpEquipmentInspectionApproval::getProductionLine, bo.getProductionLine()); + lqw.eq(bo.getInsStartTime() != null, EqpEquipmentInspectionApproval::getInsStartTime, bo.getInsStartTime()); + lqw.eq(bo.getInsEndTime() != null, EqpEquipmentInspectionApproval::getInsEndTime, bo.getInsEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getApplyUser()), EqpEquipmentInspectionApproval::getApplyUser, bo.getApplyUser()); + lqw.eq(bo.getApplyTime() != null, EqpEquipmentInspectionApproval::getApplyTime, bo.getApplyTime()); + lqw.eq(bo.getApprovalStatus() != null, EqpEquipmentInspectionApproval::getApprovalStatus, bo.getApprovalStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getApprovalUser()), EqpEquipmentInspectionApproval::getApprovalUser, bo.getApprovalUser()); + lqw.eq(bo.getApprovalTime() != null, EqpEquipmentInspectionApproval::getApprovalTime, bo.getApprovalTime()); + lqw.eq(StringUtils.isNotBlank(bo.getApprovalOpinion()), EqpEquipmentInspectionApproval::getApprovalOpinion, bo.getApprovalOpinion()); + return lqw; + } + + /** + * 新增设备巡检审批(按产线+时间范围审批) + */ + @Override + public Boolean insertByBo(EqpEquipmentInspectionApprovalBo bo) { + EqpEquipmentInspectionApproval add = BeanUtil.toBean(bo, EqpEquipmentInspectionApproval.class); + add.setApplyUser(LoginHelper.getNickName()); + add.setApplyTime(new Date()); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setApprovalId(add.getApprovalId()); + } + return flag; + } + + /** + * 修改设备巡检审批(按产线+时间范围审批) + */ + @Override + public Boolean updateByBo(EqpEquipmentInspectionApprovalBo bo) { + EqpEquipmentInspectionApproval update = BeanUtil.toBean(bo, EqpEquipmentInspectionApproval.class); + if (bo.getApprovalStatus() != null && (bo.getApprovalStatus() == 2 || bo.getApprovalStatus() == 3)) { + update.setApprovalUser(LoginHelper.getNickName()); + update.setApprovalTime(new Date()); + } + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(EqpEquipmentInspectionApproval entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除设备巡检审批(按产线+时间范围审批) + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java index 27899a6d..7f7630b5 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java @@ -94,6 +94,10 @@ public class QcInspectionTask extends BaseEntity { * 附件路径(多个用英文逗号分隔) */ private String attachmentFiles; + /** + * 厂家卷号集合,多个使用英文逗号分隔 + */ + private String supplierCoilNos; /** * 删除标志(0=正常,1=已删除) diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java index c734383c..4af28c70 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java @@ -108,4 +108,9 @@ public class QcInspectionTaskBo extends BaseEntity { * 附件路径(多个用英文逗号分隔) */ private String attachmentFiles; + + /** + * 厂家卷号集合,多个使用英文逗号分隔 + */ + private String supplierCoilNos; } diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java index 1d6e2a14..425c4835 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java @@ -134,6 +134,11 @@ public class QcInspectionTaskVo { */ private String attachmentFiles; + /** + * 厂家卷号集合,多个使用英文逗号分隔 + */ + private String supplierCoilNos; + private List coilList; diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java index 71e0b94c..e003f47a 100644 --- a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java @@ -136,6 +136,7 @@ public class QcInspectionTaskServiceImpl implements IQcInspectionTaskService { lqw.eq(StringUtils.isNotBlank(bo.getResult()), QcInspectionTask::getResult, bo.getResult()); lqw.like(StringUtils.isNotBlank(bo.getCoilIds()), QcInspectionTask::getCoilIds, bo.getCoilIds()); lqw.like(StringUtils.isNotBlank(bo.getEnterCoilNos()), QcInspectionTask::getEnterCoilNos, bo.getEnterCoilNos()); + lqw.like(StringUtils.isNotBlank(bo.getSupplierCoilNos()), QcInspectionTask::getSupplierCoilNos, bo.getSupplierCoilNos()); return lqw; } diff --git a/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml b/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml new file mode 100644 index 00000000..b76a4a3a --- /dev/null +++ b/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml index 059ce91b..97e24714 100644 --- a/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml +++ b/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml @@ -23,6 +23,7 @@ + diff --git a/klp-ui/src/api/aps/planDetail.js b/klp-ui/src/api/aps/planDetail.js index ab94978a..a863c2d5 100644 --- a/klp-ui/src/api/aps/planDetail.js +++ b/klp-ui/src/api/aps/planDetail.js @@ -26,6 +26,15 @@ export function addPlanDetail(data) { }) } +// 批量新增排产单明细 +export function addPlanDetailBatch(data) { + return request({ + url: '/aps/planDetail/batch', + method: 'post', + data: data + }) +} + // 修改排产单明细 export function updatePlanDetail(data) { return request({ diff --git a/klp-ui/src/api/mes/eqp/equipmentInspectionApproval.js b/klp-ui/src/api/mes/eqp/equipmentInspectionApproval.js new file mode 100644 index 00000000..66d00011 --- /dev/null +++ b/klp-ui/src/api/mes/eqp/equipmentInspectionApproval.js @@ -0,0 +1,39 @@ +import request from '@/utils/request' + +export function listEquipmentInspectionApproval(query) { + return request({ + url: '/eqp/equipmentInspectionApproval/list', + method: 'get', + params: query + }) +} + +export function getEquipmentInspectionApproval(approvalId) { + return request({ + url: '/eqp/equipmentInspectionApproval/' + approvalId, + method: 'get' + }) +} + +export function addEquipmentInspectionApproval(data) { + return request({ + url: '/eqp/equipmentInspectionApproval', + method: 'post', + data: data + }) +} + +export function updateEquipmentInspectionApproval(data) { + return request({ + url: '/eqp/equipmentInspectionApproval', + method: 'put', + data: data + }) +} + +export function delEquipmentInspectionApproval(approvalId) { + return request({ + url: '/eqp/equipmentInspectionApproval/' + approvalId, + method: 'delete' + }) +} diff --git a/klp-ui/src/api/wms/coil.js b/klp-ui/src/api/wms/coil.js index 1731c628..0d71a0e4 100644 --- a/klp-ui/src/api/wms/coil.js +++ b/klp-ui/src/api/wms/coil.js @@ -488,4 +488,12 @@ export function listLightCoil(data) { timeout: 600000, data: data }) +} + +// 获取可导出的列元数据 +export function getExportColumns() { + return request({ + url: '/wms/materialCoil/exportColumns', + method: 'get', + }) } \ No newline at end of file diff --git a/klp-ui/src/api/wms/deliveryWaybillDetail.js b/klp-ui/src/api/wms/deliveryWaybillDetail.js index 68a703e4..a951d869 100644 --- a/klp-ui/src/api/wms/deliveryWaybillDetail.js +++ b/klp-ui/src/api/wms/deliveryWaybillDetail.js @@ -61,6 +61,14 @@ export function listBoundCoil(query) { }) } +export function getBoundCoilStatisticsList(query) { + return request({ + url: '/wms/deliveryWaybillDetail/statistics', + method: 'get', + params: query + }) +} + // 按销售员查询订单明细的卷 export function listDeliveryWaybillDetailBySaleman(principal) { return request({ diff --git a/klp-ui/src/components/CoilSelector/index.vue b/klp-ui/src/components/CoilSelector/index.vue index 0e2d6efa..c47df2cf 100644 --- a/klp-ui/src/components/CoilSelector/index.vue +++ b/klp-ui/src/components/CoilSelector/index.vue @@ -79,6 +79,10 @@ canSelectDisabled :clearInput="false" clearable /> + + + + 新增明细 批量新增 + 导入 批量删除 + + + diff --git a/klp-ui/src/views/mes/eqp/check/day.vue b/klp-ui/src/views/mes/eqp/check/day.vue index 79a6d2b1..511f2b2a 100644 --- a/klp-ui/src/views/mes/eqp/check/day.vue +++ b/klp-ui/src/views/mes/eqp/check/day.vue @@ -8,12 +8,16 @@ @change="handleQuery" style="width: 260px;" /> - + + + 查询 + + 送检 + @@ -105,17 +109,26 @@ diff --git a/klp-ui/src/views/mes/eqp/check/index.vue b/klp-ui/src/views/mes/eqp/check/index.vue index cdc46068..2cc499ed 100644 --- a/klp-ui/src/views/mes/eqp/check/index.vue +++ b/klp-ui/src/views/mes/eqp/check/index.vue @@ -1,7 +1,8 @@