订单模块

liweidong
liuqingkun 3 months ago
parent 46083a4196
commit dd003ba913
  1. 9
      blade-common/src/main/java/org/springblade/common/constant/CommonConstant.java
  2. 76
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/enums/DsCraftEnum.java
  3. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldDemand.java
  4. 118
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApply.java
  5. 29
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApplyDetail.java
  6. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
  7. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecordDetail.java
  8. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/YieldOrderEnum.java
  9. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/PlateGoodsApplyVo.java
  10. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/DsCraftConstant.java
  11. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java
  12. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java
  13. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/PlateGoodsApplyController.java
  14. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml
  15. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.java
  16. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml
  17. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsApplyDetailService.java
  18. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsApplyService.java
  19. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsRecordService.java
  20. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyDetailServiceImpl.java
  21. 59
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java
  22. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java
  23. 180
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  24. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/wrapper/MoldApplyWrapper.java
  25. 124
      doc/sql/mes/increase-260120.sql

@ -90,4 +90,13 @@ public interface CommonConstant {
* 删除状态, 已删除
*/
Integer DELETE_TRUE = 1;
/**
* 字符串类型的boolean值, false
*/
String BOOLEAN_FALSE = "0";
/**
* 字符串类型的boolean值, true
*/
String BOOLEAN_TRUE = "1";
}

@ -0,0 +1,76 @@
package org.springblade.desk.dashboard.pojo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringPool;
import java.util.Arrays;
/**
* 枚举 烧结模具计划 - 申报
*
* @author lqk
* @date 2025-12-19 9:25
*/
@Getter
@AllArgsConstructor
public enum DsCraftEnum {
EMPTY(StringPool.EMPTY, -1),
/**
* 状态枚举
*/
STATUS_CREATE("新建", 10000),
STATUS_SEND("已下发", 10001),
STATUS_WAITING("待出库", 10002),
STATUS_OUT_STORE("已出库", 10003),
STATUS_DONE("完成", 10004),
STATUS_CLOSE("关闭", 10005),
/**
* 工艺级别; 11001新建11002:已下发11003已完成
*/
RANK_ONE("新建", 11001),
RANK_TWO("已下发", 11002),
RANK_THREE("已完成", 11003),
/**
* 优先级
*/
PRIORITY_THIS_USE("热表,烧结", 12001),
PRIORITY_FORMAL("仓库", 12002),
PRIORITY_TEMPORARY("仓库", 12002),
;
final String name;
final int code;
/**
* 匹配枚举值
*
* @param name 名称
* @return BladeUserEnum
*/
public static DsCraftEnum of(String name) {
return Arrays.stream(DsCraftEnum.values())
.filter(userEnum -> userEnum.getName().equalsIgnoreCase(name != null ? name : "web"))
.findFirst()
// 在没有找到匹配项时返回默认值
.orElse(DsCraftEnum.EMPTY);
}
/**
* 根据值获取名称
*
* @param category
* @return
*/
public static String getName(int category) {
DsCraftEnum item = Arrays.stream(DsCraftEnum.values())
.filter(enumItem -> enumItem.getCode() == category)
.findFirst()
.orElse(null);
return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName();
}
}

@ -165,8 +165,6 @@ public class MoldDemand extends BaseEntity {
@TableField(value = "QUA_LEVEL")
private String quaLevel;
/**
* 备注
*/

@ -20,24 +20,6 @@ public class PlateGoodsApply extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 需求单号
*/
@TableField(value = "DEMAND_CODE")
private String demandCode;
/**
* 镀层物料号
*/
@TableField(value = "GOODS_CODE")
private String goodsCode;
/**
* 申报镀层
*/
@TableField(value = "GOODS_DEMAND")
private BigDecimal goodsDemand;
/**
* 审批人
*/
@ -81,27 +63,111 @@ public class PlateGoodsApply extends BaseEntity {
private Long acId;
/**
*
* 镀层物料额外需求上报ID
*/
@TableField(value = "PGR_ID")
private Long pgrId;
/**
* 作业中心ID
* 涉及订单要添加的数量
*/
@TableField(value = "CODE_NUM")
private String codeNum;
/**
* 需求单号
*/
@TableField(value = "DEMAND_CODE")
private String demandCode;
/**
* 作业中心
*/
@TableField(value = "WC_ID")
private Long wcId;
/**
* 涉及单号
* 镀层物料
*/
@TableField(value = "INVOLVE_CODE")
private String involveCode;
@TableField(value = "GOODS_CODE")
private String goodsCode;
/**
* 涉及订单要添加的数量
* 镀层物料
*/
@TableField(value = "CODE_NUM")
private String codeNum;
@TableField(value = "GOODS_NAME")
private String goodsName;
/**
* 物料需求
*/
@TableField(value = "GOODS_DEMAND")
private BigDecimal goodsDemand;
/**
* 上报银钾
*/
@TableField(value = "SILVER_POTASSIUM")
private BigDecimal silverPotassium;
/**
* 银钾系数
*/
@TableField(value = "COEFFICIENT")
private BigDecimal coefficient;
/**
* 已申报定额
*/
@TableField(value = "DECLARED_QUOTA")
private BigDecimal declaredQuota;
/**
* 已申报银钾
*/
@TableField(value = "DECLARED_SILVER")
private BigDecimal declaredSilver;
/**
* 申报状态
*/
@TableField(value = "DECLARED_STATUS")
private Long declaredStatus;
/**
* 物料采购id
*/
@TableField(value = "GOODS_BO_ID")
private Long goodsBoId;
/**
* 银钾采购id
*/
@TableField(value = "COEFFICIENT_BO_ID")
private Long coefficientBoId;
/**
* 剩余量
*/
@TableField(value = "SURPLUS")
private BigDecimal surplus;
/**
* 上报银钾剩余量
*/
@TableField(value = "SILVER_POTASSIUM_RESIDUE")
private BigDecimal silverPotassiumResidue;
/**
* 本次添加涉及单号
*/
@TableField(value = "INVOLVING_RECORD_CODE")
private String involvingRecordCode;
/**
* 本次关联订单数量
*/
@TableField(value = "DETAIL_ORDER_NUM")
private Integer detailOrderNum;
}

@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import java.math.BigDecimal;
/**
* 镀层物料添加量申报明细
*
@ -19,34 +17,17 @@ public class PlateGoodsApplyDetail extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
*
*/
@TableField(value = "GOODS_CODE")
private String goodsCode;
/**
*
*/
@TableField(value = "GOODS_DEMAND")
private BigDecimal goodsDemand;
/**
*
*/
@TableField(value = "APPROVAL_STATUS")
private Long approvalStatus;
/**
* 添加量申报ID
*/
@TableField(value = "PGAD_ID")
private Long pgadId;
@TableField(value = "PGA_ID")
private Long pgaId;
/**
* 涉及单号
* 生产订单ID
*/
@TableField(value = "INVOLVE_CODE")
private String involveCode;
@TableField(value = "YO_ID")
private Long yoId;
}

