Commit f88cef83 by 李小惠

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-lxh

# Conflicts:
#	jyzb-biz/src/main/java/com/junmp/jyzb/controller/InventoryController.java
parents c2a88c93 82dc70d3
......@@ -16,7 +16,9 @@
<module name="jyzb-api" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="9" />
<bytecodeTargetLevel target="9">
<module name="jyzb-mq" target="1.8" />
</bytecodeTargetLevel>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
......
......@@ -2,7 +2,6 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/jyzb-api/jyzb-api.iml" filepath="$PROJECT_DIR$/jyzb-api/jyzb-api.iml" />
<module fileurl="file://$PROJECT_DIR$/jyzb-biz/jyzb-biz.iml" filepath="$PROJECT_DIR$/jyzb-biz/jyzb-biz.iml" />
<module fileurl="file://$PROJECT_DIR$/jyzb-boot/jyzb-boot.iml" filepath="$PROJECT_DIR$/jyzb-boot/jyzb-boot.iml" />
<module fileurl="file://$PROJECT_DIR$/jyzb-mq/jyzb-mq-consumer/jyzb-mq-consumer.iml" filepath="$PROJECT_DIR$/jyzb-mq/jyzb-mq-consumer/jyzb-mq-consumer.iml" />
......
......@@ -10,6 +10,7 @@ public class EquipmentTreeDto {
private String name;
private String code;
private Integer type;
private String parentId;
private List<EquipmentTreeDto> child = new ArrayList<>();
public void addChild(EquipmentTreeDto child) {
this.child.add(child);
......
......@@ -9,6 +9,8 @@ public class EquipmentTypeDto {
private String name;
private String unit;
private String unitType;
private String parentId;
private String code;
private Integer state;
private Integer type;
private String warrantyPeriod;
......
......@@ -10,11 +10,11 @@ import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class QueryEquipmentTypeReq extends BaseRequest {
//@EqualsAndHashCode(callSuper = false)
public class QueryEquipmentTypeReq {
private String id;
private String code;
private String parentId;
private Integer type;
}
......@@ -9,10 +9,11 @@ import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class QuerySupplierReq extends BaseRequest {
public class QuerySupplierReq {
private String name;
private String id;
private String code;
......
......@@ -23,6 +23,6 @@ public class UpdateEquipmentSizeReq {
private String note;
private BigDecimal price;
@NotBlank(message = "状态值不能为空", groups = {ValidationApi.edit.class})
@NotBlank(message = "状态值不能为空", groups = {ValidationApi.updateStatus.class})
private String state;
}
......@@ -17,6 +17,7 @@ public class UpdateOrgReq {
/**
* 组织机构列表
*/
@NotBlank(message = "组织机构不能为空", groups = {ValidationApi.updateStatus.class})
private List<String> orgIdList;
......
......@@ -24,6 +24,16 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
......@@ -70,5 +80,9 @@
<groupId>com.junmp.jyzb</groupId>
<artifactId>jyzb-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-amqp</artifactId>
</dependency>
</dependencies>
</project>
package com.junmp.jyzb.config.rabbitMQ;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DirectRabbitConfig {
// 死信交换机名称
private static final String DEAD_EXCHANGE = "dead_exchange";
//队列 起名:TestDirectQueue
@Bean
public Queue TestDirectQueue() {
return new Queue("Test1Queue",true);
}
//Direct交换机 起名:TestDirectExchange
@Bean
DirectExchange TestDirectExchange() {
return new DirectExchange("Test1Exchange");
}
//绑定 将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
@Bean
Binding bindingDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("Test1Routing");
}
}
\ No newline at end of file
package com.junmp.jyzb.config.rabbitMQ;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ProductRabbitConfig {
//队列 起名:TestDirectQueue
@Bean
public Queue TestDirectQueue() {
// durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
// exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
// autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
// return new Queue("TestDirectQueue",true,true,false);
//一般设置一下队列的持久化就好,其余两个就是默认false
return new Queue("Test1Queue",true);
}
//Direct交换机 起名:TestDirectExchange
@Bean
DirectExchange TestDirectExchange() {
// return new DirectExchange("TestDirectExchange",true,true);
return new DirectExchange("Test1Exchange",true,false);
}
//绑定 将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
@Bean
Binding bindingDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("Test1Routing");
}
@Bean
DirectExchange lonelyDirectExchange() {
return new DirectExchange("lonelyDirectExchange");
}
}
......@@ -62,7 +62,7 @@ public class EquipmentSizeController {
@PostMapping("/ChangeSizeState")
@ApiOperation("禁用/启用装备号型")
public ApiRes<Boolean> changeSizeState(@RequestBody @Validated(ValidationApi.edit.class) UpdateEquipmentSizeReq req) {
public ApiRes<Boolean> changeSizeState(@RequestBody @Validated(ValidationApi.updateStatus.class) UpdateEquipmentSizeReq req) {
return ApiRes.success(equipmentSizeService.changeSizeState(req));
}
......
package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.service.EquipmentTypeService;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.request.ValidationApi;
......@@ -47,7 +51,7 @@ public class EquipmentTypeController {
@PostMapping("/ShowEquipmentList")
@ApiOperation("查询类别列表")
public ApiRes<List<EquipmentTreeDto>> ShowEquipmentList(@RequestBody QueryEquipmentTypeReq req) {
public ApiRes<List<EquipmentTypeDto>> ShowEquipmentList(@RequestBody QueryEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.getEquipmentList(req));
}
......@@ -57,6 +61,12 @@ public class EquipmentTypeController {
public ApiRes<EquipmentTypeDto> getEquipment(@RequestBody QueryEquipmentTypeReq req) {
return ApiRes.success( equipmentTypeService.getEquipment(req));
}
@PostMapping("/getLowType")
@ApiOperation("根据上级物资查询下一级信息")
public ApiRes<List<EquipmentTypeDto>> getLowType(@RequestBody QueryEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.getLowType(req)) ;
}
@PostMapping("/UpdateEquipment")
@ApiOperation("修改物资信息")
......
......@@ -44,13 +44,13 @@ public class PubOrgController {
}
@PostMapping("/GetOrgList")
@ApiOperation("查询组织树形结构")
public ApiRes<List<OrgTreeDto>> getOrgList(@RequestBody QueryOrgReq req) {
@ApiOperation("查询组织机构列表")
public ApiRes<List<OrgDto>> getOrgList(@RequestBody QueryOrgReq req) {
return ApiRes.success(pubOrgService.getOrgList(req));
}
@PostMapping("/ChangeOrgState")
@ApiOperation("改变组织机构状态信息")
public ApiRes<Boolean> changeOrgState(@RequestBody @Validated(ValidationApi.edit.class) UpdateOrgReq req) {
public ApiRes<Boolean> changeOrgState(@RequestBody @Validated(ValidationApi.updateStatus.class) UpdateOrgReq req) {
return ApiRes.success(pubOrgService.ChangeState(req));
}
@PostMapping("/GetLowOrg")
......
......@@ -41,20 +41,20 @@ public class SupplierController {
@PostMapping("/ShowSupplier")
@ApiOperation("查询供应商列表")
public ApiRes<List<SupplierDto>> ShowSupplier(QuerySupplierReq req){
public ApiRes<List<SupplierDto>> ShowSupplier(@RequestBody QuerySupplierReq req){
return ApiRes.success(supplierService.ShowSupplier(req));
}
@PostMapping("/UpdateSupplier")
@ApiOperation("修改供应商信息")
public ApiRes<Boolean> updateSupplier(@RequestBody @Validated(QuerySupplierReq.edit.class) UpdateSupplierReq req) {
public ApiRes<Boolean> updateSupplier(@RequestBody @Validated(ValidationApi.edit.class) UpdateSupplierReq req) {
return ApiRes.success(supplierService.UpdateSupplier(req));
}
@PostMapping("/ChangeSupplierState")
@ApiOperation("修改供应商状态")
public ApiRes<Boolean> changeSupplierState(@RequestBody @Validated(QuerySupplierReq.edit.class) UpdateSupplierReq req) {
public ApiRes<Boolean> changeSupplierState(@RequestBody @Validated(ValidationApi.edit.class) UpdateSupplierReq req) {
return ApiRes.success(supplierService.ChangeSupplierState(req));
}
}
......@@ -74,6 +74,17 @@ public class EquipmentType implements Serializable {
private Integer state;
/**
* 当前状态:0关闭/1启用
*/
@TableField("warranty_period")
private Integer warrantyPeriod;
/**
* 当前状态:0关闭/1启用
*/
@TableField("maintenance_period")
private Integer maintenancePeriod;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
......
package com.junmp.jyzb.rabbitmq;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
/**
* 创建消息接收监听�
* */
@Component
@RabbitListener(queues = "Test1Exchange") //监听的队列名�TestDirectQueue
public class DirectReceiver {
@RabbitHandler
private void modelConvert(String content, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
int retryCount = 0; // 初始化重试次数
boolean isRetry = false;
try {
// 进行消息处理和条件判断
if (content.equals("1")) {
System.out.println("DirectReceiver消费者收到消息 : " + content);
// 手动确认消息
channel.basicAck(deliveryTag, false);
} else {
// 不满足条件,拒绝消息并将其重新放回队列
}
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
try {
channel.basicNack(deliveryTag, false, true);
isRetry = true;
} catch (IOException ex) {
// 处理异常
}
} finally {
if (isRetry) {
retryCount++;
// 判断重试次数是否达到限制
if (retryCount > 2) {
// 超过最大重试次数,将消息发送到死信队列
// 你需要创建一个死信队列,并在此处使用 channel.basicPublish() 将消息发送到死信队列
}
}
}
}
}
......@@ -22,10 +22,11 @@ public interface EquipmentTypeService extends IService<EquipmentType> {
Boolean changeEquipmentState(UpdateEquipmentTypeReq req);
List<EquipmentTreeDto> getEquipmentList(QueryEquipmentTypeReq req);
List<EquipmentTypeDto> getEquipmentList(QueryEquipmentTypeReq req);
EquipmentTypeDto getEquipment(QueryEquipmentTypeReq req );
List<EquipmentTypeDto> getLowType(QueryEquipmentTypeReq orgId);
ResponseResult setTypeParentIds();
......
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.v2.db.api.page.PageResult;
public interface MQProductService {
Boolean sendMessage();
}
......@@ -20,7 +20,7 @@ public interface PubOrgService extends IService<PubOrg> {
ResponseResult setOrgParentIds();
List<OrgTreeDto> getOrgList(QueryOrgReq req);
List<OrgDto> getOrgList(QueryOrgReq req);
List<OrgDto> getLowOrg(QueryOrgReq req);
Boolean ChangeState(UpdateOrgReq req);
......
......@@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
import com.junmp.jyzb.api.exception.JYZBAppException;
import com.junmp.jyzb.api.exception.enums.EquipmentTypeExceptionEnum;
......@@ -48,79 +50,17 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
private static final String REDIS_TYPE = "Type_";
public List<EquipmentTreeDto> getEquipmentList(QueryEquipmentTypeReq req) {
String selfCode="00000000-0000-0000-0000-000000000000";
public List<EquipmentTypeDto> getEquipmentList(QueryEquipmentTypeReq req) {
LambdaQueryWrapper<EquipmentType> wp= this.createWrapper(req);
List<EquipmentType> list = this.list(wp);
List<EquipmentTypeDto> orgs=new ArrayList<>();
list.forEach(p->{
EquipmentTypeDto org=new EquipmentTypeDto();
BeanPlusUtil.copyProperties(p, org);
List<EquipmentTreeDto> equipmentTypeDTOList = new ArrayList<>();
LambdaQueryWrapper<EquipmentType> wrapper = new LambdaQueryWrapper<>();
String setNewCode="";
if (ObjectUtil.isNotEmpty(req.getCode())) {
{
setNewCode=req.getCode().replaceAll("0+$", "");
}
}
wrapper.likeRight(ObjectUtil.isNotEmpty(req.getCode()), EquipmentType::getCode, setNewCode);
List<EquipmentType> equipmentList = this.list(wrapper);
// 创建一个 Map 来存储 Equipment ID 和对应的 DTO 对象
Map<String, EquipmentTreeDto> equipmentDtoMap = new HashMap<>();
// 创建一个 Map 来存储父类的 parentid 和对应的父类节点
Map<String, EquipmentTreeDto> parentDtoMap = new HashMap<>();
if (ObjectUtil.isNotEmpty(req.getCode())&&!req.getCode().equals("00000000-0000-0000-0000-000000000000"))
{ LambdaQueryWrapper<EquipmentType> wrapper2 = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotEmpty(req.getCode()))
{
selfCode=req.getCode();
}
wrapper2.eq(ObjectUtil.isNotEmpty(req.getCode()), EquipmentType::getCode, selfCode);
String id= this.getOne(wrapper2).getId();
selfCode=id;
EquipmentType et=this.getById(id);
EquipmentTreeDto equipmentTypeDTO = new EquipmentTreeDto();
equipmentTypeDTO.setName(et.getName());
equipmentTypeDTO.setCode(et.getCode());
equipmentTypeDTO.setType(et.getType());
equipmentDtoMap.put(et.getId(),equipmentTypeDTO);
}
// 第一轮遍历:创建 EquipmentTreeDto 对象并将其加入到 Map 中
for (EquipmentType equipment : equipmentList) {
EquipmentTreeDto equipmentTypeDTO = new EquipmentTreeDto();
equipmentTypeDTO.setName(equipment.getName());
equipmentTypeDTO.setCode(equipment.getCode());
equipmentTypeDTO.setType(equipment.getType());
equipmentDtoMap.put(equipment.getId(), equipmentTypeDTO);
// 如果 parentid 是传进来的值,则将其作为顶级节点添加到 equipmentTypeDTOList 中
if (equipment.getId().equals(selfCode)) {
equipmentTypeDTOList.add(equipmentTypeDTO);
}
}
// 第二轮遍历:将子节点连接到父节点
boolean isStartAddingChildren = false;
for (EquipmentType equipment : equipmentList) {
String parentId = equipment.getParentId();
EquipmentTreeDto equipmentTypeDTO = equipmentDtoMap.get(equipment.getId());
// 如果找到传入的ID对应的节点,则开始添加子节点
if (equipment.getId().equals(selfCode)) {
isStartAddingChildren = true;
}
// 如果 isStartAddingChildren 为 true,并且 parentDtoMap 中有对应的父类节点,则将节点连接到父节点
if (isStartAddingChildren && parentDtoMap.containsKey(parentId)) {
EquipmentTreeDto parentDto = parentDtoMap.get(parentId);
parentDto.addChild(equipmentTypeDTO);
}
// 将当前节点添加到 parentDtoMap 中,以便后续节点连接
parentDtoMap.put(equipment.getId(), equipmentTypeDTO);
}
return equipmentTypeDTOList;
orgs.add(org);
});
return orgs;
}
......@@ -139,6 +79,7 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
EquipmentType parentType = this.getById(req.getParentId());
int newcode = parentType.getMaxCode() + 1;
type.setId(String.valueOf(newcode));
type.setCode(String.valueOf(newcode));
parentType.setMaxCode(newcode);
parentType.setCode(String.valueOf(newcode));
List<SupplierType> supplierType = new ArrayList<>();
......@@ -263,7 +204,40 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
BeanPlusUtil.copyProperties(this.getById(req.getId()), equipment);
return equipment;
}
public List<EquipmentTypeDto> getLowType(QueryEquipmentTypeReq req){
if (ObjectUtil.isEmpty(req.getParentId())) {
req.setParentId(req.getId());
}
if (ObjectUtil.isEmpty(req.getParentId())) {
req.setParentId("00000000-0000-0000-0000-000000000000");
}
LambdaQueryWrapper<EquipmentType> wp= this.createWrapper(req);
List<EquipmentType> list = this.list(wp);
List<EquipmentTypeDto> orgs=new ArrayList<>();
Comparator<EquipmentType> orgComparator = (org1, org2) -> {
String code1 = org1.getCode();
String code2 = org2.getCode();
// 将code字段转换为整数类型进行比较
try {
long intValue1 = Long.parseLong(code1);
long intValue2 = Long.parseLong(code2);
return Long.compare(intValue1, intValue2);
} catch (NumberFormatException e) {
// 如果有不是数字的情况,直接返回字符串比较结果
return code1.compareTo(code2);
}
};
Collections.sort(list, orgComparator);
list.forEach(p->{
EquipmentTypeDto org=new EquipmentTypeDto();
BeanPlusUtil.copyProperties(p, org);
orgs.add(org);
});
return orgs;
}
@Override
public ResponseResult setTypeParentIds() {
......@@ -280,6 +254,10 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
wrapper.eq(ObjectUtil.isNotEmpty(req.getParentId()), EquipmentType::getParentId,req.getParentId() );
// 添加id字段不等于"00000000-0000-0000-0000-000000000000"的判断
wrapper.ne(EquipmentType::getId, "00000000-0000-0000-0000-000000000000");
wrapper.eq(ObjectUtil.isNotEmpty(req.getType()), EquipmentType::getType,req.getType() );
wrapper.orderByDesc(EquipmentType::getCreateTime);
return wrapper;
......
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.jyzb.service.MQProductService;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Service
public class MQProductServicelmpl implements MQProductService {
@Autowired
RabbitTemplate rabbitTemplate;
//通过converAndSend方法发送消息
@Override
public Boolean sendMessage() {
//生成当前时间
String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
try {
//将记录当前时间的信息发送到消息队列
rabbitTemplate.convertAndSend("Test1Exchange", "Test1Routing", "消息发送的时间为:" + createTime);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
......@@ -3,6 +3,7 @@ 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.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.OrgTreeDto;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
......@@ -10,6 +11,7 @@ import com.junmp.jyzb.api.bean.req.UpdateOrgReq;
import com.junmp.jyzb.api.exception.JYZBAppException;
import com.junmp.jyzb.api.exception.enums.EquipmentTypeExceptionEnum;
import com.junmp.jyzb.api.exception.enums.OrgExceptionEnum;
import com.junmp.jyzb.entity.EquipmentType;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.entity.Supplier;
import com.junmp.jyzb.utils.HttpStatus;
......@@ -329,84 +331,19 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
return orgs;
}
public List<OrgTreeDto> getOrgList(QueryOrgReq req) {
String selfCode = "1369509498032808905";
List<OrgTreeDto> OrgDTOList=new ArrayList<>();
LambdaQueryWrapper<PubOrg> wrapper = new LambdaQueryWrapper<>();
String setNewCode;
List<PubOrg> orgList = new ArrayList<>();
if (ObjectUtil.isNotEmpty(req.getOrgCode())) {
setNewCode = req.getOrgCode().replaceAll("0+$", "");
} else {
setNewCode = "";
}
wrapper.eq(ObjectUtil.isNotEmpty(req.getIsDepartment()), PubOrg::getIsDepartment, req.getIsDepartment());
wrapper.eq( PubOrg::getStatusFlag, 1);
wrapper.likeRight(ObjectUtil.isNotEmpty(req.getOrgCode()), PubOrg::getOrgCode, setNewCode);
orgList = this.list(wrapper);
// 创建一个 Map 来存储机构 ID 和对应的 DTO 对象
Map<String, OrgTreeDto> orgDtoMap = new HashMap<>();
// 创建一个 Map 来存储父类的 parentid 和对应的父类节点
Map<String, OrgTreeDto> parentDtoMap = new HashMap<>();
if (ObjectUtil.isNotEmpty(req.getOrgCode()) && !req.getOrgCode().equals("330000000000")) {
LambdaQueryWrapper<PubOrg> wrapper2 = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotEmpty(req.getOrgCode())) {
selfCode = req.getOrgCode();
}
wrapper2.eq(ObjectUtil.isNotEmpty(req.getOrgCode()), PubOrg::getOrgCode, selfCode);
PubOrg orgA= this.getOne(wrapper2);
String id = this.getOne(wrapper2).getOrgId().toString();
selfCode = id;
PubOrg org = this.getById(Long.parseLong(id));
OrgTreeDto orgDTO = new OrgTreeDto();
BeanPlusUtil.copyProperties(org, orgDTO);
orgDTO.setName(org.getDName());
orgDTO.setCode(org.getOrgCode());
orgDTO.setType(org.getOrgType());
orgDtoMap.put(org.getOrgId().toString(), orgDTO);
}
// 第一轮遍历:创建 OrgTreeDto 对象并将其加入到 Map 中
for (PubOrg org : orgList) {
OrgTreeDto orgDTO = new OrgTreeDto();
BeanPlusUtil.copyProperties(org, orgDTO);
orgDTO.setName(org.getDName());
orgDTO.setCode(org.getOrgCode());
orgDTO.setType(org.getOrgType());
orgDtoMap.put(org.getOrgId().toString(), orgDTO);
// 如果 parentid 是传进来的值,则将其作为顶级节点添加到 OrgDTOList 中
if (org.getOrgId().toString().equals(selfCode)) {
OrgDTOList.add(orgDTO);
}
}
// 第二轮遍历:将子节点连接到父节点或添加为顶级节点
boolean isStartAddingChildren = false;
for (PubOrg org : orgList) {
String parentId = org.getOrgParentId().toString();
OrgTreeDto orgDTO = orgDtoMap.get(org.getOrgId().toString());
// 如果找到传入的ID对应的节点,则开始添加子节点
if (org.getOrgId().toString().equals(selfCode)) {
isStartAddingChildren = true;
}
// 如果 isStartAddingChildren 为 true,并且 parentDtoMap 中有对应的父类节点,则将节点连接到父节点
if (isStartAddingChildren && parentDtoMap.containsKey(parentId)) {
OrgTreeDto parentDto = parentDtoMap.get(parentId);
parentDto.addChild(orgDTO);
}
// 将当前节点添加到 parentDtoMap 中,以便后续节点连接
parentDtoMap.put(org.getOrgId().toString(), orgDTO);
}
return OrgDTOList;
public List<OrgDto> getOrgList(QueryOrgReq req) {
LambdaQueryWrapper<PubOrg> wp= this.createWrapper(req);
List<PubOrg> list = this.list(wp);
List<OrgDto> orgs=new ArrayList<>();
list.forEach(p->{
OrgDto org=new OrgDto();
BeanPlusUtil.copyProperties(p, org);
orgs.add(org);
});
return orgs;
}
private LambdaQueryWrapper<PubOrg> createWrapper(QueryOrgReq req) {
LambdaQueryWrapper<PubOrg> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
......@@ -415,8 +352,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
wrapper.eq(ObjectUtil.isNotEmpty(req.getIsDepartment()), PubOrg::getIsDepartment, req.getIsDepartment());
//根据业务编码查询
wrapper.eq(ObjectUtil.isNotEmpty(req.getLevel()), PubOrg::getLevelFlag, req.getLevel());
wrapper.eq(ObjectUtil.isNotEmpty(req.getOrgId()), PubOrg::getOrgId,req.getOrgId());
wrapper.eq(ObjectUtil.isNotEmpty(req.getParentId()), PubOrg::getOrgParentId,Long.parseLong(req.getParentId()) );
wrapper.eq(ObjectUtil.isNotNull(req.getParentId()), PubOrg::getOrgParentId,req.getParentId() );
wrapper.eq(ObjectUtil.isNotEmpty(req.getOrgCode()), PubOrg::getOrgCode, req.getOrgCode());
......
......@@ -109,10 +109,13 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//根据供应商短码查询查询
wrapper.like(ObjectUtil.isNotEmpty(req.getCode()), Supplier::getCode, req.getCode());
//根据供应商短码查询查询
wrapper.like(ObjectUtil.isNotEmpty(req.getId()), Supplier::getId, req.getId());
//供应商名称模糊查询
wrapper.like(ObjectUtil.isNotEmpty(req.getName()), Supplier::getName, req.getName());
//供应商名称模糊查询
wrapper.eq(ObjectUtil.isNotEmpty(req.getName()), Supplier::getName, req.getName());
wrapper.like(ObjectUtil.isNotEmpty(req.getShortName()), Supplier::getShortName, req.getShortName());
//根据创建时间降序
wrapper.orderByDesc(Supplier::getCreateTime);
return wrapper;
......
package com.junmp.jyzb.boot.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
......@@ -14,21 +16,29 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
//@Configuration
//@EnableSwagger2
public class Swagger2Config {
// @Bean
// public Docket api() {
// return new Docket(DocumentationType.SWAGGER_2)
// .select()
// //.apis(RequestHandlerSelectors.basePackage("com.junmp.junmpProcess.controller"))
// .paths(PathSelectors.any())
// .build()
// .apiInfo(apiInfo());
// }
//
// private ApiInfo apiInfo() {
// return new ApiInfoBuilder()
// .title("API文档")
// .description("API文档")
// .version("1.0")
// .build();
// }
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
//.apis(RequestHandlerSelectors.basePackage("com.junmp.junmpProcess.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API文档")
.description("API文档")
.version("1.0")
.build();
}
// 添加下面这个Bean,使用Jackson的命名策略
@Bean
public ObjectMapper jacksonObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); // 使用下划线命名策略,即属性名转为小写,并使用下划线分隔
return objectMapper;
}
}
......@@ -11,6 +11,13 @@ spring:
allow-bean-definition-overriding: true
application:
name: jyzb-app
rabbitmq:
host: 192.168.3.188
port: 5672
username: root
password: 123456
#虚拟host 可以不设置,使用server默认host
virtual-host: /
profiles:
#@spring.active@
active: local
......
package com.junmp.jyzb.config;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* 创建消息接收监听类
* */
@Component
@RabbitListener(queues = "TestDirectQueue") //监听的队列名称 TestDirectQueue
public class DirectReceiver {
@RabbitHandler
public void process(Object testMessage) {
System.out.println("DirectReceiver消费者收到消息 : " + testMessage);
<<<<<<< HEAD
=======
>>>>>>> develop
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论