|
@@ -16,10 +16,13 @@ import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.equity.domain.*;
|
|
|
import com.ruoyi.equity.domain.dto.BecomeShareholderRecordDTO;
|
|
|
import com.ruoyi.equity.domain.vo.BecomeShareholderRecordVO;
|
|
|
+import com.ruoyi.equity.domain.vo.UserInfoVO;
|
|
|
import com.ruoyi.equity.service.IEquityChangeRecordService;
|
|
|
import com.ruoyi.equity.service.IEquityMessageRecordService;
|
|
|
import com.ruoyi.equity.service.IShareholderInfoService;
|
|
|
+import com.ruoyi.equity.socket.WebSocketService;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.ruoyi.equity.mapper.BecomeShareholderRecordMapper;
|
|
@@ -33,22 +36,20 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
* @date 2025-03-04
|
|
|
*/
|
|
|
@Service
|
|
|
+@RequiredArgsConstructor
|
|
|
public class BecomeShareholderRecordServiceImpl extends ServiceImpl<BecomeShareholderRecordMapper, BecomeShareholderRecord> implements IBecomeShareholderRecordService
|
|
|
{
|
|
|
- @Autowired
|
|
|
- private BecomeShareholderRecordMapper becomeShareholderRecordMapper;
|
|
|
+ private final BecomeShareholderRecordMapper becomeShareholderRecordMapper;
|
|
|
|
|
|
- @Autowired
|
|
|
- private IShareholderInfoService shareholderInfoService;
|
|
|
+ private final IShareholderInfoService shareholderInfoService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private IEquityChangeRecordService equityChangeRecordService;
|
|
|
+ private final IEquityChangeRecordService equityChangeRecordService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private ISysUserService sysUserService;
|
|
|
+ private final ISysUserService sysUserService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private IEquityMessageRecordService equityMessageRecordService;
|
|
|
+ private final IEquityMessageRecordService equityMessageRecordService;
|
|
|
+
|
|
|
+ private final WebSocketService webSocketService;
|
|
|
|
|
|
/**
|
|
|
* 查询股东入股记录
|
|
@@ -125,10 +126,24 @@ public class BecomeShareholderRecordServiceImpl extends ServiceImpl<BecomeShareh
|
|
|
.changeDate(DateUtils.getNowDate())
|
|
|
.changeAfterRatio(become.getShareholdingRatio())
|
|
|
.build());
|
|
|
+ //消息通知集合
|
|
|
+ List<EquityMessageRecord> messages = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(map.get(become.getShareholderId()))) {
|
|
|
+ List<Long> ids = map.get(become.getShareholderId());
|
|
|
+ for (Long id : ids) {
|
|
|
+ EquityMessageRecord message = new EquityMessageRecord();
|
|
|
+ message.setMsgType("1");
|
|
|
+ message.setMsgTime(DateUtils.getNowDate());
|
|
|
+ message.setUserId(id);
|
|
|
+ message.setMsgTitle(String.format("股东【%s】入股公司【%s】通知",shareholderInfo.getShareholderName(),company.getShareholderName()));
|
|
|
+ message.setMsgContent(String.format("股东【%s】的股份占比已由0增长为【%.2f】",
|
|
|
+ shareholderInfo.getShareholderName(),become.getShareholdingRatio().setScale(2, RoundingMode.HALF_UP)));
|
|
|
+ messages.add(message);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
//空余股份不够划分,则进行稀释股份
|
|
|
if (totalRatio.add(become.getShareholdingRatio()).compareTo(new BigDecimal(100)) > 0){
|
|
|
- //消息通知集合
|
|
|
- List<EquityMessageRecord> messages = new ArrayList<>();
|
|
|
//待稀释的股份
|
|
|
BigDecimal divideShare = totalRatio.add(become.getShareholdingRatio()).subtract(new BigDecimal(100));
|
|
|
// 计算稀释比例
|
|
@@ -152,14 +167,11 @@ public class BecomeShareholderRecordServiceImpl extends ServiceImpl<BecomeShareh
|
|
|
message.setMsgType("1");
|
|
|
message.setMsgTime(DateUtils.getNowDate());
|
|
|
message.setUserId(userId);
|
|
|
- message.setMsgTitle(String.format("股东【%s】入股公司【%s】",shareholderInfo.getShareholderName(),company.getShareholderName()));
|
|
|
-// message.setMsgContent("股东【" + info.getShareholderName() + "】的股份占比已由【" + info.getShareholdingRatio().setScale(2, RoundingMode.HALF_UP) + "】降低为【" + afterRatio.setScale(2, RoundingMode.HALF_UP) + "】");
|
|
|
+ message.setMsgTitle(String.format("股东【%s】入股公司【%s】通知",shareholderInfo.getShareholderName(),company.getShareholderName()));
|
|
|
message.setMsgContent(String.format("股东【%s】的股份占比已由【%.2f】降低为【%.2f】",
|
|
|
info.getShareholderName(),
|
|
|
info.getShareholdingRatio().setScale(2, RoundingMode.HALF_UP).doubleValue(),
|
|
|
afterRatio.setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
-
|
|
|
- message.setCreateTime(DateUtils.getNowDate());
|
|
|
messages.add(message);
|
|
|
}
|
|
|
}
|
|
@@ -172,9 +184,9 @@ public class BecomeShareholderRecordServiceImpl extends ServiceImpl<BecomeShareh
|
|
|
}
|
|
|
//批量根据list的主键修改
|
|
|
shareholderInfoService.updateBatchById(list);
|
|
|
- //批量保存消息通知
|
|
|
- equityMessageRecordService.saveBatch(messages);
|
|
|
}
|
|
|
+ //批量保存消息通知
|
|
|
+ equityMessageRecordService.saveBatch(messages);
|
|
|
//批量保存变更记录
|
|
|
equityChangeRecordService.saveBatch(records);
|
|
|
shareholderInfo.setParentId(company.getShareholderId());
|
|
@@ -183,7 +195,12 @@ public class BecomeShareholderRecordServiceImpl extends ServiceImpl<BecomeShareh
|
|
|
shareholderInfo.setControlledCompany(company.getShareholderId());
|
|
|
shareholderInfo.setNodeType(company.getNodeType());
|
|
|
shareholderInfoService.updateShareholderInfo(shareholderInfo);
|
|
|
- return this.save(become);
|
|
|
+ boolean save = this.save(become);
|
|
|
+ //消息推送
|
|
|
+ if (!messages.isEmpty()) {
|
|
|
+ equityMessageRecordService.getUnreadMessageCountChanged(messages.stream().map(EquityMessageRecord::getUserId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ return save;
|
|
|
}
|
|
|
|
|
|
/**
|