Forráskód Böngészése

1.批量修改场站,空箱返场增加铅封号,检索条件问题修改
2.海运进出口,amend等财务权限修改
3.海运进出口列表增加分单号排序
4.海运进出口删除逻辑修改
5.财务数据检索时总部不按照所属公司查询,直接查全部
6.付费申请驳回状态,允许撤销审核
7.集装箱单据大保存-费用明细赋值所属公司
8.海运进出口-费用明细打印增加amend打印逻辑
9.财务中心保存增加附件上传
10.生成报价星期转换为中文

纪新园 7 hónapja
szülő
commit
305434b177
20 módosított fájl, 328 hozzáadás és 73 törlés
  1. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoices.java
  2. 7 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/stl/entity/FinStlBills.java
  3. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java
  4. 22 2
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  5. 12 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java
  6. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/controller/AmendsController.java
  7. 5 5
      blade-service/blade-los/src/main/java/org/springblade/los/business/mktSlot/service/impl/MktSlotServiceImpl.java
  8. 13 5
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
  9. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BookingCabinController.java
  10. 19 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/ContainersController.java
  11. 10 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/ContainersMapper.xml
  12. 76 43
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  13. 8 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java
  14. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/excel/BoxAndLeadSealNoExcel.java
  15. 63 0
      blade-service/blade-los/src/main/java/org/springblade/los/excel/ContainersExcel.java
  16. 5 2
      blade-service/blade-los/src/main/java/org/springblade/los/excel/UpdatePodStationExcel.java
  17. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java
  18. 26 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java
  19. 28 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java
  20. 12 12
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoices.java

@@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springblade.los.business.files.entity.FilesCenter;
 import org.springblade.los.finance.stl.dto.FinStlBillsItemsReports;
 import org.springblade.system.entity.Dept;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -510,6 +511,11 @@ public class FinInvoices implements Serializable {
 	 */
 	@TableField(exist = false)
 	private List<FinInvoiceItemDetail> finInvoiceItemDetailList;
+	/**
+	 * 文件中心
+	 */
+	@TableField(exist = false)
+	private List<FilesCenter> fileList;
 
 	/**
 	 * 编码生成code

+ 7 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/stl/entity/FinStlBills.java

@@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springblade.los.business.files.entity.FilesCenter;
 import org.springblade.los.finance.stl.dto.FinStlBillsItemsReports;
 import org.springblade.system.entity.Dept;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -564,6 +565,12 @@ public class FinStlBills implements Serializable {
 	private List<FinStlBillsVoucherItems> finStlBillsVoucherItemsList;
 
 	/**
+	 * 文件中心
+	 */
+	@TableField(exist = false)
+	private List<FilesCenter> fileList;
+
+	/**
 	 * 编码生成code
 	 */
 	@TableField(exist = false)

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java

@@ -30,9 +30,15 @@ public class MagicValues {
 	public static final String SETTLEMENT_CENTER = "结算中心";
 	public static final String MEET = "应付";
 	public static final String MEET_BILL = "应付-账单";
+
+	public static final String MEET_BILL_NUMBER = "应付-账单号";
+	public static final String MEET_AMEND = "应付-amend";
 	public static final String RECEIVABLE = "应收";
 
 	public static final String RECEIVABLE_BILL = "应收-账单";
+
+	public static final String BILL_NUMBER = "应收-账单号";
+	public static final String RECEIVABLE_AMEND = "应收-amend";
 	public static final String DISPATCH_NOTICE = "派车通知单";
 	public static final String INCOMING_NOTIFICATION = "入货通知";
 	public static final String SALES_REPORT = "销售报告";

+ 22 - 2
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -1399,7 +1399,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 				map.put(MagicValues.DATA, null);
 			}
 		} else if (MagicValues.COST.equals(reportCode) &&
-			(MagicValues.RECEIVABLE_BILL.equals(groupCode) || MagicValues.RECEIVABLE.equals(groupCode)) &&
+			(MagicValues.RECEIVABLE_BILL.equals(groupCode) || MagicValues.RECEIVABLE.equals(groupCode) ||
+				MagicValues.BILL_NUMBER.equals(groupCode) || MagicValues.RECEIVABLE_AMEND.equals(groupCode)) &&
 			(MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
 			Bills bills = billsService.getById(billId);
 			if (bills != null) {
@@ -1429,6 +1430,15 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					}
 				}
 				ids.add(0, bills.getId());
+				if (MagicValues.RECEIVABLE_AMEND.equals(groupCode)) {
+					List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
+						.eq(Amends::getTenantId, AuthUtil.getTenantId())
+						.eq(Amends::getIsDeleted, 0)
+						.in(Amends::getOrigId, ids));
+					if (!amendsList.isEmpty()) {
+						ids.addAll(amendsList.stream().map(Amends::getId).collect(Collectors.toList()));
+					}
+				}
 				LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getDc, MagicValues.D)