@ -35,8 +35,14 @@ public class PlateGoodsRecord extends BaseEntity {
/**
* 镀层物料
*/
@TableField(value = "PLATE_GOODS_CODE")
private String plateGoodsCode;
@TableField(value = "GOODS_CODE")
private String goodsCode;
/**
* 镀层物料
*/
@TableField(value = "GOODS_NAME")
private String goodsName;
/**
* 物料需求

@ -28,5 +28,4 @@ public class PlateGoodsRecordDetail extends BaseEntity {
*/
@TableField(value = "YO_ID")
private Long yoId;
}

@ -55,7 +55,7 @@ public enum YieldOrderEnum {
BUSINESS_TYPE_SJ("烧结", 13003),
/**
* 生产订单 ERP优先级
* 生产订单 ERP优先级, 14001: 正常, 14002:项目要求日期急件, 14003:合同急件, 14004:会议绩效急件, 14005:调度标注急件
*/
PRIORITY_ERP_NORMAL("正常", 14001),
PRIORITY_ERP_PRO_IMP("项目要求日期急件", 14002),

@ -6,6 +6,7 @@ import lombok.Data;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import java.io.Serial;
import java.util.List;
/**
* 镀层物料申报添加量-视图类
@ -37,4 +38,6 @@ public class PlateGoodsApplyVo extends PlateGoodsApply {
* 创建人名称
*/
String createUserName;
List<YieldOrderVo> yieldOrderList;
}

@ -21,4 +21,19 @@ public interface DsCraftConstant {
*/
Integer PRIORITY_TEMPORARY = 3;
// endregion
// region 优先级
/**
* 第一级
*/
public static Short RANK_ONE = 1;
/**
* 第二级
*/
public static Short RANK_TWO = 2;
/**
* 第三级
*/
public static Short RANK_THREE = 3;
// endregion
}

@ -31,7 +31,6 @@ import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.dashboard.excel.DsCraftExcel;
import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartVersionEntity;
import org.springblade.desk.dashboard.pojo.vo.DsCraftExpireVO;
import org.springblade.desk.dashboard.pojo.vo.DsCraftVO;
import org.springblade.desk.dashboard.pojo.vo.DsPartToolVO;
import org.springblade.desk.dashboard.pojo.vo.DsProcessSynthesisVO;
@ -64,7 +63,6 @@ public interface IDsCraftService extends BaseService<DsCraftEntity> {
List<DsCraftExcel> exportDsCraft(Wrapper<DsCraftEntity> queryWrapper);
/**
* 零件工序 试验项目 尺寸量具 工装表
* @param id 零件工艺信息ID
@ -77,7 +75,7 @@ public interface IDsCraftService extends BaseService<DsCraftEntity> {
* @param craftIds
* @return
*/
List<DsCraftEntity> selectDsCraftByIds(List<Long> craftIds);
List<DsCraftEntity> selectDsCraftByIds(List<Long> craftIds);
/**
* 获取版本号
@ -114,7 +112,7 @@ public interface IDsCraftService extends BaseService<DsCraftEntity> {
* @param craft
* @return
*/
boolean addOrEdit(DsCraftEntity craft);
boolean addOrEdit(DsCraftEntity craft);
/**
* 根据零件号 获取最新工艺版本号
@ -141,8 +139,34 @@ public interface IDsCraftService extends BaseService<DsCraftEntity> {
/**
* 根据零件ID查询需要的工装列表
*
* @param partId
* @return
*/
List<DsPartToolVO> getToolsByPartId(Long partId);
/**
* 根据条件查询工艺
*
* @param partCode 零件号
* @param roamNo B号
* @param prodIdent 生产标识
* @param rank 工艺级别
* @param partVersions 版本, 不传则默认取最新版本
* @return
*/
DsCraftEntity getCraft(String partCode, String roamNo, String prodIdent, Integer rank, String partVersions);
/**
* 根据条件查询工艺
*
* @param partCode 零件好
* @param roamNo b号
* @param prodIdent 生产标识
* @param priority 重要度
* @param rank 工艺级别
* @param partVersions 版本, 不传则默认取最新版本
* @return
*/
DsCraftEntity getCraft(String partCode, String roamNo, String prodIdent, Integer priority, Integer rank, String partVersions);
}

