Browse Source

Merge remote-tracking branch 'origin/dev' into dev

liyuan 2 months ago
parent
commit
d4090cccbe

+ 11 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -2371,4 +2371,15 @@ public class Bills implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String issueTypeDisplay;
+	/**
+	 * ids
+	 */
+	@TableField(exist = false)
+	private String ids;
+
+	/**
+	 * 费用中心合计
+	 */
+	@TableField(exist = false)
+	private List<FeeCenter> feeCenterListAll;
 }

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

@@ -649,5 +649,11 @@ public class FinStlBills implements Serializable {
 	@TableField(exist = false)
 	private String salesman;
 
+	/**
+	 * 1 确认开票  2 不开发票
+	 */
+	@TableField(exist = false)
+	private String type;
+
 
 }

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

@@ -34,6 +34,7 @@ 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.Util.IDeptUtils;
+import org.springblade.los.app.dto.ProfitCustomersSort;
 import org.springblade.los.business.release.entity.SeaReleaseBillItems;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.entity.SeaBillsDetail;
@@ -42,6 +43,8 @@ import org.springblade.los.business.sea.service.ISeaBillsDetailService;
 import org.springblade.los.business.sea.vo.BillsVO;
 import org.springblade.los.business.sea.vo.UpdateBillsFieldVo;
 import org.springblade.los.excel.BillsExcel;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
 import org.springblade.system.feign.ISysClient;
@@ -51,6 +54,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -76,6 +80,8 @@ public class BillsController extends BladeController {
 
 	private final ISeaBillsDetailService seaBillsDetailService;
 
+	private final IFeeCenterService feeCenterService;
+
 	/**
 	 * 详情
 	 */
@@ -964,5 +970,118 @@ public class BillsController extends BladeController {
 		return billsService.updateBillType(ids, billType);
 	}
 
+	/**
+	 * 创建分单并添加到主单
+	 */
+	@GetMapping("/createAndAdd")
+	@RepeatSubmit
+	public R createAndAdd(@RequestParam("id") Long id) {
+		return billsService.createAndAdd(id);
+	}
+
+	/**
+	 * 获取单据加费用信息列表
+	 */
+	@GetMapping("/getBillsAndFee")
+	@RepeatSubmit
+	public R<IPage<Bills>> getBillsAndFee(Bills bills, Query query) {
+		LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.select(Bills::getId, Bills::getBillNo, Bills::getVesselCnName,
+			Bills::getVoyageNo, Bills::getMblno, Bills::getHblno, Bills::getEta, Bills::getEtd,
+			Bills::getPolEnName, Bills::getPodEnName,  Bills::getCarrierCnName, Bills::getPodCnName, Bills::getPolCnName,
+			Bills::getVesselEnName, Bills::getCarrierShortName, Bills::getCarrierEnName, Bills::getCyShortName,
+			Bills::getShortName, Bills::getPlaceDeliveryName, Bills::getDestinationName,Bills::getQuantityCntrDescr);
+		lambdaQueryWrapper.eq(Bills::getIsDeleted, 0)
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.like(ObjectUtils.isNotNull(bills.getMblno()), Bills::getMblno, bills.getMblno())
+			.apply(ObjectUtils.isNotNull(bills.getCreateDeptName()), "find_in_set('" + bills.getCreateDeptName() + "',create_dept_name)");
+		String jurisdiction = sysClient.getParamService("data.jurisdiction");
+		if ("1".equals(jurisdiction)) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getSrcType()), Bills::getSrcType, bills.getSrcType())
+				.and(ObjectUtils.isNotNull(bills.getSrcCnName()), i -> i.like(Bills::getSrcCnName, bills.getSrcCnName()).or()
+					.like(Bills::getSrcEnName, bills.getSrcCnName()));
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+				lambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			}
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			}
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")
+				&& !AuthUtil.getUserRole().contains("副总") && !AuthUtil.getUserRole().contains("财务")
+				&& !AuthUtil.getUserRole().contains("经理")) {
+				if (AuthUtil.getUserRole().contains("操作经理")) {
+					lambdaQueryWrapper.and(i -> i.eq(Bills::getOperatorDept, AuthUtil.getDeptId()).or()
+						.eq(Bills::getCreateUser, AuthUtil.getUserId()));
+				} else if (AuthUtil.getUserRole().contains("操作员")) {
+					lambdaQueryWrapper.and(i -> i.eq(Bills::getOperatorId, AuthUtil.getUserId()).or()
+						.eq(Bills::getCreateUser, AuthUtil.getUserId()));
+				} else if (AuthUtil.getUserRole().contains("销售经理")) {
+					lambdaQueryWrapper.and(i -> i.eq(Bills::getSrcDeptId, AuthUtil.getDeptId()).or()
+						.eq(Bills::getCreateUser, AuthUtil.getUserId()));
+				} else if (AuthUtil.getUserRole().contains("业务员")) {
+					lambdaQueryWrapper.and(i -> i.eq(Bills::getSrcId, AuthUtil.getUserId()).or()
+						.eq(Bills::getCreateUser, AuthUtil.getUserId()));
+				} else {
+					lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
+				}
+				lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			}
+		} else if ("2".equals(jurisdiction)) {
+			//动态权限不做任何处理
+		} else {
+			if (AuthUtil.getUserRole().contains("业务员")) {
+				lambdaQueryWrapper.eq(Bills::getSrcId, AuthUtil.getUserId());
+			} else {
+				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(bills.getSrcType()), Bills::getSrcType, bills.getSrcType())
+					.and(ObjectUtils.isNotNull(bills.getSrcCnName()), i -> i.like(Bills::getSrcCnName, bills.getSrcCnName()).or()
+						.like(Bills::getSrcEnName, bills.getSrcCnName()));
+			}
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+				lambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			}
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			}
+		}
+		IPage<Bills> pages = billsService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (!pages.getRecords().isEmpty()) {
+			List<Long> ids = pages.getRecords().stream().map(Bills::getId).collect(Collectors.toList());
+			List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+				.in(FeeCenter::getPid, ids));
+			for (Bills item : pages.getRecords()) {
+				if (!feeCenterList.isEmpty()) {
+					List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> e.getPid().equals(item.getId()))
+						.sorted(Comparator.comparing(FeeCenter::getDc).reversed())
+						.collect(Collectors.toList());
+					if (!feeCenters.isEmpty()) {
+						item.setFeeCenterListAll(feeCenters);
+					}else{
+						item.setFeeCenterListAll(new ArrayList<>());
+					}
+				}
+			}
+		}
+		return R.data(pages);
+	}
+
+	/**
+	 * 批量复制费用-提示
+	 */
+	@PostMapping("/batchCopyCostPrompt")
+	@RepeatSubmit
+	public R batchCopyCostPrompt(@RequestBody Bills bills) {
+		return billsService.batchCopyCostPrompt(bills);
+	}
+
+	/**
+	 * 批量复制费用
+	 */
+	@PostMapping("/batchCopyCost")
+	@RepeatSubmit
+	public R batchCopyCost(@RequestBody Bills bills) {
+		return billsService.batchCopyCost(bills);
+	}
+
 }
 

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java