@@ -1465,7 +1475,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 				map.put(MagicValues.DATA, null);
 			}
 		} else if (MagicValues.COST.equals(reportCode) &&
-			(MagicValues.MEET.equals(groupCode) || MagicValues.MEET_BILL.equals(groupCode)) &&
+			(MagicValues.MEET.equals(groupCode) || MagicValues.MEET_BILL.equals(groupCode) ||
+				MagicValues.MEET_BILL_NUMBER.equals(groupCode) || MagicValues.MEET_AMEND.equals(groupCode)) &&
 			(MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
 			Bills bills = billsService.getById(billId);
 			if (bills != null) {
@@ -1495,6 +1506,15 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					}
 				}
 				ids.add(0, bills.getId());
+				if (MagicValues.MEET_AMEND.equals(groupCode)) {
+					List<Amends> amendsList = amendsService.list(new LambdaQueryWrapper<Amends>()
+						.eq(Amends::getTenantId, AuthUtil.getTenantId())
+						.eq(Amends::getIsDeleted, 0)
+						.in(Amends::getOrigId, ids));
+					if (!amendsList.isEmpty()) {
+						ids.addAll(amendsList.stream().map(Amends::getId).collect(Collectors.toList()));
+					}
+				}
 				LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getDc, MagicValues.C)

+ 12 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java

@@ -44,6 +44,7 @@ import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.los.business.sea.service.ISeaContainerNumberItemService;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -100,6 +101,8 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 
 	private final IContainersService containersService;
 
