|
|
@@ -38,7 +38,12 @@ import org.springblade.los.basic.voucher.entity.VoucherTemplate;
|
|
|
import org.springblade.los.basic.voucher.service.IVoucherTemplateService;
|
|
|
import org.springblade.los.billno.entity.BusinessBillNo;
|
|
|
import org.springblade.los.billno.service.IBusinessBillNoService;
|
|
|
+import org.springblade.los.business.aea.entity.AeaBills;
|
|
|
+import org.springblade.los.business.aea.mapper.AeaBillsMapper;
|
|
|
+import org.springblade.los.business.customsDeclaration.entity.CustomsDeclaration;
|
|
|
+import org.springblade.los.business.customsDeclaration.mapper.CustomsDeclarationMapper;
|
|
|
import org.springblade.los.business.sea.entity.Bills;
|
|
|
+import org.springblade.los.business.sea.mapper.BillsMapper;
|
|
|
import org.springblade.los.check.dto.LosAuditProecessDTO;
|
|
|
import org.springblade.los.check.entity.LosAuditPathsActs;
|
|
|
import org.springblade.los.check.entity.LosAuditPathsLevels;
|
|
|
@@ -139,6 +144,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
|
|
|
private final FinPeriodMapper finPeriodMapper;
|
|
|
|
|
|
+ private final BillsMapper billsMapper;
|
|
|
+
|
|
|
+ private final AeaBillsMapper aeaBillsMapper;
|
|
|
+
|
|
|
+ private final CustomsDeclarationMapper customsDeclarationMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<FinStlBillsVO> selectFinStlBillsPage(IPage<FinStlBillsVO> page, FinStlBillsVO finStlBills) {
|
|
|
return page.setRecords(baseMapper.selectFinStlBillsPage(page, finStlBills));
|
|
|
@@ -429,6 +440,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finStlBillsItemsService.saveOrUpdateBatch(finStlBills.getFinStlBillsItemsList());
|
|
|
feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
finAccBillsService.saveOrUpdateBatch(finAccBillsList);
|
|
|
+ updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 1);
|
|
|
} else {
|
|
|
throw new RuntimeException("请选择明细");
|
|
|
}
|
|
|
@@ -438,6 +450,131 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
return R.data(detail);
|
|
|
}
|
|
|
|
|
|
+ private void updateBillsStatus(List<FinStlBillsItems> finStlBillsItemsList, int count) {
|
|
|
+ String billNoHYD = finStlBillsItemsList.stream()
|
|
|
+ .filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
|
|
|
+ && "D".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNoHYD)) {
|
|
|
+ List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(business_type,'" + billNoHYD + "')"));
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ if (1 == count) {
|
|
|
+ item.setCheckDrStatus(9);
|
|
|
+ item.setCheckDrStatusDescr("已对账");
|
|
|
+ } else if (2 == count) {
|
|
|
+ item.setStlDrStatus(9);
|
|
|
+ item.setStlDrStatusDescr("结清");
|
|
|
+ }
|
|
|
+ billsMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String billNoHYC = finStlBillsItemsList.stream()
|
|
|
+ .filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
|
|
|
+ && "C".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNoHYC)) {
|
|
|
+ List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(business_type,'" + billNoHYC + "')"));
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ if (1 == count) {
|
|
|
+ item.setCheckDrStatus(9);
|
|
|
+ item.setCheckDrStatusDescr("已对账");
|
|
|
+ } else if (2 == count) {
|
|
|
+ item.setStlDrStatus(9);
|
|
|
+ item.setStlDrStatusDescr("结清");
|
|
|
+ }
|
|
|
+ billsMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String billNoKYD = finStlBillsItemsList.stream()
|
|
|
+ .filter(e -> ("AE".equals(e.getBusinessType()) || "AI".equals(e.getBusinessType()))
|
|
|
+ && "D".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNoKYD)) {
|
|
|
+ List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
|
|
|
+ .eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AeaBills::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(business_type,'" + billNoKYD + "')"));
|
|
|
+ for (AeaBills item : billsList) {
|
|
|
+ if (1 == count) {
|
|
|
+ item.setCheckDrStatus(9);
|
|
|
+ item.setCheckDrStatusDescr("已对账");
|
|
|
+ } else if (2 == count) {
|
|
|
+ item.setStlDrStatus(9);
|
|
|
+ item.setStlDrStatusDescr("结清");
|
|
|
+ }
|
|
|
+ aeaBillsMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String billNoKYC = finStlBillsItemsList.stream()
|
|
|
+ .filter(e -> ("AE".equals(e.getBusinessType()) || "AI".equals(e.getBusinessType()))
|
|
|
+ && "C".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNoKYC)) {
|
|
|
+ List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
|
|
|
+ .eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AeaBills::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(business_type,'" + billNoKYC + "')"));
|
|
|
+ for (AeaBills item : billsList) {
|
|
|
+ if (1 == count) {
|
|
|
+ item.setCheckCrStatus(9);
|
|
|
+ item.setCheckCrStatusDescr("已对账");
|
|
|
+ } else if (2 == count) {
|
|
|
+ item.setStlCrStatus(9);
|
|
|
+ item.setStlCrStatusDescr("结清");
|
|
|
+ }
|
|
|
+ aeaBillsMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String billNoBGD = finStlBillsItemsList.stream()
|
|
|
+ .filter(e -> ("BGSE".equals(e.getBusinessType()) || "BGAE".equals(e.getBusinessType())
|
|
|
+ || "BGAI".equals(e.getBusinessType()) || "BGSI".equals(e.getBusinessType()))
|
|
|
+ && "D".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNoBGD)) {
|
|
|
+ List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
|
|
|
+ .eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(CustomsDeclaration::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(business_type,'" + billNoBGD + "')"));
|
|
|
+ for (CustomsDeclaration item : billsList) {
|
|
|
+ if (1 == count) {
|
|
|
+ item.setCheckDrStatus(9);
|
|
|
+ item.setCheckDrStatusDescr("已对账");
|
|
|
+ } else if (2 == count) {
|
|
|
+ item.setStlDrStatus(9);
|
|
|
+ item.setStlDrStatusDescr("结清");
|
|
|
+ }
|
|
|
+ customsDeclarationMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String billNoBGC = finStlBillsItemsList.stream()
|
|
|
+ .filter(e -> ("BGSE".equals(e.getBusinessType()) || "BGAE".equals(e.getBusinessType())
|
|
|
+ || "BGAI".equals(e.getBusinessType()) || "BGSI".equals(e.getBusinessType()))
|
|
|
+ && "C".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNoBGC)) {
|
|
|
+ List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
|
|
|
+ .eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(CustomsDeclaration::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(business_type,'" + billNoBGC + "')"));
|
|
|
+ for (CustomsDeclaration item : billsList) {
|
|
|
+ if (1 == count) {
|
|
|
+ item.setCheckCrStatus(9);
|
|
|
+ item.setCheckCrStatusDescr("已对账");
|
|
|
+ } else if (2 == count) {
|
|
|
+ item.setStlCrStatus(9);
|
|
|
+ item.setStlCrStatusDescr("结清");
|
|
|
+ }
|
|
|
+ customsDeclarationMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private List<FeeCenter> reconciliationFeeCenter(FinStlBills detail, List<FeeCenter> feeCenterList, int count, BigDecimal amount) {
|
|
|
BigDecimal currentStlAmount = amount;
|
|
|
for (FeeCenter item : feeCenterList) {
|
|
|
@@ -915,6 +1052,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
|
|
|
finAccBillsService.saveOrUpdateBatch(finAccBillsList);
|
|
|
detail.setStatus(3);
|
|
|
detail.setIsCleared(1);
|
|
|
+ updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 2);
|
|
|
} else {
|
|
|
throw new RuntimeException("请选择明细");
|
|
|
}
|