@@ -189,4 +189,10 @@ public interface IBillsService extends IService<Bills> {
 	R checkBillsBatch(String billsIds, String url, String pageStatus, String pageLabel);
 
 	R revokeCheckBillsBatch(String ids);
+
+	R createAndAdd(Long id);
+
+	R batchCopyCost(Bills bills);
+
+	R batchCopyCostPrompt(Bills bills);
 }

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

@@ -396,6 +396,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						.eq(Bills::getMblno, bills.getMblno()));
 					if (!billsList.isEmpty()) {
 						for (Bills item : billsList) {
+							int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
+							item.setVersion(String.valueOf(versions + 1));
 							item.setEtd(bills.getEtd());
 							item.setVesselId(bills.getVesselId());
 							item.setVesselCnName(bills.getVesselCnName());
@@ -451,6 +453,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 							.eq(FeeCenter::getIsDeleted, 0)
 							.eq(FeeCenter::getPid, billIds));
 						for (FeeCenter item : feeCenterList) {
+							int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
+							item.setVersion(String.valueOf(versions + 1));
 							item.setVesselId(bills.getVesselId());
 							item.setVesselCnName(bills.getVesselCnName());
 							item.setVesselEnName(bills.getVesselEnName());
@@ -485,6 +489,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						}
 						finAccBillsService.updateBatchById(finAccBillsList);
 						for (Bills item : billsList) {
+							int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
+							item.setVersion(String.valueOf(versions + 1));
 							item.setVesselId(bills.getVesselId());
 							item.setVesselCnName(bills.getVesselCnName());
 							item.setVesselEnName(bills.getVesselEnName());
@@ -781,6 +787,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					, Bills::getQuantity, Bills::getGrossWeight, Bills::getMeasurement)
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
+				.eq(Bills::getTeamId, bills.getTeamId())
+				.eq(Bills::getBranchId, bills.getBranchId())
 				.eq(Bills::getMasterId, bills.getId()));
 			if (!details.isEmpty()) {
 				amountDr = amountDr.add(details.stream().map(Bills::getAmountDr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
@@ -799,7 +807,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				.select(Bills::getAmountDr, Bills::getAmountCr, Bills::getAmountProfit, Bills::getAmountDrUsd, Bills::getAmountCrUsd
 					, Bills::getAmountProfitUsd, Bills::getAmountDrLoc, Bills::getAmountCrLoc, Bills::getAmountProfitLoc
 					, Bills::getQuantity, Bills::getGrossWeight, Bills::getMeasurement)
-				.eq(Bills::getMasterId, bills.getMasterId()));
+				.eq(Bills::getMasterId, bills.getMasterId())
+				.eq(Bills::getTeamId, bills.getTeamId())
+				.eq(Bills::getBranchId, bills.getBranchId())
+				.eq(Bills::getBillType, "MM"));
 			//重新计算主单合计
 			if (details != null) {
 				BigDecimal amountDrM = new BigDecimal("0.00");
@@ -1772,6 +1783,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(FeeCenter::getBillType, detail.getBillType())
 			.eq(FeeCenter::getPid, detail.getId())
 			.eq(FeeCenter::getDc, "C")
+			.apply("fee_code != 'CCF'")
 			.eq(FeeCenter::getBillNo, detail.getBillNo())
 		);
 		for (FeeCenter item : feeCenterListC) {
@@ -1854,6 +1866,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(FeeCenter::getBillType, detail.getBillType())
 			.eq(FeeCenter::getPid, detail.getId())
 			.eq(FeeCenter::getDc, "D")
+			.apply("fee_code != 'CCF'")
 			.eq(FeeCenter::getBillNo, detail.getBillNo())
 		);
 		for (FeeCenter item : feeCenterListD) {
@@ -4367,4 +4380,357 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		return R.data("操作成功");
 	}
 
+	@Override
+	public R createAndAdd(Long id) {
+		if (id == null) {
+			throw new SecurityException("缺少必要参数");
+		}
+		Bills detail = baseMapper.selectById(id);
+		SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
+			.eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
+			.eq(SeaBillsDetail::getPid, detail.getId()));
+		if (seaBillsDetail != null) {
+			seaBillsDetail.setId(null);
+		} else {
+			seaBillsDetail = new SeaBillsDetail();
+		}
+		List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+			.eq(PreContainers::getIsDeleted, 0)
+			.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+			.eq(PreContainers::getPid, detail.getId()));
+		for (PreContainers item : preContainersList) {
+			item.setPid(null);
+			item.setId(null);
+			item.setWhetherDispatchVehicles("0");
+		}
+		String branchId = deptUtils.getDeptPid() + "";
+		Bills copyBills = new Bills();
+		copyBills.setDetail(seaBillsDetail);
+		copyBills.setSeaType(detail.getSeaType());
+		copyBills.setBusinessType(detail.getBusinessType());
+		copyBills.setBillType("MH");
+		copyBills.setPreContainersList(preContainersList);
+		copyBills.setCreateTime(new Date());
+		copyBills.setCreateUser(AuthUtil.getUserId());
+		copyBills.setCreateUserName(AuthUtil.getUserName());
+		copyBills.setTenantId(AuthUtil.getTenantId());
+		if (ObjectUtils.isNotNull(branchId)) {
+			copyBills.setBranchId(branchId);
+		}
+		copyBills.setOperatorId(AuthUtil.getUserId());
+		copyBills.setOperatorName(AuthUtil.getUserName());
+		Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
+		if (dept != null) {
+			// 业务创建部门
+			copyBills.setCreateDept(dept.getId() + "");
+			copyBills.setCreateDeptName(dept.getDeptName());
+
+			// 操作部门
+			copyBills.setOperatorDept(dept.getId() + "");
+			copyBills.setOperatorDeptName(dept.getDeptName());
+
+			// 核算部门
+			copyBills.setAccDept(dept.getId() + "");
+			copyBills.setAccDeptName(dept.getDeptName());
+		}
+		copyBills.setMblno(detail.getMblno());
+		copyBills.setMarks(detail.getMarks());
+		copyBills.setCargoType(detail.getCargoType());
+		copyBills.setHscode(detail.getHscode());
+		copyBills.setCommodityShName(detail.getCommodityShName());
+		copyBills.setCommodityCnName(detail.getCommodityCnName());
+		copyBills.setCommodityEnName(detail.getCommodityEnName());
+		copyBills.setCommodityDescr(detail.getCommodityDescr());
+		copyBills.setVesselId(detail.getVesselId());
+		copyBills.setVesselCnName(detail.getVesselCnName());
+		copyBills.setVesselEnName(detail.getVesselEnName());
+		copyBills.setVoyageNo(detail.getVoyageNo());
+		copyBills.setCarrierId(detail.getCarrierId());
+		copyBills.setCarrierCnName(detail.getCarrierCnName());
+		copyBills.setCarrierEnName(detail.getCarrierEnName());
+		copyBills.setCarrierShortName(detail.getCarrierShortName());
+		copyBills.setCyId(detail.getCyId());
+		copyBills.setCyCode(detail.getCyCode());
+		copyBills.setCyCnName(detail.getCyCnName());
+		copyBills.setCyEnName(detail.getCyEnName());
+		copyBills.setCyAddress(detail.getCyAddress());
+		copyBills.setCyContacts(detail.getCyContacts());
+		copyBills.setCyShortName(detail.getCyShortName());
+		copyBills.setCyTel(detail.getCyTel());
+		copyBills.setCyRemarks(detail.getCyRemarks());
+		copyBills.setEtd(detail.getEtd());
+		copyBills.setEta(detail.getEta());
+		copyBills.setPolId(detail.getPolId());
+		copyBills.setPolCode(detail.getPolCode());
+		copyBills.setPolCnName(detail.getPolCnName());
+		copyBills.setPolEnName(detail.getPolEnName());
+		copyBills.setPolNamePrint(detail.getPolNamePrint());
+		copyBills.setPodId(detail.getPodId());
+		copyBills.setPodCode(detail.getPodCode());
+		copyBills.setPodCnName(detail.getPodCnName());
+		copyBills.setPodEnName(detail.getPodEnName());
+		copyBills.setPodNamePrint(detail.getPodNamePrint());
+		copyBills.setPotId(detail.getPotId());
+		copyBills.setPotCode(detail.getPotCode());
+		copyBills.setPotCnName(detail.getPotCnName());
+		copyBills.setPotEnName(detail.getPotEnName());
+		copyBills.setPotNamePrint(detail.getPotNamePrint());
+		copyBills.setPlaceReceiptId(detail.getPlaceReceiptId());
+		copyBills.setPlaceReceiptCode(detail.getPlaceReceiptCode());
+		copyBills.setPlaceReceiptName(detail.getPlaceReceiptName());
+		copyBills.setPlaceReceiptNamePrint(detail.getPlaceReceiptNamePrint());
+		copyBills.setPlaceDeliveryId(detail.getPlaceDeliveryId());
+		copyBills.setPlaceDeliveryCode(detail.getPlaceDeliveryCode());
+		copyBills.setPlaceDeliveryName(detail.getPlaceDeliveryName());
+		copyBills.setPlaceDeliveryNamePrint(detail.getPlaceDeliveryNamePrint());
+		copyBills.setDestinationId(detail.getDestinationId());
+		copyBills.setDestinationCode(detail.getDestinationCode());
+		copyBills.setDestinationName(detail.getDestinationName());
+		copyBills.setDestinationNamePrint(detail.getDestinationNamePrint());
+		copyBills.setFinalDestinationId(detail.getFinalDestinationId());
+		copyBills.setFinalDestinationCode(detail.getFinalDestinationCode());
+		copyBills.setFinalDestinationName(detail.getFinalDestinationName());
+		copyBills.setFinalDestinationNamePrint(detail.getFinalDestinationNamePrint());
+		copyBills.setQuantity(detail.getQuantity());
+		copyBills.setMeasurement(detail.getMeasurement());
+		copyBills.setGrossWeight(detail.getGrossWeight());
+		copyBills.setCfsQuantity(detail.getCfsQuantity());
+		copyBills.setCfsMeasurement(detail.getCfsMeasurement());
+		copyBills.setCfsGrossWeight(detail.getCfsGrossWeight());
+		copyBills.setMasterId(detail.getMasterId());
+		copyBills.setMasterBillNo(detail.getMasterBillNo());
+		copyBills.setFeeCenterListC(new ArrayList<>());
+		copyBills.setFeeCenterListD(new ArrayList<>());
+		copyBills.setCfsQuantity(new BigDecimal("0.00"));
+		copyBills.setCfsGrossWeight(new BigDecimal("0.00"));
+		copyBills.setCfsMeasurement(new BigDecimal("0.00"));
+		copyBills.setFilesList(new ArrayList<>());
+		copyBills.setDispatchVehiclesList(new ArrayList<>());
+		copyBills.setContainersList(new ArrayList<>());
+		copyBills.setContainersReportsList(new ArrayList<>());
+		copyBills.setWaitingBoxList(new ArrayList<>());
+		copyBills.setFeeCenterList(new ArrayList<>());
+		copyBills.setFeeCenterAmendList(new ArrayList<>());
+		copyBills.setInStorageList(new ArrayList<>());
+		copyBills.setOutStorageList(new ArrayList<>());
+		copyBills.setHmmEdi(new HmmEdi());
+		return R.data(copyBills);
+	}
+
+	@Override
+	public R batchCopyCost(Bills bills) {
+		if (ObjectUtils.isNull(bills.getIds()) || ObjectUtils.isNull(bills.getFeeCenterListAll()) || bills.getFeeCenterListAll().isEmpty()) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.in(Bills::getId, Func.toLongList(bills.getIds())));
+		if (billsList.isEmpty()) {
+			throw new RuntimeException("未查到单据信息");
+		}
+		List<Long> idList = billsList.stream().map(Bills::getId).collect(Collectors.toList());
+		List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+			.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+			.eq(PreContainers::getIsDeleted, 0)
+			.in(PreContainers::getPid, idList));
+		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getIsDeleted, 0)
+			.in(FeeCenter::getPid, idList));
+		List<FeeCenter> feeCenters = new ArrayList<>();
+		for (Bills item : billsList) {
+			List<FeeCenter> feeItemList = new ArrayList<>();
+			List<FeeCenter> feeItemListOld = new ArrayList<>();
+			if (!feeCenterList.isEmpty()) {
+				feeItemList = feeCenterList.stream().filter(e -> e.getPid().equals(item.getId()))
+					.collect(Collectors.toList());
+			}
+			if (feeItemList.isEmpty()) {
+				feeItemListOld = bills.getFeeCenterListAll();
+			} else {
+				List<String> feeCodeList = feeItemList.stream().map(FeeCenter::getFeeCode).distinct().collect(Collectors.toList());
+				List<FeeCenter> feeCenters1 = bills.getFeeCenterListAll().stream().filter(e -> !feeCodeList.contains(e.getFeeCode()))
+					.collect(Collectors.toList());
+				if (!feeCenters1.isEmpty()) {
+					feeItemListOld = feeCenters1;
+				}
+			}
+			for (FeeCenter feeCenter : feeItemListOld) {
+				feeCenter.setAccountDate(null);
+				feeCenter.setAccBillId(null);
+				feeCenter.setAccBillNo("");
+				feeCenter.setAccDate(null);
+				feeCenter.setAccStatus(0);
+				feeCenter.setAccById(0L);
+				feeCenter.setAccByName("");
+				feeCenter.setCheckBillId(0L);
+				feeCenter.setCheckBillNo("");
+				feeCenter.setCheckDate(null);
+				feeCenter.setCheckAmount(new BigDecimal("0.00"));
+				feeCenter.setCheckStatus(0);
+				feeCenter.setCheckById(0L);
+				feeCenter.setCheckByName("");
+				feeCenter.setStlBillId(0L);
+				feeCenter.setStlBillNo("");
+				feeCenter.setStlDate(null);
+				feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
+				feeCenter.setStlCurCode("");
+				feeCenter.setStlExrate(new BigDecimal("0.00"));
+				feeCenter.setStlExrateLoc(new BigDecimal("0.00"));
+				feeCenter.setStlAmount(new BigDecimal("0.00"));
+				feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
+				feeCenter.setStlStatus(0);
+				feeCenter.setStlById(0L);
+				feeCenter.setStlByName("");
+				feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
+				feeCenter.setVoucherBillId(0L);
+				feeCenter.setVoucherBillNo("");
+				feeCenter.setVoucherNo("");
+				feeCenter.setVoucherDate(null);
+				feeCenter.setVoucherStatus(0);
+				feeCenter.setVoucherById(0L);
+				feeCenter.setVoucherByName("");
+				feeCenter.setInvoiceBillId("");
+				feeCenter.setInvoiceBillNo("");
+				feeCenter.setInvoiceNo("");
+				feeCenter.setInvoiceDate(null);
+				feeCenter.setInvoiceStatus(0);
+				feeCenter.setInvoiceCurCode("");
+				feeCenter.setInvoiceExrate(new BigDecimal("0.00"));
+				feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
+				feeCenter.setInvoiceAmountLoc(new BigDecimal("0.00"));
+				feeCenter.setUninvoicedAmount(new BigDecimal("0.00"));
+				feeCenter.setAppliedAmount(new BigDecimal("0.00"));
+				feeCenter.setAppliedInvoiceAmount(new BigDecimal("0.00"));
+				feeCenter.setReconciliationAmount(new BigDecimal("0.00"));
+				feeCenter.setAppliedAmountStl(new BigDecimal("0.00"));
+				feeCenter.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
+				feeCenter.setInvoiceById(0L);
+				feeCenter.setInvoiceByName("");
+				feeCenter.setIsSignfor(0);
+				feeCenter.setSignforId(0);
+				feeCenter.setSignforName("");
+				feeCenter.setSignforDate(null);
+				feeCenter.setApplyId(0L);
+				feeCenter.setApplyName("");
+				feeCenter.setApplyTime(null);
+				feeCenter.setApproverId(0L);
+				feeCenter.setApproverName("");
+				feeCenter.setApproveTime(null);
+				feeCenter.setAuditStatus("0");
+				feeCenter.setId(null);
+				feeCenter.setPid(item.getId());
+				feeCenter.setBillNo(item.getBillNo());
+				feeCenter.setBusinessType(item.getBusinessType());
+				feeCenter.setBillType(item.getBillType());
+				feeCenter.setBillDate(item.getBillDate());
+				feeCenter.setSrcType(item.getSrcType());
+				feeCenter.setSrcId(item.getSrcId());
+				feeCenter.setSrcCnName(item.getSrcCnName());
+				feeCenter.setSrcEnName(item.getSrcEnName());
+				feeCenter.setBillCorpId(item.getCorpId());
+				feeCenter.setBillCorpCnName(item.getCorpCnName());
+				feeCenter.setBillCorpEnName(item.getCorpEnName());
+				feeCenter.setBillShortName(item.getShortName());
+				feeCenter.setLineId(item.getLineId());
+				feeCenter.setLineCnName(item.getLineCnName());
+				feeCenter.setLineEnName(item.getLineEnName());
+				feeCenter.setVesselId(item.getVesselId());
+				feeCenter.setVesselEnName(item.getVesselEnName());
+				feeCenter.setVesselCnName(item.getVesselCnName());
+				feeCenter.setVoyageNo(item.getVoyageNo());
+				feeCenter.setMblno(item.getMblno());
+				feeCenter.setHblno(item.getHblno());
+				feeCenter.setEtd(item.getEtd());
+				feeCenter.setEta(item.getEta());
+				feeCenter.setPolId(item.getPolId());
+				feeCenter.setPolCode(item.getPolCode());
+				feeCenter.setPolCnName(item.getPolCnName());
+				feeCenter.setPolEnName(item.getPolEnName());
+				feeCenter.setPodId(item.getPodId());
+				feeCenter.setPodCode(item.getPodCode());
+				feeCenter.setPodCnName(item.getPodCnName());
+				feeCenter.setPodEnName(item.getPodEnName());
+				feeCenter.setPaymode(item.getMpaymode());
+				feeCenter.setPayplace(item.getMpayplace());
+				feeCenter.setRefno(item.getRefno());
+				feeCenter.setBookingNo(item.getBookingNo());
+				if (!preContainersList.isEmpty()) {
+					PreContainers preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(feeCenter.getUnitNo()))
+						.findFirst().orElse(null);
+					if (preContainers != null) {
+						feeCenter.setQuantity(new BigDecimal(preContainers.getQuantity() + ""));
+						// 去税金额 = 数量quantity * 单价price
+						BigDecimal amountNet = new BigDecimal("0.00");
+						// 税额 = 去税金额amountNet * 税率taxRateSum
+						BigDecimal amountTax = new BigDecimal("0.00");
+						// 金额,amountTax + 去税金额amountNet - 折扣金额amountDiscount
+						BigDecimal amount = new BigDecimal("0.00");
+						//总税率  = 税率taxRate + 附加税率surchargeRate
+						BigDecimal taxRate = new BigDecimal("0.00");
+						// 税率 = 总税率/100
+						BigDecimal taxRateSum = new BigDecimal("0.00");
+
+						amountNet = amountNet.add(feeCenter.getQuantity().multiply(feeCenter.getPrice()))
+							.setScale(2, RoundingMode.HALF_UP);
+						taxRate = taxRate.add(feeCenter.getTaxRate()).add(feeCenter.getSurchargeRate());
+						taxRateSum = taxRateSum.add(taxRate.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
+						amountTax = amountTax.add(amountNet.multiply(taxRateSum)).setScale(2, RoundingMode.HALF_UP);
+						amount = amount.add(amountNet.add(amountTax).subtract(feeCenter.getAmountDiscount()));
+
+						//判断是否是本位币
+						if ("CNY".equals(feeCenter.getCurCode())) {
+							feeCenter.setAmountNetLoc(amountNet);
+							feeCenter.setAmountTaxLoc(amountTax);
+							feeCenter.setAmountLoc(amount);
+							feeCenter.setAmountDiscountLoc(amount);
+						} else {
+							feeCenter.setAmountNetLoc(feeCenter.getExrate().multiply(amountNet));
+							feeCenter.setAmountTaxLoc(feeCenter.getExrate().multiply(amountTax));
+							feeCenter.setAmountLoc(feeCenter.getExrate().multiply(amount));
+							feeCenter.setAmountDiscountLoc(feeCenter.getExrate().multiply(amount));
+						}
+						feeCenter.setAmountNet(amountNet);
+						feeCenter.setAmountTax(amountTax);
+						feeCenter.setAmount(amount);
+					}
+				}
+				feeCenter.setUnsettledAmount(feeCenter.getAmount());
+				feeCenters.add(feeCenter);
+			}
+		}
+		if (!feeCenters.isEmpty()) {
+			feeCenterService.saveBatch(feeCenters);
+		}
+		return R.data("操作成功");
+	}
+
+	@Override
+	public R batchCopyCostPrompt(Bills bills) {
+		if (ObjectUtils.isNull(bills.getIds()) || ObjectUtils.isNull(bills.getFeeCenterListAll()) || bills.getFeeCenterListAll().isEmpty()) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.in(Bills::getId, Func.toLongList(bills.getIds())));
+		if (billsList.isEmpty()) {
+			throw new RuntimeException("未查到单据信息");
+		}
+		String text = "";
+		for (Bills item : billsList) {
+			if (ObjectUtils.isNotNull(bills.getQuantityCntrDescr()) &&
+				ObjectUtils.isNotNull(item.getQuantityCntrDescr()) &&
+				!bills.getQuantityCntrDescr().equals(item.getQuantityCntrDescr())) {
+				text = "提单号:" + item.getMblno() + ",箱型箱量:" + item.getQuantityCntrDescr() + ",与导入单据箱型箱量:" + bills.getQuantityCntrDescr() + "不一致是否继续导入!";
+			}
+		}
+		if (ObjectUtils.isNotNull(text)) {
+			return R.data(text);
+		} else {
+			return R.data("操作成功");
+		}
+	}
+
 }

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/update/service/impl/UpdateServiceImpl.java

