当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢

mac终端Iterm2支持rz和sz的解决方案

工厂方法模式

The solution of polar experience insensitive verification

Thinking about competitive programming: myths and shocking facts

CUDA_存储器模型

SQL case conversion, remove the space before and after

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

selenium webdriver使用click一直失效问题的几种解决方法

Aikang Guobin denounced Guoxin Securities report as untrue and sent a lawyer's letter

Bifrost 位点管理 之 异构中间件实现难点(1)
随机推荐
What can CRM system help enterprises do?
[elixir! 0073] beam built-in memory database ETS
剑指offer之打印二叉搜索树中第k小的结点
Day85: Luffy: shopping cart switching price according to different validity period & shopping cart deletion operation & price settlement & foreplay of order page
从零开始学习 YoMo 系列教程:开篇
Mongodb kernel source code implementation, performance tuning, best operation and maintenance practice series command processing module source code implementation 1
iNeuOS工业互联平台,WEB组态(iNeuView)增加工程视图导入、导出功能,及优化和修复,发布:v3.2.1版本
CUDA_ Get the specified device
Promote China manufacturing upgrade, 3D visualization of production line in automobile assembly workshop
编码风格:Mvc模式下SSM环境,代码分层管理
Unity使用transform.Rotate进行三维旋转角度出现偏差
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Validation failed for one or more entities. See 'entityvalidationerrors' solution
痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
一幅图像能顶16x16字!——用于大规模图像缩放识别的变压器(对ICLR 2021年论文的简要回顾)
Difficulties in heterogeneous middleware implementation of Bifrost site management (1)
[python学习手册-笔记]001.python前言
CUDA_ constant memory
pytorch训练GAN时的detach()