Browse Source

2023年12月19日18:00:39

纪新园 2 years ago
parent
commit
5773387309
30 changed files with 380 additions and 97 deletions
  1. 24 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/FeesTemplateItems.java
  2. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/balance/service/impl/BalanceCycleServiceImpl.java
  3. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/business/service/impl/BusinessTypeServiceImpl.java
  4. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/cntr/service/impl/BCntrTypesServiceImpl.java
  5. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/commodity/service/impl/BCommodityServiceImpl.java
  6. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/countrys/service/impl/BCountrysServiceImpl.java
  7. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/cur/service/impl/BCurrencyServiceImpl.java
  8. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/BFeesServiceImpl.java
  9. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/lines/service/impl/BLinesServiceImpl.java
  10. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/locations/service/impl/BLocationsServiceImpl.java
  11. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/modes/service/impl/BTradeModesServiceImpl.java
  12. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/packages/service/impl/BPackagesServiceImpl.java
  13. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/ports/service/impl/BPortsServiceImpl.java
  14. 4 2
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/controller/ReportsController.java
  15. 2 1
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/IReportsService.java
  16. 83 2
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  17. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/terms/service/impl/BServiceTermsServiceImpl.java
  18. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/units/service/impl/BUnitsServiceImpl.java
  19. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/vessels/service/impl/BVesselsServiceImpl.java
  20. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/voucher/service/impl/BVoucherTypeServiceImpl.java
  21. 38 50
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  22. 8 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java
  23. 18 17
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FinAccBillsController.java
  24. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  25. 28 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderItemsController.java
  26. 4 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderItemsService.java
  27. 41 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderItemsServiceImpl.java
  28. 16 14
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  29. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  30. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java

+ 24 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/FeesTemplateItems.java

@@ -190,4 +190,28 @@ public class FeesTemplateItems implements Serializable {
 	private String unitNo;
 
 
+	/**
+	 * 核算id
+	 */
+	@ApiModelProperty(value = "核算id")
+	private Long elementsId;
+
+	/**
+	 * 核算编码
+	 */
+	@ApiModelProperty(value = "核算编码")
+	private String elementsCode;
+
+	/**
+	 * 核算中文名称
+	 */
+	@ApiModelProperty(value = "核算中文名称")
+	private String elementsCnName;
+	/**
+	 * 核算英文名称
+	 */
+	@ApiModelProperty(value = "核算英文名称")
+	private String elementsEnName;
+
+
 }

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/balance/service/impl/BalanceCycleServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.basic.balance.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -26,6 +27,7 @@ import org.springblade.los.basic.balance.entity.BalanceCycle;
 import org.springblade.los.basic.balance.mapper.BalanceCycleMapper;
 import org.springblade.los.basic.balance.service.IBalanceCycleService;
 import org.springblade.los.basic.balance.vo.BalanceCycleVO;
+import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/business/service/impl/BusinessTypeServiceImpl.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.los.basic.cntr.entity.BCntrTypes;
 import org.springblade.los.excel.BBusinessTypeExcel;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.mapper.BusinessTypeMapper;
@@ -60,6 +61,12 @@ public class BusinessTypeServiceImpl extends ServiceImpl<BusinessTypeMapper, Bus
 			businessType.setCreateTime(new Date());
 			businessType.setCreateUser(AuthUtil.getUserId());
 			businessType.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BusinessType>()