+	private final ISysClient sysClient;
+
 	@Override
 	public TradingBox getDetail(TradingBox tradingBox) {
 		if (tradingBox.getId() == null) {
@@ -381,6 +384,13 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		}
 		//费用数据
 		if (ObjectUtils.isNotNull(tradingBox.getFeeCenterList()) && !tradingBox.getFeeCenterList().isEmpty()) {
+			String deptName = "";
+			String branchId = AuthUtil.getDeptId();
+			//获取部门ids对应中文名
+			R<String> res = sysClient.getDeptName(Long.parseLong(branchId));
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = res.getData();
+			}
 			BigDecimal amountD = new BigDecimal("0.00");
 			BigDecimal amountC = new BigDecimal("0.00");
 			BigDecimal amountDUsd = new BigDecimal("0.00");
@@ -394,6 +404,8 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					.in(FeeCenter::getId, idList));
 			}
 			for (FeeCenter item : tradingBox.getFeeCenterList()) {
+				item.setBranchName(deptName);
+				item.setBranchId(branchId);
 				if (item.getId() != null && !feeCenterList1.isEmpty()) {
 					FeeCenter feeCenter1 = feeCenterList1.stream().filter(e -> e.getId().equals(item.getId()))
 						.findFirst().orElse(null);

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/controller/AmendsController.java

@@ -95,7 +95,7 @@ public class AmendsController extends BladeController {
 			.orderByDesc(Amends::getCreateTime);
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Amends::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin")  && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i-> i.eq(AuthUtil.getUserRole().contains("业务员"), Amends::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"),Amends::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"),Amends::getCustomerServiceId, AuthUtil.getUserId()).or()

+ 5 - 5
blade-service/blade-los/src/main/java/org/springblade/los/business/mktSlot/service/impl/MktSlotServiceImpl.java

@@ -47,10 +47,8 @@ import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.time.format.TextStyle;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -282,7 +280,9 @@ public class MktSlotServiceImpl extends ServiceImpl<MktSlotMapper, MktSlot> impl
 				mktSlotQuotation.setBranchId(item.getBranchId());
 				mktSlotQuotation.setBranchName(item.getBranchName());
 				mktSlotQuotation.setEtd(Date.from(tomorrow.atStartOfDay(ZoneId.systemDefault()).toInstant()));
-				mktSlotQuotation.setWeek(String.valueOf(tomorrow.getDayOfWeek()));
+				String chineseWeekday = tomorrow.getDayOfWeek()
+					.getDisplayName(TextStyle.FULL, Locale.CHINESE);
+				mktSlotQuotation.setWeek(chineseWeekday);
 				mktSlotQuotation.setGp20(item.getGp20());
 				mktSlotQuotation.setGp40(item.getGp40());
 				mktSlotQuotation.setHc40(item.getHc40());

+ 13 - 5
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -131,7 +131,7 @@ public class BillsController extends BladeController {
 		}
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -215,7 +215,11 @@ public class BillsController extends BladeController {
 				lambdaQueryWrapper.orderByAsc(Bills::getMasterBillNo);
 				lambdaQueryWrapper.orderByDesc(Bills::getBillType);
 			} else if ("2".equals(bills.getBillSort())) {
-				lambdaQueryWrapper.orderByDesc(Bills::getMblno);
+				lambdaQueryWrapper.orderByAsc(Bills::getMblno);
+				lambdaQueryWrapper.orderByAsc(Bills::getMasterBillNo);
+				lambdaQueryWrapper.orderByDesc(Bills::getBillType);
+				lambdaQueryWrapper.orderByAsc(Bills::getHblno);
+			} else if ("3".equals(bills.getBillSort())) {
 				lambdaQueryWrapper.orderByAsc(Bills::getMasterBillNo);
 				lambdaQueryWrapper.orderByDesc(Bills::getBillType);
 				lambdaQueryWrapper.orderByAsc(Bills::getHblno);
@@ -230,7 +234,11 @@ public class BillsController extends BladeController {
 				lambdaQueryWrapper.orderByAsc(Bills::getMasterBillNo);
 				lambdaQueryWrapper.orderByDesc(Bills::getBillType);
 			} else if ("2".equals(bills.getBillSort())) {
-				lambdaQueryWrapper.orderByDesc(Bills::getMblno);
+				lambdaQueryWrapper.orderByAsc(Bills::getMblno);
+				lambdaQueryWrapper.orderByAsc(Bills::getMasterBillNo);
+				lambdaQueryWrapper.orderByDesc(Bills::getBillType);
+				lambdaQueryWrapper.orderByAsc(Bills::getHblno);
+			}else if ("3".equals(bills.getBillSort())) {
 				lambdaQueryWrapper.orderByAsc(Bills::getMasterBillNo);
 				lambdaQueryWrapper.orderByDesc(Bills::getBillType);
 				lambdaQueryWrapper.orderByAsc(Bills::getHblno);
@@ -280,7 +288,7 @@ public class BillsController extends BladeController {
 			.like(ObjectUtils.isNotNull(bills.getHblno()), Bills::getHblno, bills.getHblno());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -623,7 +631,7 @@ public class BillsController extends BladeController {
 		}
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BookingCabinController.java

@@ -102,7 +102,7 @@ public class BookingCabinController extends BladeController {
 		}
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()

+ 19 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/ContainersController.java

@@ -31,11 +31,13 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.los.business.sea.entity.Containers;
 import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.los.business.sea.vo.ContainersVO;
 import org.springblade.los.excel.BoxAndLeadSealNoExcel;
+import org.springblade.los.excel.ContainersExcel;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -159,6 +161,23 @@ public class ContainersController extends BladeController {
 	}
 
 	/**
+	 * 导出 配箱信息
+	 */
+	@GetMapping("/exportContainersList")
+	public void exportContainersList(Containers containers, HttpServletResponse response) {
+		LambdaQueryWrapper<Containers> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Containers::getTenantId, AuthUtil.getTenantId())
+			.eq(Containers::getIsDeleted, 0)
+			.eq(Containers::getPid, containers.getPid())
+			.orderByAsc(Containers::getLineNo);
+		List<Containers> containersList = containersService.list(lambdaQueryWrapper);
+		List<BoxAndLeadSealNoExcel> boxAndLeadSealNoExcels = new ArrayList<>();
+		BeanUtil.copyProperties(containersList,boxAndLeadSealNoExcels);
+		ExcelUtil.export(response, "配箱明细", "配箱明细", boxAndLeadSealNoExcels, BoxAndLeadSealNoExcel.class);
+
+	}
+
+	/**
 	 * 导入 箱号 铅封号
 	 */
 	@PostMapping("/importBoxNo")

+ 10 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/ContainersMapper.xml

@@ -90,6 +90,7 @@
         cn.box_belongs_to as boxBelongsTo,
         cn.bus_type as busType,
         sc.cntr_no as cntrNo,
+        sc.seal_no as sealNo,
         sc.cntr_type_code as cntrTypeCode,
         sc.pod_station_cname as podStationCname,
         sc.id as containersId,
@@ -116,6 +117,9 @@
         <if test="data.cntrNo != null and data.cntrNo != ''">
             and sc.cntr_no = #{data.cntrNo}
         </if>
+        <if test="data.sealNo != null and data.sealNo != ''">
+            and sc.seal_no = #{data.sealNo}
+        </if>
         <if test="data.podStationCname != null and data.podStationCname != ''">
             and se.pod_station_cname like concat('%', #{data.podStationCname}, '%')
         </if>
@@ -164,6 +168,7 @@
         </if>
         <if test='data.whether != null and data.whether != ""  and data.whether == "1"'>
             and sc.pod_station_cname is not null
+            and  sc.pod_station_cname != ''
         </if>
         GROUP BY sc.id
     </select>
@@ -181,6 +186,7 @@
         cn.box_belongs_to as boxBelongsTo,
         cn.bus_type as busType,
         sc.cntr_no as cntrNo,
+        sc.seal_no as sealNo,
         sc.cntr_type_code as cntrTypeCode,
         sc.pod_station_cname as podStationCname,
         sc.id as containersId,
@@ -207,6 +213,9 @@
         <if test="data.cntrNo != null and data.cntrNo != ''">
             and sc.cntr_no = #{data.cntrNo}
         </if>
+        <if test="data.sealNo != null and data.sealNo != ''">
+            and sc.seal_no = #{data.sealNo}
+        </if>
         <if test="data.podStationCname != null and data.podStationCname != ''">
             and se.pod_station_cname like concat('%', #{data.podStationCname}, '%')
         </if>
@@ -255,6 +264,7 @@
         </if>
         <if test='data.whether != null and data.whether != ""  and data.whether == "1"'>
             and sc.pod_station_cname is not null
+            and  sc.pod_station_cname != ''
         </if>
         GROUP BY sc.id
     </select>

+ 76 - 43
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -1580,7 +1580,41 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(FeeCenter::getIsDeleted, 0)
 			.in(FeeCenter::getPid, ids));
 		if (!feeCenterList.isEmpty()) {
-			throw new RuntimeException("存在费用明细,删除失败");
+			if (feeCenterList.stream().anyMatch(e -> !"0".equals(e.getAuditStatus()))){
+				throw new RuntimeException("费用明细中存在状态不是录入,删除失败");
+			}else{
+				feeCenterService.removeByIds(feeCenterList.stream().map(FeeCenter::getId).collect(Collectors.toList()));
+			}
+		}
+		List<SeaBillsDetail> seaBillsDetail = seaBillsDetailService.list(new LambdaQueryWrapper<SeaBillsDetail>()
+			.eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
+			.in(SeaBillsDetail::getPid, ids));
+		if (!seaBillsDetail.isEmpty()){
+			seaBillsDetailService.removeByIds(seaBillsDetail.stream().map(SeaBillsDetail::getId).collect(Collectors.toList()));
+		}
+		List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+			.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+			.in(PreContainers::getPid, ids));
+		if (!preContainersList.isEmpty()){
+			preContainersService.removeByIds(preContainersList.stream().map(PreContainers::getId).collect(Collectors.toList()));
+		}
+		List<SeaContainerNumberItem> containerNumberItemList = seaContainerNumberItemService.list(new LambdaQueryWrapper<SeaContainerNumberItem>()
+			.eq(SeaContainerNumberItem::getTenantId, AuthUtil.getTenantId())
+			.in(SeaContainerNumberItem::getPid, ids));
+		if (!containerNumberItemList.isEmpty()){
+			seaContainerNumberItemService.removeByIds(containerNumberItemList.stream().map(SeaContainerNumberItem::getId).collect(Collectors.toList()));
+		}
+		List<FilesCenter> filesCenterList = filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
+			.eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
+			.in(FilesCenter::getPid, ids));
+		if (!filesCenterList.isEmpty()){
+			filesCenterService.removeByIds(filesCenterList.stream().map(FilesCenter::getId).collect(Collectors.toList()));
+		}
+		List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
+			.eq(Containers::getTenantId, AuthUtil.getTenantId())
+			.in(Containers::getPid, ids));
+		if (!containersList.isEmpty()){
+			containersService.removeByIds(containersList.stream().map(Containers::getId).collect(Collectors.toList()));
 		}
 		baseMapper.deleteBatchIds(ids);
 	}
@@ -3684,51 +3718,50 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
 				.in(Bills::getMasterId, idMList));
