|
|
@@ -7,22 +7,21 @@ import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.los.Util.IDeptUtils;
|
|
|
import org.springblade.los.app.service.IndexService;
|
|
|
+import org.springblade.los.basic.corps.entity.BCorps;
|
|
|
+import org.springblade.los.basic.corps.mapper.CorpsMapper;
|
|
|
import org.springblade.los.business.aea.entity.AeaBills;
|
|
|
import org.springblade.los.business.aea.mapper.AeaBillsMapper;
|
|
|
import org.springblade.los.business.amends.entity.Amends;
|
|
|
import org.springblade.los.business.amends.mapper.AmendsMapper;
|
|
|
-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.finance.fee.entity.FeeCenter;
|
|
|
import org.springblade.los.finance.fee.mapper.FeeCenterMapper;
|
|
|
-import org.springblade.los.finance.fee.mapper.FinAccBillsMapper;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -35,22 +34,20 @@ public class IndexServiceImpl implements IndexService {
|
|
|
|
|
|
private final BillsMapper billsMapper;
|
|
|
private final AeaBillsMapper aeaBillsMapper;
|
|
|
- private final CustomsDeclarationMapper customsDeclarationMapper;
|
|
|
private final AmendsMapper amendsMapper;
|
|
|
- private final FinAccBillsMapper finAccBillsMapper;
|
|
|
+ private final CorpsMapper corpsMapper;
|
|
|
private final FeeCenterMapper feeCenterMapper;
|
|
|
private final IDeptUtils deptUtils;
|
|
|
private final ISysClient sysClient;
|
|
|
|
|
|
@Override
|
|
|
- public R profit(String type, String startDate, String endDate) {
|
|
|
+ public R profit(String branchId, String startDate, String endDate) {
|
|
|
BigDecimal amountD = new BigDecimal("0.00");
|
|
|
BigDecimal amountC = new BigDecimal("0.00");
|
|
|
LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(bill_type,'DD,MM')")
|
|
|
- .eq(ObjectUtils.isNotNull(type), Bills::getBranchId, type)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), Bills::getBranchId, branchId)
|
|
|
.ge(ObjectUtils.isNotNull(startDate), Bills::getBillDate, startDate)
|
|
|
.le(ObjectUtils.isNotNull(endDate), Bills::getBillDate, endDate);
|
|
|
String jurisdiction = sysClient.getParamService("data.jurisdiction");
|
|
|
@@ -84,7 +81,7 @@ public class IndexServiceImpl implements IndexService {
|
|
|
.eq(Amends::getIsDeleted, 0)
|
|
|
.in(!billIds.isEmpty(), Amends::getOrigId, billIds)
|
|
|
.apply("find_in_set(business_type,'SEA,SIA,AEA,AIA')")
|
|
|
- .eq(ObjectUtils.isNotNull(type), Amends::getBranchId, type)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), Amends::getBranchId, branchId)
|
|
|
.ge(ObjectUtils.isNotNull(startDate), Amends::getBillDate, startDate)
|
|
|
.le(ObjectUtils.isNotNull(endDate), Amends::getBillDate, endDate);
|
|
|
List<Amends> amendsList = amendsMapper.selectList(amendsLambdaQueryWrapper);
|
|
|
@@ -99,17 +96,17 @@ public class IndexServiceImpl implements IndexService {
|
|
|
.reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getExrate().multiply(y.getAmount())), BigDecimal::add);
|
|
|
amountC = feeCenterList.stream().filter(e -> "USD".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
.reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getExrate().multiply(y.getAmount())), BigDecimal::add);
|
|
|
- amountD = feeCenterList.stream().filter(e -> "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- amountC = feeCenterList.stream().filter(e -> "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ amountD = amountD.add(feeCenterList.stream().filter(e -> "CNY".equals(e.getCurCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountC = amountC.add(feeCenterList.stream().filter(e -> "CNY".equals(e.getCurCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
}
|
|
|
List<AeaBills> aeaBillsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
|
|
|
.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AeaBills::getIsDeleted, 0)
|
|
|
.apply("find_in_set(business_type,'AE,AI')")
|
|
|
- .eq(ObjectUtils.isNotNull(type), AeaBills::getBranchId, type)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), AeaBills::getBranchId, branchId)
|
|
|
.ge(ObjectUtils.isNotNull(startDate), AeaBills::getBillDate, startDate)
|
|
|
.le(ObjectUtils.isNotNull(endDate), AeaBills::getBillDate, endDate));
|
|
|
if (!amendsList.isEmpty()) {
|
|
|
@@ -120,17 +117,178 @@ public class IndexServiceImpl implements IndexService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R totalCargoVolume(String type, String startDate, String endDate) {
|
|
|
- return null;
|
|
|
+ public R totalCargoVolume(String branchId, String startDate, String endDate) {
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), Bills::getBranchId, branchId)
|
|
|
+ .ge(ObjectUtils.isNotNull(startDate), Bills::getBillDate, startDate)
|
|
|
+ .le(ObjectUtils.isNotNull(endDate), Bills::getBillDate, endDate);
|
|
|
+ String jurisdiction = sysClient.getParamService("data.jurisdiction");
|
|
|
+ if ("1".equals(jurisdiction)) {
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")
|
|
|
+ && !AuthUtil.getUserRole().contains("副总") && !AuthUtil.getUserRole().contains("财务")
|
|
|
+ && !AuthUtil.getUserRole().contains("经理")) {
|
|
|
+ if (AuthUtil.getUserRole().contains("操作经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorDept, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("操作员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorId, AuthUtil.getUserId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("销售经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcDeptId, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("业务员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Bills> billsList = billsMapper.selectList(lambdaQueryWrapper);
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ return R.data(billsList.stream().map(Bills::getTeu).filter(Objects::nonNull).mapToInt(Integer::intValue).sum());
|
|
|
+ } else {
|
|
|
+ return R.data(new BigDecimal("0"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R effectiveCorp(String branchId) {
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), Bills::getBranchId, branchId);
|
|
|
+ String jurisdiction = sysClient.getParamService("data.jurisdiction");
|
|
|
+ if ("1".equals(jurisdiction)) {
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")
|
|
|
+ && !AuthUtil.getUserRole().contains("副总") && !AuthUtil.getUserRole().contains("财务")
|
|
|
+ && !AuthUtil.getUserRole().contains("经理")) {
|
|
|
+ if (AuthUtil.getUserRole().contains("操作经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorDept, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("操作员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorId, AuthUtil.getUserId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("销售经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcDeptId, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("业务员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Bills> billsList = billsMapper.selectList(lambdaQueryWrapper);
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ return R.data(billsList.stream().map(Bills::getCorpId).distinct().count());
|
|
|
+ } else {
|
|
|
+ return R.data(new BigDecimal("0"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R effectiveCorp(String type) {
|
|
|
- return null;
|
|
|
+ public R lossCorp(String branchId) {
|
|
|
+ Date date = new Date();
|
|
|
+ Calendar calendarDate = Calendar.getInstance();
|
|
|
+ calendarDate.setTime(date);
|
|
|
+ calendarDate.add(Calendar.DAY_OF_MONTH, -90);
|
|
|
+ Date dateTime = calendarDate.getTime();
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .gt(Bills::getBillDate, dateTime)
|
|
|
+ .lt(Bills::getBillDate, date)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), Bills::getBranchId, branchId);
|
|
|
+ String jurisdiction = sysClient.getParamService("data.jurisdiction");
|
|
|
+ if ("1".equals(jurisdiction)) {
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")
|
|
|
+ && !AuthUtil.getUserRole().contains("副总") && !AuthUtil.getUserRole().contains("财务")
|
|
|
+ && !AuthUtil.getUserRole().contains("经理")) {
|
|
|
+ if (AuthUtil.getUserRole().contains("操作经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorDept, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("操作员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorId, AuthUtil.getUserId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("销售经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcDeptId, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("业务员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Bills> billsList = billsMapper.selectList(lambdaQueryWrapper);
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ List<Long> corpIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ if (!corpIds.isEmpty()) {
|
|
|
+ List<BCorps> corpsList = corpsMapper.selectList(new LambdaQueryWrapper<BCorps>()
|
|
|
+ .eq(BCorps::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BCorps::getIsDeleted, 0)
|
|
|
+ .eq(BCorps::getBranchId, branchId)
|
|
|
+ .notIn(BCorps::getId, corpIds));
|
|
|
+ if (!corpsList.isEmpty()) {
|
|
|
+ return R.data(corpsList.size());
|
|
|
+ } else {
|
|
|
+ return R.data(new BigDecimal("0"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return R.data(new BigDecimal("0"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return R.data(new BigDecimal("0"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R lossCorp(String type) {
|
|
|
- return null;
|
|
|
+ public R getCorpDetail(String branchId, String type) {
|
|
|
+ Date date = new Date();
|
|
|
+ Calendar calendarDate = Calendar.getInstance();
|
|
|
+ calendarDate.setTime(date);
|
|
|
+ calendarDate.add(Calendar.DAY_OF_MONTH, -90);
|
|
|
+ Date dateTime = calendarDate.getTime();
|
|
|
+ LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(ObjectUtils.isNotNull(branchId), Bills::getBranchId, branchId);
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ lambdaQueryWrapper.gt(Bills::getBillDate, dateTime)
|
|
|
+ .lt(Bills::getBillDate, date);
|
|
|
+ }
|
|
|
+ String jurisdiction = sysClient.getParamService("data.jurisdiction");
|
|
|
+ if ("1".equals(jurisdiction)) {
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")
|
|
|
+ && !AuthUtil.getUserRole().contains("副总") && !AuthUtil.getUserRole().contains("财务")
|
|
|
+ && !AuthUtil.getUserRole().contains("经理")) {
|
|
|
+ if (AuthUtil.getUserRole().contains("操作经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorDept, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("操作员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getOperatorId, AuthUtil.getUserId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("销售经理")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcDeptId, AuthUtil.getDeptId());
|
|
|
+ } else if (AuthUtil.getUserRole().contains("业务员")) {
|
|
|
+ lambdaQueryWrapper.like(Bills::getSrcId, AuthUtil.getUserId());
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Bills> billsList = billsMapper.selectList(lambdaQueryWrapper);
|
|
|
+ List<BCorps> corpsList = new ArrayList<>();
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ List<Long> corpIds = billsList.stream().map(Bills::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ if (!corpIds.isEmpty()) {
|
|
|
+ LambdaQueryWrapper<BCorps> corpsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ corpsLambdaQueryWrapper.eq(BCorps::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BCorps::getIsDeleted, 0)
|
|
|
+ .eq(BCorps::getBranchId, branchId);
|
|
|
+ if ("1".equals(type)) {
|
|
|
+ corpsLambdaQueryWrapper.notIn(BCorps::getId, corpIds);
|
|
|
+ } else {
|
|
|
+ corpsLambdaQueryWrapper.in(BCorps::getId, corpIds);
|
|
|
+ }
|
|
|
+ corpsList = corpsMapper.selectList(corpsLambdaQueryWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.data(corpsList);
|
|
|
}
|
|
|
}
|