+				.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
+				.eq(BusinessType::getIsDeleted, 0)
+				.eq(BusinessType::getCnName, businessType.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				businessType.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/cntr/service/impl/BCntrTypesServiceImpl.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.los.basic.commodity.entity.BCommodity;
 import org.springblade.los.excel.BCntrTypesExcel;
 import org.springblade.los.basic.cntr.entity.BCntrTypes;
 import org.springblade.los.basic.cntr.mapper.CntrTypesMapper;
@@ -60,6 +61,12 @@ public class BCntrTypesServiceImpl extends ServiceImpl<CntrTypesMapper, BCntrTyp
 			bCntrTypes.setCreateTime(new Date());
 			bCntrTypes.setCreateUser(AuthUtil.getUserId());
 			bCntrTypes.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BCntrTypes>()
+				.eq(BCntrTypes::getTenantId, AuthUtil.getTenantId())
+				.eq(BCntrTypes::getIsDeleted, 0)
+				.eq(BCntrTypes::getCnName, bCntrTypes.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bCntrTypes.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/commodity/service/impl/BCommodityServiceImpl.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.los.basic.countrys.entity.BCountrys;
 import org.springblade.los.excel.BCommodityExecl;
 import org.springblade.los.basic.commodity.entity.BCommodity;
 import org.springblade.los.basic.commodity.mapper.CommodityMapper;
@@ -60,6 +61,12 @@ public class BCommodityServiceImpl extends ServiceImpl<CommodityMapper, BCommodi
 			bCommodity.setCreateTime(new Date());
 			bCommodity.setCreateUser(AuthUtil.getUserId());
 			bCommodity.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BCommodity>()
+				.eq(BCommodity::getTenantId, AuthUtil.getTenantId())
+				.eq(BCommodity::getIsDeleted, 0)
+				.eq(BCommodity::getCnName, bCommodity.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bCommodity.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/countrys/service/impl/BCountrysServiceImpl.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.los.basic.cur.entity.BCurrency;
 import org.springblade.los.excel.BCountrysExcel;
 import org.springblade.los.basic.countrys.entity.BCountrys;
 import org.springblade.los.basic.countrys.mapper.CountrysMapper;
@@ -60,6 +61,12 @@ public class BCountrysServiceImpl extends ServiceImpl<CountrysMapper, BCountrys>
 			bCountrys.setCreateTime(new Date());
 			bCountrys.setCreateUser(AuthUtil.getUserId());
 			bCountrys.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BCountrys>()
+				.eq(BCountrys::getTenantId, AuthUtil.getTenantId())
+				.eq(BCountrys::getIsDeleted, 0)
+				.eq(BCountrys::getCnName, bCountrys.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bCountrys.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/cur/service/impl/BCurrencyServiceImpl.java

@@ -31,6 +31,7 @@ import org.springblade.los.basic.cur.mapper.CurrencyMapper;
 import org.springblade.los.basic.cur.service.IBCurExrateService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
 import org.springblade.los.basic.cur.vo.BCurrencyVO;
+import org.springblade.los.basic.fees.entity.BFees;
 import org.springblade.los.excel.BCurrencyExcel;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
@@ -79,6 +80,12 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 			bCurrency.setCreateTime(new Date());
 			bCurrency.setCreateUser(AuthUtil.getUserId());
 			bCurrency.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BCurrency>()
+				.eq(BCurrency::getTenantId, AuthUtil.getTenantId())
+				.eq(BCurrency::getIsDeleted, 0)
+				.eq(BCurrency::getCnName, bCurrency.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bCurrency.setCreateDept(deptId);
 				bCurrency.setCreateDeptName(deptName);

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/BFeesServiceImpl.java

@@ -32,6 +32,7 @@ import org.springblade.los.basic.fees.mapper.FeesMapper;
 import org.springblade.los.basic.fees.service.IBFeesService;
 import org.springblade.los.basic.fees.service.IBFeesTypesService;
 import org.springblade.los.basic.fees.vo.BFeesVO;
+import org.springblade.los.basic.lines.entity.BLines;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -78,6 +79,12 @@ public class BFeesServiceImpl extends ServiceImpl<FeesMapper, BFees> implements
 			bFees.setCreateTime(new Date());
 			bFees.setCreateUser(AuthUtil.getUserId());
 			bFees.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BFees>()
+				.eq(BFees::getTenantId, AuthUtil.getTenantId())
+				.eq(BFees::getIsDeleted, 0)
+				.eq(BFees::getCnName, bFees.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bFees.setCreateDept(deptId);
 				bFees.setCreateDeptName(deptName);

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/lines/service/impl/BLinesServiceImpl.java

@@ -26,6 +26,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.basic.locations.entity.BLocations;
 import org.springblade.los.excel.BLinesExcel;
 import org.springblade.los.basic.lines.entity.BLines;
 import org.springblade.los.basic.lines.mapper.LinesMapper;
@@ -64,6 +65,12 @@ public class BLinesServiceImpl extends ServiceImpl<LinesMapper, BLines> implemen
 			bLines.setCreateTime(new Date());
 			bLines.setCreateUser(AuthUtil.getUserId());
 			bLines.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BLines>()
+				.eq(BLines::getTenantId, AuthUtil.getTenantId())
+				.eq(BLines::getIsDeleted, 0)
+				.eq(BLines::getCnName, bLines.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bLines.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/locations/service/impl/BLocationsServiceImpl.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.los.basic.modes.entity.BTradeModes;
 import org.springblade.los.excel.BLocationsExcel;
 import org.springblade.los.basic.locations.entity.BLocations;
 import org.springblade.los.basic.locations.mapper.LocationsMapper;
@@ -60,6 +61,12 @@ public class BLocationsServiceImpl extends ServiceImpl<LocationsMapper, BLocatio
 			bLocations.setCreateTime(new Date());
 			bLocations.setCreateUser(AuthUtil.getUserId());
 			bLocations.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BLocations>()
+				.eq(BLocations::getTenantId, AuthUtil.getTenantId())
+				.eq(BLocations::getIsDeleted, 0)
+				.eq(BLocations::getCnName, bLocations.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bLocations.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/modes/service/impl/BTradeModesServiceImpl.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.los.basic.packages.entity.BPackages;
 import org.springblade.los.excel.BTradeModesExcel;
 import org.springblade.los.basic.modes.entity.BTradeModes;
 import org.springblade.los.basic.modes.mapper.TradeModesMapper;
@@ -60,6 +61,12 @@ public class BTradeModesServiceImpl extends ServiceImpl<TradeModesMapper, BTrade
 			bTradeModes.setCreateTime(new Date());
 			bTradeModes.setCreateUser(AuthUtil.getUserId());
 			bTradeModes.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BTradeModes>()
+				.eq(BTradeModes::getTenantId, AuthUtil.getTenantId())
+				.eq(BTradeModes::getIsDeleted, 0)
+				.eq(BTradeModes::getCnName, bTradeModes.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bTradeModes.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/packages/service/impl/BPackagesServiceImpl.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.los.basic.ports.entity.BPorts;
 import org.springblade.los.excel.BPackagesExcel;
 import org.springblade.los.basic.packages.entity.BPackages;
 import org.springblade.los.basic.packages.mapper.PackagesMapper;
@@ -60,6 +61,12 @@ public class BPackagesServiceImpl extends ServiceImpl<PackagesMapper, BPackages>
 			bPackages.setCreateTime(new Date());
 			bPackages.setCreateUser(AuthUtil.getUserId());
 			bPackages.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BPackages>()
+				.eq(BPackages::getTenantId, AuthUtil.getTenantId())
+				.eq(BPackages::getIsDeleted, 0)
+				.eq(BPackages::getCnName, bPackages.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bPackages.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/ports/service/impl/BPortsServiceImpl.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.los.basic.terms.entity.BServiceTerms;
 import org.springblade.los.excel.BPortsExcel;
 import org.springblade.los.basic.ports.entity.BPorts;
 import org.springblade.los.basic.ports.entity.BPortsTerms;
@@ -91,6 +92,12 @@ public class BPortsServiceImpl extends ServiceImpl<PortsMapper, BPorts> implemen
 			bPorts.setCreateTime(new Date());
 			bPorts.setCreateUser(AuthUtil.getUserId());
 			bPorts.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BPorts>()
+				.eq(BPorts::getTenantId, AuthUtil.getTenantId())
+				.eq(BPorts::getIsDeleted, 0)
+				.eq(BPorts::getCnName, bPorts.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bPorts.setCreateDept(deptId);
 				bPorts.setCreateDeptName(deptName);

+ 4 - 2
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/controller/ReportsController.java

@@ -130,9 +130,11 @@ public class ReportsController extends BladeController {
 	@ApiOperation(value = "详情", notes = "传入reports")
 	public R getReportData(@RequestParam(value = "billId") String billId,
 						   @RequestParam(value = "reportCode", required = false) String reportCode,
-						   @RequestParam(value = "groupCode", required = false) String groupCode
+						   @RequestParam(value = "groupCode", required = false) String groupCode,
+						   @RequestParam(value = "corpIds", required = false) String corpIds,
+						   @RequestParam(value = "itemIds", required = false) String itemIds
 	) {
-		return reportsService.getReportData(billId, reportCode, groupCode);
+		return reportsService.getReportData(billId, reportCode, groupCode,corpIds,itemIds);
 	}
 
 

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/IReportsService.java

@@ -49,5 +49,6 @@ public interface IReportsService extends IService<Reports> {
 	/**
 	 * 获取模本数据加信息
 	 */
-    R getReportData(String billId, String reportCode, String groupCode);
+    R getReportData(String billId, String reportCode, String groupCode,String corpIds,
+					String itemIds);
 }

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

@@ -88,7 +88,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 	}
 
 	@Override
-	public R getReportData(String billId, String reportCode, String groupCode) {
+	public R getReportData(String billId, String reportCode, String groupCode, String corpIds,
+						   String itemIds) {
 		Map<String, Object> map = new HashMap<>();
 		Reports reports = baseMapper.selectOne(new LambdaQueryWrapper<Reports>()
 			.eq(Reports::getCode, reportCode)
@@ -280,7 +281,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			} else {
 				map.put("data", null);
 			}
-		}else if ("RHTZ".equals(reports.getCode())) {
+		} else if ("RHTZ".equals(reports.getCode())) {
 			Bills bills = billsService.getById(billId);
 			if (bills != null) {
 				bills.setFM("jms");
@@ -289,6 +290,86 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			} else {
 				map.put("data", null);
 			}
+		} else if ("FYYS".equals(reports.getCode())) {
+			Bills bills = billsService.getById(billId);
+			if (bills != null) {
+				bills.setFM("jms");
+				bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
+				List<FeeCenter> feeCenterList = new ArrayList<>();
+				List<Long> ids = new ArrayList<>();
+				if ("MM".equals(bills.getBillType())) {
+					List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
+						.eq(Bills::getTenantId, AuthUtil.getTenantId())
+						.eq(Bills::getIsDeleted, 0)
+						.eq(Bills::getMasterId, bills.getId())
+						.eq(Bills::getMasterBillNo, bills.getBillNo()));
+					if (billsList.size() > 0) {
+						ids = billsList.stream().map(Bills::getId).collect(Collectors.toList());
+					}
+				}
+				ids.add(0, bills.getId());
+				if (ObjectUtils.isNotNull(corpIds)) {
+					feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+						.in(FeeCenter::getPid, ids)
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getDc, "D")
+						.eq(FeeCenter::getCorpId, corpIds)
+						.eq(FeeCenter::getIsDeleted, 0));
+				} else {
+					if (ObjectUtils.isNotNull(itemIds)) {
+						feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+							.in(FeeCenter::getPid, ids)
+							.eq(FeeCenter::getDc, "D")
+							.apply("find_in_set(id,'" + itemIds + "')")
+							.eq(FeeCenter::getIsDeleted, 0));
+					}
+				}
+				bills.setFeeCenterListD(feeCenterList);
+				map.put("data", bills);
+			} else {
+				map.put("data", null);
+			}
+		} else if ("FYYF".equals(reports.getCode())) {
+			Bills bills = billsService.getById(billId);
+			if (bills != null) {
+				bills.setFM("jms");
+				bills.setVesselCnName(bills.getVesselEnName() + "/" + bills.getVoyageNo());
+				List<FeeCenter> feeCenterList = new ArrayList<>();
+				List<Long> ids = new ArrayList<>();
+				if ("MM".equals(bills.getBillType())) {
+					List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
+						.eq(Bills::getTenantId, AuthUtil.getTenantId())
+						.eq(Bills::getIsDeleted, 0)
+						.eq(Bills::getMasterId, bills.getId())
+						.eq(Bills::getMasterBillNo, bills.getBillNo()));
+					if (billsList.size() > 0) {
+						ids = billsList.stream().map(Bills::getId).collect(Collectors.toList());
+					}
+				}
+				ids.add(0, bills.getId());
+				if (ObjectUtils.isNotNull(corpIds)) {
+					feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+						.in(FeeCenter::getPid, ids)
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getDc, "C")
+						.eq(FeeCenter::getCorpId, corpIds)
+						.eq(FeeCenter::getIsDeleted, 0));
+				} else {
+					if (ObjectUtils.isNotNull(itemIds)) {
+						feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+							.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+							.in(FeeCenter::getPid, ids)
+							.eq(FeeCenter::getDc, "C")
+							.apply("find_in_set(id,'" + itemIds + "')")
+							.eq(FeeCenter::getIsDeleted, 0));
+					}
+				}
+				bills.setFeeCenterListC(feeCenterList);
+				map.put("data", bills);
+			} else {
+				map.put("data", null);
+			}
 		}
 		map.put("url", reports.getUrl());
 		return R.data(map);

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/terms/service/impl/BServiceTermsServiceImpl.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.los.basic.voucher.entity.BVoucherType;
 import org.springblade.los.excel.BServiceTermsExcel;
 import org.springblade.los.basic.terms.entity.BServiceTerms;
 import org.springblade.los.basic.terms.mapper.ServiceTermsMapper;
@@ -60,6 +61,12 @@ public class BServiceTermsServiceImpl extends ServiceImpl<ServiceTermsMapper, BS
 			bServiceTerms.setCreateTime(new Date());
 			bServiceTerms.setCreateUser(AuthUtil.getUserId());
 			bServiceTerms.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BServiceTerms>()
+				.eq(BServiceTerms::getTenantId, AuthUtil.getTenantId())
+				.eq(BServiceTerms::getIsDeleted, 0)
+				.eq(BServiceTerms::getCnName, bServiceTerms.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bServiceTerms.setCreateDept(AuthUtil.getDeptId());

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/units/service/impl/BUnitsServiceImpl.java

@@ -66,6 +66,12 @@ public class BUnitsServiceImpl extends ServiceImpl<UnitsMapper, BUnits> implemen
 	@Override
 	public R submit(BUnits bUnits) {
 		if (bUnits.getId() == null) {
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BUnits>()
+				.eq(BUnits::getTenantId, AuthUtil.getTenantId())
+				.eq(BUnits::getIsDeleted, 0)
+				.eq(BUnits::getCnName, bUnits.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			bUnits.setCreateTime(new Date());
 			bUnits.setCreateUser(AuthUtil.getUserId());
 			bUnits.setCreateUserName(AuthUtil.getUserName());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/vessels/service/impl/BVesselsServiceImpl.java

@@ -26,6 +26,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.basic.units.entity.BUnits;
 import org.springblade.los.excel.BVesselsExcel;
 import org.springblade.los.basic.vessels.entity.BVessels;
 import org.springblade.los.basic.vessels.mapper.VesselsMapper;
@@ -64,6 +65,12 @@ public class BVesselsServiceImpl extends ServiceImpl<VesselsMapper, BVessels> im
 			bVessels.setCreateTime(new Date());
 			bVessels.setCreateUser(AuthUtil.getUserId());
 			bVessels.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BVessels>()
+				.eq(BVessels::getTenantId, AuthUtil.getTenantId())
+				.eq(BVessels::getIsDeleted, 0)
+				.eq(BVessels::getCnName, bVessels.getCnName())) > 0) {
+				throw new RuntimeException("船名已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bVessels.setCreateDept(AuthUtil.getDeptId());

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/voucher/service/impl/BVoucherTypeServiceImpl.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.los.basic.vessels.entity.BVessels;
 import org.springblade.los.excel.BVoucherTypeExcel;
 import org.springblade.los.basic.voucher.entity.BVoucherType;
 import org.springblade.los.basic.voucher.mapper.VoucherTypeMapper;
@@ -60,6 +61,12 @@ public class BVoucherTypeServiceImpl extends ServiceImpl<VoucherTypeMapper, BVou
 			bVoucherType.setCreateTime(new Date());
 			bVoucherType.setCreateUser(AuthUtil.getUserId());
 			bVoucherType.setCreateUserName(AuthUtil.getUserName());
+			if (baseMapper.selectCount(new LambdaQueryWrapper<BVoucherType>()
+				.eq(BVoucherType::getTenantId, AuthUtil.getTenantId())
+				.eq(BVoucherType::getIsDeleted, 0)
+				.eq(BVoucherType::getCnName, bVoucherType.getCnName())) > 0) {
+				throw new RuntimeException("名称已存在");
+			}
 			//获取部门ids对应中文名
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				bVoucherType.setCreateDept(AuthUtil.getDeptId());

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

@@ -391,14 +391,14 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			);
 		}
 		detail.setContainersList(containersList);
-		List<WaitingBox> waitingBoxList = new ArrayList<>();
+		/*List<WaitingBox> waitingBoxList = new ArrayList<>();
 		WaitingBox waitingBox = new WaitingBox();
 		BeanUtil.copyProperties(detail, waitingBox);
 		waitingBox.setQuantity(detail.getQuantity().subtract(detail.getCfsQuantity()));
 		waitingBox.setGrossWeight(detail.getGrossWeight().subtract(detail.getCfsGrossWeight()));
 		waitingBox.setMeasurement(detail.getMeasurement().subtract(detail.getCfsMeasurement()));
 		waitingBoxList.add(waitingBox);
-		detail.setWaitingBoxList(waitingBoxList);
+		detail.setWaitingBoxList(waitingBoxList);*/
 		detail.setFeeCenterListC(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 			.eq(FeeCenter::getIsDeleted, 0)
 			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
@@ -712,35 +712,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		}
 		declare.setStatus(1);
 		baseMapper.updateById(declare);
-		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-			.eq(FeeCenter::getIsDeleted, 0)
-			.eq(FeeCenter::getPid, declare.getId()));
-		List<FeeCenter> feeCenterList1 = feeCenterList.stream().filter(e -> e.getAccStatus().equals(0))
-			.collect(Collectors.toList());
-		for (FeeCenter item : feeCenterList) {
-			item.setApplyId(AuthUtil.getUserId());
-			item.setApplyName(AuthUtil.getUserName());
-			item.setApplyTime(new Date());
-		}
-		feeCenterService.saveOrUpdateBatch(feeCenterList);
-		if (feeCenterList1.size() == 0) {
-			return declare;
-		} else {
-			FinAccBills finAccBills = new FinAccBills();
-			finAccBills.setFeeCenterList(feeCenterList1);
-			finAccBills.setBusinessTypeCode("HYZD");
-			finAccBills.setBillNoFormat("HYZD");
-			finAccBills.setAccountType("");
-			finAccBills.setCorpArgreementNo(declare.getCorpArgreementNo());
-			finAccBills.setRefno(declare.getRefno());
-			finAccBills.setBookingNo(declare.getBookingNo());
-			finAccBills.setPolNamePrint(declare.getPolNamePrint());
-			finAccBills.setPodNamePrint(declare.getPodNamePrint());
-			finAccBillsService.generateBill(finAccBills);
-			return declare;
-		}
-
+		return declare;
 	}
 
 	@Override
@@ -754,24 +726,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		}
 		declare.setStatus(0);
 		baseMapper.updateById(declare);
-		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
-			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-			.eq(FeeCenter::getIsDeleted, 0)
-			.eq(FeeCenter::getPid, declare.getId())
-			.eq(FeeCenter::getAccStatus, 0));
-		if (feeCenterList.size() == 0) {
-			return declare;
-		} else {
-			for (FeeCenter item : feeCenterList) {
-				if (ObjectUtils.isNotNull(item.getStlBillNo())) {
-					throw new RuntimeException("已生成结算单,撤销失败");
-				}
-			}
-			FinAccBills finAccBills = new FinAccBills();
-			finAccBills.setFeeCenterList(feeCenterList);
-			finAccBillsService.revokeBill(finAccBills);
-			return declare;
-		}
+		return declare;
 	}
 
 	@Override
@@ -782,16 +737,49 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		}
 		bills.setStatus(3);
 		baseMapper.updateById(bills);
