|
@@ -31,6 +31,7 @@ import com.winhc.repal.repository.RepalResponsiblePersonMapper;
|
|
import com.winhc.repal.service.*;
|
|
import com.winhc.repal.service.*;
|
|
import com.winhc.repal.util.DiagnosisUtil;
|
|
import com.winhc.repal.util.DiagnosisUtil;
|
|
import com.winhc.repal.util.RepalBillStatusUtil;
|
|
import com.winhc.repal.util.RepalBillStatusUtil;
|
|
|
|
+import com.winhc.repal.util.ThreadPoolUtil;
|
|
import com.winhc.repal.util.UserContextUtil;
|
|
import com.winhc.repal.util.UserContextUtil;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -120,6 +121,9 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
@Autowired
|
|
@Autowired
|
|
private CompanyService companyService;
|
|
private CompanyService companyService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private MessageNoticeService messageNoticeService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
|
|
public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
|
|
long userId = UserContextUtil.getUser().getUserId();
|
|
long userId = UserContextUtil.getUser().getUserId();
|
|
@@ -563,6 +567,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
.eq(RepalBill::getId, dto.getRepalBillId())
|
|
.eq(RepalBill::getId, dto.getRepalBillId())
|
|
.set(RepalBill::getRepalBillStatus, RepalBillStatusEnum.END.getCode())
|
|
.set(RepalBill::getRepalBillStatus, RepalBillStatusEnum.END.getCode())
|
|
.set(StrUtil.isNotBlank(dto.getBreakReason()), RepalBill::getBreakReason, dto.getBreakReason()));
|
|
.set(StrUtil.isNotBlank(dto.getBreakReason()), RepalBill::getBreakReason, dto.getBreakReason()));
|
|
|
|
+ ThreadPoolUtil.executorService.execute(()->sendRepalMsgBreak(dto.getRepalBillId()));
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -597,6 +602,8 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
List<Long> currentIdList = repalResponsiblePersonService.getResponsiblePersonId(repalBill.getId());
|
|
List<Long> currentIdList = repalResponsiblePersonService.getResponsiblePersonId(repalBill.getId());
|
|
List<Long> difference = new ArrayList<>(CollUtil.disjunction(dto.getResponsiblePersonIdList(), currentIdList));
|
|
List<Long> difference = new ArrayList<>(CollUtil.disjunction(dto.getResponsiblePersonIdList(), currentIdList));
|
|
if (CollUtil.isNotEmpty(difference)) {
|
|
if (CollUtil.isNotEmpty(difference)) {
|
|
|
|
+ List<Long> delList = new ArrayList<>();
|
|
|
|
+ List<Long> addList = new ArrayList<>();
|
|
for (Long aLong : difference) {
|
|
for (Long aLong : difference) {
|
|
if (currentIdList.contains(aLong)) {
|
|
if (currentIdList.contains(aLong)) {
|
|
// 移除
|
|
// 移除
|
|
@@ -604,6 +611,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
.eq(RepalResponsiblePerson::getRepalBillId, repalBill.getId())
|
|
.eq(RepalResponsiblePerson::getRepalBillId, repalBill.getId())
|
|
.eq(RepalResponsiblePerson::getUserId, aLong)
|
|
.eq(RepalResponsiblePerson::getUserId, aLong)
|
|
.set(RepalResponsiblePerson::getDeleted, DeletedStatusEnum.DELETE.getCode()));
|
|
.set(RepalResponsiblePerson::getDeleted, DeletedStatusEnum.DELETE.getCode()));
|
|
|
|
+ delList.add(aLong);
|
|
}
|
|
}
|
|
if (dto.getResponsiblePersonIdList().contains(aLong)) {
|
|
if (dto.getResponsiblePersonIdList().contains(aLong)) {
|
|
// 新增
|
|
// 新增
|
|
@@ -613,6 +621,17 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
person.setRepalGroupId(repalBill.getRepalGroupId());
|
|
person.setRepalGroupId(repalBill.getRepalGroupId());
|
|
person.setUserId(aLong);
|
|
person.setUserId(aLong);
|
|
repalResponsiblePersonService.save(person);
|
|
repalResponsiblePersonService.save(person);
|
|
|
|
+ addList.add(aLong);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(CollUtil.isNotEmpty(delList)){
|
|
|
|
+ for(Long userId:delList){
|
|
|
|
+ sendRepalMsgDelCharge(userId,dto.getRepalBillId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(CollUtil.isNotEmpty(addList)){
|
|
|
|
+ for(Long userId:addList){
|
|
|
|
+ sendRepalMsgAddCharge(userId,dto.getRepalBillId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -621,9 +640,11 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
repalBill.setRepalBillStatus(RepalBillStatusEnum.OVERDUE.getCode());
|
|
repalBill.setRepalBillStatus(RepalBillStatusEnum.OVERDUE.getCode());
|
|
}
|
|
}
|
|
// 改金额三种状态
|
|
// 改金额三种状态
|
|
|
|
+ boolean sendFlag = false;
|
|
if (dto.getReceivable().compareTo(BigDecimal.ZERO) == 0) {
|
|
if (dto.getReceivable().compareTo(BigDecimal.ZERO) == 0) {
|
|
repalBill.setTotalMoney(repalBill.getReceipt());
|
|
repalBill.setTotalMoney(repalBill.getReceipt());
|
|
repalBill.setRepalBillStatus(RepalBillStatusEnum.SUCCESS.getCode());
|
|
repalBill.setRepalBillStatus(RepalBillStatusEnum.SUCCESS.getCode());
|
|
|
|
+ sendFlag = true;
|
|
}
|
|
}
|
|
if (dto.getReceivable().compareTo(repalBill.getReceivable()) > 0) {
|
|
if (dto.getReceivable().compareTo(repalBill.getReceivable()) > 0) {
|
|
repalBill.setTotalMoney(repalBill.getTotalMoney().add(dto.getReceivable().subtract(repalBill.getReceivable())));
|
|
repalBill.setTotalMoney(repalBill.getTotalMoney().add(dto.getReceivable().subtract(repalBill.getReceivable())));
|
|
@@ -653,6 +674,9 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
repalBillOperLog.setBizId(String.valueOf(repalBill.getId()));
|
|
repalBillOperLog.setBizId(String.valueOf(repalBill.getId()));
|
|
repalBillOperLog.setActionContent(JSON.toJSONString(dto));
|
|
repalBillOperLog.setActionContent(JSON.toJSONString(dto));
|
|
repalBillOperLogService.save(repalBillOperLog);
|
|
repalBillOperLogService.save(repalBillOperLog);
|
|
|
|
+ if(sendFlag){
|
|
|
|
+ ThreadPoolUtil.executorService.execute(()->sendRepalMsgSuccess(dto.getRepalBillId()));
|
|
|
|
+ }
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -922,6 +946,18 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
repalCustChargeRelService.update(Wrappers.lambdaUpdate(RepalCustChargeRel.class)
|
|
repalCustChargeRelService.update(Wrappers.lambdaUpdate(RepalCustChargeRel.class)
|
|
.eq(RepalCustChargeRel::getMemberUserId, dto.getUserId())
|
|
.eq(RepalCustChargeRel::getMemberUserId, dto.getUserId())
|
|
.set(RepalCustChargeRel::getMemberUserId, dto.getTransferUserId()));
|
|
.set(RepalCustChargeRel::getMemberUserId, dto.getTransferUserId()));
|
|
|
|
+ //发送站内信
|
|
|
|
+ ThreadPoolUtil.executorService.execute(()->{
|
|
|
|
+ List<RepalResponsiblePerson> repalBills = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
|
|
|
|
+ .eq(RepalResponsiblePerson::getUserId,dto.getUserId())
|
|
|
|
+ .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalBills)){
|
|
|
|
+ for(RepalResponsiblePerson responsiblePerson : repalBills){
|
|
|
|
+ sendRepalMsgAddCharge(dto.getTransferUserId(),responsiblePerson.getRepalBillId());
|
|
|
|
+ sendRepalMsgDelCharge(dto.getUserId(),responsiblePerson.getRepalBillId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1069,4 +1105,114 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
}).collect(Collectors.toList()));
|
|
}).collect(Collectors.toList()));
|
|
return vo;
|
|
return vo;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 添加负责人 给账款其他负责人发
|
|
|
|
+ * @param userId
|
|
|
|
+ * @param repalBillId
|
|
|
|
+ */
|
|
|
|
+ private void sendRepalMsgAddCharge(Long userId,Long repalBillId){
|
|
|
|
+ RepalBill repalBill = getById(repalBillId);
|
|
|
|
+ if(ObjectUtil.isNull(repalBill)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ RepalGroupMember repalGroupMember = repalGroupMemberService.getMemberByUserId(userId);
|
|
|
|
+ if(ObjectUtil.isNull(repalGroupMember)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
|
|
|
|
+ .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
|
|
|
|
+ .ne(RepalResponsiblePerson::getUserId,userId)
|
|
|
|
+ .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
|
|
|
|
+ Map<String,String> paraMap = new HashMap<>();
|
|
|
|
+ paraMap.put("name",repalGroupMember.getMemberUserName());
|
|
|
|
+ paraMap.put("custName",repalBill.getCustomerName());
|
|
|
|
+ paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
|
|
|
|
+ paraMap.put("billType", billType+"账款");
|
|
|
|
+ for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
|
|
|
|
+ messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝添加负责人, paraMap);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 删除负责人 给账款其他负责人发
|
|
|
|
+ * @param userId
|
|
|
|
+ * @param repalBillId
|
|
|
|
+ */
|
|
|
|
+ private void sendRepalMsgDelCharge(Long userId,Long repalBillId){
|
|
|
|
+ RepalBill repalBill = getById(repalBillId);
|
|
|
|
+ if(ObjectUtil.isNull(repalBill)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ RepalGroupMember repalGroupMember = repalGroupMemberService.getMemberByUserId(userId);
|
|
|
|
+ if(ObjectUtil.isNull(repalGroupMember)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
|
|
|
|
+ .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
|
|
|
|
+ .ne(RepalResponsiblePerson::getUserId,userId)
|
|
|
|
+ .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
|
|
|
|
+ Map<String,String> paraMap = new HashMap<>();
|
|
|
|
+ paraMap.put("name",repalGroupMember.getMemberUserName());
|
|
|
|
+ paraMap.put("custName",repalBill.getCustomerName());
|
|
|
|
+ paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
|
|
|
|
+ paraMap.put("billType", billType+"账款");
|
|
|
|
+ for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
|
|
|
|
+ messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝删除负责人, paraMap);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 终止账款 给账款负责人发
|
|
|
|
+ * @param repalBillId
|
|
|
|
+ */
|
|
|
|
+ private void sendRepalMsgBreak(Long repalBillId){
|
|
|
|
+ RepalBill repalBill = getById(repalBillId);
|
|
|
|
+ if(ObjectUtil.isNull(repalBill)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
|
|
|
|
+ .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
|
|
|
|
+ .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
|
|
|
|
+ Map<String,String> paraMap = new HashMap<>();
|
|
|
|
+ paraMap.put("custName",repalBill.getCustomerName());
|
|
|
|
+ paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
|
|
|
|
+ paraMap.put("billType", billType+"账款");
|
|
|
|
+ for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
|
|
|
|
+ messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝账款终止, paraMap);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 结清账款 给账款负责人发
|
|
|
|
+ * @param repalBillId
|
|
|
|
+ */
|
|
|
|
+ private void sendRepalMsgSuccess(Long repalBillId){
|
|
|
|
+ RepalBill repalBill = getById(repalBillId);
|
|
|
|
+ if(ObjectUtil.isNull(repalBill)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
|
|
|
|
+ .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
|
|
|
|
+ .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
|
|
|
|
+ if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
|
|
|
|
+ Map<String,String> paraMap = new HashMap<>();
|
|
|
|
+ paraMap.put("custName",repalBill.getCustomerName());
|
|
|
|
+ paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
|
|
|
|
+ paraMap.put("billType", billType+"账款");
|
|
|
|
+ for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
|
|
|
|
+ messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝账款结清, paraMap);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|