@ -37,7 +37,6 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.desk.dashboard.excel.DsCraftExcel;
import org.springblade.desk.dashboard.mapper.DsCraftMapper;
import org.springblade.desk.dashboard.pojo.entity.*;
import org.springblade.desk.dashboard.pojo.vo.DsCraftExpireVO;
import org.springblade.desk.dashboard.pojo.vo.DsCraftVO;
import org.springblade.desk.dashboard.pojo.vo.DsPartToolVO;
import org.springblade.desk.dashboard.pojo.vo.DsProcessSynthesisVO;
@ -237,4 +236,16 @@ public class DsCraftServiceImpl extends BaseServiceImpl<DsCraftMapper, DsCraftEn
}
return dartAllModelList;
}
@Override
public DsCraftEntity getCraft(String partCode, String roamNo, String prodIdent, Integer rank, String partVersions) {
// todo 如何查询工艺未确定
return null;
}
@Override
public DsCraftEntity getCraft(String partCode, String roamNo, String prodIdent, Integer priority, Integer rank, String partVersions) {
// todo 如何查询工艺未确定
return null;
}
}

@ -16,10 +16,13 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.request.PlateGoodsApplySave;
import org.springblade.desk.order.pojo.vo.PlateGoodsApplyVo;
import org.springblade.desk.order.service.IPlateGoodsApplyService;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.wrapper.PlateGoodsApplyWrapper;
import org.springblade.desk.order.wrapper.YieldOrderWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -35,7 +38,8 @@ import java.util.List;
@Tag(name = "镀层物料-添加申报", description = "接口")
public class PlateGoodsApplyController extends BladeController {
private final IPlateGoodsApplyService plateGoodsApplyService;
private final IPlateGoodsApplyService plateGoodsApplyService;
private final IPlateGoodsRecordService plateGoodsRecordService;
/**
* 分页
@ -43,8 +47,7 @@ public class PlateGoodsApplyController extends BladeController {
@GetMapping("/page")
@Parameters({
@Parameter(name = "demandCode", description = "需求单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int"))
@Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@Operation(summary = "分页", description = "")
public R<IPage<PlateGoodsApplyVo>> page(@Parameter(hidden = true) PlateGoodsApply entity, Query query) {
@ -57,9 +60,18 @@ public class PlateGoodsApplyController extends BladeController {
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<PlateGoodsApply> detail(String id) {
public R<PlateGoodsApplyVo> detail(String id) {
PlateGoodsApply detail = plateGoodsApplyService.getById(id);
return R.data(detail);
PlateGoodsApplyVo vo = PlateGoodsApplyWrapper.build().entityVO(detail);
// 查询关联订单列表
List<YieldOrder> yieldOrderList = plateGoodsRecordService.listDetailYieldOrder(detail.getId());
if(Func.isNotEmpty(yieldOrderList)) {
vo.setYieldOrderList(YieldOrderWrapper.build().listVO(yieldOrderList));
}
return R.data(vo);
}
/**

@ -3,10 +3,13 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.order.mapper.PlateGoodsApplyMapper">
<sql id = "baseCommonFields">
ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
APPROVAL_STATUS, BO_ID, BR_ID, AC_ID, PGR_ID, CODE_NUM, APPROVAL_MAN, APPROVAL_TIME, APPROVAL_MEMO, DEMAND_CODE
</sql>
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsApply">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
GOODS_CODE, GOODS_DEMAND, APPROVAL_STATUS, BO_ID, BR_ID, AC_ID, PGR_ID, WC_ID, INVOLVE_CODE, CODE_NUM, APPROVAL_MAN,
APPROVAL_TIME, APPROVAL_MEMO
SELECT <include refid = "baseCommonFields" />
FROM MES_PLATE_GOODS_APPLY
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''">

@ -3,6 +3,7 @@ package org.springblade.desk.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import java.util.List;
@ -23,6 +24,16 @@ public interface PlateGoodsRecordMapper extends BaseMapper<PlateGoodsRecord> {
*/
List<PlateGoodsRecord> selectPage(IPage page, PlateGoodsRecord entity);
/**
* 自定义分页
*
* @param page
* @param entity
* @param statusList
* @return
*/
List<PlateGoodsRecord> selectPageUsed(IPage page, PlateGoodsRecord entity, List<PlateGoodsEnum> statusList);
/**
* 查询已审批通过但未添加完成的申请列表
*

@ -6,7 +6,7 @@
<!-- 定义基础公共字段 -->
<sql id = "baseCommonFields">
ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
WC_ID, PLATE_GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, APPROVAL_MAN, APPROVAL_TIME,
WC_ID, GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, APPROVAL_MAN, APPROVAL_TIME,
APPROVAL_STATUS, APPROVAL_MEMO, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS, GOODS_BO_ID,
COEFFICIENT_BO_ID, PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE, DEMAND_CODE, INVOLVING_RECORD_CODE,
NOT_ADD_VAL, DETAIL_ORDER_NUM
@ -31,6 +31,28 @@
order by CREATE_TIME desc
</select>
<select id = "selectPageUsed" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsRecord">
SELECT <include refid = "baseCommonFields" />
FROM MES_PLATE_GOODS_RECORD
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''">
AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%'))
</if>
<if test = "entity.wcId != null and entity.wcId != ''">
AND WC_ID = #{entity.wcId}
</if>
<if test = "entity.approvalStatus != null and entity.approvalStatus != ''">
AND approval_status = #{entity.approvalStatus}
</if>
<if test = "statusList != null and statusList.size() > 0">
AND status IN
<foreach collection = "statusList" item = "status" open = "(" separator = "," close = ")">
#{status.code}
</foreach>
</if>
order by CREATE_TIME desc
</select>
<select id = "listNoFinished" resultType = "org.springblade.desk.order.pojo.entity.PlateGoodsRecord">
SELECT <include refid = "baseCommonFields" />
FROM MES_PLATE_GOODS_RECORD

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail;
import java.util.List;
/**
* 服务实现类
*
@ -18,4 +20,12 @@ public interface IPlateGoodsApplyDetailService extends BaseService<PlateGoodsApp
* @return
*/
IPage<PlateGoodsApplyDetail> selectPage(IPage<PlateGoodsApplyDetail> page, PlateGoodsApplyDetail entity);
/**
* 根据镀层需求上报查询明细列表
*
* @param recordId
* @return
*/
List<PlateGoodsApplyDetail> listByApplyId(Long recordId);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import java.util.List;
@ -40,4 +41,12 @@ public interface IPlateGoodsApplyService extends BaseService<PlateGoodsApply> {
* @return
*/
boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo);
/**
* 获取详情关联的生产订单列表
*
* @param id
* @return
*/
List<YieldOrder> listDetailYieldOrder(Long id);
}