-		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+		List<FeeCenter> feeCenterList = new ArrayList<>();
+		feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getAccStatus, 0)
 			.eq(FeeCenter::getPid, bills.getId()));
+		if ("MM".equals(bills.getBillType())) {
+			List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.eq(Bills::getMasterId, bills.getId())
+				.eq(Bills::getMasterBillNo, bills.getMasterBillNo()));
+			if (billsList.size() > 0) {
+				List<Long> ids = billsList.stream().map(Bills::getId).filter(Objects::nonNull).collect(Collectors.toList());
+				if (ids.size() > 0) {
+					List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getIsDeleted, 0)
+						.eq(FeeCenter::getAccStatus, 0)
+						.in(FeeCenter::getPid, ids));
+					feeCenterList.addAll(feeCenters);
+				}
+			}
+		}
 		for (FeeCenter item : feeCenterList) {
 			item.setApproverId(AuthUtil.getUserId());
 			item.setApproverName(AuthUtil.getUserName());
 			item.setApproveTime(new Date());
 		}
 		feeCenterService.saveOrUpdateBatch(feeCenterList);
+		if (feeCenterList.size() != 0) {
+			FinAccBills finAccBills = new FinAccBills();
+			finAccBills.setFeeCenterList(feeCenterList);
+			finAccBills.setBusinessTypeCode("HYZD");
+			finAccBills.setBillNoFormat("HYZD");
+			finAccBills.setAccountType("");
+			finAccBills.setCorpArgreementNo(bills.getCorpArgreementNo());
+			finAccBills.setRefno(bills.getRefno());
+			finAccBills.setBookingNo(bills.getBookingNo());
+			finAccBills.setPolNamePrint(bills.getPolNamePrint());
+			finAccBills.setPodNamePrint(bills.getPodNamePrint());
+			finAccBillsService.generateBill(finAccBills);
+		}
 		return R.success("操作成功");
 	}
 

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