@@ -1476,6 +1476,9 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 				try {
 					Date date = sdf.parse(item.getFieldValueNew());
 					fieldId.set(feeCenter, date);
+					if ("etd,eta".contains(item.getField())){
+						feeCenter.setBillDate(date);
+					}
 				} catch (ParseException e) {
 					e.printStackTrace();
 				}
@@ -1659,6 +1662,10 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 				try {
 					Date date = sdf.parse(item.getFieldValueNew());
 					fieldId.set(accBills, date);
+					if ("etd,eta".contains(item.getField())){
+						accBills.setBillDate(date);
+						accBills.setBusinessDate(date);
+					}
 				} catch (ParseException e) {
 					e.printStackTrace();
 				}

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -603,6 +603,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 					}
 				}
 				for (FeeCenter item : feeCenterList) {
+					int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
+					item.setVersion(String.valueOf(versions + 1));
 					item.setApproverId(AuthUtil.getUserId());
 					item.setApproverName(AuthUtil.getUserName());
 					item.setApproveTime(new Date());

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

@@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
 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.StringUtil;
 import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
@@ -362,6 +363,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					.eq(FeeCenter::getIsDeleted, 0));
 				BigDecimal currentStlAmount = item.getCurrentAmount();
 				for (FeeCenter feeCenter : feeCenters) {
+					int versions = StringUtil.isBlank(feeCenter.getVersion()) ? 1 : Integer.parseInt(feeCenter.getVersion());
+					feeCenter.setVersion(String.valueOf(versions + 1));
 					feeCenter.setInvoiceBillId(detail.getId() + "");
 					feeCenter.setInvoiceBillNo(detail.getBillNo());
 					feeCenter.setInvoiceNo(detail.getInvoiceNo());
@@ -830,6 +833,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					.eq(FeeCenter::getIsDeleted, 0));
 				BigDecimal currentStlAmount = item.getCurrentAmount();
 				for (FeeCenter feeCenter : feeCenters) {
+					int versions = StringUtil.isBlank(feeCenter.getVersion()) ? 1 : Integer.parseInt(feeCenter.getVersion());
+					feeCenter.setVersion(String.valueOf(versions + 1));
 					feeCenter.setInvoiceBillId("");
 					feeCenter.setInvoiceBillNo("");
 					feeCenter.setInvoiceNo("");
@@ -953,6 +958,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentAmount();
 				for (FeeCenter e : feeCenters) {
+					int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+					e.setVersion(String.valueOf(versions + 1));
 					if (currentStlAmount.compareTo(new BigDecimal("0.00")) == 0) {
 						break;
 					} else {
@@ -1038,6 +1045,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentAmount();
 				for (FeeCenter e : feeCenters) {
+					int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+					e.setVersion(String.valueOf(versions + 1));
 					if (currentStlAmount.compareTo(new BigDecimal("0.00")) == 0) {
 						break;
 					} else {

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

@@ -25,6 +25,7 @@ import lombok.AllArgsConstructor;
 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.StringUtil;
 import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.acc.entity.Accounts;
 import org.springblade.los.basic.acc.service.IAccountsService;
@@ -318,7 +319,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finStlBills.setAmountSubLocNet(finStlBills.getAmountCrLocNet().subtract(finStlBills.getAmountDrLocNet()));
 
 		} else {
-			throw new RuntimeException("请选择明细");
+
+			finStlBills.setAmountDr(new BigDecimal("0.00"));
+			finStlBills.setAmountCr(new BigDecimal("0.00"));
+			finStlBills.setAmountDrUsd(new BigDecimal("0.00"));
+			finStlBills.setAmountCrUsd(new BigDecimal("0.00"));
+			finStlBills.setAmountDrNet(new BigDecimal("0.00"));
+			finStlBills.setAmountCrNet(new BigDecimal("0.00"));
+			finStlBills.setAmountDrUsdNet(new BigDecimal("0.00"));
+			finStlBills.setAmountCrUsdNet(new BigDecimal("0.00"));
+			finStlBills.setAmountSub(new BigDecimal("0.00"));
+			finStlBills.setAmountSubUsd(new BigDecimal("0.00"));
+			finStlBills.setAmountDrLoc(new BigDecimal("0.00"));
+			finStlBills.setAmountCrLoc(new BigDecimal("0.00"));
+			finStlBills.setAmountSubLoc(new BigDecimal("0.00"));
+			finStlBills.setAmountDrLocNet(new BigDecimal("0.00"));
+			finStlBills.setAmountCrLocNet(new BigDecimal("0.00"));
+			finStlBills.setAmountSubLocNet(new BigDecimal("0.00"));
 		}
 		this.saveOrUpdate(finStlBills);
 		return R.data(finStlBills);
@@ -404,6 +421,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						.eq(FeeCenter::getIsDeleted, 0));
 					BigDecimal currentStlAmount = item.getCurrentStlAmount();
 					for (FeeCenter feeCenter : feeCenters) {
+						int versions = StringUtil.isBlank(feeCenter.getVersion()) ? 1 : Integer.parseInt(feeCenter.getVersion());
+						feeCenter.setVersion(String.valueOf(versions + 1));
 						feeCenter.setCheckBillId(detail.getId());
 						feeCenter.setCheckBillNo(detail.getBillNo());
 						feeCenter.setCheckDate(detail.getBillDate());
@@ -883,6 +902,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						.eq(FeeCenter::getIsDeleted, 0));
 					BigDecimal currentStlAmount = item.getCurrentStlAmount();
 					for (FeeCenter feeCenter : feeCenters) {
+						int versions = StringUtil.isBlank(feeCenter.getVersion()) ? 1 : Integer.parseInt(feeCenter.getVersion());
+						feeCenter.setVersion(String.valueOf(versions + 1));
 						feeCenter.setCheckBillId(0L);
 						feeCenter.setCheckBillNo("");
 						feeCenter.setCheckDate(null);
@@ -1129,6 +1150,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					throw new RuntimeException("本次结算金额不能为零或大于未结算金额");
 				}
 				for (FeeCenter e : feeCenters) {
+					int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+					e.setVersion(String.valueOf(versions + 1));
 					e.setTaxInvoiceNumber(item.getTaxInvoiceNumber());
 					e.setTaxInvoiceDate(item.getTaxInvoiceDate());
 					e.setDeductionTime(item.getDeductionTime());
@@ -1444,6 +1467,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentStlAmount();
 				for (FeeCenter e : feeCenters) {
+					int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+					e.setVersion(String.valueOf(versions + 1));
 					if (currentStlAmount.compareTo(new BigDecimal("0.00")) == 0) {
 						break;
 					} else {
@@ -1586,6 +1611,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			}
 		}
 		for (FeeCenter e : feeCenters) {
+			int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+			e.setVersion(String.valueOf(versions + 1));
 			e.setApproverId(AuthUtil.getUserId());
 			e.setApproverName(AuthUtil.getUserName());
 			e.setApproveTime(new Date());
@@ -1882,6 +1909,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentStlAmount();
 				for (FeeCenter e : feeCenters) {
+					int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+					e.setVersion(String.valueOf(versions + 1));
 					if (currentStlAmount.compareTo(new BigDecimal("0.00")) == 0) {
 						break;
 					} else {
@@ -1967,6 +1996,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentStlAmount();
 				for (FeeCenter e : feeCenters) {
+					int versions = StringUtil.isBlank(e.getVersion()) ? 1 : Integer.parseInt(e.getVersion());
+					e.setVersion(String.valueOf(versions + 1));
 					if (currentStlAmount.compareTo(new BigDecimal("0.00")) == 0) {
 						break;
 					} else {
@@ -2187,8 +2218,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<FeeCenter> feeCenterList = new ArrayList<>();
 			List<FinAccBills> finAccBillsList = new ArrayList<>();
 			for (FinStlBillsItems item : finStlBills.getFinStlBillsItemsList()) {
-				item.setIsInvoice(3);
-				FinAccBills finAccBills = finAccBillsService.getById(item.getAccBillId());
+				if ("1".equals(finStlBills.getType())) {
+					item.setIsInvoice(2);
+				} else {
+					item.setIsInvoice(3);
+				}
+				/*FinAccBills finAccBills = finAccBillsService.getById(item.getAccBillId());
 				if (finAccBills == null) {
 					throw new RuntimeException("未找到账单明细,操作失败");
 				}
@@ -2203,10 +2238,10 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				for (FeeCenter e : feeCenters) {
 					e.setInvoiceStatus(3);
 				}
-				feeCenterList.addAll(feeCenters);
+				feeCenterList.addAll(feeCenters);*/
 			}
-			feeCenterService.saveOrUpdateBatch(feeCenterList);
-			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			/*feeCenterService.saveOrUpdateBatch(feeCenterList);
+			finAccBillsService.saveOrUpdateBatch(finAccBillsList);*/
 			finStlBillsItemsService.updateBatchById(finStlBills.getFinStlBillsItemsList());
 		} else {
 			throw new RuntimeException("请选择明细");
@@ -2222,29 +2257,9 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		}
 		FinStlBills detail = baseMapper.selectById(finStlBills.getId());
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
-			List<FeeCenter> feeCenterList = new ArrayList<>();
-			List<FinAccBills> finAccBillsList = new ArrayList<>();
 			for (FinStlBillsItems item : finStlBills.getFinStlBillsItemsList()) {
-				item.setIsInvoice(0);
-				FinAccBills finAccBills = finAccBillsService.getById(item.getAccBillId());
-				if (finAccBills == null) {
-					throw new RuntimeException("未找到账单明细,操作失败");
-				}
-				finAccBills.setInvoiceStatus(0);
-				finAccBillsList.add(finAccBills);
-				List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-					.eq(FeeCenter::getIsDeleted, 0)
-					.eq(FeeCenter::getAccBillId, finAccBills.getId())
-					.eq(FeeCenter::getAccStatus, 1)
-					.orderByDesc(FeeCenter::getCreateTime));
-				for (FeeCenter e : feeCenters) {
-					e.setInvoiceStatus(0);
-				}
-				feeCenterList.addAll(feeCenters);
+				item.setIsInvoice(1);
 			}
-			feeCenterService.saveOrUpdateBatch(feeCenterList);
-			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
 			finStlBillsItemsService.updateBatchById(finStlBills.getFinStlBillsItemsList());
 		} else {
 			throw new RuntimeException("请选择明细");

+ 0 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -982,7 +982,6 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
 			.ge(ObjectUtils.isNotNull(statusDate), PjOrder::getBusinesDate, statusDate)
 			.le(ObjectUtils.isNotNull(endDate), PjOrder::getBusinesDate, endDate)
-			.eq(PjOrder::getStatus, "已发货")
 			.apply("find_in_set(status,'已发货,已收货')")
 			.eq(PjOrder::getBsType, "XS");
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -3776,10 +3776,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
 					stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
 					stockOne.setVersion(stockOne.getVersion());
-					/*if (stockOne.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
+					if (stockOne.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
 						stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 						stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
-					}*/
+					}
 					pjStockDescArrayList.add(stockOne);
 				} else {
 					System.err.println("商品:" + goodsDesc.getCname());