🆕 重新定义数据表
This commit is contained in:
parent
722abb3abf
commit
47100b8e20
@ -8,15 +8,24 @@ import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import tech.riemann.ims.dto.request.ApplyInfo;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyDetail;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.ApplyDetail;
|
||||
import tech.riemann.ims.entity.material.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.Material;
|
||||
import tech.riemann.ims.entity.material.MaterialStockDetail;
|
||||
import tech.riemann.ims.enums.ApplyTypeEnum;
|
||||
import tech.riemann.ims.enums.StockStatusEnum;
|
||||
import tech.riemann.ims.service.material.IApplyDetailService;
|
||||
import tech.riemann.ims.service.material.IApplyFormService;
|
||||
import tech.riemann.ims.service.material.IMaterialService;
|
||||
import tech.riemann.ims.service.material.IMaterialStockDetailService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
@ -29,6 +38,8 @@ public class ApplyFormController {
|
||||
|
||||
private final IApplyFormService applyFormService;
|
||||
private final IApplyDetailService applyDetailService;
|
||||
private final IMaterialStockDetailService materialStockDetailService;
|
||||
private final IMaterialService materialService;
|
||||
|
||||
@GetMapping("apply")
|
||||
@Operation(summary = "分页查询申请单列表")
|
||||
@ -55,15 +66,54 @@ public class ApplyFormController {
|
||||
}
|
||||
|
||||
@PutMapping("apply")
|
||||
@Operation(summary = "增加/编辑申请单")
|
||||
public void saveOrUpdateApply(@Validated @Parameter(description = "申请单") @RequestBody ApplyInfo applyInfo) {
|
||||
if (applyInfo.getApplyForm().getId() == null || applyInfo.getApplyForm().getId() <= 0) {
|
||||
applyFormService.save(applyInfo.getApplyForm());
|
||||
applyInfo.getApplyDetails().forEach(detail -> detail.setApplyId(applyInfo.getApplyForm().getId()));
|
||||
applyDetailService.saveBatch(applyInfo.getApplyDetails());
|
||||
} else {
|
||||
// TODO 更新申请单
|
||||
@Operation(summary = "提交申请单")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveApply(@Validated @Parameter(description = "申请单") @RequestBody ApplyInfo applyInfo) {
|
||||
// 如果是采购入库 就新增数据,否则只改状态
|
||||
ApplyTypeEnum applyType = applyInfo.getApplyForm().getType();
|
||||
|
||||
// 校验物料数量
|
||||
Map<Long, Integer> confirmMap = applyInfo.getApplyDetails().stream()
|
||||
.collect(Collectors.toMap(ApplyDetail::getMaterialId, ApplyDetail::getConfirmQuantity));
|
||||
Map<Long, Long> dataMap = applyInfo.getDetailList().stream()
|
||||
.collect(Collectors.groupingBy(MaterialStockDetail::getMaterialId, Collectors.counting()));
|
||||
confirmMap.forEach((k, v) -> {
|
||||
Long l = dataMap.get(k);
|
||||
if(l == null || l.intValue() != v){
|
||||
throw new IllegalArgumentException("["+k+"]物料数量不匹配");
|
||||
}
|
||||
});
|
||||
// 新增申请单
|
||||
applyFormService.save(applyInfo.getApplyForm());
|
||||
for (ApplyDetail applyDetail : applyInfo.getApplyDetails()) {
|
||||
applyDetail.setApplyId(applyInfo.getApplyForm().getId());
|
||||
}
|
||||
applyDetailService.saveBatch(applyInfo.getApplyDetails());
|
||||
|
||||
if (applyType == ApplyTypeEnum.PURCHASE_RECEIPT) {
|
||||
// 新增物料
|
||||
applyInfo.getDetailList().forEach(detail -> {
|
||||
detail.setApplyId(applyInfo.getApplyForm().getId());
|
||||
detail.setStatus(StockStatusEnum.IN);
|
||||
});
|
||||
materialStockDetailService.saveBatch(applyInfo.getDetailList());
|
||||
//记录物料库存数据
|
||||
confirmMap.forEach((key, value) -> materialService.update(Wrappers.<Material>lambdaUpdate().set(Material::getStock, value)
|
||||
.eq(Material::getId, key)));
|
||||
}
|
||||
else if(applyType == ApplyTypeEnum.LOAN_OUT || applyType == ApplyTypeEnum.RETURN_RECEIPT) {
|
||||
//修改物料状态
|
||||
applyInfo.getDetailList().forEach(detail -> materialStockDetailService.update(Wrappers.<MaterialStockDetail>lambdaUpdate()
|
||||
.set(MaterialStockDetail::getMaterialId, applyType ==ApplyTypeEnum.RETURN_RECEIPT
|
||||
? StockStatusEnum.IN : StockStatusEnum.OUT)
|
||||
.eq(MaterialStockDetail::getBarcode, detail.getBarcode())));
|
||||
//修改物料库存数据
|
||||
confirmMap.forEach((key, value) -> materialService.update(Wrappers.<Material>lambdaUpdate()
|
||||
.setSql(applyType == ApplyTypeEnum.LOAN_OUT,"m_stock = m_stock - " + value)
|
||||
.setSql(applyType == ApplyTypeEnum.RETURN_RECEIPT,"m_stock = m_stock + " + value)
|
||||
.eq(Material::getId, key)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ import org.nutz.lang.random.R;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import tech.riemann.ims.entity.Inventory.Material;
|
||||
import tech.riemann.ims.entity.material.Material;
|
||||
import tech.riemann.ims.service.material.IMaterialService;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,11 +1,13 @@
|
||||
package tech.riemann.ims.dto.request;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyDetail;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.ApplyDetail;
|
||||
import tech.riemann.ims.entity.material.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.MaterialStockDetail;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -19,7 +21,13 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
public class ApplyInfo {
|
||||
|
||||
@Schema(description = "申请单")
|
||||
private ApplyForm applyForm;
|
||||
|
||||
@Schema(description = "申请单明细")
|
||||
private List<ApplyDetail> applyDetails;
|
||||
|
||||
@Schema(description = "扫码的条码集合")
|
||||
private List<MaterialStockDetail> detailList;
|
||||
|
||||
}
|
||||
|
@ -1,74 +0,0 @@
|
||||
package tech.riemann.ims.entity.Inventory;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/11/26 16:53
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldNameConstants
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@TableName("t_apply_form")
|
||||
@Table("t_apply_form")
|
||||
@Comment("入库/出库 申请单")
|
||||
@Schema(name = "ApplyForm", description = "入库/出库 申请单")
|
||||
public class ApplyForm extends IdBaseEntity {
|
||||
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_type")
|
||||
@Column("af_type")
|
||||
@Comment("类型")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer type; // 1: 采购入库 2: 归还入库 3: 出库外借
|
||||
|
||||
@Schema(description = "申请人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_applicant")
|
||||
@Column("af_applicant")
|
||||
@Comment("申请人")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String applicant;
|
||||
|
||||
@Schema(description = "申请日期", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_apply_date")
|
||||
@Column("af_apply_date")
|
||||
@Comment("申请日期")
|
||||
@ColDefine(type = ColType.DATE, notNull = false, width = 128, precision = 0)
|
||||
private Date applyDate;
|
||||
|
||||
@Schema(description = "是否确认", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_is_confirm")
|
||||
@Column("af_is_confirm")
|
||||
@Comment("是否确认")
|
||||
@ColDefine(type = ColType.BOOLEAN, notNull = false, width = 128, precision = 0)
|
||||
private Boolean isConfirm; // 0: 未确认 1: 已确认
|
||||
|
||||
@Schema(description = "异常说明", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_remark")
|
||||
@Column("af_remark")
|
||||
@Comment("异常说明")
|
||||
@ColDefine(type = ColType.TEXT, notNull = false, width = 128, precision = 0)
|
||||
private String exceptionExplain; // 异常说明
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
package tech.riemann.ims.entity.Inventory;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/11/26 17:51
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldNameConstants
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@TableName("t_stocktaking")
|
||||
@Table("t_stocktaking")
|
||||
@Comment("盘点表")
|
||||
@Schema(name = "Stocktaking", description = "盘点表")
|
||||
public class Stocktaking extends IdBaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "盘点key", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_key")
|
||||
@Column("s_key")
|
||||
@Comment("盘点key")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String key;
|
||||
|
||||
@Schema(description = "盘点类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_type")
|
||||
@Column("s_type")
|
||||
@Comment("盘点类型(0-全部盘点 1-部分盘点)")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer type; // 盘点类型 0-全部盘点 1-部分盘点
|
||||
|
||||
@Schema(description = "盘点日期", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_date")
|
||||
@Column("s_date")
|
||||
@Comment("盘点日期")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String date;
|
||||
|
||||
@Schema(description = "盘点人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_operator")
|
||||
@Column("s_operator")
|
||||
@Comment("盘点人")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String operator;
|
||||
|
||||
@Schema(description = "盘点审核人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_reviewer")
|
||||
@Column("s_reviewer")
|
||||
@Comment("盘点审核人")
|
||||
@ColDefine(type = ColType.VARCHAR,notNull = false, width = 128, precision = 0)
|
||||
private String reviewer;
|
||||
|
||||
@Schema(description = "盘点任务状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_status")
|
||||
@Column("s_status")
|
||||
@Comment("盘点任务状态(0-未开始 1-进行中 2-已完成)")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer status; // 盘点任务状态 0-未开始 1-进行中 2-已完成
|
||||
|
||||
|
||||
@Schema(description = "盘点结果(系统自动生成)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_result")
|
||||
@Column("s_result")
|
||||
@Comment("盘点结果(系统自动生成)")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String result;
|
||||
|
||||
@Schema(description = "盘点审核结果", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_review_result")
|
||||
@Column("s_review_result")
|
||||
@Comment("盘点审核结果(0-通过 1-不通过 2-待审核 3-退回重新盘点)")
|
||||
@ColDefine(type = ColType.VARCHAR,notNull = false, width = 128, precision = 0)
|
||||
private String reviewResult; // 盘点审核结果 0-通过 1-不通过 2-待审核 3-退回重新盘点
|
||||
|
||||
@Schema(description = "盘点异常情况说明", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_exception")
|
||||
@Column("s_exception")
|
||||
@Comment("盘点异常情况说明")
|
||||
@ColDefine(type = ColType.VARCHAR,notNull = false, width = 128, precision = 0)
|
||||
private String exception;
|
||||
|
||||
@Schema(description = "异常情况处理方式", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_exception_handle")
|
||||
@Column("s_exception_handle")
|
||||
@Comment("异常情况处理方式(0-无需处理 1-忽略并修改库存 2-补充库存 3-其他)")
|
||||
@ColDefine(type = ColType.VARCHAR,notNull = false, width = 128, precision = 0)
|
||||
private String exceptionHandle; // 异常情况处理方式 0-无需处理 1-忽略并修改库存 2-补充库存 3-其他
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package tech.riemann.ims.entity.Inventory;
|
||||
package tech.riemann.ims.entity.material;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
116
src/main/java/tech/riemann/ims/entity/material/ApplyForm.java
Normal file
116
src/main/java/tech/riemann/ims/entity/material/ApplyForm.java
Normal file
@ -0,0 +1,116 @@
|
||||
package tech.riemann.ims.entity.material;
|
||||
|
||||
import club.zhcs.lina.utils.enums.Codebook;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.json.JsonField;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
import tech.riemann.ims.enums.ApplyTypeEnum;
|
||||
import tech.riemann.ims.enums.AuditTypeEnum;
|
||||
import tech.riemann.ims.enums.HandleEnum;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/11/26 16:53
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldNameConstants
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@TableName("t_apply_form")
|
||||
@Table("t_apply_form")
|
||||
@Comment("入库/出库/盘点 申请单")
|
||||
@Schema(name = "ApplyForm", description = "入库/出库/盘点 申请单")
|
||||
public class ApplyForm extends IdBaseEntity {
|
||||
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "类型(1: 采购入库申请 2: 归还入库申请 3: 出库外借申请 4: 盘点申请)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_type")
|
||||
@Column("af_type")
|
||||
@Comment("类型")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private ApplyTypeEnum type;
|
||||
|
||||
@Schema(description = "盘点类型(1: 全盘 2: 部分盘点)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_audit_type")
|
||||
@Column("af_audit_type")
|
||||
@Comment("盘点类型")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private AuditTypeEnum auditType;
|
||||
|
||||
@Schema(description = "申请人", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_applicant")
|
||||
@Column("af_applicant")
|
||||
@Comment("申请人")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String applicant;
|
||||
|
||||
@Schema(description = "申请日期", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_apply_date")
|
||||
@Column("af_apply_date")
|
||||
@Comment("申请日期")
|
||||
@ColDefine(type = ColType.DATE, notNull = false, width = 128, precision = 0)
|
||||
private LocalDateTime applyDate;
|
||||
|
||||
@Schema(description = "是否确认(0: 未确认 1: 已确认)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_is_confirm")
|
||||
@Column("af_is_confirm")
|
||||
@Comment("是否确认")
|
||||
@ColDefine(type = ColType.BOOLEAN, notNull = false, width = 128, precision = 0)
|
||||
private Boolean isConfirm;
|
||||
|
||||
@Schema(description = "结果(系统自动生成)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_result")
|
||||
@Column("af_result")
|
||||
@Comment("结果(系统自动生成)")
|
||||
@ColDefine(notNull = false, width = 512, precision = 0)
|
||||
private String result;
|
||||
|
||||
@Schema(description = "异常原因", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("af_exception")
|
||||
@Column("af_exception")
|
||||
@Comment("异常原因")
|
||||
@ColDefine(type = ColType.VARCHAR, notNull = false, width = 512, precision = 0)
|
||||
private String exception;
|
||||
|
||||
@Schema(description = "处理方式(0-无需处理 1-忽略并修改库存 2-补充库存 3-其他)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_exception_handle")
|
||||
@Column("s_exception_handle")
|
||||
@Comment("处理方式(0-无需处理 1-忽略并修改库存 2-补充库存 3-其他)")
|
||||
@ColDefine(type = ColType.VARCHAR, notNull = false, width = 128, precision = 0)
|
||||
private HandleEnum handle;
|
||||
|
||||
@JsonField
|
||||
public Codebook getTypeInfo() {
|
||||
return Optional.of(getType()).orElse(ApplyTypeEnum.PURCHASE_RECEIPT).build();
|
||||
}
|
||||
|
||||
@JsonField
|
||||
public Codebook getAuditTypeInfo() {
|
||||
return Optional.of(getAuditType()).orElse(AuditTypeEnum.ALL).build();
|
||||
}
|
||||
|
||||
@JsonField
|
||||
public Codebook getHandleInfo() {
|
||||
return Optional.of(getHandle()).orElse(HandleEnum.NO_ACTION).build();
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package tech.riemann.ims.entity.Inventory;
|
||||
package tech.riemann.ims.entity.material;
|
||||
|
||||
import club.zhcs.lina.utils.enums.Codebook;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@ -11,9 +12,12 @@ import lombok.experimental.Accessors;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.json.JsonField;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
import tech.riemann.ims.enums.AssignRuleEnum;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Optional;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@ -45,12 +49,12 @@ public class Material extends IdBaseEntity {
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String name;
|
||||
|
||||
@Schema(description = "赋码规则", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@Schema(description = "赋码规则(0-低值易耗品(不参与赋码) 1-高价值工具类(参与唯一赋码)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("m_assign_rule")
|
||||
@Column("m_assign_rule")
|
||||
@Comment("赋码规则(0-低值易耗品(不参与赋码) 1-高价值工具类(参与唯一赋码))")
|
||||
@Comment("赋码规则")
|
||||
@ColDefine(notNull = false, type = ColType.INT)
|
||||
private Integer assignRule; // 0-低值易耗品(不参与赋码) 1-高价值工具类(参与唯一赋码)
|
||||
private AssignRuleEnum assignRule; // 0-低值易耗品(不参与赋码) 1-高价值工具类(参与唯一赋码)
|
||||
|
||||
@Schema(description = "类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("m_type")
|
||||
@ -81,4 +85,9 @@ public class Material extends IdBaseEntity {
|
||||
@ColDefine(notNull = false, width = 500, precision = 0)
|
||||
private String description;
|
||||
|
||||
@JsonField
|
||||
public Codebook getAssignRuleInfo() {
|
||||
return Optional.of(getAssignRule()).orElse(AssignRuleEnum.LOW_VALUE).build();
|
||||
}
|
||||
|
||||
}
|
@ -1,8 +1,9 @@
|
||||
package tech.riemann.ims.entity.Inventory;
|
||||
package tech.riemann.ims.entity.material;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -10,14 +11,20 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.entity.annotation.ColDefine;
|
||||
import org.nutz.dao.entity.annotation.Column;
|
||||
import org.nutz.dao.entity.annotation.Comment;
|
||||
import org.nutz.dao.entity.annotation.Table;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/11/26 16:39
|
||||
* 物料库条码配置表
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@ -30,23 +37,22 @@ import java.io.Serial;
|
||||
@Table("t_material_barcode_config")
|
||||
@Comment("物料库条码配置表")
|
||||
@Schema(name = "MaterialBarcodeConfig", description = "物料库条码配置表")
|
||||
public class MaterialBarcodeConfig extends IdBaseEntity {
|
||||
public class MaterialBarcodeConfig extends IdBaseEntity{
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "物料Key", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@Schema(description = "物料Key", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("mbc_material_key")
|
||||
@Column("mbc_material_key")
|
||||
@Comment("物料Key")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String materialKey;
|
||||
private String mbcMaterialKey;
|
||||
|
||||
|
||||
@Schema(description = "最新编码位置", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@Schema(description = "最新编码位置", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("mbc_latest_location")
|
||||
@Column("mbc_latest_location")
|
||||
@Comment("最新编码位置")
|
||||
@ColDefine(notNull = false, type = ColType.INT)
|
||||
private Integer latestLocation;
|
||||
}
|
||||
@ColDefine(notNull = false, width = 19, precision = 0)
|
||||
private Long mbcLatestLocation;
|
||||
}
|
@ -1,8 +1,10 @@
|
||||
package tech.riemann.ims.entity.Inventory;
|
||||
package tech.riemann.ims.entity.material;
|
||||
|
||||
import club.zhcs.lina.utils.enums.Codebook;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -14,13 +16,19 @@ import org.nutz.dao.entity.annotation.ColDefine;
|
||||
import org.nutz.dao.entity.annotation.Column;
|
||||
import org.nutz.dao.entity.annotation.Comment;
|
||||
import org.nutz.dao.entity.annotation.Table;
|
||||
import org.nutz.json.JsonField;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
import tech.riemann.ims.enums.StockStatusEnum;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/11/26 17:21
|
||||
* 物料明细数据表
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@ -33,31 +41,41 @@ import java.io.Serial;
|
||||
@Table("t_material_stock_detail")
|
||||
@Comment("物料明细数据表")
|
||||
@Schema(name = "MaterialStockDetail", description = "物料明细数据表")
|
||||
public class MaterialStockDetail extends IdBaseEntity {
|
||||
public class MaterialStockDetail extends IdBaseEntity{
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "物料Key", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@TableField("msd_material_key")
|
||||
@Column("msd_material_key")
|
||||
@Comment("物料Key")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String materialKey;
|
||||
@Schema(description = "物料ID", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("msd_material_id")
|
||||
@Column("msd_material_id")
|
||||
@Comment("物料ID")
|
||||
@ColDefine(notNull = false)
|
||||
private Long materialId;
|
||||
|
||||
@Schema(description = "条码", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@Schema(description = "条码", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("msd_barcode")
|
||||
@Column("msd_barcode")
|
||||
@Comment("条码")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String barcode;
|
||||
|
||||
@Schema(description = "状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||
@Schema(description = "入库申请单", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("msd_apply_id")
|
||||
@Column("msd_apply_id")
|
||||
@Comment("入库申请单")
|
||||
@ColDefine(notNull = false)
|
||||
private Long applyId;
|
||||
|
||||
@Schema(description = "状态", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("msd_status")
|
||||
@Column("msd_status")
|
||||
@Comment("状态")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String status; // 状态 0-在库 1-外借 2-报废
|
||||
private StockStatusEnum status;
|
||||
|
||||
|
||||
}
|
||||
@JsonField
|
||||
public Codebook getStatusInfo() {
|
||||
return Optional.of(getStatus()).orElse(StockStatusEnum.IN).build();
|
||||
}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package tech.riemann.ims.entity.material;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.nutz.dao.entity.annotation.ColDefine;
|
||||
import org.nutz.dao.entity.annotation.Column;
|
||||
import org.nutz.dao.entity.annotation.Comment;
|
||||
import org.nutz.dao.entity.annotation.Table;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 盘点审核表
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@FieldNameConstants
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@TableName("t_stocktaking_audit")
|
||||
@Table("t_stocktaking_audit")
|
||||
@Comment("盘点审核表")
|
||||
@Schema(name = "StocktakingAudit", description = "盘点审核表")
|
||||
public class StocktakingAudit extends IdBaseEntity{
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "申请单id", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_apply_id")
|
||||
@Column("s_apply_id")
|
||||
@Comment("申请单id")
|
||||
@ColDefine(notNull = false, width = 10, precision = 0)
|
||||
private Integer applyId;
|
||||
|
||||
@Schema(description = "盘点审核人", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_reviewer")
|
||||
@Column("s_reviewer")
|
||||
@Comment("盘点审核人")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String reviewer;
|
||||
|
||||
@Schema(description = "盘点审核结果(0-通过 1-不通过 2-待审核 3-退回重新盘点)", requiredMode = RequiredMode.NOT_REQUIRED)
|
||||
@TableField("s_review_result")
|
||||
@Column("s_review_result")
|
||||
@Comment("盘点审核结果(0-通过 1-不通过 2-待审核 3-退回重新盘点)")
|
||||
@ColDefine(notNull = false, width = 128, precision = 0)
|
||||
private String reviewResult;
|
||||
}
|
25
src/main/java/tech/riemann/ims/enums/ApplyTypeEnum.java
Normal file
25
src/main/java/tech/riemann/ims/enums/ApplyTypeEnum.java
Normal file
@ -0,0 +1,25 @@
|
||||
package tech.riemann.ims.enums;
|
||||
|
||||
import club.zhcs.lina.utils.enums.ICodeBook;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/12/6 9:26
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ApplyTypeEnum implements ICodeBook {
|
||||
|
||||
PURCHASE_RECEIPT("1", "采购入库申请"),
|
||||
RETURN_RECEIPT("2", "归还入库申请"),
|
||||
LOAN_OUT("3", "外借出库申请"),
|
||||
AUDIT("4", "盘点申请"),
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
final String code;
|
||||
final String description;
|
||||
}
|
21
src/main/java/tech/riemann/ims/enums/AssignRuleEnum.java
Normal file
21
src/main/java/tech/riemann/ims/enums/AssignRuleEnum.java
Normal file
@ -0,0 +1,21 @@
|
||||
package tech.riemann.ims.enums;
|
||||
|
||||
import club.zhcs.lina.utils.enums.ICodeBook;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/12/6 9:15
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AssignRuleEnum implements ICodeBook {
|
||||
LOW_VALUE("0", "低值易耗品(不参与赋码)"),
|
||||
HIGH_VALUE("1", "高价值工具类(参与唯一赋码)");
|
||||
|
||||
@EnumValue
|
||||
final String code;
|
||||
final String description;
|
||||
}
|
23
src/main/java/tech/riemann/ims/enums/AuditTypeEnum.java
Normal file
23
src/main/java/tech/riemann/ims/enums/AuditTypeEnum.java
Normal file
@ -0,0 +1,23 @@
|
||||
package tech.riemann.ims.enums;
|
||||
|
||||
import club.zhcs.lina.utils.enums.ICodeBook;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/12/6 9:26
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AuditTypeEnum implements ICodeBook {
|
||||
|
||||
ALL("1", "全部盘点"),
|
||||
PARTIAL("2", "部分盘点")
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
final String code;
|
||||
final String description;
|
||||
}
|
25
src/main/java/tech/riemann/ims/enums/HandleEnum.java
Normal file
25
src/main/java/tech/riemann/ims/enums/HandleEnum.java
Normal file
@ -0,0 +1,25 @@
|
||||
package tech.riemann.ims.enums;
|
||||
|
||||
import club.zhcs.lina.utils.enums.ICodeBook;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/12/6 10:09
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum HandleEnum implements ICodeBook {
|
||||
|
||||
NO_ACTION("0", "无需处理"),
|
||||
IGNORE_AND_SAVE("2", "忽略并保存"),
|
||||
REPLENISH("3", "补货"),
|
||||
OTHER("4", "其他")
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
final String code;
|
||||
final String description;
|
||||
}
|
28
src/main/java/tech/riemann/ims/enums/StockStatusEnum.java
Normal file
28
src/main/java/tech/riemann/ims/enums/StockStatusEnum.java
Normal file
@ -0,0 +1,28 @@
|
||||
package tech.riemann.ims.enums;
|
||||
|
||||
import club.zhcs.lina.utils.enums.ICodeBook;
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
* @since 2024/12/6 9:34
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum StockStatusEnum implements ICodeBook {
|
||||
|
||||
IN("0", "在库"),
|
||||
|
||||
|
||||
OUT("1", "外借"),
|
||||
|
||||
OFF("2", "下架"),
|
||||
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
final String code;
|
||||
final String description;
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package tech.riemann.ims.mapper.material;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyDetail;
|
||||
import tech.riemann.ims.entity.material.ApplyDetail;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
|
@ -1,7 +1,7 @@
|
||||
package tech.riemann.ims.mapper.material;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.ApplyForm;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
|
@ -0,0 +1,15 @@
|
||||
package tech.riemann.ims.mapper.material;
|
||||
|
||||
import tech.riemann.ims.entity.material.MaterialBarcodeConfig;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 物料库条码配置表 Mapper 接口
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:29:26
|
||||
*/
|
||||
public interface MaterialBarcodeConfigMapper extends BaseMapper<MaterialBarcodeConfig> {
|
||||
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package tech.riemann.ims.mapper.material;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import tech.riemann.ims.entity.Inventory.Material;
|
||||
import tech.riemann.ims.entity.material.Material;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
|
@ -0,0 +1,15 @@
|
||||
package tech.riemann.ims.mapper.material;
|
||||
|
||||
import tech.riemann.ims.entity.material.MaterialStockDetail;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 物料明细数据表 Mapper 接口
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:29:26
|
||||
*/
|
||||
public interface MaterialStockDetailMapper extends BaseMapper<MaterialStockDetail> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package tech.riemann.ims.mapper.material;
|
||||
|
||||
import tech.riemann.ims.entity.material.StocktakingAudit;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 盘点审核表 Mapper 接口
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
public interface StocktakingAuditMapper extends BaseMapper<StocktakingAudit> {
|
||||
|
||||
}
|
@ -2,7 +2,7 @@ package tech.riemann.ims.service.material;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nutz.spring.boot.service.interfaces.IdNameEntityService;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyDetail;
|
||||
import tech.riemann.ims.entity.material.ApplyDetail;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
|
@ -2,7 +2,7 @@ package tech.riemann.ims.service.material;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nutz.spring.boot.service.interfaces.IdNameEntityService;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.ApplyForm;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
|
@ -0,0 +1,18 @@
|
||||
package tech.riemann.ims.service.material;
|
||||
|
||||
import tech.riemann.ims.entity.material.MaterialBarcodeConfig;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nutz.spring.boot.service.interfaces.IdNameEntityService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 物料库条码配置表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
public interface IMaterialBarcodeConfigService extends IService<MaterialBarcodeConfig>, IdNameEntityService<MaterialBarcodeConfig> {
|
||||
|
||||
}
|
@ -2,7 +2,7 @@ package tech.riemann.ims.service.material;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nutz.spring.boot.service.interfaces.IdNameEntityService;
|
||||
import tech.riemann.ims.entity.Inventory.Material;
|
||||
import tech.riemann.ims.entity.material.Material;
|
||||
|
||||
/**
|
||||
* @author mayong
|
||||
|
@ -0,0 +1,18 @@
|
||||
package tech.riemann.ims.service.material;
|
||||
|
||||
import tech.riemann.ims.entity.material.MaterialStockDetail;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nutz.spring.boot.service.interfaces.IdNameEntityService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 物料明细数据表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
public interface IMaterialStockDetailService extends IService<MaterialStockDetail>, IdNameEntityService<MaterialStockDetail> {
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package tech.riemann.ims.service.material;
|
||||
|
||||
import tech.riemann.ims.entity.material.StocktakingAudit;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nutz.spring.boot.service.interfaces.IdNameEntityService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 盘点审核表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
public interface IStocktakingAuditService extends IService<StocktakingAudit>, IdNameEntityService<StocktakingAudit> {
|
||||
|
||||
}
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.springframework.stereotype.Service;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyDetail;
|
||||
import tech.riemann.ims.entity.material.ApplyDetail;
|
||||
import tech.riemann.ims.mapper.material.ApplyDetailMapper;
|
||||
import tech.riemann.ims.service.material.IApplyDetailService;
|
||||
|
||||
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.springframework.stereotype.Service;
|
||||
import tech.riemann.ims.entity.Inventory.ApplyForm;
|
||||
import tech.riemann.ims.entity.material.ApplyForm;
|
||||
import tech.riemann.ims.mapper.material.ApplyFormMapper;
|
||||
import tech.riemann.ims.service.material.IApplyFormService;
|
||||
|
||||
|
@ -0,0 +1,45 @@
|
||||
package tech.riemann.ims.service.material.impl;
|
||||
|
||||
import tech.riemann.ims.entity.material.MaterialBarcodeConfig;
|
||||
import tech.riemann.ims.mapper.material.MaterialBarcodeConfigMapper;
|
||||
import tech.riemann.ims.service.material.IMaterialBarcodeConfigService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import org.nutz.dao.Dao;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 物料库条码配置表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MaterialBarcodeConfigServiceImpl extends ServiceImpl<MaterialBarcodeConfigMapper, MaterialBarcodeConfig> implements IMaterialBarcodeConfigService {
|
||||
|
||||
private final Dao dao;
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see org.nutz.spring.boot.service.ExtService#dao()
|
||||
*/
|
||||
@Override
|
||||
public Dao dao() {
|
||||
return dao;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see org.nutz.spring.boot.service.interfaces.EntityService#getEntityType()
|
||||
*/
|
||||
@Override
|
||||
public Class<MaterialBarcodeConfig> getEntityType() {
|
||||
return MaterialBarcodeConfig.class;
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.springframework.stereotype.Service;
|
||||
import tech.riemann.ims.entity.Inventory.Material;
|
||||
import tech.riemann.ims.entity.material.Material;
|
||||
import tech.riemann.ims.mapper.material.MaterialMapper;
|
||||
import tech.riemann.ims.service.material.IMaterialService;
|
||||
|
||||
|
@ -0,0 +1,45 @@
|
||||
package tech.riemann.ims.service.material.impl;
|
||||
|
||||
import tech.riemann.ims.entity.material.MaterialStockDetail;
|
||||
import tech.riemann.ims.mapper.material.MaterialStockDetailMapper;
|
||||
import tech.riemann.ims.service.material.IMaterialStockDetailService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import org.nutz.dao.Dao;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 物料明细数据表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MaterialStockDetailServiceImpl extends ServiceImpl<MaterialStockDetailMapper, MaterialStockDetail> implements IMaterialStockDetailService {
|
||||
|
||||
private final Dao dao;
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see org.nutz.spring.boot.service.ExtService#dao()
|
||||
*/
|
||||
@Override
|
||||
public Dao dao() {
|
||||
return dao;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see org.nutz.spring.boot.service.interfaces.EntityService#getEntityType()
|
||||
*/
|
||||
@Override
|
||||
public Class<MaterialStockDetail> getEntityType() {
|
||||
return MaterialStockDetail.class;
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package tech.riemann.ims.service.material.impl;
|
||||
|
||||
import tech.riemann.ims.entity.material.StocktakingAudit;
|
||||
import tech.riemann.ims.mapper.material.StocktakingAuditMapper;
|
||||
import tech.riemann.ims.service.material.IStocktakingAuditService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import org.nutz.dao.Dao;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 盘点审核表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author mayong)
|
||||
*
|
||||
* @since 2024-12-06 10:32:29
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class StocktakingAuditServiceImpl extends ServiceImpl<StocktakingAuditMapper, StocktakingAudit> implements IStocktakingAuditService {
|
||||
|
||||
private final Dao dao;
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see org.nutz.spring.boot.service.ExtService#dao()
|
||||
*/
|
||||
@Override
|
||||
public Dao dao() {
|
||||
return dao;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see org.nutz.spring.boot.service.interfaces.EntityService#getEntityType()
|
||||
*/
|
||||
@Override
|
||||
public Class<StocktakingAudit> getEntityType() {
|
||||
return StocktakingAudit.class;
|
||||
}
|
||||
}
|
24
src/main/resources/mapper_/MaterialBarcodeConfigMapper.xml
Normal file
24
src/main/resources/mapper_/MaterialBarcodeConfigMapper.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<?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="tech.riemann.ims.mapper.material.MaterialBarcodeConfigMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="tech.riemann.ims.entity.material.MaterialBarcodeConfig">
|
||||
<result column="id" property="id" />
|
||||
<result column="created_time" property="createdTime" />
|
||||
<result column="updated_time" property="updatedTime" />
|
||||
<result column="created_by" property="createdBy" />
|
||||
<result column="updated_by" property="updatedBy" />
|
||||
<result column="mbc_material_key" property="mbcMaterialKey" />
|
||||
<result column="mbc_latest_location" property="mbcLatestLocation" />
|
||||
</resultMap>
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
id,
|
||||
created_time,
|
||||
updated_time,
|
||||
created_by,
|
||||
updated_by,
|
||||
mbc_material_key, mbc_latest_location
|
||||
</sql>
|
||||
</mapper>
|
26
src/main/resources/mapper_/MaterialStockDetailMapper.xml
Normal file
26
src/main/resources/mapper_/MaterialStockDetailMapper.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?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="tech.riemann.ims.mapper.material.MaterialStockDetailMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="tech.riemann.ims.entity.material.MaterialStockDetail">
|
||||
<result column="id" property="id" />
|
||||
<result column="created_time" property="createdTime" />
|
||||
<result column="updated_time" property="updatedTime" />
|
||||
<result column="created_by" property="createdBy" />
|
||||
<result column="updated_by" property="updatedBy" />
|
||||
<result column="msd_material_key" property="msdMaterialKey" />
|
||||
<result column="msd_barcode" property="msdBarcode" />
|
||||
<result column="msd_status" property="msdStatus" />
|
||||
<result column="msd_material_id" property="msdMaterialId" />
|
||||
</resultMap>
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
id,
|
||||
created_time,
|
||||
updated_time,
|
||||
created_by,
|
||||
updated_by,
|
||||
msd_material_key, msd_barcode, msd_status, msd_material_id
|
||||
</sql>
|
||||
</mapper>
|
25
src/main/resources/mapper_/StocktakingAuditMapper.xml
Normal file
25
src/main/resources/mapper_/StocktakingAuditMapper.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?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="tech.riemann.ims.mapper.material.StocktakingAuditMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="tech.riemann.ims.entity.material.StocktakingAudit">
|
||||
<result column="id" property="id" />
|
||||
<result column="created_time" property="createdTime" />
|
||||
<result column="updated_time" property="updatedTime" />
|
||||
<result column="created_by" property="createdBy" />
|
||||
<result column="updated_by" property="updatedBy" />
|
||||
<result column="s_apply_id" property="applyId" />
|
||||
<result column="s_reviewer" property="reviewer" />
|
||||
<result column="s_review_result" property="reviewResult" />
|
||||
</resultMap>
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
id,
|
||||
created_time,
|
||||
updated_time,
|
||||
created_by,
|
||||
updated_by,
|
||||
s_apply_id, s_reviewer, s_review_result
|
||||
</sql>
|
||||
</mapper>
|
@ -1,17 +1,5 @@
|
||||
package tech.riemann.ims;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
|
||||
import com.baomidou.mybatisplus.generator.config.ConstVal;
|
||||
@ -19,9 +7,19 @@ import com.baomidou.mybatisplus.generator.config.OutputFile;
|
||||
import com.baomidou.mybatisplus.generator.config.rules.DateType;
|
||||
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
||||
import com.baomidou.mybatisplus.generator.engine.BeetlTemplateEngine;
|
||||
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import tech.riemann.ims.entity.IdBaseEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class MysqlGenerator {
|
||||
|
||||
static String jdbcUrl = "jdbc:mysql://mysql.riemann.tech:13307/hx_jxc?characterEncoding=UTF-8";
|
||||
@ -67,15 +65,10 @@ public class MysqlGenerator {
|
||||
public static void main(String[] args) {
|
||||
|
||||
String projectPath = System.getProperty("user.dir");
|
||||
List<String> relationTables = Lang.list("t_role_permission", "t_user_permission", "t_user_role", "t_user_bind");
|
||||
List<String> relationTables = Lang.list();
|
||||
|
||||
NutMap.NEW()
|
||||
// .addv("acl", Lang.array("t_user", "t_role", "t_permission",
|
||||
// "t_role_permission", "t_user_permission", "t_user_role",
|
||||
// "t_user_bind"))
|
||||
// .addv("dictionary", Lang.array("t_dictionary", "t_group"))
|
||||
// .addv("sensor", Lang.array("t_sensor", "t_sensor_log"))
|
||||
// .addv("station", Lang.array("t_station", "t_team"))
|
||||
.addv("station.status", Lang.array("t_station_status", "t_power_log", "t_working_log"))
|
||||
.addv("material", Lang.array("t_material_barcode_config", "t_material_stock_detail", "t_stocktaking_audit"))
|
||||
.entrySet()
|
||||
.stream()
|
||||
.forEach(e -> {
|
||||
@ -83,7 +76,7 @@ public class MysqlGenerator {
|
||||
FastAutoGenerator.create(jdbcUrl, user, password)
|
||||
.globalConfig(builder -> {
|
||||
builder
|
||||
.author("Kerbores(kerbores@gmail.com)")
|
||||
.author("mayong)")
|
||||
.enableSpringdoc()
|
||||
.commentDate(() -> LocalDateTime.now()
|
||||
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss",
|
||||
|
Loading…
x
Reference in New Issue
Block a user