【包装管理】 DB脚本及接口

dev
siontion 4 months ago
parent 7a4bfd94a1
commit 84d7fd2a54

@ -121,4 +121,6 @@ public interface ErrorCodeConstants {
ErrorCode SALE_ORDER_COST_DETAIL_NOT_EXISTS = new ErrorCode(1_013_002, "项目订单成本汇算明细不存在"); ErrorCode SALE_ORDER_COST_DETAIL_NOT_EXISTS = new ErrorCode(1_013_002, "项目订单成本汇算明细不存在");
/*************用友定时任务*************/ /*************用友定时任务*************/
ErrorCode CURRENT_STOCK_NOT_EXISTS = new ErrorCode(1_014_001, "t用友T+库存(现存货)不存在"); ErrorCode CURRENT_STOCK_NOT_EXISTS = new ErrorCode(1_014_001, "t用友T+库存(现存货)不存在");
/*************包装管理*************/
ErrorCode SALE_ORDER_PACKING_CLAUSE_NOT_EXISTS = new ErrorCode(1_015_001, "生产订单包装规则不存在");
} }

@ -0,0 +1,106 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo.*;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclause.SaleOrderPackingClauseDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclausedetail.SaleOrderPackingClauseDetailDO;
import com.chanko.yunxi.mes.module.biz.service.saleorderpackingclause.SaleOrderPackingClauseService;
@Tag(name = "管理后台 - 生产订单包装规则")
@RestController
@RequestMapping("/biz/sale-order-packing-clause")
@Validated
public class SaleOrderPackingClauseController {
@Resource
private SaleOrderPackingClauseService saleOrderPackingClauseService;
@PostMapping("/create")
@Operation(summary = "创建生产订单包装规则")
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:create')")
public CommonResult<Long> createSaleOrderPackingClause(@Valid @RequestBody SaleOrderPackingClauseSaveReqVO createReqVO) {
return success(saleOrderPackingClauseService.createSaleOrderPackingClause(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新生产订单包装规则")
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:update')")
public CommonResult<Boolean> updateSaleOrderPackingClause(@Valid @RequestBody SaleOrderPackingClauseSaveReqVO updateReqVO) {
saleOrderPackingClauseService.updateSaleOrderPackingClause(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除生产订单包装规则")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:delete')")
public CommonResult<Boolean> deleteSaleOrderPackingClause(@RequestParam("id") Long id) {
saleOrderPackingClauseService.deleteSaleOrderPackingClause(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得生产订单包装规则")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:query')")
public CommonResult<SaleOrderPackingClauseRespVO> getSaleOrderPackingClause(@RequestParam("id") Long id) {
SaleOrderPackingClauseDO saleOrderPackingClause = saleOrderPackingClauseService.getSaleOrderPackingClause(id);
return success(BeanUtils.toBean(saleOrderPackingClause, SaleOrderPackingClauseRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得生产订单包装规则分页")
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:query')")
public CommonResult<PageResult<SaleOrderPackingClauseRespVO>> getSaleOrderPackingClausePage(@Valid SaleOrderPackingClausePageReqVO pageReqVO) {
PageResult<SaleOrderPackingClauseDO> pageResult = saleOrderPackingClauseService.getSaleOrderPackingClausePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, SaleOrderPackingClauseRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出生产订单包装规则 Excel")
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:export')")
@OperateLog(type = EXPORT)
public void exportSaleOrderPackingClauseExcel(@Valid SaleOrderPackingClausePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<SaleOrderPackingClauseDO> list = saleOrderPackingClauseService.getSaleOrderPackingClausePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "生产订单包装规则.xls", "数据", SaleOrderPackingClauseRespVO.class,
BeanUtils.toBean(list, SaleOrderPackingClauseRespVO.class));
}
// ==================== 子表(生产订单包装规则明细) ====================
@GetMapping("/sale-order-packing-clause-detail/list-by-clause-id")
@Operation(summary = "获得生产订单包装规则明细列表")
@Parameter(name = "clauseId", description = "项目订单包装规则id")
@PreAuthorize("@ss.hasPermission('biz:sale-order-packing-clause:query')")
public CommonResult<List<SaleOrderPackingClauseDetailDO>> getSaleOrderPackingClauseDetailListByClauseId(@RequestParam("clauseId") Long clauseId) {
return success(saleOrderPackingClauseService.getSaleOrderPackingClauseDetailListByClauseId(clauseId));
}
}

@ -0,0 +1,31 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 生产订单包装规则分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SaleOrderPackingClausePageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "项目订单id")
private Long projectOrderId;
@Schema(description = "规则名称")
private String ruleName;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,32 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 生产订单包装规则 Response VO")
@Data
@ExcelIgnoreUnannotated
public class SaleOrderPackingClauseRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "项目订单id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("项目订单id")
private Long projectOrderId;
@Schema(description = "规则名称")
@ExcelProperty("规则名称")
private String ruleName;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,27 @@
package com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclausedetail.SaleOrderPackingClauseDetailDO;
@Schema(description = "管理后台 - 生产订单包装规则新增/修改 Request VO")
@Data
public class SaleOrderPackingClauseSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "项目订单id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "项目订单id不能为空")
private Long projectOrderId;
@Schema(description = "规则名称")
private String ruleName;
@Schema(description = "生产订单包装规则明细列表")
private List<SaleOrderPackingClauseDetailDO> saleOrderPackingClauseDetails;
}

@ -0,0 +1,39 @@
package com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclause;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("project_sale_order_packing_clause")
@KeySequence("project_sale_order_packing_clause_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaleOrderPackingClauseDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
* id
*/
private Long projectOrderId;
/**
*
*/
private String ruleName;
}

@ -0,0 +1,47 @@
package com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclausedetail;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("project_sale_order_packing_clause_detail")
@KeySequence("project_sale_order_packing_clause_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaleOrderPackingClauseDetailDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
* id
*/
private Long projectOrderId;
/**
* id
*/
private Long clauseId;
/**
* id
*/
private Long materialId;
/**
*
*/
private Integer amount;
}

@ -0,0 +1,28 @@
package com.chanko.yunxi.mes.module.biz.dal.mysql.saleorderpackingclausedetail;
import java.util.*;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclausedetail.SaleOrderPackingClauseDetailDO;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
*
* @author
*/
@Mapper
public interface SaleOrderPackingClauseDetailMapper extends BaseMapperX<SaleOrderPackingClauseDetailDO> {
default List<SaleOrderPackingClauseDetailDO> selectListByClauseId(Long clauseId) {
return selectList(SaleOrderPackingClauseDetailDO::getClauseId, clauseId);
}
default int deleteByClauseId(Long clauseId) {
return delete(SaleOrderPackingClauseDetailDO::getClauseId, clauseId);
}
}

@ -0,0 +1,29 @@
package com.chanko.yunxi.mes.module.biz.dal.mysql.saleorderpackingclause;
import java.util.*;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclause.SaleOrderPackingClauseDO;
import org.apache.ibatis.annotations.Mapper;
import com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface SaleOrderPackingClauseMapper extends BaseMapperX<SaleOrderPackingClauseDO> {
default PageResult<SaleOrderPackingClauseDO> selectPage(SaleOrderPackingClausePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SaleOrderPackingClauseDO>()
.eqIfPresent(SaleOrderPackingClauseDO::getId, reqVO.getId())
.eqIfPresent(SaleOrderPackingClauseDO::getProjectOrderId, reqVO.getProjectOrderId())
.likeIfPresent(SaleOrderPackingClauseDO::getRuleName, reqVO.getRuleName())
.betweenIfPresent(SaleOrderPackingClauseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(SaleOrderPackingClauseDO::getId));
}
}

@ -0,0 +1,66 @@
package com.chanko.yunxi.mes.module.biz.service.saleorderpackingclause;
import java.util.*;
import javax.validation.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo.*;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclause.SaleOrderPackingClauseDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclausedetail.SaleOrderPackingClauseDetailDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface SaleOrderPackingClauseService {
/**
*
*
* @param createReqVO
* @return
*/
Long createSaleOrderPackingClause(@Valid SaleOrderPackingClauseSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateSaleOrderPackingClause(@Valid SaleOrderPackingClauseSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteSaleOrderPackingClause(Long id);
/**
*
*
* @param id
* @return
*/
SaleOrderPackingClauseDO getSaleOrderPackingClause(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<SaleOrderPackingClauseDO> getSaleOrderPackingClausePage(SaleOrderPackingClausePageReqVO pageReqVO);
// ==================== 子表(生产订单包装规则明细) ====================
/**
*
*
* @param clauseId id
* @return
*/
List<SaleOrderPackingClauseDetailDO> getSaleOrderPackingClauseDetailListByClauseId(Long clauseId);
}

@ -0,0 +1,112 @@
package com.chanko.yunxi.mes.module.biz.service.saleorderpackingclause;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.saleorderpackingclause.vo.*;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclause.SaleOrderPackingClauseDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.saleorderpackingclausedetail.SaleOrderPackingClauseDetailDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.biz.dal.mysql.saleorderpackingclause.SaleOrderPackingClauseMapper;
import com.chanko.yunxi.mes.module.biz.dal.mysql.saleorderpackingclausedetail.SaleOrderPackingClauseDetailMapper;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class SaleOrderPackingClauseServiceImpl implements SaleOrderPackingClauseService {
@Resource
private SaleOrderPackingClauseMapper saleOrderPackingClauseMapper;
@Resource
private SaleOrderPackingClauseDetailMapper saleOrderPackingClauseDetailMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createSaleOrderPackingClause(SaleOrderPackingClauseSaveReqVO createReqVO) {
// 插入
SaleOrderPackingClauseDO saleOrderPackingClause = BeanUtils.toBean(createReqVO, SaleOrderPackingClauseDO.class);
saleOrderPackingClauseMapper.insert(saleOrderPackingClause);
// 插入子表
createSaleOrderPackingClauseDetailList(saleOrderPackingClause.getId(), createReqVO.getSaleOrderPackingClauseDetails());
// 返回
return saleOrderPackingClause.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateSaleOrderPackingClause(SaleOrderPackingClauseSaveReqVO updateReqVO) {
// 校验存在
validateSaleOrderPackingClauseExists(updateReqVO.getId());
// 更新
SaleOrderPackingClauseDO updateObj = BeanUtils.toBean(updateReqVO, SaleOrderPackingClauseDO.class);
saleOrderPackingClauseMapper.updateById(updateObj);
// 更新子表
updateSaleOrderPackingClauseDetailList(updateReqVO.getId(), updateReqVO.getSaleOrderPackingClauseDetails());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteSaleOrderPackingClause(Long id) {
// 校验存在
validateSaleOrderPackingClauseExists(id);
// 删除
saleOrderPackingClauseMapper.deleteById(id);
// 删除子表
deleteSaleOrderPackingClauseDetailByClauseId(id);
}
private void validateSaleOrderPackingClauseExists(Long id) {
if (saleOrderPackingClauseMapper.selectById(id) == null) {
throw exception(SALE_ORDER_PACKING_CLAUSE_NOT_EXISTS);
}
}
@Override
public SaleOrderPackingClauseDO getSaleOrderPackingClause(Long id) {
return saleOrderPackingClauseMapper.selectById(id);
}
@Override
public PageResult<SaleOrderPackingClauseDO> getSaleOrderPackingClausePage(SaleOrderPackingClausePageReqVO pageReqVO) {
return saleOrderPackingClauseMapper.selectPage(pageReqVO);
}
// ==================== 子表(生产订单包装规则明细) ====================
@Override
public List<SaleOrderPackingClauseDetailDO> getSaleOrderPackingClauseDetailListByClauseId(Long clauseId) {
return saleOrderPackingClauseDetailMapper.selectListByClauseId(clauseId);
}
private void createSaleOrderPackingClauseDetailList(Long clauseId, List<SaleOrderPackingClauseDetailDO> list) {
list.forEach(o -> o.setClauseId(clauseId));
saleOrderPackingClauseDetailMapper.insertBatch(list);
}
private void updateSaleOrderPackingClauseDetailList(Long clauseId, List<SaleOrderPackingClauseDetailDO> list) {
deleteSaleOrderPackingClauseDetailByClauseId(clauseId);
list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下1id 冲突2updateTime 不更新
createSaleOrderPackingClauseDetailList(clauseId, list);
}
private void deleteSaleOrderPackingClauseDetailByClauseId(Long clauseId) {
saleOrderPackingClauseDetailMapper.deleteByClauseId(clauseId);
}
}

@ -0,0 +1,12 @@
<?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.chanko.yunxi.mes.module.biz.dal.mysql.saleorderpackingclause.SaleOrderPackingClauseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -344,4 +344,35 @@ CREATE TABLE `pro_task_dispatch_detail_ratio` (
ALTER TABLE `pro_unqualified_notification` ADD COLUMN `product_amount` int(11) DEFAULT NULL COMMENT '生产总数'; ALTER TABLE `pro_unqualified_notification` ADD COLUMN `product_amount` int(11) DEFAULT NULL COMMENT '生产总数';
ALTER TABLE `pro_unqualified_notification` ADD COLUMN `check_amount` int(11) DEFAULT NULL COMMENT '检验数量'; ALTER TABLE `pro_unqualified_notification` ADD COLUMN `check_amount` int(11) DEFAULT NULL COMMENT '检验数量';
ALTER TABLE `pro_unqualified_notification` ADD COLUMN `solution_content` varchar(512) DEFAULT NULL COMMENT '解决方案'; ALTER TABLE `pro_unqualified_notification` ADD COLUMN `solution_content` varchar(512) DEFAULT NULL COMMENT '解决方案';
ALTER TABLE `pro_unqualified_notification` ADD COLUMN `punishment_opinion` varchar(512) DEFAULT NULL COMMENT '处罚意见'; ALTER TABLE `pro_unqualified_notification` ADD COLUMN `punishment_opinion` varchar(512) DEFAULT NULL COMMENT '处罚意见';
drop table if exists `project_sale_order_packing_clause`;
CREATE TABLE `project_sale_order_packing_clause` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增字段,唯一',
`project_order_id` bigint(20) NOT NULL COMMENT '项目订单id',
`rule_name` varchar(255) DEFAULT NULL COMMENT '规则名称',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='生产订单包装规则表';
drop table if exists `project_sale_order_packing_clause_detail`;
CREATE TABLE `project_sale_order_packing_clause_detail` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增字段,唯一',
`project_order_id` bigint(20) DEFAULT NULL COMMENT '项目订单id',
`clause_id` bigint(20) NOT NULL COMMENT '项目订单包装规则id',
`material_id` bigint(20) NOT NULL COMMENT '产品id',
`amount` int(10) DEFAULT NULL COMMENT '每箱配比',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='生产订单包装规则明细表';
Loading…
Cancel
Save