feat(purchase): 添加获取上一车车次号接口
- 新增 getLastVehicleNo 接口用于查询最新车次号 - 在 PurchaseOrderController 中添加对应 GET 接口 - 实现 LastVehicleNoQry 查询执行器及查询逻辑 - 扩展相关 DTO 和 Gateway 接口定义 - 更新 OrderDealer 实体类及其映射配置 - 添加新的查询参数类 LastVehicleNoQry - 在 CostItem 中增加 requireQuantityAndPrice 字段 - 扩展 CostItemCostTypeEnum 枚举值
This commit is contained in:
parent
9401bb7483
commit
ab0151e84d
156
.lingma/rules/api_addition_guide.md
Normal file
156
.lingma/rules/api_addition_guide.md
Normal file
@ -0,0 +1,156 @@
|
||||
---
|
||||
trigger: manual
|
||||
---
|
||||
|
||||
# 新增接口需要添加的组件清单
|
||||
|
||||
注意:
|
||||
不用管 erp-turbo-svc 这个目录的代码
|
||||
|
||||
本文档描述了在本项目中添加一个新的API接口时需要修改或创建的组件。
|
||||
|
||||
## 1. API层 (接口定义层)
|
||||
|
||||
注意这个 biz 可以是其他的名,如:user、goods、order等
|
||||
|
||||
### 1.1 DTO定义
|
||||
- **查询参数类(Query)**
|
||||
- 路径: `erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/`
|
||||
- 命名规范: `功能名+CountQry` 或 `功能名+ListQry` 或 `功能名+PageQry`
|
||||
- 继承: `Query` 基类
|
||||
- 注解: `@Data`, `@Schema`, `@EqualsAndHashCode(callSuper = true)`
|
||||
|
||||
- **命令类(Command)**
|
||||
- 路径: `erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/`
|
||||
- 命名规范: `功能名+CreateCmd` 或 `功能名+UpdateCmd` 或 `功能名+DestroyCmd`
|
||||
- 继承: `Command` 基类
|
||||
- 注解: `@Data`, `@Schema`, `@EqualsAndHashCode(callSuper = true)`
|
||||
|
||||
- **返回值类(Value Object)**
|
||||
- 路径: `erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/`
|
||||
- 命名规范: `功能名+VO`
|
||||
- 注解: `@Data`, `@Schema`
|
||||
|
||||
### 1.2 服务接口定义
|
||||
- **接口文件**
|
||||
- 路径: `erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/`
|
||||
- 文件命名: `功能名+ServiceI`
|
||||
- 方法签名: 定义业务方法
|
||||
|
||||
## 2. 业务实现层 (Biz层)
|
||||
|
||||
### 2.1 服务实现
|
||||
- **服务实现类**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/`
|
||||
- 文件命名: `功能名+ServiceImpl`
|
||||
- 实现接口: 实现对应的ServiceI接口
|
||||
- 注解: `@Service`, `@DubboService`, `@RequiredArgsConstructor`
|
||||
- 依赖注入: 通过构造函数注入执行器
|
||||
|
||||
### 2.2 查询执行器
|
||||
- **查询执行器类**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/`
|
||||
- 文件命名: `功能名+QryExe`
|
||||
- 注解: `@Component`, `@RequiredArgsConstructor`
|
||||
- 方法: `execute()`方法处理具体查询逻辑
|
||||
|
||||
### 2.3 命令执行器
|
||||
- **命令执行器类**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/`
|
||||
- 文件命名: `功能名+CmdExe`
|
||||
- 注解: `@Component`, `@RequiredArgsConstructor`
|
||||
- 方法: `execute()`方法处理具体命令逻辑
|
||||
|
||||
### 2.4 网关接口
|
||||
- **网关接口**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/`
|
||||
- 文件命名: `功能名+Gateway`
|
||||
- 定义数据访问方法
|
||||
|
||||
### 2.5 领域实体
|
||||
- **领域实体类**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/`
|
||||
- 文件命名: `功能名`
|
||||
- 注解: `@Data`, `@ToString`, `@Builder`, `@NoArgsConstructor`, `@AllArgsConstructor`
|
||||
|
||||
### 2.6 数据实体
|
||||
- **数据实体类**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/`
|
||||
- 文件命名: `功能名+DO`
|
||||
- 继承: `BaseDO`
|
||||
- 注解: `@Data`, `@TableName`, `@EqualsAndHashCode(callSuper = true)`
|
||||
|
||||
### 2.7 数据转换器
|
||||
- **转换器类**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/`
|
||||
- 文件命名: `功能名+Convert`
|
||||
- 注解: `@Mapper`
|
||||
- 方法: 定义DO与领域实体、DO与VO之间的转换方法
|
||||
|
||||
### 2.8 数据访问层
|
||||
- **Mapper接口**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/`
|
||||
- 文件命名: `功能名+Mapper`
|
||||
- 继承: `BaseMapper<实体类>`
|
||||
- 注解: `@Mapper`
|
||||
|
||||
- **Mapper XML文件**
|
||||
- 路径: `erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/`
|
||||
- 文件命名: `功能名+Mapper.xml`
|
||||
|
||||
## 3. 控制层 (Controller层)
|
||||
|
||||
### 3.1 控制器
|
||||
- **控制器类**
|
||||
- 路径: `erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/`
|
||||
- 文件命名: `功能名+Controller`
|
||||
- 注解: `@RestController`, `@RequestMapping`, `@RequiredArgsConstructor`
|
||||
- 方法注解: `@SaCheckLogin`, `@GetMapping`/`@PostMapping`, `@Operation`
|
||||
- Dubbo引用: `@DubboReference` 注解引入服务接口
|
||||
|
||||
## 4. 枚举类 (如有需要)
|
||||
|
||||
### 4.1 枚举定义
|
||||
- **枚举类**
|
||||
- 路径: `erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/`
|
||||
- 文件命名: `功能名+Enum`
|
||||
- 实现接口: `DictEnum`
|
||||
- 注解: `@Getter`, `@AllArgsConstructor`
|
||||
|
||||
## 5. 数据库变更 (如有需要)
|
||||
|
||||
### 5.1 数据库迁移脚本
|
||||
- **SQL脚本**
|
||||
- 路径: `db/migration/`
|
||||
- 文件命名: `V版本号__变更描述.sql`
|
||||
|
||||
## 6. 测试用例 (建议)
|
||||
|
||||
### 6.1 单元测试
|
||||
- **测试类**
|
||||
- 路径: 对应模块的test目录下
|
||||
- 文件命名: 被测试类+Test
|
||||
|
||||
## 7. 接口文档
|
||||
|
||||
### 7.1 Swagger注解
|
||||
- 所有Controller方法都应添加Swagger注解,包括:
|
||||
- `@Tag` - 类级别,描述接口分类
|
||||
- `@Operation` - 方法级别,描述接口功能
|
||||
- `@Schema` - 类属性级别,描述字段含义
|
||||
|
||||
## 8. 权限控制
|
||||
|
||||
### 8.1 权限注解
|
||||
- 使用`@SaCheckLogin`进行登录检查
|
||||
- 使用`@SaCheckRole`进行角色检查
|
||||
- 使用`@SaCheckPermission`进行权限检查(如需要)
|
||||
|
||||
## 9. 校验注解
|
||||
|
||||
### 9.1 参数校验
|
||||
- 在Query和Command类的字段上使用校验注解,如:
|
||||
- `@NotNull` - 非空校验
|
||||
- `@NotBlank` - 非空字符串校验
|
||||
- `@Min`/`@Max` - 数值范围校验
|
||||
- 在Controller方法参数中使用`@Validated`注解
|
||||
@ -9,6 +9,7 @@ import com.alibaba.cola.dto.Response;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.xunhong.erp.turbo.api.biz.api.PurchaseOrderServiceI;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.*;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.LastVehicleNoQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderCountQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderPageQry;
|
||||
@ -190,4 +191,11 @@ public class PurchaseOrderController {
|
||||
return Response.buildSuccess();
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("getLastVehicleNo")
|
||||
@Operation(summary = "获取上一车车次号", method = "GET")
|
||||
public SingleResponse<String> getLastVehicleNo(@ModelAttribute @Validated LastVehicleNoQry lastVehicleNoQry) {
|
||||
return SingleResponse.of(purchaseOrderService.getLastVehicleNo(lastVehicleNoQry));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.LastVehicleNoQry;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.PurchaseOrderGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author lingma
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class LastVehicleNoQryExe {
|
||||
|
||||
private final PurchaseOrderGateway purchaseOrderGateway;
|
||||
|
||||
public String execute(LastVehicleNoQry lastVehicleNoQry) {
|
||||
return purchaseOrderGateway.getLastVehicleNo(lastVehicleNoQry);
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.biz.app.service;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.api.PurchaseOrderServiceI;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.*;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.LastVehicleNoQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderCountQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderPageQry;
|
||||
@ -9,10 +10,7 @@ import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.PurchaseOrderVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.*;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.PurchaseOrderCountQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.PurchaseOrderListQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.PurchaseOrderPageQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.PurchaseOrderShowQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
@ -48,6 +46,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderServiceI {
|
||||
private final PurchaseOrderStep2CmdExe purchaseOrderStep2CmdExe;
|
||||
private final PurchaseOrderStep3CmdExe purchaseOrderStep3CmdExe;
|
||||
|
||||
private final LastVehicleNoQryExe lastVehicleNoQryExe;
|
||||
|
||||
@Override
|
||||
public PurchaseOrderVO create(PurchaseOrderCreateCmd purchaseOrderCreateCmd) {
|
||||
return purchaseOrderCreateCmdExe.execute(purchaseOrderCreateCmd);
|
||||
@ -128,4 +128,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderServiceI {
|
||||
public void saveStep3(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd) {
|
||||
purchaseOrderStep3CmdExe.execute(purchaseOrderStep3Cmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLastVehicleNo(LastVehicleNoQry lastVehicleNoQry) {
|
||||
return lastVehicleNoQryExe.execute(lastVehicleNoQry);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,11 @@ public class CostItem extends DTO {
|
||||
*/
|
||||
private Boolean showInEntry;
|
||||
|
||||
/**
|
||||
* 是否需要填写数量和单价
|
||||
*/
|
||||
private Boolean requireQuantityAndPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.biz.domain.gateway;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.*;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.LastVehicleNoQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderCountQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderPageQry;
|
||||
@ -44,4 +45,12 @@ public interface PurchaseOrderGateway {
|
||||
void rejectFinal(PurchaseOrderRejectFinalCmd purchaseOrderRejectFinalCmd);
|
||||
|
||||
Long countBy(PurchaseOrderCountQry purchaseOrderCountQry);
|
||||
|
||||
/**
|
||||
* 获取上一车的车次号
|
||||
*
|
||||
* @param lastVehicleNoQry 查询参数
|
||||
* @return 车次号
|
||||
*/
|
||||
String getLastVehicleNo(LastVehicleNoQry lastVehicleNoQry);
|
||||
}
|
||||
@ -17,12 +17,14 @@ public interface CostItemConvert {
|
||||
|
||||
CostItem toCostItem(CostItemDO costItemDO);
|
||||
|
||||
@Mapping(target = "sort", ignore = true)
|
||||
@Mapping(target = "version", ignore = true)
|
||||
@Mapping(target = "updatedAt", ignore = true)
|
||||
@Mapping(target = "isDelete", ignore = true)
|
||||
@Mapping(target = "createdAt", ignore = true)
|
||||
CostItemDO toCostItemDO(CostItemCreateCmd costItemCreateCmd);
|
||||
|
||||
@Mapping(target = "sort", ignore = true)
|
||||
@Mapping(target = "version", ignore = true)
|
||||
@Mapping(target = "updatedAt", ignore = true)
|
||||
@Mapping(target = "isDelete", ignore = true)
|
||||
|
||||
@ -55,6 +55,12 @@ public class CostItemDO extends BaseDO<CostItemDO> {
|
||||
@TableField(value = "show_in_entry")
|
||||
private Boolean showInEntry;
|
||||
|
||||
/**
|
||||
* 是否需要填写数量和单价
|
||||
*/
|
||||
@TableField(value = "require_quantity_and_price")
|
||||
private Boolean requireQuantityAndPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@ -80,6 +80,30 @@ public class OrderDealerDO extends BaseDO<OrderDealerDO> {
|
||||
@TableField(value = "include_packing_flag")
|
||||
private Boolean includePackingFlag;
|
||||
|
||||
/**
|
||||
* 是否开启计提税金
|
||||
*/
|
||||
@TableField(value = "enable_accrual_tax")
|
||||
private Boolean enableAccrualTax;
|
||||
|
||||
/**
|
||||
* 计提税金比例
|
||||
*/
|
||||
@TableField(value = "accrual_tax_ratio")
|
||||
private BigDecimal accrualTaxRatio;
|
||||
|
||||
/**
|
||||
* 是否开启公司返点
|
||||
*/
|
||||
@TableField(value = "enable_company_rebate")
|
||||
private Boolean enableCompanyRebate;
|
||||
|
||||
/**
|
||||
* 公司返点比例
|
||||
*/
|
||||
@TableField(value = "company_rebate_ratio")
|
||||
private BigDecimal companyRebateRatio;
|
||||
|
||||
/**
|
||||
* 单据类型:delivery-发货单, purchase-采购底单, cost-成本单
|
||||
*/
|
||||
|
||||
@ -11,6 +11,7 @@ import com.xunhong.erp.turbo.api.biz.dto.common.*;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.enums.CostItemCostTypeEnum;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderCountQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.LastVehicleNoQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderShowQry;
|
||||
@ -921,5 +922,16 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway {
|
||||
// 执行插入操作
|
||||
costsToInsert.forEach(orderCostMapper::insert);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLastVehicleNo(LastVehicleNoQry lastVehicleNoQry) {
|
||||
LambdaQueryWrapper<OrderVehicleDO> queryWrapper = Wrappers.lambdaQuery(OrderVehicleDO.class);
|
||||
queryWrapper.isNotNull(OrderVehicleDO::getVehicleNo);
|
||||
queryWrapper.orderByDesc(OrderVehicleDO::getCreatedAt);
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
OrderVehicleDO orderVehicleDO = orderVehicleMapper.selectOne(queryWrapper);
|
||||
return orderVehicleDO != null ? orderVehicleDO.getVehicleNo() : null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
<result property="unit" column="unit"/>
|
||||
<result property="price" column="price"/>
|
||||
<result property="showInEntry" column="show_in_entry"/>
|
||||
<result property="requireQuantityAndPrice" column="require_quantity_and_price"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
@ -20,4 +21,3 @@
|
||||
<result property="version" column="version"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
|
||||
|
||||
@ -15,6 +15,10 @@
|
||||
<result property="freightCostFlag" column="freight_cost_flag"/>
|
||||
<result property="strawMatCostFlag" column="straw_mat_cost_flag"/>
|
||||
<result property="includePackingFlag" column="include_packing_flag"/>
|
||||
<result property="enableAccrualTax" column="enable_accrual_tax"/>
|
||||
<result property="accrualTaxRatio" column="accrual_tax_ratio"/>
|
||||
<result property="enableCompanyRebate" column="enable_company_rebate"/>
|
||||
<result property="companyRebateRatio" column="company_rebate_ratio"/>
|
||||
<result property="documentTypes" column="document_types"/>
|
||||
<result property="taxSubsidy" column="tax_subsidy"/>
|
||||
<result property="taxProvision" column="tax_provision"/>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.xunhong.erp.turbo.api.biz.api;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.*;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.LastVehicleNoQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderCountQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.PurchaseOrderPageQry;
|
||||
@ -44,4 +45,12 @@ public interface PurchaseOrderServiceI {
|
||||
PurchaseOrderVO saveStep1(PurchaseOrderStep1Cmd purchaseOrderStep1Cmd);
|
||||
void saveStep2(PurchaseOrderStep2Cmd purchaseOrderStep2Cmd);
|
||||
void saveStep3(PurchaseOrderStep3Cmd purchaseOrderStep3Cmd);
|
||||
|
||||
/**
|
||||
* 获取上一车的车次号
|
||||
*
|
||||
* @param lastVehicleNoQry 查询参数
|
||||
* @return 车次号
|
||||
*/
|
||||
String getLastVehicleNo(LastVehicleNoQry lastVehicleNoQry);
|
||||
}
|
||||
@ -52,6 +52,12 @@ public class CostItemCreateCmd extends Command {
|
||||
@Schema(title = "是否在录入时显示", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean showInEntry;
|
||||
|
||||
/**
|
||||
* 是否需要填写数量和单价
|
||||
*/
|
||||
@Schema(title = "是否需要填写数量和单价", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean requireQuantityAndPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ -65,4 +71,3 @@ public class CostItemCreateCmd extends Command {
|
||||
private Boolean status;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -76,6 +76,30 @@ public class OrderDealer extends Command {
|
||||
@Schema(title = "发货单合计金额是否含包装费")
|
||||
private Boolean includePackingFlag;
|
||||
|
||||
/**
|
||||
* 是否开启计提税金
|
||||
*/
|
||||
@Schema(title = "是否开启计提税金")
|
||||
private Boolean enableAccrualTax;
|
||||
|
||||
/**
|
||||
* 计提税金比例
|
||||
*/
|
||||
@Schema(title = "计提税金比例")
|
||||
private BigDecimal accrualTaxRatio;
|
||||
|
||||
/**
|
||||
* 是否开启公司返点
|
||||
*/
|
||||
@Schema(title = "是否开启公司返点")
|
||||
private Boolean enableCompanyRebate;
|
||||
|
||||
/**
|
||||
* 公司返点比例
|
||||
*/
|
||||
@Schema(title = "公司返点比例")
|
||||
private BigDecimal companyRebateRatio;
|
||||
|
||||
/**
|
||||
* 单据类型:delivery-发货单, purchase-采购底单, cost-成本单
|
||||
*/
|
||||
|
||||
@ -8,12 +8,14 @@ import lombok.RequiredArgsConstructor;
|
||||
@RequiredArgsConstructor
|
||||
public enum CostItemCostTypeEnum {
|
||||
/**
|
||||
* 费用类型:1_包装材料;2_人工费用;3_其他费用;4_固定费用;4_固定费用
|
||||
* 费用类型:1_包装材料;2_人工费用;3_其他费用;4_固定费用;5_工头垫付;6_产地垫付
|
||||
*/
|
||||
PACKAGING_MATERIALS(1, "包装材料"),
|
||||
HUMAN_COST(2, "人工费用"),
|
||||
OTHER_COST(3, "其他费用"),
|
||||
FIXED_COST(4, "固定费用"),
|
||||
WORKER_ADVANCE(5, "工头垫付"),
|
||||
PRODUCTION_ADVANCE(6, "产地垫付"),
|
||||
;
|
||||
|
||||
@EnumValue
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Query;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author lingma
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "上一车车次号查询参数")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class LastVehicleNoQry extends Query {
|
||||
}
|
||||
@ -53,6 +53,12 @@ public class CostItemVO extends DTO {
|
||||
@Schema(title = "是否在录入时显示", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean showInEntry;
|
||||
|
||||
/**
|
||||
* 是否需要填写数量和单价
|
||||
*/
|
||||
@Schema(title = "是否需要填写数量和单价", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean requireQuantityAndPrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ -72,4 +78,3 @@ public class CostItemVO extends DTO {
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user