-			if (billsHList.isEmpty()) {
-				throw new RuntimeException("未查到单据信息");
-			}
-			idMList.addAll(billsHList.stream().map(Bills::getId).collect(Collectors.toList()));
-			List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-				.eq(FeeCenter::getIsDeleted, 0)
-				.in(FeeCenter::getPid, billsHList.stream().map(Bills::getId).collect(Collectors.toList())));
-			if (feeCenterList.isEmpty()) {
-				throw new RuntimeException("未查到分单费用明细,先维护分单费用");
-			}
-			for (Bills item : billsHList) {
-				List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> e.getPid().equals(item.getId()))
-					.collect(Collectors.toList());
-				if (feeCenters.isEmpty()) {
-					throw new RuntimeException("未查到分单编号:" + item.getBillNo() + "费用明细,先维护分单费用");
-				}
-				String texts = "";
-				if (ObjectUtils.isNull(item.getHblno())) {
-					texts = texts + "分单号、";
-				}
-				if (ObjectUtils.isNull(item.getVesselId())) {
-					texts = texts + "船名、";
-				}
-				if (ObjectUtils.isNull(item.getVoyageNo())) {
-					texts = texts + "航次、";
-				}
-				if (ObjectUtils.isNull(item.getPodId())) {
-					texts = texts + "卸货港、";
-				}
-				if (ObjectUtils.isNull(item.getCarrierId())) {
-					texts = texts + "船公司、";
-				}
-				if (ObjectUtils.isNull(item.getCyId())) {
-					texts = texts + "POL场站、";
-				}
-				if (ObjectUtils.isNull(item.getPodCyId())) {
-					texts = texts + "POD场站、";
+			if (!billsHList.isEmpty()) {
+				idMList.addAll(billsHList.stream().map(Bills::getId).collect(Collectors.toList()));
+				List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+					.eq(FeeCenter::getIsDeleted, 0)
+					.in(FeeCenter::getPid, billsHList.stream().map(Bills::getId).collect(Collectors.toList())));
+				if (feeCenterList.isEmpty()) {
+					throw new RuntimeException("未查到分单费用明细,先维护分单费用");
 				}
-				if (ObjectUtils.isNotNull(texts)) {
-					throw new RuntimeException("分单:" + item.getBillNo() + "," + texts + "不能为空");
+				for (Bills item : billsHList) {
+					List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> e.getPid().equals(item.getId()))
+						.collect(Collectors.toList());
+					if (feeCenters.isEmpty()) {
+						throw new RuntimeException("未查到分单编号:" + item.getBillNo() + "费用明细,先维护分单费用");
+					}
+					String texts = "";
+					if (ObjectUtils.isNull(item.getHblno())) {
+						texts = texts + "分单号、";
+					}
+					if (ObjectUtils.isNull(item.getVesselId())) {
+						texts = texts + "船名、";
+					}
+					if (ObjectUtils.isNull(item.getVoyageNo())) {
+						texts = texts + "航次、";
+					}
+					if (ObjectUtils.isNull(item.getPodId())) {
+						texts = texts + "卸货港、";
+					}
+					if (ObjectUtils.isNull(item.getCarrierId())) {
+						texts = texts + "船公司、";
+					}
+					if (ObjectUtils.isNull(item.getCyId())) {
+						texts = texts + "POL场站、";
+					}
+					if (ObjectUtils.isNull(item.getPodCyId())) {
+						texts = texts + "POD场站、";
+					}
+					if (ObjectUtils.isNotNull(texts)) {
+						throw new RuntimeException("分单:" + item.getBillNo() + "," + texts + "不能为空");
+					}
+					item.setStatus(1);
 				}
-				item.setStatus(1);
+				this.updateBatchById(billsHList);
 			}
