当前位置:网站首页>Commodity management - merge purchase demand into purchase order
Commodity management - merge purchase demand into purchase order
2020-11-10 07:37:00 【osc_y8ifc29r】
One Brief purchasing process

Two Query for unclaimed purchase orders
1 request
GET /ware/purchase/unreceive/list
2 The response data
{
"msg": "success",
"code": 0,
"page": {
"totalCount": 0,
"pageSize": 10,
"totalPage": 0,
"currPage": 1,
"list": [{
"id": 1,
"assigneeId": 1,
"assigneeName": "aa",
"phone": "123",
"priority": 1,
"status": 1,
"wareId": 1,
"amount": 22.0000,
"createTime": "2019-12-12",
"updateTime": "2019-12-12"
}]
}
}
3、 ... and Merge purchasing requirements
1 request
POST /ware/purchase/merge
2 Request parameters
{
purchaseId: 1, // Whole order id
items: [1, 2, 3, 4] // Merge item sets
}
3 The response data
{
"msg": "success",
"code": 0
}
Four controller
/**
* Function description : Merge purchasing requirements
*
* @param mergeVo Purchase orders to be consolidated
* @return R Data returned to the front end
* @author cakin
* @date 2020/11/9
*/
@PostMapping("/merge")
public R merge(@RequestBody MergeVo mergeVo) {
purchaseService.mergePurchase(mergeVo);
return R.ok();
}
/**
* Function description : Query for unclaimed purchase orders
*
* @param params Filter conditions
* @return R Data returned to the front end
* @author cakin
* @date 2020/11/9
*/
@RequestMapping("/unreceive/list")
public R unreceivelist(@RequestParam Map<String, Object> params) {
PageUtils page = purchaseService.queryPageUnreceivePurchase(params);
return R.ok().put("page", page);
}
5、 ... and Service layer
/**
* Function description : Query for unclaimed purchase orders
*
* @param params Filter conditions
* @return PageUtils Paging results
* @author cakin
* @date 2020/11/9
*/
@Override
public PageUtils queryPageUnreceivePurchase(Map<String, Object> params) {
IPage<PurchaseEntity> page = this.page(
new Query<PurchaseEntity>().getPage(params),
// 0- Just built 1- Just assigned
new QueryWrapper<PurchaseEntity>().eq("status", 0).or().eq("status", 1)
);
return new PageUtils(page);
}
/**
* Function description : Merge purchasing requirements
*
* @param mergeVo Purchase orders to be consolidated
* @author cakin
* @date 2020/11/9
*/
@Transactional
@Override
public void mergePurchase(MergeVo mergeVo) {
Long purchaseId = mergeVo.getPurchaseId();
if (purchaseId == null) {
// Create a new purchase order
PurchaseEntity purchaseEntity = new PurchaseEntity();
// Purchase order initialization
purchaseEntity.setStatus(WareConstant.PurchaseStatusEnum.CREATED.getCode());
purchaseEntity.setCreateTime(new Date());
purchaseEntity.setUpdateTime(new Date());
this.save(purchaseEntity);
purchaseId = purchaseEntity.getId();
}
// TODO Confirm that the purchase order status is 0,1 To merge
List<Long> items = mergeVo.getItems();
Long finalPurchaseId = purchaseId;
List<PurchaseDetailEntity> collect = items.stream().map(i -> {
PurchaseDetailEntity detailEntity = new PurchaseDetailEntity();
detailEntity.setId(i);
detailEntity.setPurchaseId(finalPurchaseId);
detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.ASSIGNED.getCode());
return detailEntity;
}).collect(Collectors.toList());
// Update purchasing requirements
detailService.updateBatchById(collect);
// Update the time field of purchase order
PurchaseEntity purchaseEntity = new PurchaseEntity();
purchaseEntity.setId(purchaseId);
purchaseEntity.setUpdateTime(new Date());
this.updateById(purchaseEntity);
}
6、 ... and VO
/**
* @className: MergeVo
* @description: Purchase order
* @date: 2020/11/9
* @author: cakin
*/
@Data
public class MergeVo {
/**
* Whole order id
*/
private Long purchaseId;
/**
* Merge item sets
*/
private List<Long> items;
}
7、 ... and Enumeration class
/**
* @className: WareConstant
* @description: Warehouse enumeration class
* @date: 2020/11/9
* @author: cakin
*/
public class WareConstant {
/**
* @className: PurchaseStatusEnum
* @description: Enumeration of purchase order status
* @date: 2020/11/9
* @author: cakin
*/
public enum PurchaseStatusEnum {
CREATED(0, " newly build "), ASSIGNED(1, " Already allocated "),
RECEIVE(2, " Have received "), FINISH(3, " Completed "),
HASERROR(4, " There are abnormal ");
private int code;
private String msg;
PurchaseStatusEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
/**
* @className: PurchaseDetailStatusEnum
* @description: Procurement requirements enumeration
* @date: 2020/11/9
* @author: cakin
*/
public enum PurchaseDetailStatusEnum {
CREATED(0, " newly build "), ASSIGNED(1, " Already allocated "),
BUYING(2, " Purchasing "), FINISH(3, " Completed "),
HASERROR(4, " Purchase failure ");
private int code;
private String msg;
PurchaseDetailStatusEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
}
8、 ... and test

版权声明
本文为[osc_y8ifc29r]所创,转载请带上原文链接,感谢
边栏推荐
- Coding style: SSM environment in MVC mode, code hierarchical management
- The length of the last word in leetcode
- Three ways to solve coursera video unable to watch
- CUDA_获取指定设备
- 编码风格:Mvc模式下SSM环境,代码分层管理
- Coding style: SSM environment in MVC mode, code hierarchical management
- 极验无感验证破解
- Python中[:]与[::]的用法
- An unsafe class named unsafe
- CUDA_ constant memory
猜你喜欢

proxy 的不完整polyfill

痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计

分布式文档存储数据库之MongoDB索引管理

大专学历的我工作六年了,还有机会进大厂吗?

What's the difference between delete, truncate, and drop, and what to do if you delete data by mistake

Coding style: SSM environment in MVC mode, code hierarchical management

解决Coursera视频无法观看的三种方法(亲测有效)

So what should investors do with the current market? Now a new investment outlet is coming!

【CentOS7操作系统安全加固系列】第(2)篇

Error running app: default activity not found solution
随机推荐
Mongodb index management of distributed document storage database
Coding style: SSM environment in MVC mode, code hierarchical management
Exhibition cloud technology interpretation | in the face of emergencies, how does app do a good job in crash analysis and performance monitoring?
Come and learn! Development Guide for personalized recommendation system (with internet disk link)
Yixian e-commerce prospectus of perfect diary parent company: focusing on marketing and ignoring R & D, with a loss of 1.1 billion in the first three quarters
一个名为不安全的类Unsafe
编码风格:Mvc模式下SSM环境,代码分层管理
Coding style: SSM environment in MVC mode, code hierarchical management
Fire knowledge online answer activity small program
YouTube subscription: solve the problem of incomplete height display of YouTube subscription button in pop-up window
Several solutions to the problem that selenium webdriver always fails to use click
【CentOS7操作系统安全加固系列】第(2)篇
Python中[:]与[::]的用法
DB engines database ranking in November: PostgreSQL holds the top spot in the same period
Assign the corresponding key and value in the map to the object
获取List集合对象中某一列属性值
The solution of polar experience insensitive verification
树莓派鼓捣记 - 设置 wifi
proxy 的不完整polyfill
jt-day10