@ -23,6 +23,15 @@ public interface IPlateGoodsRecordService extends BaseService<PlateGoodsRecord>
*/
IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity);
/**
* 自定义分页
*
* @param page
* @param entity
* @return
*/
IPage<PlateGoodsRecord> selectPageUsed(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity);
/**
* 查询已审批通过但未添加完成的申请列表
*

@ -1,9 +1,12 @@
package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail;
import org.springblade.desk.order.mapper.PlateGoodsApplyDetailMapper;
import org.springblade.desk.order.pojo.entity.PlateGoodsApplyDetail;
import org.springblade.desk.order.service.IPlateGoodsApplyDetailService;
import org.springframework.stereotype.Service;
@ -22,4 +25,13 @@ public class PlateGoodsApplyDetailServiceImpl extends BaseServiceImpl<PlateGoods
List<PlateGoodsApplyDetail> dataList = baseMapper.selectPage(page, entity);
return page.setRecords(dataList);
}
@Override
public List<PlateGoodsApplyDetail> listByApplyId(Long recordId) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PlateGoodsApplyDetail.class)
.eq(PlateGoodsApplyDetail::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(PlateGoodsApplyDetail::getPgaId, recordId);
List<PlateGoodsApplyDetail> dataList = baseMapper.selectList(wrapper);
return dataList;
}
}

@ -5,18 +5,14 @@ import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.order.mapper.PlateGoodsApplyMapper;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsApply;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.entity.*;
import org.springblade.desk.order.pojo.enums.AssayContentEnum;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import org.springblade.desk.order.service.IAssayContentDetailService;
import org.springblade.desk.order.service.IAssayContentService;
import org.springblade.desk.order.service.IPlateGoodsApplyService;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.service.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -37,6 +33,10 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
private final IAssayContentDetailService assayContentDetailService;
private final IPlateGoodsRecordService goodsRecordService;
private final IPlateGoodsApplyDetailService applyDetailService;
private final IYieldOrderService yieldOrderService;
@Override
public IPage<PlateGoodsApply> selectPage(IPage<PlateGoodsApply> page, PlateGoodsApply entity) {
List<PlateGoodsApply> dataList = baseMapper.selectPage(page, entity);
@ -83,6 +83,7 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
// 3. 更新需求单的相关数据
// 3.1 根据id查询需求单
List<PlateGoodsRecord> recordList = goodsRecordService.listByIds(recordIdList);
List<PlateGoodsApply> applyList = new ArrayList<>();
// 3.2 将需求单按照创建时间正序排列,
recordList = recordList.stream()
@ -105,35 +106,71 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl<PlateGoodsApplyM
// 获取需求单剩余添加量
BigDecimal surplus = plateGoodsRecord.getSurplus();
PlateGoodsApply apply = BeanUtil.copyProperties(plateGoodsRecord, PlateGoodsApply.class);
apply.setId(null);
apply.setCreateTime(null);
apply.setCreateUser(AuthUtil.getUserId());
apply.setUpdateTime(null);
apply.setUpdateUser(AuthUtil.getUserId());
apply.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
apply.setApprovalMan(null);
apply.setApprovalStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
apply.setApprovalMan(null);
apply.setApprovalMan(null);
if (addVal.compareTo(surplus) >= 0) {
// 若本次添加量,满足该订单后,还有剩余, 记录此订单,更新剩余添加量后,继续循环
plateGoodsRecord.setSurplus(BigDecimal.ZERO);
plateGoodsRecord.setStatus(PlateGoodsEnum.STATUS_DONE.getCode());
addRecordList.add(plateGoodsRecord);
apply.setPgrId(plateGoodsRecord.getId());
apply.setSurplus(BigDecimal.ZERO);
applyList.add(apply);
addVal = addVal.subtract(surplus);
if (BigDecimal.ZERO.equals(addVal)) {
break;
}
} else {
// 若不能完全满足一个需求单,只能行需求单的剩余添加量信息
// 若不能完全满足一个需求单,只能更新需求单的剩余添加量信息
plateGoodsRecord.setSurplus(surplus.subtract(addVal));
plateGoodsRecord.setStatus(PlateGoodsEnum.STATUS_USING.getCode());
addRecordList.add(plateGoodsRecord);
apply.setPgrId(plateGoodsRecord.getId());
apply.setSurplus(surplus.subtract(addVal));
applyList.add(apply);
break;
}
}
// 4. 记录添加的需求单信息; 关联单号, 本次剩余单号余量
String addAbortRecordNo = addRecordList.stream()
.map(PlateGoodsRecord::getDemandCode)
.filter(code -> code != null && !code.trim().isEmpty())
.collect(Collectors.joining(","));
.map(PlateGoodsRecord::getDemandCode)
.filter(code -> code != null && !code.trim().isEmpty())
.collect(Collectors.joining(","));
for (PlateGoodsRecord plateGoodsRecord : addRecordList) {
plateGoodsRecord.setInvolvingRecordCode(addAbortRecordNo);
plateGoodsRecord.setSurplus(notAddVal);
}
goodsRecordService.updateBatchById(addRecordList);
saveBatch(applyList);
return true;
}
@Override
public List<YieldOrder> listDetailYieldOrder(Long id) {
// 先查询关联的明细列表
List<PlateGoodsApplyDetail> detailList = applyDetailService.listByApplyId(id);
if (Func.isEmpty(detailList)) {
return null;
}
List<Long> yieldOrderIds = detailList.stream().map(PlateGoodsApplyDetail::getYoId).collect(Collectors.toList());
// 再根据明细中的生产订单id查询订单
List<YieldOrder> yieldOrderList = yieldOrderService.listByIds(yieldOrderIds);
return yieldOrderList;
}
}

@ -40,6 +40,15 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
return page.setRecords(dataList);
}
@Override
public IPage<PlateGoodsRecord> selectPageUsed(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) {
List<PlateGoodsEnum> statusList = new ArrayList<>();
statusList.add(PlateGoodsEnum.STATUS_USING);
statusList.add(PlateGoodsEnum.STATUS_DONE);
List<PlateGoodsRecord> dataList = baseMapper.selectPageUsed(page, entity, statusList);
return page.setRecords(dataList);
}
@Override
public List<PlateGoodsRecord> listNoFinished(Long wcId, Integer dayRange) {
List<PlateGoodsRecord> dataList = baseMapper.listNoFinished(wcId, dayRange, PlateGoodsEnum.STATUS_PASS.getCode());

@ -24,6 +24,7 @@ import org.springblade.desk.dashboard.constant.DsPartConst;
import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
import org.springblade.desk.dashboard.pojo.enums.DsCraftEnum;
import org.springblade.desk.dashboard.service.IDsCraftService;
import org.springblade.desk.dashboard.service.IDsPartService;
import org.springblade.desk.dashboard.service.IDsProcessService;
@ -41,10 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.*;
/**
* 服务实现类
@ -120,49 +118,46 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Override
public String dataVerify(List<Long> ids) {
// 先根据ID查询订单列表
LambdaQueryWrapper<YieldOrder> queryWrapper = Wrappers.lambdaQuery(YieldOrder.class)
.eq(YieldOrder::getIsDeleted, CommonConstant.DELETE_FALSE)
.in(YieldOrder::getId, ids);
LambdaQueryWrapper<YieldOrder> queryWrapper = Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getIsDeleted, CommonConstant.DELETE_FALSE).in(YieldOrder::getId, ids);
List<YieldOrder> yieldOrderList = baseMapper.selectList(queryWrapper);
// 遍历订单列表,根据异常钻状态,判断调用的校验方法
// for (YieldOrder yieldOrder : yieldOrderList) {
// if (YieldOrderEnum.VALIDATION_NO.getCode() == yieldOrder.getValidationResult()
// || YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode() == yieldOrder.getValidationResult()) {
// // 进行数据校验,验证不通过,不进行后续验证,直接返回;
// if (!this.verifyYieldOrderData(yieldOrder)) {
// continue;
// }
// // 进行工艺校验,验证不通过,不进行后续验证,直接返回;
// if (!this.verifyYieldOrderCraft(yieldOrder)) {
// continue;
// }
// // 进行资源校验,验证不通过,不进行后续验证,直接返回;
// if (!this.verifyYieldOrderResource(yieldOrder)) {
// continue;
// }
// // 最后进行超期校验
// this.verifyYieldOrderDelivery(yieldOrder);
// } else if (YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode() == yieldOrder.getValidationResult()) {
// // 进行工艺校验,验证不通过,不进行后续验证,直接返回;
// if (!this.verifyYieldOrderCraft(yieldOrder)) {
// continue;
// }
// // 进行资源校验,验证不通过,不进行后续验证,直接返回;
// if (!this.verifyYieldOrderResource(yieldOrder)) {
// continue;
// }
// // 最后进行超期校验
// this.verifyYieldOrderDelivery(yieldOrder);
// } else if (YieldOrderEnum.VALIDATION_RESULT_LESS_RESOURCE.getCode() == yieldOrder.getValidationResult()) {
// // 进行资源校验,验证不通过,不进行后续验证,直接返回;
// if (!this.verifyYieldOrderResource(yieldOrder)) {
// continue;
// }
// // 最后进行超期校验
// this.verifyYieldOrderDelivery(yieldOrder);
// }
// }
for (YieldOrder yieldOrder : yieldOrderList) {
if (YieldOrderEnum.VALIDATION_NO.getCode() == yieldOrder.getValidationResult() || YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode() == yieldOrder.getValidationResult()) {
// 进行数据校验,验证不通过,不进行后续验证,直接返回;
if (!this.verifyYieldOrderData(yieldOrder)) {
continue;
}
// 进行工艺校验,验证不通过,不进行后续验证,直接返回;
if (!this.verifyYieldOrderCraft(yieldOrder)) {
continue;
}
// 进行资源校验,验证不通过,不进行后续验证,直接返回;
if (!this.verifyYieldOrderResource(yieldOrder)) {
continue;
}
// 最后进行超期校验
this.verifyYieldOrderDelivery(yieldOrder);
} else if (YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode() == yieldOrder.getValidationResult()) {
// 进行工艺校验,验证不通过,不进行后续验证,直接返回;
if (!this.verifyYieldOrderCraft(yieldOrder)) {
continue;
}
// 进行资源校验,验证不通过,不进行后续验证,直接返回;
if (!this.verifyYieldOrderResource(yieldOrder)) {
continue;
}
// 最后进行超期校验
this.verifyYieldOrderDelivery(yieldOrder);
} else if (YieldOrderEnum.VALIDATION_RESULT_LESS_RESOURCE.getCode() == yieldOrder.getValidationResult()) {
// 进行资源校验,验证不通过,不进行后续验证,直接返回;
if (!this.verifyYieldOrderResource(yieldOrder)) {
continue;
}
// 最后进行超期校验
this.verifyYieldOrderDelivery(yieldOrder);
}
}
return "校验成功";
}
@ -221,7 +216,9 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
// 2. 当生产订单类型为:表处理,壳体,插针订单,当镀种为空或面积为0时,不得自动分派并提示
if (YieldOrderEnum.YIELD_TYPE_1.equals(yieldOrder.getYieldType()) || YieldOrderEnum.YIELD_TYPE_4.equals(yieldOrder.getYieldType()) || YieldOrderEnum.YIELD_TYPE_5.equals(yieldOrder.getYieldType())) {
if (YieldOrderEnum.YIELD_TYPE_1.equals(yieldOrder.getYieldType())
|| YieldOrderEnum.YIELD_TYPE_4.equals(yieldOrder.getYieldType())
|| YieldOrderEnum.YIELD_TYPE_5.equals(yieldOrder.getYieldType())) {
if (StringUtils.isBlank(yieldOrder.getPlate()) || yieldOrder.getYpArea() == 0) {
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode());
yieldOrder.setValidationTime(DateUtil.now());
@ -232,7 +229,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
// 3. 玻璃饼订单工艺路线包含外购不再自动分派,直接关闭订单
if (YieldOrderEnum.YIELD_TYPE_3.equals(yieldOrder.getYieldType()) && yieldOrder.getPrimaryCraft().contains(YieldOrderConst.PRIMARY_CRAFT_WG)) {
if (YieldOrderEnum.YIELD_TYPE_3.equals(yieldOrder.getYieldType())
&& yieldOrder.getPrimaryCraft().contains(YieldOrderConst.PRIMARY_CRAFT_WG)) {
yieldOrder.setStatus(YieldOrderEnum.STATUS_CLOSED.getCode());
yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("玻璃饼订单工艺路线包含外购,关闭订单无需自动分派");
@ -241,7 +239,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
// 4. 如果是烧结订单并且不是返工单据,则需要验证子件清单是否存在,存在跳过,不存在则新增
if (YieldOrderEnum.YIELD_TYPE_2.equals(yieldOrder.getYieldType()) && StringUtils.isBlank(yieldOrder.getReworkCode())) {
if (YieldOrderEnum.YIELD_TYPE_2.equals(yieldOrder.getYieldType())
&& StringUtils.isBlank(yieldOrder.getReworkCode())) {
//验证订单是否存在当前B号,如果不存在则不能下发
if (StringUtils.isBlank(yieldOrder.getRoamNo())) {
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode());
@ -271,7 +270,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
}
//TODO 急件维护标识厂内
//TODO 急件维护标识厂内, 急件维护功能未添加
// pjAutomaticDispatchService.urgentUpholdOrder(yieldOrder);
return true;
@ -280,33 +279,33 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean verifyYieldOrderCraft(YieldOrder yieldOrder) {
//TODO 匹配工艺
if (StringUtils.isNotBlank(yieldOrder.getReworkCode())) {
// 返工订单不进行校验
if (StringUtils.isBlank(yieldOrder.getReworkCode())) {
return Boolean.TRUE;
}
String roamNo = yieldOrder.getRoamNo();
String productIdent = yieldOrder.getProductIdent();
String prodIdent = yieldOrder.getProductIdent();
String partCode = yieldOrder.getPartCode();
DsCraftEntity craft = null;
//石墨模零件不考虑B号匹配因素
// if (YieldOrderEnum.YIELD_TYPE_6.equals(yieldOrder.getYieldType())) {
// craft = dsCraftService.getCraft(partCode, null, prodIdent, DsCraft.RANK_TWO);
// } else {
// Short rank = judgeRank(yieldOrder);
// if (rank == null) {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraft.RANK_TWO);
// if (craft == null) {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraft.RANK_ONE);
// }
// if (craft == null) {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraft.RANK_THREE);
// }
// } else {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, rank);
// }
// }
// 石墨模零件不考虑B号匹配因素
if (YieldOrderEnum.YIELD_TYPE_6.equals(yieldOrder.getYieldType())) {
craft = dsCraftService.getCraft(partCode, null, prodIdent, DsCraftEnum.RANK_TWO.getCode(), null);
} else {
Integer rank = judgeRank(yieldOrder);
if (rank == null) {
craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraftEnum.RANK_TWO.getCode(), null);
if (craft == null) {
craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraftEnum.RANK_ONE.getCode(), null);
}
if (craft == null) {
craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraftEnum.RANK_THREE.getCode(), null);
}
} else {
craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, rank, null);
}
}
if (ObjectUtil.isEmpty(craft)) {
String errMsg = StringUtils.isNotBlank(roamNo) ? "订单流转单号匹配失败,请联系工艺员!" : "未找到B号工艺,请核实订单是否存在B号!";
@ -372,7 +371,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Override
public Boolean verifyYieldOrderResource(YieldOrder yieldOrder) {
return null;
return Boolean.TRUE;
}
@Override
@ -380,7 +379,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 根据工艺, 计算订单的额定加工时长
// 交期时间-当前时间, 与 额定加工时长对比, 判断是否有超期风险
return null;
return Boolean.TRUE;
}
@Override
@ -864,4 +863,45 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 下个编码
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
}
/**
* 判定工艺级别
*
* @param yieldOrder
* @return
* @throws BusinessException
*/
private Integer judgeRank(YieldOrder yieldOrder) {
DsPartEntity part = dsPartService.selectDsPartByPatCodeAndVersion(yieldOrder.getPartCode(), null);
String configNo = part.getConfigCode();
String prodIdent = yieldOrder.getProductIdent();
// TODO 工序资质未维护
// BsProcedureQua qua = bsProcedureQuaService.getByPqCode(prodIdent);
// if (qua == null) {
// throw new BusinessException("basic.not.prodIdent", new String[]{prodIdent});
// }
// 判定是否为镀金零件
if (CommonConstant.BOOLEAN_TRUE.equals(part.getGoldMark())) {
//zxh 20251015 针对局部镀厚金零件,工作订单备注中包含大小写的HTBY时,执行二级工艺
if (yieldOrder.getYpMemo() != null && yieldOrder.getYpMemo().toLowerCase(Locale.ROOT).contains("htby")) {
return DsCraftEnum.RANK_TWO.getCode();
}
// if (qua.getGoldMark()) {
// // 生产订单总面积大于20时取一级工艺
// if (yieldOrder.getYpArea() * yieldOrder.getYpQty() > 20) {
// return DsCraftEnum.RANK_ONE.getCode();
// }
// }
return DsCraftEnum.RANK_TWO.getCode();
}
if ("E9".equals(configNo) || "E12".equals(configNo)) {
//E9判定
if (yieldOrder.getBatchNo().contains("MP") || yieldOrder.getBatchNo().contains("mp")) {
return DsCraftEnum.RANK_ONE.getCode();
}
return DsCraftEnum.RANK_TWO.getCode();
}
return null;
}
}

