当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 分布式文档存储数据库之MongoDB索引管理
- CUDA_ Global memory and access optimization
- Bifrost 位点管理 之 异构中间件实现难点(1)
- If you need a million objects
- SQL case conversion, remove the space before and after
- Mongodb index management of distributed document storage database
- jt-day10
- 使用call、apply和bind解决js中烦人的this,事件绑定时的this和传参问题
- 飞鸽传书局域网找不到其他人的问题解决
- 极验无感验证破解
猜你喜欢

Ineuos industrial interconnection platform, web configuration (ineuview) increases the function of importing and exporting engineering views, as well as optimization and repair. Release: v3.2.1

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

Assign the corresponding key and value in the map to the object

asp.net Using serilog in core and customizing enrich

关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案

Error running app:Default Activity not found 解决方法

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

Centos7 operating system security hardening series (2)

一个名为不安全的类Unsafe

Hengxun Technology: the way to deal with server downtime
随机推荐
从零开始学习 YoMo 系列教程:开篇
leetcode之最后一个单词的长度
Incomplete Polyfill of proxy
CUDA_全局内存及访问优化
Filezilla server配置FTP服务器中的各种问题与解决方法
对于程序员,那些既陌生又熟悉的计算机硬件
CUDA_获取指定设备
Validation failed for one or more entities. See 'entityvalidationerrors' solution
[Python learning manual notes] 001. Preface to Python
一幅图像能顶16x16字!——用于大规模图像缩放识别的变压器(对ICLR 2021年论文的简要回顾)
lodash.js Source code flatten
表单验证,为避免全局污染,少定义全局变量写法
CUDA_主机内存
Error running app: default activity not found solution
CUDA_ Register and local memory
[leetcode] 92 integer inversion
编码风格:Mvc模式下SSM环境,代码分层管理
Python cookbook 3rd note (2.1): using multiple qualifiers to split strings
C++ exception implementation mechanism
JMeter的简单使用