Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jyzb_platformV2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
赵剑炜
jyzb_platformV2
Commits
a1f765aa
Commit
a1f765aa
authored
Aug 23, 2023
by
李小惠
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改工作单到rabbitmq中的代码以及日志接收代码
parent
7d5b0f4d
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
328 行增加
和
149 行删除
+328
-149
.gitignore
.gitignore
+1
-0
UpdateOrderReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/UpdateOrderReq.java
+2
-1
InventoryVo.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/vo/InventoryVo.java
+0
-0
pom.xml
jyzb-biz/pom.xml
+13
-0
DirectRabbitConfig.java
jyzb-biz/src/main/java/com/junmp/jyzb/config/rabbitMQ/DirectRabbitConfig.java
+28
-0
RabbitmqConfig.java
jyzb-biz/src/main/java/com/junmp/jyzb/config/rabbitMQ/RabbitmqConfig.java
+65
-65
InventoryController.java
jyzb-biz/src/main/java/com/junmp/jyzb/controller/InventoryController.java
+0
-5
LogController.java
jyzb-biz/src/main/java/com/junmp/jyzb/controller/LogController.java
+29
-0
OrderController.java
jyzb-biz/src/main/java/com/junmp/jyzb/controller/OrderController.java
+18
-32
MessageWrapper.java
jyzb-biz/src/main/java/com/junmp/jyzb/entity/MessageWrapper.java
+13
-0
InventoryMapper.java
jyzb-biz/src/main/java/com/junmp/jyzb/mapper/InventoryMapper.java
+4
-0
DirectReceiver.java
jyzb-biz/src/main/java/com/junmp/jyzb/rabbitmq/DirectReceiver.java
+14
-22
OrderLogService.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/OrderLogService.java
+2
-1
OrderService.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/OrderService.java
+2
-0
InventoryServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/InventoryServiceImpl.java
+4
-5
OrderLogServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/OrderLogServiceImpl.java
+3
-11
OrderServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/OrderServiceImpl.java
+65
-7
InventoryMapper.xml
jyzb-biz/src/main/resources/mapper/InventoryMapper.xml
+37
-0
pom.xml
jyzb-boot/pom.xml
+4
-0
pom.xml
pom.xml
+24
-0
没有找到文件。
.gitignore
View file @
a1f765aa
...
...
@@ -100,3 +100,4 @@ Thumbs.db
/jyzb-mq/jyzb-mq-producer/src/main/resources/application.yml
/jyzb-mq/jyzb-mq-producer/target/maven-archiver/pom.properties
/jyzb-biz/jyzb-biz.iml
/jyzb-biz/src/main/java/com/junmp/jyzb/config/rabbitMQ/RabbitmqConfig.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/UpdateOrderReq.java
View file @
a1f765aa
...
...
@@ -7,11 +7,12 @@ import lombok.EqualsAndHashCode;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
UpdateOrderReq
extends
BaseRequest
{
public
class
UpdateOrderReq
extends
BaseRequest
implements
Serializable
{
@NotBlank
(
message
=
"id不能为空"
,
groups
=
{
edit
.
class
})
private
String
Id
;
...
...
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/vo/InventoryVo.java
View file @
a1f765aa
差异被折叠。
点击展开。
jyzb-biz/pom.xml
View file @
a1f765aa
...
...
@@ -85,5 +85,18 @@
<groupId>
org.springframework.amqp
</groupId>
<artifactId>
spring-amqp
</artifactId>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-api
</artifactId>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
message-boot-starter
</artifactId>
</dependency>
</dependencies>
</project>
jyzb-biz/src/main/java/com/junmp/jyzb/config/rabbitMQ/DirectRabbitConfig.java
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
config
.
rabbitMQ
;
import
org.springframework.amqp.core.*
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.core.RabbitAdmin
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.annotation.Resource
;
@Configuration
public
class
DirectRabbitConfig
{
@Resource
private
ConnectionFactory
connectionFactory
;
@Bean
public
RabbitAdmin
rabbitAdmin
()
{
return
new
RabbitAdmin
(
connectionFactory
);
}
// 死信交换机名称
private
static
final
String
DEAD_EXCHANGE
=
"dead_exchange"
;
//队列 起名:
...
...
@@ -25,4 +36,20 @@ public class DirectRabbitConfig {
Binding
bindingDirect
()
{
return
BindingBuilder
.
bind
(
TestQueue
()).
to
(
TestExchange
()).
with
(
"Test1Routing"
);
}
//给交换机取名为OrderExchange(任务单模块交换机)
@Bean
public
DirectExchange
OrderExchange
(){
return
new
DirectExchange
(
"OrderExchange"
,
true
,
false
);
}
//给队列取名字为OrderQueue(任务单模块队列)
@Bean
public
Queue
OrderQueue
(){
return
new
Queue
(
"OrderQueue"
,
true
);
}
//将队列和交换机进行绑定
@Bean
Binding
bindQueueExchange
(){
return
BindingBuilder
.
bind
(
OrderQueue
()).
to
(
OrderExchange
()).
with
(
"OrderRouting"
);
}
}
\ No newline at end of file
jyzb-biz/src/main/java/com/junmp/jyzb/config/rabbitMQ/RabbitmqConfig.java
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
config
.
rabbitMQ
;
import
com.junmp.jyzb.api.bean.dto.OrderDto
;
import
com.junmp.jyzb.service.OrderService
;
import
org.springframework.amqp.core.*
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
@Configuration
public
class
RabbitmqConfig
{
@Resource
private
OrderService
orderService
;
//1.交换机
@Bean
(
"LogExchange"
)
public
Exchange
bootExchange
(){
return
ExchangeBuilder
.
directExchange
(
"LogExchange"
).
durable
(
true
).
build
();
}
//2.队列
@Bean
(
"LogQueue"
)
public
Queue
bootQueue
(){
return
QueueBuilder
.
durable
(
"LogQueue"
).
build
();
}
//3.队列和交换机的绑定关系(队列,交换机,rountingkey)
@Bean
public
Binding
bingQueueExchange
(
@Qualifier
(
"LogQueue"
)
Queue
queue
,
@Qualifier
(
"LogExchange"
)
Exchange
exchange
){
return
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
"log"
).
noargs
();
}
@Bean
public
DirectExchange
OrderExchange
(){
return
new
DirectExchange
(
"OrderExchange"
);
}
//2.队列
@Bean
public
List
<
Queue
>
OrderQueue
(){
List
<
Queue
>
queues
=
new
ArrayList
<>();
List
<
OrderDto
>
orderList
=
orderService
.
getOrder
();
for
(
OrderDto
orderDto:
orderList
)
{
queues
.
add
(
new
Queue
(
orderDto
.
getEndOrgName
()));
}
return
queues
;
}
//3.队列和交换机的绑定关系(队列,交换机,rountingkey)
@Bean
public
List
<
Binding
>
bindQueueExchange
(
List
<
Queue
>
queue
,
DirectExchange
exchange
){
List
<
Binding
>
bindings
=
new
ArrayList
<>();
List
<
OrderDto
>
orderList
=
orderService
.
getOrder
();
for
(
int
i
=
0
;
i
<
Math
.
min
(
queue
.
size
(),
orderList
.
size
());
i
++){
bindings
.
add
(
BindingBuilder
.
bind
(
queue
.
get
(
i
)).
to
(
exchange
).
with
(
orderList
.
get
(
i
).
getEndOrgId
()));
}
return
bindings
;
}
}
//
package com.junmp.jyzb.config.rabbitMQ;
//
//
import com.junmp.jyzb.api.bean.dto.OrderDto;
//
import com.junmp.jyzb.service.OrderService;
//
import org.springframework.amqp.core.*;
//
import org.springframework.beans.factory.annotation.Qualifier;
//
import org.springframework.context.annotation.Bean;
//
import org.springframework.context.annotation.Configuration;
//
//
import javax.annotation.Resource;
//
import java.util.ArrayList;
//
import java.util.List;
//
//
@Configuration
//
public class RabbitmqConfig {
//
@Resource
//
private OrderService orderService;
//
//
//1.交换机
//
@Bean("LogExchange")
//
public Exchange bootExchange(){
//
return ExchangeBuilder.directExchange("LogExchange").durable(true).build();
//
}
//
//
//2.队列
//
@Bean("LogQueue")
//
public Queue bootQueue(){
//
return QueueBuilder.durable("LogQueue").build();
//
}
//
//3.队列和交换机的绑定关系(队列,交换机,rountingkey)
//
@Bean
//
public Binding bingQueueExchange(@Qualifier("LogQueue") Queue queue, @Qualifier("LogExchange")Exchange exchange){
//
return BindingBuilder.bind(queue).to(exchange).with("log").noargs();
//
//
}
//
//
@Bean
//
public DirectExchange OrderExchange(){
//
return new DirectExchange("OrderExchange");
//
}
//
//
//2.队列
//
@Bean
//
public List<Queue> OrderQueue(){
//
List<Queue> queues =new ArrayList<>();
//
List<OrderDto> orderList = orderService.getOrder();
//
for (OrderDto orderDto:orderList) {
//
queues.add(new Queue(orderDto.getEndOrgName()));
//
}
//
return queues;
//
}
//
//
//3.队列和交换机的绑定关系(队列,交换机,rountingkey)
//
@Bean
//
public List<Binding> bindQueueExchange(List<Queue> queue, DirectExchange exchange){
//
List<Binding> bindings=new ArrayList<>();
//
List<OrderDto> orderList = orderService.getOrder();
//
for(int i=0;i<Math.min(queue.size(),orderList.size());i++){
//
bindings.add(BindingBuilder.bind(queue.get(i)).to(exchange).with(orderList.get(i).getEndOrgId()));
//
}
//
return bindings;
//
//
}
//
//
}
jyzb-biz/src/main/java/com/junmp/jyzb/controller/InventoryController.java
View file @
a1f765aa
...
...
@@ -4,9 +4,7 @@ import com.junmp.jyzb.api.bean.dto.*;
import
com.junmp.jyzb.api.bean.query.*
;
import
com.junmp.jyzb.api.bean.req.EquipmentBindReq
;
import
com.junmp.jyzb.entity.InventorySummary
;
import
com.junmp.jyzb.entity.PubOrg
;
import
com.junmp.jyzb.service.*
;
import
com.junmp.jyzb.utils.ResponseResult
;
import
com.junmp.v2.common.bean.request.ValidationApi
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
com.junmp.v2.db.api.page.PageResult
;
...
...
@@ -17,10 +15,7 @@ import org.springframework.validation.annotation.Validated;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@Slf4j
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/controller/LogController.java
0 → 100644
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
controller
;
import
com.junmp.jyzb.entity.OrderLog
;
import
com.junmp.jyzb.service.OrderLogService
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.List
;
@RestController
@Slf4j
@RequestMapping
(
"/Log"
)
@Api
(
tags
=
"日志模块"
)
public
class
LogController
{
@Resource
private
OrderLogService
orderLogService
;
//查看单据日志
@PostMapping
(
"/getLogsList"
)
@ApiOperation
(
"获取日志"
)
public
ApiRes
<
List
<
OrderLog
>>
getLogsList
(){
return
ApiRes
.
success
(
orderLogService
.
getLogsList
());
}
}
jyzb-biz/src/main/java/com/junmp/jyzb/controller/OrderController.java
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
controller
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.junmp.jyzb.api.bean.dto.LogSummaryDto
;
import
com.junmp.jyzb.api.bean.dto.OrderDetailDto
;
import
com.junmp.jyzb.api.bean.dto.OrderDto
;
import
com.junmp.jyzb.api.bean.dto.OrderMainDto
;
import
com.junmp.jyzb.api.bean.query.OrderDetailReq
;
import
com.junmp.jyzb.api.bean.query.OrderMainReq
;
import
com.junmp.jyzb.api.bean.query.ProductSkuReq
;
import
com.junmp.jyzb.api.bean.req.UpdateOrderReq
;
import
com.junmp.jyzb.config.rabbitMQ.RabbitmqConfig
;
import
com.junmp.jyzb.rabbitmq.OrderMQSender
;
import
com.junmp.jyzb.service.LogSummaryService
;
import
com.junmp.jyzb.service.OrderLogService
;
import
com.junmp.jyzb.service.OrderService
;
import
com.junmp.jyzb.utils.ResponseResult
;
import
com.junmp.v2.common.bean.request.ValidationApi
;
import
com.junmp.v2.common.bean.response.ApiRes
;
import
io.swagger.annotations.Api
;
...
...
@@ -30,7 +27,6 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@Slf4j
...
...
@@ -67,9 +63,9 @@ public class OrderController {
//内部处理,任务单状态直接设置成finished 添加到数据并且直接推送到消息队列中去
@PostMapping
(
"/AddFinishOrder"
)
@ApiOperation
(
"新增已完成的任务单"
)
public
ApiRes
<
String
>
AddFinishOrder
(
@RequestBody
UpdateOrderReq
req
)
{
public
ApiRes
<
String
>
AddFinishOrder
(
@RequestBody
UpdateOrderReq
req
)
throws
JsonProcessingException
{
req
.
setExamineState
(
"finished"
);
return
ApiRes
.
success
(
orderService
.
AddOrder
(
req
));
return
ApiRes
.
success
(
orderService
.
Add
Finish
Order
(
req
));
}
...
...
@@ -94,32 +90,22 @@ public class OrderController {
List
<
OrderDetailDto
>
orderDetail
=
orderService
.
getOrderDetail
(
req
);
return
ApiRes
.
success
(
orderDetail
);
}
//将工作单添加到rabbitmq中去
@PostMapping
(
"/AddOrderRabbitMq"
)
@ApiOperation
(
"将工作单添加到rabbitmq消息队列中去"
)
public
ApiRes
<
Boolean
>
AddOrderRabbitMq
(){
List
<
OrderDto
>
order
=
orderService
.
getOrder
();
List
<
String
>
orderId
=
new
ArrayList
<>();
for
(
OrderDto
orderDto:
order
)
{
//将routingKey设置为收物机构id
rabbitTemplate
.
convertAndSend
(
"OrderExchange"
,
orderDto
.
getEndOrgId
(),
orderDto
);
orderId
.
add
(
orderDto
.
getId
());
}
//将未被上传的数据进行上传到rabbitmq中,同时添加到数据库,标记为已上传数据,比避免同意数据多次或者重复上传
boolean
b
=
orderLogService
.
addOrder
(
orderId
);
return
ApiRes
.
success
(
b
);
}
//出入日志上报
@PostMapping
(
"/OutInLogs"
)
@ApiOperation
(
"出入日志上传"
)
public
ApiRes
<
Boolean
>
AddLogsRabbitMq
(){
List
<
LogSummaryDto
>
logs
=
logSummaryService
.
getLogs
();
for
(
LogSummaryDto
logSummaryDto:
logs
)
{
rabbitTemplate
.
convertAndSend
(
"LogExchange"
,
"log"
,
logSummaryDto
);
}
return
ApiRes
.
success
(
true
);
}
// //将工作单添加到rabbitmq中去
// @PostMapping("/AddOrderRabbitMq")
// @ApiOperation("将工作单添加到rabbitmq消息队列中去")
// public ApiRes<Boolean> AddOrderRabbitMq(){
// List<OrderDto> order = orderService.getOrder();
// List<String> orderId=new ArrayList<>();
// for (OrderDto orderDto:order) {
// //将routingKey设置为收物机构id
// rabbitTemplate.convertAndSend("OrderExchange",orderDto.getEndOrgId(),orderDto);
// orderId.add(orderDto.getId());
// }
// //将未被上传的数据进行上传到rabbitmq中,同时添加到数据库,标记为已上传数据,比避免同意数据多次或者重复上传
// boolean b = orderLogService.addOrder(orderId);
// return ApiRes.success(true);
// }
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/entity/MessageWrapper.java
0 → 100644
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
entity
;
import
lombok.*
;
import
java.io.Serializable
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
MessageWrapper
implements
Serializable
{
private
Object
object
;
private
String
type
;
}
jyzb-biz/src/main/java/com/junmp/jyzb/mapper/InventoryMapper.java
View file @
a1f765aa
...
...
@@ -5,6 +5,7 @@ import com.junmp.jyzb.api.bean.dto.EqsBriefDto;
import
com.junmp.jyzb.api.bean.dto.EqsSumDto
;
import
com.junmp.jyzb.api.bean.dto.InventoryDto
;
import
com.junmp.jyzb.api.bean.query.InventoryReq
;
import
com.junmp.jyzb.api.bean.vo.InventoryVo
;
import
com.junmp.jyzb.entity.Inventory
;
import
com.junmp.jyzb.entity.InventorySummary
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -40,4 +41,6 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
//通过查询条件查询出装备数量报表
List
<
EqsSumDto
>
GetListEquipment
(
InventoryReq
req
);
List
<
InventoryVo
>
selectListByOrg
(
Long
orgId
);
}
\ No newline at end of file
jyzb-biz/src/main/java/com/junmp/jyzb/rabbitmq/DirectReceiver.java
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
rabbitmq
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.junmp.jyzb.entity.OrderLog
;
import
com.junmp.jyzb.service.OrderLogService
;
import
com.rabbitmq.client.Channel
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
...
...
@@ -7,6 +10,7 @@ import org.springframework.amqp.support.AmqpHeaders;
import
org.springframework.messaging.handler.annotation.Header
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.util.Map
;
...
...
@@ -14,38 +18,26 @@ import java.util.Map;
* 创建消息接收监听�
* */
@Component
@RabbitListener
(
queues
=
"Test1Exchange"
)
//监听的队列名
�
TestDirectQueue
@RabbitListener
(
queues
=
"Test1Exchange"
)
//监听的队列名
TestDirectQueue
public
class
DirectReceiver
{
@Resource
private
OrderLogService
orderLogService
;
@RabbitHandler
private
void
modelConvert
(
String
content
,
Channel
channel
,
@Header
(
AmqpHeaders
.
DELIVERY_TAG
)
long
deliveryTag
)
{
int
retryCount
=
0
;
// 初始化重试次数
boolean
isRetry
=
false
;
try
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
OrderLog
orderLog
=
objectMapper
.
readValue
(
content
,
OrderLog
.
class
);
// 进行消息处理和条件判断
if
(
content
.
equals
(
"1"
))
{
System
.
out
.
println
(
"DirectReceiver消费者收到消息 : "
+
content
);
// 手动确认消息
channel
.
basicAck
(
deliveryTag
,
false
);
}
else
{
// 不满足条件,拒绝消息并将其重新放回队列
}
orderLogService
.
save
(
orderLog
);
// 手动确认消息
channel
.
basicAck
(
deliveryTag
,
false
);
}
catch
(
Exception
e
)
{
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
try
{
channel
.
basicNack
(
deliveryTag
,
false
,
true
);
isRetry
=
true
;
}
catch
(
IOException
ex
)
{
// 处理异常
}
}
finally
{
if
(
isRetry
)
{
retryCount
++;
// 判断重试次数是否达到限制
if
(
retryCount
>
2
)
{
// 超过最大重试次数,将消息发送到死信队列
// 你需要创建一个死信队列,并在此处使用 channel.basicPublish() 将消息发送到死信队列
}
throw
new
RuntimeException
(
ex
);
}
}
}
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/OrderLogService.java
View file @
a1f765aa
...
...
@@ -12,5 +12,6 @@ import java.util.List;
*/
public
interface
OrderLogService
extends
IService
<
OrderLog
>
{
boolean
addOrder
(
List
<
String
>
orderId
);
List
<
OrderLog
>
getLogsList
();
}
jyzb-biz/src/main/java/com/junmp/jyzb/service/OrderService.java
View file @
a1f765aa
package
com
.
junmp
.
jyzb
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.junmp.jyzb.api.bean.dto.OrderDetailDto
;
import
com.junmp.jyzb.api.bean.dto.OrderDto
;
import
com.junmp.jyzb.api.bean.dto.OrderMainDto
;
...
...
@@ -15,6 +16,7 @@ import java.util.Map;
public
interface
OrderService
extends
IService
<
OrderMain
>
{
String
AddOrder
(
UpdateOrderReq
req
);
String
AddFinishOrder
(
UpdateOrderReq
req
)
throws
JsonProcessingException
;
Boolean
updateOrder
(
UpdateOrderReq
req
);
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/InventoryServiceImpl.java
View file @
a1f765aa
...
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.junmp.jyzb.api.bean.dto.*
;
import
com.junmp.jyzb.api.bean.query.*
;
import
com.junmp.jyzb.api.bean.req.EquipmentBindReq
;
import
com.junmp.jyzb.api.bean.vo.InventoryVo
;
import
com.junmp.jyzb.api.exception.enums.CabinetBoxExceptionEnum
;
import
com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum
;
import
com.junmp.jyzb.api.exception.enums.InventoryExceptionEnum
;
...
...
@@ -285,8 +286,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//判断组织机构是否存在
pubOrgService
.
PubOrgExist
(
req
.
getOrgId
());
//查询该组织机构下的所有装备信息
List
<
Inventory
>
list
=
list
(
new
LambdaQueryWrapper
<
Inventory
>()
.
eq
(
Inventory:
:
getOrgId
,
req
.
getOrgId
()));
List
<
InventoryVo
>
list
=
inventoryMapper
.
selectListByOrg
(
req
.
getOrgId
());
HttpServletResponse
response
=
HttpServletUtil
.
getResponse
();
ExcelExportParam
param
=
new
ExcelExportParam
();
param
.
setDataList
(
list
);
...
...
@@ -294,7 +294,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
param
.
setResponse
(
response
);
param
.
setFileName
(
"装备列表.xls"
);
//对数据进行导出
// ExcelUtils.exportExcel(list,filename,"装备导出",Inventory.class,filename,response
);
officeExcelApi
.
easyExportDownload
(
param
);
}
//获取装备的出入库信息
...
...
@@ -319,8 +319,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override
public
List
<
EqsSumDto
>
GetListEquipment
(
InventoryReq
req
)
{
//通过获取传递的查询条件进行查询,得到最终的装备数量报表
inventoryMapper
.
GetListEquipment
(
req
);
return
null
;
return
inventoryMapper
.
GetListEquipment
(
req
);
}
//通过id判断装备是否存在
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/OrderLogServiceImpl.java
View file @
a1f765aa
...
...
@@ -19,18 +19,10 @@ import java.util.List;
public
class
OrderLogServiceImpl
extends
ServiceImpl
<
OrderLogMapper
,
OrderLog
>
implements
OrderLogService
{
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
addOrder
(
List
<
String
>
orderId
)
{
List
<
OrderLog
>
orderLogList
=
new
ArrayList
<>();
for
(
String
s:
orderId
)
{
OrderLog
orderLog
=
new
OrderLog
();
orderLog
.
setOrderId
(
s
);
orderLog
.
setHistoryMsg
(
"upload"
);
orderLogList
.
add
(
orderLog
);
}
return
this
.
saveBatch
(
orderLogList
);
@Override
public
List
<
OrderLog
>
getLogsList
()
{
return
list
();
}
}
...
...
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/OrderServiceImpl.java
View file @
a1f765aa
...
...
@@ -3,34 +3,33 @@ package com.junmp.jyzb.service.impl;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.junmp.jyzb.api.bean.dto.OrderDetailDto
;
import
com.junmp.jyzb.api.bean.dto.OrderDto
;
import
com.junmp.jyzb.api.bean.dto.OrderMainDto
;
import
com.junmp.jyzb.api.bean.query.OrderDetailReq
;
import
com.junmp.jyzb.api.bean.query.OrderMainReq
;
import
com.junmp.jyzb.api.bean.req.DetailListReq
;
import
com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq
;
import
com.junmp.jyzb.api.bean.req.UpdateOrderReq
;
import
com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum
;
import
com.junmp.jyzb.api.exception.enums.OrderExceptionEnum
;
import
com.junmp.jyzb.api.exception.enums.ProductExceptionEnum
;
import
com.junmp.jyzb.entity.*
;
import
com.junmp.jyzb.mapper.OrderMainMapper
;
import
com.junmp.jyzb.service.OrderDetailService
;
import
com.junmp.jyzb.service.OrderService
;
import
com.junmp.jyzb.utils.DateTimeUtil
;
import
com.junmp.jyzb.utils.HttpStatus
;
import
com.junmp.jyzb.utils.ResponseResult
;
import
com.junmp.jyzb.utils.ReturnMsg
;
import
com.junmp.v2.common.exception.base.ServiceException
;
import
com.junmp.v2.common.util.BeanPlusUtil
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.amqp.rabbit.core.RabbitAdmin
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.core.*
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
static
com
.
junmp
.
jyzb
.
utils
.
CheckBlank
.
checkNotBlank
;
@Service
public
class
OrderServiceImpl
extends
ServiceImpl
<
OrderMainMapper
,
OrderMain
>
implements
OrderService
{
...
...
@@ -39,6 +38,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> i
private
OrderDetailService
orderDetailService
;
@Resource
private
OrderMainMapper
orderMainMapper
;
@Resource
private
RabbitTemplate
rabbitTemplate
;
@Resource
private
RabbitAdmin
rabbitAdmin
;
@Resource
private
ObjectMapper
objectMapper
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -66,6 +73,57 @@ public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> i
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
String
AddFinishOrder
(
UpdateOrderReq
req
)
throws
JsonProcessingException
{
OrderMain
order
=
new
OrderMain
();
BeanPlusUtil
.
copyProperties
(
req
,
order
);
//保存
this
.
save
(
order
);
List
<
OrderDetail
>
detailList
=
new
ArrayList
<>();
//通过遍历批量保存详细信息
req
.
getDetailList
().
forEach
(
p
->
{
OrderDetail
detail
=
new
OrderDetail
();
BeanPlusUtil
.
copyProperties
(
p
,
detail
);
detail
.
setOrderId
(
order
.
getId
());
//设置单据类型
detail
.
setType
(
order
.
getOrderType
());
detailList
.
add
(
detail
);
});
orderDetailService
.
saveBatch
(
detailList
);
//将完成的任务单直接推送到消息队列rabbitmq中(需要判断是入库单还是出库单,入库单传发物单位id,出库单传收物单位id)
//方法1:一个交换机,一个队列。通过中间对象,object存储对象,type表标识
// if(req.getOrderType().equals("in")){
// rabbitTemplate.convertAndSend("OrderExchange","OrderRouting",new MessageWrapper(req,req.getStartOrgId()));
// }else {
// rabbitTemplate.convertAndSend("OrderExchange","OrderRouting",new MessageWrapper(req,req.getEndOrgId()));
// }
//方法2:一个交换机,多个队列。动态创建队列
String
exchangeName
=
"123456"
;
//需要判断是入库单还是出库单,入库单传发物单位id,出库单传收物单位id
if
(
req
.
getOrderType
().
equals
(
"in"
)){
Queue
queue
=
new
Queue
(
req
.
getStartOrgId
(),
true
,
false
,
false
);
Exchange
exchange
=
new
DirectExchange
(
exchangeName
,
true
,
false
);
rabbitAdmin
.
declareQueue
(
queue
);
rabbitAdmin
.
declareExchange
(
exchange
);
rabbitAdmin
.
declareBinding
(
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
req
.
getStartOrgId
()).
noargs
());
rabbitTemplate
.
convertAndSend
(
exchangeName
,
req
.
getStartOrgId
(),
req
);
}
else
{
Queue
queue
=
new
Queue
(
req
.
getEndOrgId
(),
true
,
false
,
false
);
Exchange
exchange
=
new
DirectExchange
(
exchangeName
,
true
,
false
);
rabbitAdmin
.
declareQueue
(
queue
);
rabbitAdmin
.
declareExchange
(
exchange
);
rabbitAdmin
.
declareBinding
(
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
req
.
getStartOrgId
()).
noargs
());
rabbitTemplate
.
convertAndSend
(
exchangeName
,
req
.
getEndOrgId
(),
req
);
}
return
order
.
getId
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
Boolean
updateOrder
(
UpdateOrderReq
req
)
{
OrderMain
order
=
orderMainExist
(
req
.
getId
());
if
(!
order
.
getExamineState
().
equals
(
"none"
))
...
...
jyzb-biz/src/main/resources/mapper/InventoryMapper.xml
View file @
a1f765aa
...
...
@@ -314,6 +314,42 @@ delete from base_inventory_summary
GROUP BY bi.org_id_int, bi.location_type
)as t
</select>
<select
id=
"selectListByOrg"
resultType=
"com.junmp.jyzb.api.bean.vo.InventoryVo"
>
select
i.id as id,
i.package_id as packageId,
i.epc as epc,
i.size_id as sizeId,
es.name as sizeName,
i.type_id as typeId,
et.name as typeName,
i.supplier_id as supplierId,
s.name as supplierName,
i.state as state,
i.location_state as locationState,
i.production_date as productionDate,
i.location_type as locationType,
i.location_id as locationId,
i.price as price,
i.shelf_id as shelfId,
i.shelf_location as shelfLocation,
i.bussiness_state as bussinessState,
i.warranty_period as warrantyPeriod,
i.maintenance_period as maintenancePeriod,
i.tid as tid,
i.note as note,
i.fix_count as fixCount,
i.term_state as termState,
i.lost_flag as lostFlag,
i.org_id_int as orgId,
po.org_name as orgName
from base_inventory i
join base_equipment_type et on et.id = i.type_id
join base_equipment_size es on es.id = i.size_id
join base_supplier s on s.id = i.supplier_id
join pub_org po on i.org_id_int=po.org_id
where org_id_int=#{orgId}
</select>
</mapper>
\ No newline at end of file
jyzb-boot/pom.xml
View file @
a1f765aa
...
...
@@ -110,6 +110,10 @@
<groupId>
org.springframework.integration
</groupId>
<artifactId>
spring-integration-mqtt
</artifactId>
</dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
</dependency>
</dependencies>
<build>
...
...
pom.xml
View file @
a1f765aa
...
...
@@ -277,6 +277,30 @@
<artifactId>
office-sdk-excel
</artifactId>
<version>
${junmp.v2.version}
</version>
</dependency>
<!--消息推送-->
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-boot-starter
</artifactId>
<version>
${junmp.v2.version}
</version>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
message-boot-starter
</artifactId>
<version>
${junmp.v2.version}
</version>
</dependency>
<dependency>
<groupId>
com.junmp.v2
</groupId>
<artifactId>
ws-api
</artifactId>
<version>
${junmp.v2.version}
</version>
</dependency>
<!--字符串转对象-->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
<version>
2.12.5
</version>
</dependency>
</dependencies>
</dependencyManagement>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论