@ -28,11 +28,22 @@ public class MoldApplyWrapper extends BaseEntityWrapper<MoldApply, MoldApplyVo>
User user = UserCache.getUser(entity.getCreateUser());
if (Func.isNotEmpty(user)) {
vo.setCreateUserName(user.getAccount());
vo.setCreateUserName(user.getName());
}
User keeper = UserCache.getUser(entity.getKeeper());
if (Func.isNotEmpty(keeper)) {
vo.setKeeperName(keeper.getName());
}
User releaser = UserCache.getUser(entity.getReleaser());
if (Func.isNotEmpty(releaser)) {
vo.setReleaserName(releaser.getName());
}
vo.setStatusName(MoldApplyEnum.getName(entity.getStatus()));
vo.setMafTypeName(MoldApplyEnum.getName(entity.getMafType()));
return vo;
}
}

@ -236,11 +236,125 @@ ALTER TABLE mes_yield_plan
ADD check_close_time DATE NULL;
COMMENT ON COLUMN mes_yield_plan.check_close_time IS '验证关闭时间';
ALTER TABLE mes_yield_plan
ADD check_totqty_time DATE NULL;
ADD check_totqty_time DATE NULL;
COMMENT ON COLUMN mes_yield_plan.check_totqty_time IS '验证完工数时间';
ALTER TABLE MES_RECORDER
MODIFY (RECORDER NVARCHAR2(255));
ALTER TABLE mes_recorder
MODIFY (recorder NVARCHAR2(255));
--varchar不允许修改为clob类型
ALTER TABLE MES_RECORDER DROP COLUMN MEMO;
ALTER TABLE MES_RECORDER ADD (MEMO CLOB);
ALTER TABLE mes_recorder
DROP COLUMN memo;
ALTER TABLE mes_recorder
ADD (memo CLOB);
ALTER TABLE mes_plate_goods_record RENAME COLUMN plate_goods_code TO goods_code;
DROP TABLE mes_plate_goods_apply_detail;
CREATE TABLE mes_plate_goods_apply_detail
(
id NUMBER(20, 0) NOT NULL ENABLE,
tenant_id NVARCHAR2(12),
create_user NUMBER(20, 0),
create_time DATE,
create_dept NUMBER(20, 0),
update_user NUMBER(20, 0),
update_time DATE,
status NUMBER(11, 0) NOT NULL ENABLE,
is_deleted NUMBER(11, 0),
pga_id NUMBER(20, 0),
yo_id NVARCHAR2(255)
) TABLESPACE jonhon_mes_data;
COMMENT ON TABLE mes_plate_goods_apply_detail IS '烧结模具计划-申报';
COMMENT ON COLUMN mes_plate_goods_apply_detail.id IS '主键';
COMMENT ON COLUMN mes_plate_goods_apply_detail.create_user IS '创建人';
COMMENT ON COLUMN mes_plate_goods_apply_detail.create_time IS '创建时间';
COMMENT ON COLUMN mes_plate_goods_apply_detail.create_dept IS '创建部门';
COMMENT ON COLUMN mes_plate_goods_apply_detail.update_user IS '更新人';
COMMENT ON COLUMN mes_plate_goods_apply_detail.update_time IS '更新时间';
COMMENT ON COLUMN mes_plate_goods_apply_detail.status IS '状态';
COMMENT ON COLUMN mes_plate_goods_apply_detail.is_deleted IS '删除标记';
COMMENT ON COLUMN mes_plate_goods_apply_detail.pga_id IS '添加量申报ID';
COMMENT ON COLUMN mes_plate_goods_apply_detail.yo_id IS '生产订单ID';
-- MES_PLATE_GOODS_APPLY definition
-- DDL generated by DBeaver
-- WARNING: It may differ from actual native database DDL
-- Drop table
DROP TABLE mes_plate_goods_apply;
CREATE TABLE mes_plate_goods_apply
(
id NUMBER(20, 0) NOT NULL ENABLE,
tenant_id NVARCHAR2(12),
create_user NUMBER(20, 0),
create_time DATE,
create_dept NUMBER(20, 0),
update_user NUMBER(20, 0),
update_time DATE,
status NUMBER(11, 0) NOT NULL ENABLE,
is_deleted NUMBER(11, 0) DEFAULT 0,
"APPROVAL_MAN" NUMBER(20, 0),
"APPROVAL_TIME" DATE,
"APPROVAL_STATUS" NUMBER(20, 0),
"APPROVAL_MEMO" NVARCHAR2(255),
bo_id NUMBER(20, 0),
br_id NUMBER(20, 0),
ac_id NUMBER(20, 0),
pgr_id NUMBER(20, 0),
code_num NVARCHAR2(255),
"WC_ID" NUMBER(20, 0) NOT NULL ENABLE,
"GOODS_CODE" NVARCHAR2(255) NOT NULL ENABLE,
"GOODS_DEMAND" NUMBER(20, 10) DEFAULT 0 NOT NULL ENABLE,
"SILVER_POTASSIUM" NUMBER(20, 10) DEFAULT 0 NOT NULL ENABLE,
"COEFFICIENT" NUMBER(20, 10) DEFAULT 0 NOT NULL ENABLE,
"DECLARED_QUOTA" NUMBER(20, 10) DEFAULT 0 NOT NULL ENABLE,
"DECLARED_SILVER" NUMBER(20, 10) DEFAULT 0 NOT NULL ENABLE,
"DECLARED_STATUS" NUMBER DEFAULT 0 NOT NULL ENABLE,
"GOODS_BO_ID" NUMBER(20, 0),
"COEFFICIENT_BO_ID" NUMBER(20, 0),
"PGR_CODE" NVARCHAR2(255),
"SURPLUS" NUMBER(20, 10) DEFAULT 0,
"SILVER_POTASSIUM_RESIDUE" NUMBER(20, 10) DEFAULT 0,
"DEMAND_CODE" VARCHAR2(100),
"INVOLVING_RECORD_CODE" VARCHAR2(255),
"NOT_ADD_VAL" NUMBER(20, 10),
"DETAIL_ORDER_NUM" NUMBER(8, 0),
PRIMARY KEY (id)
) TABLESPACE "JONHON_MES_DATA";
COMMENT ON TABLE mes_plate_goods_apply IS '镀层物料申报添加量';
COMMENT ON COLUMN mes_plate_goods_apply.id IS '主键';
COMMENT ON COLUMN mes_plate_goods_apply.tenant_id IS '租户ID';
COMMENT ON COLUMN mes_plate_goods_apply.create_user IS '创建人';
COMMENT ON COLUMN mes_plate_goods_apply.create_dept IS '创建部门';
COMMENT ON COLUMN mes_plate_goods_apply.create_time IS '创建时间';
COMMENT ON COLUMN mes_plate_goods_apply.update_user IS '修改人';
COMMENT ON COLUMN mes_plate_goods_apply.update_time IS '修改时间';
COMMENT ON COLUMN mes_plate_goods_apply.status IS '状态';
COMMENT ON COLUMN mes_plate_goods_apply.is_deleted IS '是否已删除';
COMMENT ON COLUMN mes_plate_goods_apply.wc_id IS '作业中心';
COMMENT ON COLUMN mes_plate_goods_apply.goods_code IS '镀层物料';
COMMENT ON COLUMN mes_plate_goods_apply.goods_demand IS '物料需求定额';
COMMENT ON COLUMN mes_plate_goods_apply.silver_potassium IS '上报银钾';
COMMENT ON COLUMN mes_plate_goods_apply.coefficient IS '银钾系数';
COMMENT ON COLUMN mes_plate_goods_apply.approval_man IS '审批人';
COMMENT ON COLUMN mes_plate_goods_apply.approval_time IS '审批时间';
COMMENT ON COLUMN mes_plate_goods_apply.approval_status IS '审批状态';
COMMENT ON COLUMN mes_plate_goods_apply.approval_memo IS '审批结果';
COMMENT ON COLUMN mes_plate_goods_apply.declared_quota IS '已申报定额';
COMMENT ON COLUMN mes_plate_goods_apply.declared_silver IS '已申报银钾';
COMMENT ON COLUMN mes_plate_goods_apply.declared_status IS '申报状态';
COMMENT ON COLUMN mes_plate_goods_apply.goods_bo_id IS '物料采购id';
COMMENT ON COLUMN mes_plate_goods_apply.coefficient_bo_id IS '银钾采购id';
COMMENT ON COLUMN mes_plate_goods_apply.surplus IS '剩余量';
COMMENT ON COLUMN mes_plate_goods_apply.silver_potassium_residue IS '上报银钾剩余量';
COMMENT ON COLUMN mes_plate_goods_apply.demand_code IS '需求单号';
COMMENT ON COLUMN mes_plate_goods_apply.involving_record_code IS '本次添加涉及单号';
COMMENT ON COLUMN mes_plate_goods_apply.not_add_val IS '本次剩余单号余量';
COMMENT ON COLUMN mes_plate_goods_apply.detail_order_num IS '本次关联订单数量';
ALTER TABLE MES_PLATE_GOODS_APPLY ADD GOODS_NAME VARCHAR2(100) NULL;
COMMENT ON COLUMN MES_PLATE_GOODS_APPLY.GOODS_NAME IS '镀层物料名称';
ALTER TABLE MES_PLATE_GOODS_RECORD ADD GOODS_NAME VARCHAR2(100) NULL;
COMMENT ON COLUMN MES_PLATE_GOODS_RECORD.GOODS_NAME IS '镀层物料名称';

Loading…
Cancel
Save