免检物料
This commit is contained in:
parent
e01ab6e094
commit
c3c6bccc56
|
|
@ -0,0 +1,138 @@
|
||||||
|
package com.nflg.qms.admin.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
import com.nflg.wms.common.pojo.qo.*;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO;
|
||||||
|
import com.nflg.wms.common.util.VUtil;
|
||||||
|
import com.nflg.wms.repository.entity.QmsExemptMaterial;
|
||||||
|
import com.nflg.wms.repository.entity.QmsQcMaterial;
|
||||||
|
import com.nflg.wms.repository.entity.UserSupplier;
|
||||||
|
import com.nflg.wms.repository.service.IQmsExemptMaterialService;
|
||||||
|
import com.nflg.wms.repository.service.IQmsQcMaterialService;
|
||||||
|
import com.nflg.wms.repository.service.IUserSupplierService;
|
||||||
|
import com.nflg.wms.starter.BaseController;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料管理
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/exemptMaterial")
|
||||||
|
public class QmsExemptMaterialController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IQmsExemptMaterialService exemptMaterialService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IUserSupplierService userSupplierService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IQmsQcMaterialService qcMaterialService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询免检物料列表
|
||||||
|
*/
|
||||||
|
@PostMapping("search")
|
||||||
|
public ApiResult<PageData<QmsExemptMaterialVO>> search(@Valid @RequestBody QmsExemptMaterialSearchQO request) {
|
||||||
|
return ApiResult.success(exemptMaterialService.search(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存免检物料(新增/编辑)
|
||||||
|
*/
|
||||||
|
@PostMapping("save")
|
||||||
|
public ApiResult<Void> save(@RequestBody QmsExemptMaterialSaveQO request) {
|
||||||
|
exemptMaterialService.saveExemptMaterial(request);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按供应商ID查询免检物料明细
|
||||||
|
*/
|
||||||
|
@PostMapping("detailBySupplier")
|
||||||
|
public ApiResult<List<QmsExemptMaterialVO>> detailBySupplier(@RequestBody QmsExemptMaterialDetailBySupplierQO request) {
|
||||||
|
return ApiResult.success(exemptMaterialService.detailBySupplier(request.getSupplierId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按物料编号查询免检物料明细
|
||||||
|
*/
|
||||||
|
@PostMapping("detailByMaterial")
|
||||||
|
public ApiResult<List<QmsExemptMaterialVO>> detailByMaterial(@RequestBody QmsExemptMaterialDetailByMaterialQO request) {
|
||||||
|
return ApiResult.success(exemptMaterialService.detailByMaterial(request.getMaterialNo()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页搜索供应商列表(供选择弹窗使用)
|
||||||
|
*/
|
||||||
|
@PostMapping("supplierList")
|
||||||
|
public ApiResult<PageData<UserSupplier>> supplierList(@RequestBody SupplierListSelectQO request) {
|
||||||
|
LambdaQueryWrapper<UserSupplier> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
if (request.getKeyword() != null && !request.getKeyword().isEmpty()) {
|
||||||
|
wrapper.and(w -> w.like(UserSupplier::getSupplierCode, request.getKeyword())
|
||||||
|
.or().like(UserSupplier::getSupplierName, request.getKeyword()));
|
||||||
|
}
|
||||||
|
wrapper.orderByDesc(UserSupplier::getCreateTime);
|
||||||
|
IPage<UserSupplier> result = userSupplierService.page(new Page<>(request.getPage(), request.getPageSize()), wrapper);
|
||||||
|
return ApiResult.success(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页搜索质检物料列表(供选择弹窗使用)
|
||||||
|
*/
|
||||||
|
@PostMapping("materialList")
|
||||||
|
public ApiResult<PageData<QmsQcMaterial>> materialList(@RequestBody MaterialListSelectQO request) {
|
||||||
|
LambdaQueryWrapper<QmsQcMaterial> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
if (request.getKeyword() != null && !request.getKeyword().isEmpty()) {
|
||||||
|
wrapper.and(w -> w.like(QmsQcMaterial::getMaterialNo, request.getKeyword())
|
||||||
|
.or().like(QmsQcMaterial::getMaterialDesc, request.getKeyword()));
|
||||||
|
}
|
||||||
|
wrapper.orderByDesc(QmsQcMaterial::getCreateTime);
|
||||||
|
IPage<QmsQcMaterial> result = qcMaterialService.page(new Page<>(request.getPage(), request.getPageSize()), wrapper);
|
||||||
|
return ApiResult.success(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用/禁用切换
|
||||||
|
*/
|
||||||
|
@PostMapping("toggleEnable")
|
||||||
|
public ApiResult<Void> toggleEnable(@RequestBody ToggleEnableQO request) {
|
||||||
|
exemptMaterialService.toggleEnable(request.getId(), request.getEnableStatus());
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核免检物料
|
||||||
|
*/
|
||||||
|
@PostMapping("audit")
|
||||||
|
public ApiResult<Void> audit(@RequestBody QmsExemptMaterialAuditQO request) {
|
||||||
|
exemptMaterialService.audit(request);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除免检物料
|
||||||
|
*/
|
||||||
|
@PostMapping("delete")
|
||||||
|
public ApiResult<Void> delete(@RequestBody @NotNull List<Long> ids) {
|
||||||
|
//如果当前数据是审核状态的时候,则不允许删除
|
||||||
|
boolean hasAudited = exemptMaterialService.listByIds(ids).stream()
|
||||||
|
.anyMatch(m -> m.getAuditStatus() != null && m.getAuditStatus() == 1);
|
||||||
|
VUtil.trueThrowBusinessError(hasAudited).throwMessage("此数据已审核,不能删除");
|
||||||
|
exemptMaterialService.removeByIds(ids);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.qo.PageQO;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检物料列表查询(选择弹窗用)
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class MaterialListSelectQO extends PageQO {
|
||||||
|
|
||||||
|
private String keyword;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料审核请求
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsExemptMaterialAuditQO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核结果:true 通过;false 驳回
|
||||||
|
*/
|
||||||
|
private Boolean pass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 驳回原因(驳回时必填)
|
||||||
|
*/
|
||||||
|
private String rejectReason;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按物料查询免检物料明细 请求
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsExemptMaterialDetailByMaterialQO {
|
||||||
|
|
||||||
|
private String materialNo;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按供应商查询免检物料明细 请求
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsExemptMaterialDetailBySupplierQO {
|
||||||
|
|
||||||
|
private Long supplierId;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料 保存请求对象
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsExemptMaterialSaveQO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商ID(按供应商模式时使用)
|
||||||
|
*/
|
||||||
|
private Long supplierId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号(按物料模式时使用)
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头部免检模式;0 永久;1 周期
|
||||||
|
*/
|
||||||
|
private Integer exemptMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头部有效期开始日期
|
||||||
|
*/
|
||||||
|
private String validStartDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头部有效期结束日期
|
||||||
|
*/
|
||||||
|
private String validEndDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 明细列表
|
||||||
|
*/
|
||||||
|
private List<Item> items;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Item {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已有记录ID(编辑时使用)
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号(按供应商模式时,每行的物料)
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商ID(按物料模式时,每行的供应商)
|
||||||
|
*/
|
||||||
|
private Long supplierId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检模式;0 永久;1 周期
|
||||||
|
*/
|
||||||
|
private Integer exemptMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效期开始日期
|
||||||
|
*/
|
||||||
|
private String validStartDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效期结束日期
|
||||||
|
*/
|
||||||
|
private String validEndDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料 列表查询参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsExemptMaterialSearchQO extends PageQO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商(编码或名称模糊搜索)
|
||||||
|
*/
|
||||||
|
private String supplier;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编码
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检模式;0 永久;1 周期
|
||||||
|
*/
|
||||||
|
private Integer exemptMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态;0 待审核;1 已审核;2 已驳回
|
||||||
|
*/
|
||||||
|
private Integer auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用状态;false 禁用;true 启用
|
||||||
|
*/
|
||||||
|
private Boolean enableStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效开始日期 - 起始
|
||||||
|
*/
|
||||||
|
private LocalDate validStartDateBegin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效开始日期 - 结束
|
||||||
|
*/
|
||||||
|
private LocalDate validStartDateEnd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效结束日期 - 起始
|
||||||
|
*/
|
||||||
|
private LocalDate validEndDateBegin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效结束日期 - 结束
|
||||||
|
*/
|
||||||
|
private LocalDate validEndDateEnd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效状态;0 已过期;1 有效中
|
||||||
|
*/
|
||||||
|
private Integer validStatus;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.qo.PageQO;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商列表查询(选择弹窗用)
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class SupplierListSelectQO extends PageQO {
|
||||||
|
|
||||||
|
private String keyword;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用/禁用切换请求
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ToggleEnableQO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private Boolean enableStatus;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,107 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料 列表VO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsExemptMaterialVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商ID
|
||||||
|
*/
|
||||||
|
private Long supplierId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商编码
|
||||||
|
*/
|
||||||
|
private String supplierCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
private String supplierName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String materialDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态;0 待审核;1 已审核;2 已驳回
|
||||||
|
*/
|
||||||
|
private Integer auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 驳回原因
|
||||||
|
*/
|
||||||
|
private String rejectReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用状态;false 禁用;true 启用
|
||||||
|
*/
|
||||||
|
private Boolean enableStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检模式;0 永久;1 周期
|
||||||
|
*/
|
||||||
|
private Integer exemptMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效期开始日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime validStartDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效期结束日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime validEndDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有效;0 已过期;1 有效中
|
||||||
|
*/
|
||||||
|
private Integer validStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核人
|
||||||
|
*/
|
||||||
|
private String auditorName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime auditTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人名称
|
||||||
|
*/
|
||||||
|
private String createByName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人名称
|
||||||
|
*/
|
||||||
|
private String updateByName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
package com.nflg.wms.repository.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 免检物料
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("qms_exempt_material")
|
||||||
|
public class QmsExemptMaterial implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号,关联qms_qc_material表的material_no
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商ID,关联qms_supplier_sqe_map表的supplier_id
|
||||||
|
*/
|
||||||
|
private Long supplierId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态;0 待审核;1 已审核;2 已驳回
|
||||||
|
*/
|
||||||
|
private Integer auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用状态;false 禁用;true 启用
|
||||||
|
*/
|
||||||
|
private Boolean enableStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检模式;0 永久;1 周期
|
||||||
|
*/
|
||||||
|
private Integer exemptMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效期开始日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime validStartDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效期结束日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime validEndDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核人ID
|
||||||
|
*/
|
||||||
|
private Long auditorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核人
|
||||||
|
*/
|
||||||
|
private String auditorName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime auditTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 驳回原因
|
||||||
|
*/
|
||||||
|
private String rejectReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人ID
|
||||||
|
*/
|
||||||
|
private Long createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人名称
|
||||||
|
*/
|
||||||
|
private String createByName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人ID
|
||||||
|
*/
|
||||||
|
private Long updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人名称
|
||||||
|
*/
|
||||||
|
private String updateByName;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
package com.nflg.wms.repository.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 来料检测,质检任务的抽样检测类型调整表
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("qms_qc_material")
|
||||||
|
public class QmsQcMaterial implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String materialDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 描述是否变更 false 未变更;true 已变更
|
||||||
|
*/
|
||||||
|
private Boolean materialDescIsUpgrade;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类别
|
||||||
|
*/
|
||||||
|
private String materialCategoryCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类别全路径名称
|
||||||
|
*/
|
||||||
|
private String materialCategoryCodePathName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料图号
|
||||||
|
*/
|
||||||
|
private String drawingNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图号版本号
|
||||||
|
*/
|
||||||
|
private String drawingNoVer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料材质
|
||||||
|
*/
|
||||||
|
private String materialTexture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料规格
|
||||||
|
*/
|
||||||
|
private String materialSpecifications;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规则是否已维护; false 未维护;true 已维护
|
||||||
|
*/
|
||||||
|
private Boolean isStandardMaintained;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建方式 0 人工操作;1 系统同步
|
||||||
|
*/
|
||||||
|
private Integer createdType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人ID
|
||||||
|
*/
|
||||||
|
private Long createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人名称
|
||||||
|
*/
|
||||||
|
private String createByName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人ID
|
||||||
|
*/
|
||||||
|
private Long updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人名称
|
||||||
|
*/
|
||||||
|
private String updateByName;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO;
|
||||||
|
import com.nflg.wms.repository.entity.QmsExemptMaterial;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料 Mapper 接口
|
||||||
|
*/
|
||||||
|
public interface QmsExemptMaterialMapper extends BaseMapper<QmsExemptMaterial> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询免检物料列表(JOIN 供应商表和质检物料表)
|
||||||
|
*/
|
||||||
|
IPage<QmsExemptMaterialVO> search(@Param("request") QmsExemptMaterialSearchQO request, Page<QmsExemptMaterialVO> page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按供应商ID查询关联的免检物料明细
|
||||||
|
*/
|
||||||
|
List<QmsExemptMaterialVO> detailBySupplier(@Param("supplierId") Long supplierId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按物料编号查询关联的供应商免检明细
|
||||||
|
*/
|
||||||
|
List<QmsExemptMaterialVO> detailByMaterial(@Param("materialNo") String materialNo);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.wms.repository.entity.QmsQcMaterial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检物料 Mapper 接口
|
||||||
|
*/
|
||||||
|
public interface QmsQcMaterialMapper extends BaseMapper<QmsQcMaterial> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialAuditQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialSaveQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO;
|
||||||
|
import com.nflg.wms.repository.entity.QmsExemptMaterial;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料 服务类
|
||||||
|
*/
|
||||||
|
public interface IQmsExemptMaterialService extends IService<QmsExemptMaterial> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询免检物料列表
|
||||||
|
*/
|
||||||
|
IPage<QmsExemptMaterialVO> search(QmsExemptMaterialSearchQO request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存免检物料(新增/编辑)
|
||||||
|
*/
|
||||||
|
void saveExemptMaterial(QmsExemptMaterialSaveQO request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按供应商ID查询免检物料明细
|
||||||
|
*/
|
||||||
|
List<QmsExemptMaterialVO> detailBySupplier(Long supplierId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按物料编号查询免检物料明细
|
||||||
|
*/
|
||||||
|
List<QmsExemptMaterialVO> detailByMaterial(String materialNo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用/禁用切换
|
||||||
|
*/
|
||||||
|
void toggleEnable(Long id, Boolean enableStatus);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核免检物料
|
||||||
|
*/
|
||||||
|
void audit(QmsExemptMaterialAuditQO request);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.nflg.wms.repository.entity.QmsQcMaterial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检物料 服务类
|
||||||
|
*/
|
||||||
|
public interface IQmsQcMaterialService extends IService<QmsQcMaterial> {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,169 @@
|
||||||
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.nflg.wms.common.constant.STATE;
|
||||||
|
import com.nflg.wms.common.exception.NflgException;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialAuditQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialSaveQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsExemptMaterialSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO;
|
||||||
|
import com.nflg.wms.common.util.StringUtil;
|
||||||
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
|
import com.nflg.wms.repository.entity.QmsExemptMaterial;
|
||||||
|
import com.nflg.wms.repository.mapper.QmsExemptMaterialMapper;
|
||||||
|
import com.nflg.wms.repository.service.IQmsExemptMaterialService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 免检物料 服务实现类
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class QmsExemptMaterialServiceImpl extends ServiceImpl<QmsExemptMaterialMapper, QmsExemptMaterial>
|
||||||
|
implements IQmsExemptMaterialService {
|
||||||
|
|
||||||
|
private static final DateTimeFormatter DATE_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<QmsExemptMaterialVO> search(QmsExemptMaterialSearchQO request) {
|
||||||
|
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void saveExemptMaterial(QmsExemptMaterialSaveQO request) {
|
||||||
|
if (request.getItems() == null || request.getItems().isEmpty()) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "明细列表不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
Long userId = UserUtil.getUserId();
|
||||||
|
String userName = UserUtil.getUserName();
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
List<QmsExemptMaterial> toSave = new ArrayList<>();
|
||||||
|
|
||||||
|
for (QmsExemptMaterialSaveQO.Item item : request.getItems()) {
|
||||||
|
// 确定 supplierId 和 materialNo
|
||||||
|
Long supplierId = item.getSupplierId() != null ? item.getSupplierId() : request.getSupplierId();
|
||||||
|
String materialNo = item.getMaterialNo() != null ? item.getMaterialNo() : request.getMaterialNo();
|
||||||
|
|
||||||
|
if (supplierId == null || materialNo == null || materialNo.isEmpty()) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "供应商和物料编号不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 唯一性校验:(material_no + supplier_id)
|
||||||
|
LambdaQueryWrapper<QmsExemptMaterial> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(QmsExemptMaterial::getMaterialNo, materialNo)
|
||||||
|
.eq(QmsExemptMaterial::getSupplierId, supplierId);
|
||||||
|
if (item.getId() != null) {
|
||||||
|
wrapper.ne(QmsExemptMaterial::getId, item.getId());
|
||||||
|
}
|
||||||
|
long count = this.count(wrapper);
|
||||||
|
if (count > 0) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "物料编号[" + materialNo + "]与该供应商的免检记录已存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
QmsExemptMaterial entity;
|
||||||
|
if (item.getId() != null) {
|
||||||
|
entity = this.getById(item.getId());
|
||||||
|
if (entity == null) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "记录不存在,ID:" + item.getId());
|
||||||
|
}
|
||||||
|
entity.setUpdateBy(userId);
|
||||||
|
entity.setUpdateByName(userName);
|
||||||
|
entity.setUpdateTime(now);
|
||||||
|
} else {
|
||||||
|
entity = new QmsExemptMaterial();
|
||||||
|
entity.setSupplierId(supplierId);
|
||||||
|
entity.setMaterialNo(materialNo);
|
||||||
|
entity.setAuditStatus(0);
|
||||||
|
entity.setEnableStatus(true);
|
||||||
|
entity.setCreateBy(userId);
|
||||||
|
entity.setCreateByName(userName);
|
||||||
|
entity.setCreateTime(now);
|
||||||
|
entity.setUpdateBy(userId);
|
||||||
|
entity.setUpdateByName(userName);
|
||||||
|
entity.setUpdateTime(now);
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.setExemptMode(item.getExemptMode());
|
||||||
|
if (item.getValidStartDate() != null && !item.getValidStartDate().isEmpty()) {
|
||||||
|
entity.setValidStartDate(parseDate(item.getValidStartDate()));
|
||||||
|
} else {
|
||||||
|
entity.setValidStartDate(null);
|
||||||
|
}
|
||||||
|
if (item.getValidEndDate() != null && !item.getValidEndDate().isEmpty()) {
|
||||||
|
entity.setValidEndDate(parseDate(item.getValidEndDate()));
|
||||||
|
} else {
|
||||||
|
entity.setValidEndDate(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
toSave.add(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.saveOrUpdateBatch(toSave);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<QmsExemptMaterialVO> detailBySupplier(Long supplierId) {
|
||||||
|
return baseMapper.detailBySupplier(supplierId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<QmsExemptMaterialVO> detailByMaterial(String materialNo) {
|
||||||
|
return baseMapper.detailByMaterial(materialNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toggleEnable(Long id, Boolean enableStatus) {
|
||||||
|
QmsExemptMaterial entity = this.getById(id);
|
||||||
|
if (entity == null) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "记录不存在");
|
||||||
|
}
|
||||||
|
entity.setEnableStatus(enableStatus);
|
||||||
|
entity.setUpdateBy(UserUtil.getUserId());
|
||||||
|
entity.setUpdateByName(UserUtil.getUserName());
|
||||||
|
entity.setUpdateTime(LocalDateTime.now());
|
||||||
|
this.updateById(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void audit(QmsExemptMaterialAuditQO request) {
|
||||||
|
QmsExemptMaterial entity = this.getById(request.getId());
|
||||||
|
if (entity == null) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "记录不存在");
|
||||||
|
}
|
||||||
|
if (Boolean.TRUE.equals(request.getPass())) {
|
||||||
|
entity.setAuditStatus(1);
|
||||||
|
entity.setRejectReason("");
|
||||||
|
} else {
|
||||||
|
if (request.getRejectReason() == null || request.getRejectReason().trim().isEmpty()) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "驳回时必须填写驳回原因");
|
||||||
|
}
|
||||||
|
entity.setAuditStatus(2);
|
||||||
|
entity.setRejectReason(request.getRejectReason());
|
||||||
|
}
|
||||||
|
entity.setAuditorId(UserUtil.getUserId());
|
||||||
|
entity.setAuditorName(UserUtil.getUserName());
|
||||||
|
entity.setAuditTime(LocalDateTime.now());
|
||||||
|
entity.setUpdateBy(UserUtil.getUserId());
|
||||||
|
entity.setUpdateByName(UserUtil.getUserName());
|
||||||
|
entity.setUpdateTime(LocalDateTime.now());
|
||||||
|
this.updateById(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LocalDateTime parseDate(String dateStr) {
|
||||||
|
if (dateStr.length() == 10) {
|
||||||
|
dateStr = dateStr + " 00:00:00";
|
||||||
|
}
|
||||||
|
return LocalDateTime.parse(dateStr, DATE_FMT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.nflg.wms.repository.entity.QmsQcMaterial;
|
||||||
|
import com.nflg.wms.repository.mapper.QmsQcMaterialMapper;
|
||||||
|
import com.nflg.wms.repository.service.IQmsQcMaterialService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检物料 服务实现类
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class QmsQcMaterialServiceImpl extends ServiceImpl<QmsQcMaterialMapper, QmsQcMaterial>
|
||||||
|
implements IQmsQcMaterialService {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,137 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.nflg.wms.repository.mapper.QmsExemptMaterialMapper">
|
||||||
|
|
||||||
|
<!-- 分页查询免检物料列表,JOIN 供应商表和质检物料表 -->
|
||||||
|
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO">
|
||||||
|
SELECT
|
||||||
|
em.id,
|
||||||
|
em.supplier_id,
|
||||||
|
us.supplier_code,
|
||||||
|
us.supplier_name,
|
||||||
|
em.material_no,
|
||||||
|
qm.material_desc,
|
||||||
|
em.audit_status,
|
||||||
|
em.enable_status,
|
||||||
|
em.exempt_mode,
|
||||||
|
em.valid_start_date,
|
||||||
|
em.valid_end_date,
|
||||||
|
em.reject_reason,
|
||||||
|
CASE
|
||||||
|
WHEN em.exempt_mode = 0 THEN 1
|
||||||
|
WHEN em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW() THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END AS valid_status,
|
||||||
|
em.auditor_name,
|
||||||
|
em.audit_time,
|
||||||
|
em.create_by_name,
|
||||||
|
em.create_time,
|
||||||
|
em.update_by_name,
|
||||||
|
em.update_time
|
||||||
|
FROM qms_exempt_material em
|
||||||
|
LEFT JOIN user_supplier us ON us.id = em.supplier_id
|
||||||
|
LEFT JOIN qms_qc_material qm ON qm.material_no = em.material_no
|
||||||
|
<where>
|
||||||
|
<if test="request.supplier != null and request.supplier != ''">
|
||||||
|
AND (us.supplier_code ILIKE CONCAT('%', #{request.supplier}, '%')
|
||||||
|
OR us.supplier_name ILIKE CONCAT('%', #{request.supplier}, '%'))
|
||||||
|
</if>
|
||||||
|
<if test="request.materialNo != null and request.materialNo != ''">
|
||||||
|
AND em.material_no ILIKE CONCAT('%', #{request.materialNo}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="request.exemptMode != null">
|
||||||
|
AND em.exempt_mode = #{request.exemptMode}
|
||||||
|
</if>
|
||||||
|
<if test="request.auditStatus != null">
|
||||||
|
AND em.audit_status = #{request.auditStatus}
|
||||||
|
</if>
|
||||||
|
<if test="request.enableStatus != null">
|
||||||
|
AND em.enable_status = #{request.enableStatus}
|
||||||
|
</if>
|
||||||
|
<if test="request.validStartDateBegin != null">
|
||||||
|
AND em.valid_start_date >= #{request.validStartDateBegin}
|
||||||
|
</if>
|
||||||
|
<if test="request.validStartDateEnd != null">
|
||||||
|
AND em.valid_start_date <= #{request.validStartDateEnd}
|
||||||
|
</if>
|
||||||
|
<if test="request.validEndDateBegin != null">
|
||||||
|
AND em.valid_end_date >= #{request.validEndDateBegin}
|
||||||
|
</if>
|
||||||
|
<if test="request.validEndDateEnd != null">
|
||||||
|
AND em.valid_end_date <= #{request.validEndDateEnd}
|
||||||
|
</if>
|
||||||
|
<if test="request.validStatus != null and request.validStatus == 1">
|
||||||
|
AND (em.exempt_mode = 0 OR (em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW()))
|
||||||
|
</if>
|
||||||
|
<if test="request.validStatus != null and request.validStatus == 0">
|
||||||
|
AND em.exempt_mode = 1 AND (em.valid_end_date IS NULL OR em.valid_end_date < NOW())
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY em.create_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 按供应商查询关联的免检物料明细 -->
|
||||||
|
<select id="detailBySupplier" resultType="com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO">
|
||||||
|
SELECT
|
||||||
|
em.id,
|
||||||
|
em.supplier_id,
|
||||||
|
us.supplier_code,
|
||||||
|
us.supplier_name,
|
||||||
|
em.material_no,
|
||||||
|
qm.material_desc,
|
||||||
|
em.audit_status,
|
||||||
|
em.enable_status,
|
||||||
|
em.exempt_mode,
|
||||||
|
em.valid_start_date,
|
||||||
|
em.valid_end_date,
|
||||||
|
CASE
|
||||||
|
WHEN em.exempt_mode = 0 THEN 1
|
||||||
|
WHEN em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW() THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END AS valid_status,
|
||||||
|
em.auditor_name,
|
||||||
|
em.audit_time,
|
||||||
|
em.create_by_name,
|
||||||
|
em.create_time,
|
||||||
|
em.update_by_name,
|
||||||
|
em.update_time
|
||||||
|
FROM qms_exempt_material em
|
||||||
|
LEFT JOIN user_supplier us ON us.id = em.supplier_id
|
||||||
|
LEFT JOIN qms_qc_material qm ON qm.material_no = em.material_no
|
||||||
|
WHERE em.supplier_id = #{supplierId}
|
||||||
|
ORDER BY em.create_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 按物料查询关联的供应商免检明细 -->
|
||||||
|
<select id="detailByMaterial" resultType="com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO">
|
||||||
|
SELECT
|
||||||
|
em.id,
|
||||||
|
em.supplier_id,
|
||||||
|
us.supplier_code,
|
||||||
|
us.supplier_name,
|
||||||
|
em.material_no,
|
||||||
|
qm.material_desc,
|
||||||
|
em.audit_status,
|
||||||
|
em.enable_status,
|
||||||
|
em.exempt_mode,
|
||||||
|
em.valid_start_date,
|
||||||
|
em.valid_end_date,
|
||||||
|
CASE
|
||||||
|
WHEN em.exempt_mode = 0 THEN 1
|
||||||
|
WHEN em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW() THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END AS valid_status,
|
||||||
|
em.auditor_name,
|
||||||
|
em.audit_time,
|
||||||
|
em.create_by_name,
|
||||||
|
em.create_time,
|
||||||
|
em.update_by_name,
|
||||||
|
em.update_time
|
||||||
|
FROM qms_exempt_material em
|
||||||
|
LEFT JOIN user_supplier us ON us.id = em.supplier_id
|
||||||
|
LEFT JOIN qms_qc_material qm ON qm.material_no = em.material_no
|
||||||
|
WHERE em.material_no = #{materialNo}
|
||||||
|
ORDER BY em.create_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
6
pom.xml
6
pom.xml
|
|
@ -33,6 +33,7 @@
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
||||||
|
<maven.test.skip>true</maven.test.skip>
|
||||||
<lombok.version>1.18.38</lombok.version>
|
<lombok.version>1.18.38</lombok.version>
|
||||||
<spring-cloud.version>2023.0.1</spring-cloud.version>
|
<spring-cloud.version>2023.0.1</spring-cloud.version>
|
||||||
<spring-cloud-alibaba.version>2023.0.1.0</spring-cloud-alibaba.version>
|
<spring-cloud-alibaba.version>2023.0.1.0</spring-cloud-alibaba.version>
|
||||||
|
|
@ -240,10 +241,7 @@
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
<version>3.5.2</version>
|
<version>3.5.2</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<includes>
|
<skipTests>true</skipTests>
|
||||||
<include>**/**.java</include>
|
|
||||||
</includes>
|
|
||||||
<excludedGroups>org.junit.vintage</excludedGroups>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue