当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- JS solves the problem of automatic pagination in browser printing
- Problems and solutions in configuring FTP server with FileZilla server
- JMeter的简单使用
- SQL filter query duplicate columns
- CUDA_ Get the specified device
- November 09, 2020: talk about the similarities and differences between the bulon filter and the cuckoo filter?
- Unity使用transform.Rotate进行三维旋转角度出现偏差
- Thinking about competitive programming: myths and shocking facts
- How much is the cost of CRM system?
- Prometheus安装配置
猜你喜欢
Difficulties in heterogeneous middleware implementation of Bifrost site management (1)
Hand in hand to teach you to use container service tke cluster audit troubleshooting
痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
Bifrost 位点管理 之 异构中间件实现难点(1)
One image can hold 16x16 words! ——Transformers for large scale image scaling recognition (a brief review of ICLR 2021 papers)
Usage of [:] and [::] in Python
js label语法跳出多重循环
C/C++编程笔记:C语言开发坦克大战!纪念我们逝去的小霸王游戏
jmeter接口测试--带有token的解决方法
Fire knowledge online answer activity small program
随机推荐
痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案
剑指offer之打印二叉搜索树中第k小的结点
异常:Invalid or unexpected token
C/C++编程笔记:C语言开发坦克大战!纪念我们逝去的小霸王游戏
Bifrost 位点管理 之 异构中间件实现难点(1)
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
asp.net Using serilog in core and customizing enrich
史上最全异常检测算法概述
selenium webdriver使用click一直失效问题的几种解决方法
消防知识线上答题活动小程序复盘
Assign the corresponding key and value in the map to the object
delete、truncate、drop 有什么区别,误删数据怎么办
【LeetCode】 93 平衡二叉树
Exhibition cloud technology interpretation | in the face of emergencies, how does app do a good job in crash analysis and performance monitoring?
CUDA_存储器模型
算法模板整理(一)
leetcode之最后一个单词的长度
Python prompt attributeerror or depreciation warning: This module was degraded solution
编码风格:Mvc模式下SSM环境,代码分层管理