@@ -334,6 +334,14 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 
 	@Override
 	public R<List<Containers>> importBoxNo(List<BoxAndLeadSealNoExcel> excelList) {
+		List<String> cntrNo = excelList.stream().map(BoxAndLeadSealNoExcel::getCntrNo).distinct().collect(Collectors.toList());
+		if (cntrNo.size() != excelList.size()) {
+			throw new RuntimeException("箱号不允许重复");
+		}
+		List<String> sealNo = excelList.stream().map(BoxAndLeadSealNoExcel::getSealNo).distinct().collect(Collectors.toList());
+		if (cntrNo.size() != excelList.size()) {
+			throw new RuntimeException("铅封号不允许重复");
+		}
 		List<String> ids = excelList.stream().map(BoxAndLeadSealNoExcel::getId).collect(Collectors.toList());
 		List<Containers> list = baseMapper.selectList(new LambdaQueryWrapper<Containers>()
 			.eq(Containers::getTenantId, AuthUtil.getTenantId())

+ 18 - 17
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FinAccBillsController.java

@@ -76,33 +76,34 @@ public class FinAccBillsController extends BladeController {
 		lambdaQueryWrapper.eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
 			.eq(FinAccBills::getIsDeleted, 0)
 			.eq(ObjectUtils.isNotNull(finAccBills.getAccountDc()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.eq(ObjectUtils.isNotNull(finAccBills.getAccountType()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.eq(ObjectUtils.isNotNull(finAccBills.getBusinessType()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getBusinessBillNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getBusinessBillDivideNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getContractNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.eq(ObjectUtils.isNotNull(finAccBills.getPaymode()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
+			.eq(ObjectUtils.isNotNull(finAccBills.getBillNo()), FinAccBills::getBillNo, finAccBills.getBillNo())
+			.eq(ObjectUtils.isNotNull(finAccBills.getAccountType()), FinAccBills::getAccountType, finAccBills.getAccountType())
+			.eq(ObjectUtils.isNotNull(finAccBills.getBusinessType()), FinAccBills::getBusinessType, finAccBills.getBusinessType())
+			.like(ObjectUtils.isNotNull(finAccBills.getBusinessBillNo()), FinAccBills::getBusinessBillNo, finAccBills.getBusinessBillNo())
+			.like(ObjectUtils.isNotNull(finAccBills.getBusinessBillDivideNo()), FinAccBills::getBusinessBillDivideNo, finAccBills.getBusinessBillDivideNo())
+			.like(ObjectUtils.isNotNull(finAccBills.getContractNo()), FinAccBills::getContractNo, finAccBills.getContractNo())
+			.eq(ObjectUtils.isNotNull(finAccBills.getPaymode()), FinAccBills::getPaymode, finAccBills.getPaymode())
 			.and(ObjectUtils.isNotNull(finAccBills.getCorpCnName()), i -> i.like(FinAccBills::getCorpCnName, finAccBills.getCorpCnName()).or()
 				.like(FinAccBills::getCorpEnName, finAccBills.getCorpCnName()).or().like(FinAccBills::getCorpArgreementNo, finAccBills.getCorpCnName()))
 			.and(ObjectUtils.isNotNull(finAccBills.getBillCorpCnName()), i -> i.like(FinAccBills::getBillCorpCnName, finAccBills.getBillCorpCnName()).or()
 				.like(FinAccBills::getBillCorpEnName, finAccBills.getBillCorpCnName()))
 			.and(ObjectUtils.isNotNull(finAccBills.getVesselCnName()), i -> i.like(FinAccBills::getVesselCnName, finAccBills.getVesselCnName()).or()
 				.like(FinAccBills::getVesselEnName, finAccBills.getVesselCnName()))
-			.like(ObjectUtils.isNotNull(finAccBills.getVoyageNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getMblno()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getHblno()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getRefno()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
+			.like(ObjectUtils.isNotNull(finAccBills.getVoyageNo()), FinAccBills::getVoyageNo, finAccBills.getVoyageNo())
+			.like(ObjectUtils.isNotNull(finAccBills.getMblno()), FinAccBills::getMblno, finAccBills.getMblno())
+			.like(ObjectUtils.isNotNull(finAccBills.getHblno()), FinAccBills::getHblno, finAccBills.getHblno())
+			.like(ObjectUtils.isNotNull(finAccBills.getRefno()), FinAccBills::getRefno, finAccBills.getRefno())
 			.and(ObjectUtils.isNotNull(finAccBills.getPolCnName()), i -> i.like(FinAccBills::getPolCnName, finAccBills.getPolCnName()).or()
 				.like(FinAccBills::getPolEnName, finAccBills.getPolCnName()).or().like(FinAccBills::getPolCode, finAccBills.getPolCnName()))
 			.and(ObjectUtils.isNotNull(finAccBills.getPodCnName()), i -> i.like(FinAccBills::getPodCnName, finAccBills.getPodCnName()).or()
 				.like(FinAccBills::getPodEnName, finAccBills.getPodCnName()).or().like(FinAccBills::getPodCode, finAccBills.getPodCnName()))
-			.like(ObjectUtils.isNotNull(finAccBills.getStlBillNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getInvoiceBillNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getVoucherBillNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.eq(ObjectUtils.isNotNull(finAccBills.getIsChecked()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.eq(ObjectUtils.isNotNull(finAccBills.getIsCleared()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.eq(ObjectUtils.isNotNull(finAccBills.getBillStatus()), FinAccBills::getAccountDc, finAccBills.getAccountDc())
-			.like(ObjectUtils.isNotNull(finAccBills.getBookingNo()), FinAccBills::getAccountDc, finAccBills.getAccountDc());
+			.like(ObjectUtils.isNotNull(finAccBills.getStlBillNo()), FinAccBills::getStlBillNo, finAccBills.getStlBillNo())
+			.like(ObjectUtils.isNotNull(finAccBills.getInvoiceBillNo()), FinAccBills::getInvoiceBillNo, finAccBills.getInvoiceBillNo())
+			.like(ObjectUtils.isNotNull(finAccBills.getVoucherBillNo()), FinAccBills::getVoucherBillNo, finAccBills.getVoucherBillNo())
+			.eq(ObjectUtils.isNotNull(finAccBills.getIsChecked()), FinAccBills::getIsChecked, finAccBills.getIsChecked())
+			.eq(ObjectUtils.isNotNull(finAccBills.getIsCleared()), FinAccBills::getIsCleared, finAccBills.getIsCleared())
+			.eq(ObjectUtils.isNotNull(finAccBills.getBillStatus()), FinAccBills::getBillStatus, finAccBills.getBillStatus())
+			.like(ObjectUtils.isNotNull(finAccBills.getBookingNo()), FinAccBills::getBookingNo, finAccBills.getBookingNo());
 
 		if (ObjectUtils.isNotNull(finAccBills.getAccountDateList()) && finAccBills.getAccountDateList().size() > 0) {
 			lambdaQueryWrapper.ge(FinAccBills::getAccountDate, finAccBills.getAccountDateList().get(0));

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

@@ -170,6 +170,12 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			int count = 1;
 			for (FeesTemplateItems items : losBFeesTemplate.getFeesTemplateItemsList()) {
 				FeeCenter feeCenter = new FeeCenter();
+
+				feeCenter.setElementsCnName(items.getElementsCnName());
+				feeCenter.setElementsEnName(items.getElementsEnName());
+				feeCenter.setElementsId(items.getElementsId());
+				feeCenter.setElementsCode(items.getElementsCode());
+
 				feeCenter.setPid(bills.getId());
 				feeCenter.setBillNo(bills.getBillNo());
 				feeCenter.setBusinessType(bills.getBusinessType());

+ 28 - 8
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderItemsController.java

@@ -16,26 +16,30 @@
  */
 package org.springblade.salesPart.order.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-import javax.validation.Valid;
-
+import org.springblade.core.boot.ctrl.BladeController;
 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.Func;
 import org.springblade.salesPart.entity.PjOrderItems;
+import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.vo.OrderItemsVO;
 import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.salesPart.order.service.IOrderItemsService;
-import org.springblade.core.boot.ctrl.BladeController;
+
+import javax.validation.Valid;
+import java.util.List;
 
 /**
- *  配件销售采购明细控制器
+ * 配件销售采购明细控制器
  *
  * @author BladeX
  * @since 2023-04-21
@@ -66,7 +70,13 @@ public class OrderItemsController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入orderItems")
 	public R<IPage<PjOrderItems>> list(PjOrderItems orderItems, Query query) {
-		IPage<PjOrderItems> pages = orderItemsService.page(Condition.getPage(query), Condition.getQueryWrapper(orderItems));
+		LambdaQueryWrapper<PjOrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrderItems::getIsDeleted, 0)
+			.eq(PjOrderItems::getPid, orderItems.getPid())
+			.eq(ObjectUtils.isNotNull(orderItems.getGoodsId()), PjOrderItems::getGoodsId, orderItems.getGoodsId())
+			.orderByDesc(PjOrderItems::getCreateTime);
+		IPage<PjOrderItems> pages = orderItemsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}
 
@@ -111,6 +121,16 @@ public class OrderItemsController extends BladeController {
 		return R.status(orderItemsService.saveOrUpdate(orderItems));
 	}
 
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submitList")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入orderItems")
+	public R submitList(@Valid @RequestBody List<PjOrderItems> orderItems) {
+		return orderItemsService.submitList(orderItems);
+	}
+
 
 	/**
 	 * 删除

+ 4 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderItemsService.java

@@ -19,9 +19,12 @@ package org.springblade.salesPart.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.vo.OrderItemsVO;
 
+import java.util.List;
+
 /**
  *  配件销售采购明细服务类
  *
@@ -39,4 +42,5 @@ public interface IOrderItemsService extends IService<PjOrderItems> {
 	 */
 	IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems);
 
+    R submitList(List<PjOrderItems> orderItems);
 }

+ 41 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderItemsServiceImpl.java

@@ -17,16 +17,23 @@
 package org.springblade.salesPart.order.service.impl;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.order.mapper.OrderItemsMapper;
 import org.springblade.salesPart.order.service.IOrderItemsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.salesPart.vo.OrderItemsVO;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 /**
- *  配件销售采购明细服务实现类
+ * 配件销售采购明细服务实现类
  *
  * @author BladeX
  * @since 2023-04-21
@@ -39,4 +46,35 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, PjOrder
 		return page.setRecords(baseMapper.selectOrderItemsPage(page, orderItems));
 	}
 
+	@Override
+	public R submitList(List<PjOrderItems> orderItems) {
+		orderItems.forEach(item -> {
+			BigDecimal profitLossNum = new BigDecimal("0.00");
+			BigDecimal profitLossAmount = new BigDecimal("0.00");
+			BigDecimal totalAmount = new BigDecimal("0.00");
+			BigDecimal subTotalMoney = new BigDecimal("0.00");
+			if (ObjectUtils.isNotNull(item.getSendNum())) {
+				profitLossNum = item.getSendNum().subtract(item.getInventory());
+				totalAmount = item.getInventory().multiply(item.getCostprie());
+				subTotalMoney = item.getSendNum().multiply(item.getCostprie());
+				profitLossAmount = profitLossNum.multiply(item.getCostprie());
+			}
+			item.setTotalAmount(totalAmount);
+			item.setSubTotalMoney(subTotalMoney);
+			item.setProfitLossNum(profitLossNum);
+			item.setProfitLossAmount(profitLossAmount);
+			if (item.getId() == null) {
+				item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+				item.setCreateTime(new Date());
+				item.setCreateUser(AuthUtil.getUserId());
+				item.setTenantId(AuthUtil.getTenantId());
+			} else {
+				item.setUpdateTime(new Date());
+				item.setUpdateUser(AuthUtil.getUserId());
+			}
+		});
+		this.saveOrUpdateBatch(orderItems);
+		return R.data(orderItems);
+	}
+
 }

+ 16 - 14
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -618,7 +618,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		List<PjOrderItems> list = orderItemsService.list(new QueryWrapper<PjOrderItems>()
 			.eq("pid", pjShip.getOrdId())
 			.eq("is_deleted", 0)
-			.apply("goods_num != send_num")
 			.eq("tenant_id", AuthUtil.getTenantId()));
 		if (ObjectUtil.isNotEmpty(list)) {
 			List<PjShipItems> shipItemsList = new ArrayList<>();
@@ -839,23 +838,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		}
 		// 保存订单明细
 		if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
+			List<Long> goodsIds = order.getOrderItemsList().stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (order.getOrderItemsList().size() != goodsIds.size()) {
+				throw new RuntimeException("商品重复,请修改");
+			}
 			order.getOrderItemsList().forEach(item -> {
 				item.setBizType(order.getBsType());
 				item.setBillNo(order.getOrdNo());
-				BigDecimal profitLossNum = new BigDecimal("0.00");
-				BigDecimal profitLossAmount = new BigDecimal("0.00");
-				BigDecimal totalAmount = new BigDecimal("0.00");
-				BigDecimal subTotalMoney = new BigDecimal("0.00");
+				BigDecimal totalAmount = item.getInventory().multiply(item.getCostprie());
 				if (ObjectUtils.isNotNull(item.getSendNum())) {
-					profitLossNum = item.getSendNum().subtract(item.getInventory());
-					totalAmount = item.getInventory().multiply(item.getCostprie());
-					subTotalMoney = item.getSendNum().multiply(item.getCostprie());
-					profitLossAmount = profitLossNum.multiply(item.getCostprie());
+					BigDecimal profitLossNum = item.getSendNum().subtract(item.getInventory());
+					BigDecimal subTotalMoney = item.getSendNum().multiply(item.getCostprie());
+					BigDecimal profitLossAmount = profitLossNum.multiply(item.getCostprie());
+					item.setSubTotalMoney(subTotalMoney);
+					item.setProfitLossNum(profitLossNum);
+					item.setProfitLossAmount(profitLossAmount);
+				} else {
+					item.setSubTotalMoney(null);
+					item.setProfitLossNum(null);
+					item.setProfitLossAmount(null);
 				}
 				item.setTotalAmount(totalAmount);
-				item.setSubTotalMoney(subTotalMoney);
-				item.setProfitLossNum(profitLossNum);
-				item.setProfitLossAmount(profitLossAmount);
 				if (item.getId() == null) {
 					item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 					item.setCreateTime(new Date());
@@ -956,8 +959,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				if (pjProductLaunch != null) {
 					pjProductLaunch.setInventory(pjProductLaunch.getInventory().add(item.getProfitLossNum()));
 					productLaunches.add(pjProductLaunch);
-				} else {
-					throw new RuntimeException("商品:" + goodsDesc.getCname() + "未查到上架信息");
 				}
 			});
 			R res = stockDescService.updateBatchByIdNew(pjStockDescArrayList);
@@ -1135,6 +1136,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				for (PjOrderItems item : order.getOrderItemsList()) {
 					BigDecimal balanceQuantity = new BigDecimal("0.00");
 					BigDecimal inventoryAmount = new BigDecimal("0.00");
+					item.setSendNum(new BigDecimal("0.00"));
 					if (pjStockDescList.size() > 0) {
 						balanceQuantity = pjStockDescList.stream().filter(e -> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull)
 							.reduce(BigDecimal.ZERO, BigDecimal::add);

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

@@ -1530,6 +1530,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		// 保存订单明细
 		if (CollectionUtils.isNotEmpty(order.getShipItemsList())) {
 			order.getShipItemsList().forEach(item -> {
+				item.setSendNum(new BigDecimal("0.00"));
 				//计算小计
 				if (item.getId() == null) {
 					item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java

@@ -240,6 +240,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 								throw new RuntimeException("库存不足");
 							}
 							orderItems.setId(null);
+							orderItems.setSendNum(new BigDecimal("0.00"));
 							orderItems.setCreateUser(AuthUtil.getUserId());
 							orderItems.setCreateDept(order.getCreateDept());
 							orderItems.setCreateTime(new Date());