-			this.updateBatchById(billsHList);
 		}
 		Integer actId = null;
 		String processType = "";

+ 8 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java

@@ -409,7 +409,15 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 	public R<List<Containers>> importBoxNo(List<BoxAndLeadSealNoExcel> excelList, String billId) {
 		List<String> sealNo = new ArrayList<>();
 		List<String> cntrNo = new ArrayList<>();
+		Bills bills = billsMapper.selectById(billId);
 		for (BoxAndLeadSealNoExcel item : excelList) {
+			if (bills != null) {
+				if ("MH".equals(bills.getBillType())) {
+					if (!item.getHblno().equals(bills.getHblno())) {
+						throw new RuntimeException("导入提单号与单据提单号不一致");
+					}
+				}
+			}
 			if (ObjectUtils.isNotNull(item.getSealNo())) {
 				if (sealNo.isEmpty()) {
 					sealNo.add(item.getSealNo());

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/excel/BoxAndLeadSealNoExcel.java

@@ -92,5 +92,11 @@ public class BoxAndLeadSealNoExcel implements Serializable {
 	@ExcelProperty(value = "VGM")
 	private String vgmMethod;
 
+	/**
+	 * 提单号
+	 */
+	@ExcelProperty(value = "提单号")
+	private String hblno;
+
 
 }

+ 63 - 0
blade-service/blade-los/src/main/java/org/springblade/los/excel/ContainersExcel.java

@@ -0,0 +1,63 @@
+package org.springblade.los.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/5/20
+ */
+@Data
+public class ContainersExcel {
+
+
+	/**
+	 * 箱号
+	 */
+	@ExcelProperty(value = "箱号")
+	private String cntrNo;
+	/**
+	 * 尺码箱型
+	 */
+	@ExcelProperty(value = "箱型")
+	private String cntrTypeCode;
+	/**
+	 * 铅封号
+	 */
+	@ExcelProperty(value = "铅封号")
+	private String sealNo;
+
+	/**
+	 * 件数
+	 */
+	@ExcelProperty(value = "件数")
+	private BigDecimal quantity;
+	/**
+	 * 毛重 (KGM)
+	 */
+	@ExcelProperty(value = "毛重 (KGM)")
+	private BigDecimal grossWeight;
+	/**
+	 * 体积 (CBM)
+	 */
+	@ExcelProperty(value = "体积 (CBM)")
+	private BigDecimal measurement;
+	/**
+	 * 皮重
+	 */
+	@ExcelProperty(value = "皮重")
+	private BigDecimal tare;
+	/**
+	 * VGM 总重(KGM)
+	 */
+	@ExcelProperty(value = "VGM 总重(KGM)")
+	private BigDecimal vgmWeight;
+	/**
+	 * pod场站中文
+	 */
+	@ExcelProperty(value = "pod场站中文")
+	private String podStationCname;
+
+}

+ 5 - 2
blade-service/blade-los/src/main/java/org/springblade/los/excel/UpdatePodStationExcel.java

@@ -2,7 +2,6 @@ package org.springblade.los.excel;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
@@ -88,7 +87,11 @@ public class UpdatePodStationExcel {
 	 */
 	@ExcelProperty(value = "箱号")
 	private String cntrNo;
-
+	/**
+	 * 铅封号
+	 */
+	@ExcelProperty(value = "铅封号")
+	private String sealNo;
 	/**
 	 * 箱型
 	 */

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -430,6 +430,8 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 	public List<FinAccBillsVO> listAccBill(ListAccBillVO finAccBills) {
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			finAccBills.setBranchId(AuthUtil.getDeptId());
+		} else {
+			finAccBills.setBranchId(null);
 		}
 		return billsMapper.listAccBill(finAccBills);
 	}

+ 26 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -30,6 +30,8 @@ import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
+import org.springblade.los.business.files.entity.FilesCenter;
+import org.springblade.los.business.files.service.IFilesCenterService;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.finance.fee.entity.FeeCenter;
@@ -85,6 +87,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 
 	private final CurrencyUtils currencyUtils;
 
+	private final IFilesCenterService filesCenterService;
+
 	@Override
 	public IPage<FinInvoicesVO> selectFinInvoicesPage(IPage<FinInvoicesVO> page, FinInvoicesVO finInvoices) {
 		return page.setRecords(baseMapper.selectFinInvoicesPage(page, finInvoices));
@@ -238,6 +242,24 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			finInvoiceItemDetailService.saveOrUpdateBatch(finInvoices.getFinInvoiceItemDetailList());
 		}
 		this.saveOrUpdate(finInvoices);
+		if (ObjectUtils.isNotNull(finInvoices.getFileList())) {
+			for (FilesCenter item : finInvoices.getFileList()) {
+				item.setPid(finInvoices.getId());
+				if (item.getId() == null) {
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setCreateDeptName(deptName);
+					}
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+				}
+			}
+			filesCenterService.saveOrUpdateBatch(finInvoices.getFileList());
+		}
 		return R.data(finInvoices);
 	}
 
@@ -257,6 +279,10 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			.eq(FinInvoiceItemDetail::getTenantId, AuthUtil.getTenantId())
 			.eq(FinInvoiceItemDetail::getPid, detail.getId())
 		));
+		detail.setFileList(filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
+			.eq(FilesCenter::getIsDeleted, 0)
+			.eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FilesCenter::getPid, detail.getId())));
 		return detail;
 	}
 

+ 28 - 2
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -31,6 +31,8 @@ import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.basic.cur.entity.BCurExrate;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
+import org.springblade.los.business.files.entity.FilesCenter;
+import org.springblade.los.business.files.service.IFilesCenterService;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.check.dto.LosAuditProecessDTO;
@@ -113,6 +115,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 
 	private final CurrencyUtils currencyUtils;
 
+	private final IFilesCenterService filesCenterService;
+
 	@Override
 	public IPage<FinStlBillsVO> selectFinStlBillsPage(IPage<FinStlBillsVO> page, FinStlBillsVO finStlBills) {
 		return page.setRecords(baseMapper.selectFinStlBillsPage(page, finStlBills));
@@ -134,6 +138,10 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			.eq(FinStlBillsVoucherItems::getTenantId, AuthUtil.getTenantId())
 			.eq(FinStlBillsVoucherItems::getPid, detail.getId())
 		));
+		detail.setFileList(filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
+			.eq(FilesCenter::getIsDeleted, 0)
+			.eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FilesCenter::getPid, detail.getId())));
 		return detail;
 	}
 
@@ -292,6 +300,24 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			throw new RuntimeException("请选择明细");
 		}
 		this.saveOrUpdate(finStlBills);
+		if (ObjectUtils.isNotNull(finStlBills.getFileList())) {
+			for (FilesCenter item : finStlBills.getFileList()) {
+				item.setPid(finStlBills.getId());
+				if (item.getId() == null) {
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setCreateDeptName(deptName);
+					}
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+				}
+			}
+			filesCenterService.saveOrUpdateBatch(finStlBills.getFileList());
+		}
 		return R.data(finStlBills);
 	}
 
@@ -1724,9 +1750,9 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		FinStlBills detail = baseMapper.selectById(finStlBills.getId());
 		String exrateType = currencyUtils.standardCurrency(detail.getBranchId());
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
-			if (detail.getStatus() > 1) {
+			/*if (detail.getStatus() > 1) {
 				throw new RuntimeException("正在审核中,撤销失败");
-			}
+			}*/
 			R financeProcess = auditProecessService.deteleByBillId(detail.getId());
 			if (!financeProcess.isSuccess()) {
 				throw new SecurityException("操作失败,请联系管理员");

+ 12 - 12
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -239,7 +239,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.le(Bills::getBillDate, dateEnd);
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -264,7 +264,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.le(Bills::getBillDate, dateEnd);
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapperSI.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -320,7 +320,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -346,7 +346,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapperSI.eq(Bills::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -373,7 +373,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			amendsLambdaQueryWrapper.eq(Amends::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -399,7 +399,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.apply("find_in_set(status,'1,2')");
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			amendsLambdaQueryWrapper.eq(Amends::getBranchId, AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				lambdaQueryWrapper.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 					.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -439,7 +439,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 				.le(Bills::getBillDate, dateEnd);
 			if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 				lambdaQueryWrapperSE.eq(Bills::getBranchId, AuthUtil.getDeptId());
-				if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+				if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 					lambdaQueryWrapperSE.and(i -> i.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId()).or()
 						.eq(AuthUtil.getUserRole().contains("操作员"), Bills::getOperatorId, AuthUtil.getUserId()).or()
 						.eq(AuthUtil.getUserRole().contains("客服"), Bills::getCustomerServiceId, AuthUtil.getUserId()).or()
@@ -499,7 +499,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			Long userId = null;
 			if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 				deptId = Long.parseLong(AuthUtil.getDeptId());
-				if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+				if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 					if (AuthUtil.getUserRole().contains("业务员")) {
 						busType = "1";
 					} else if (AuthUtil.getUserRole().contains("操作员")) {
@@ -909,7 +909,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				if (AuthUtil.getUserRole().contains("业务员")) {
 					boxNumberProfit.setSelecType("4");
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
@@ -971,7 +971,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				if (AuthUtil.getUserRole().contains("业务员")) {
 					boxNumberProfit.setSelecType("4");
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
@@ -1073,7 +1073,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				if (AuthUtil.getUserRole().contains("业务员")) {
 					boxNumberProfit.setSelecType("4");
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
@@ -1135,7 +1135,7 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		boxNumberProfit.setTenantId(AuthUtil.getTenantId());
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
 			boxNumberProfit.setBranchId(AuthUtil.getDeptId());
-			if (!AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			if (!AuthUtil.getUserRole().contains("secondaryAdmin") && !AuthUtil.getUserRole().contains("财务")) {
 				if (AuthUtil.getUserRole().contains("业务员")) {
 					boxNumberProfit.setSelecType("4");
 				} else if (AuthUtil.getUserRole().contains("操作员")) {