Browse Source

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

# Conflicts:
#	blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
#	blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java
#	blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
liyuan 6 months ago
parent
commit
eda76bab72

+ 13 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/ports/entity/BPorts.java

@@ -27,6 +27,7 @@ import org.springblade.los.utils.LosSpecialHandle;
 
 import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -185,5 +186,17 @@ public class BPorts implements Serializable {
 	@TableField(exist = false)
 	private List<BPortsTerms> bPortsTermsList;
 
+	/**
+	 * 限重
+	 */
+	@ApiModelProperty(value = "限重")
+	private BigDecimal weightLimit;
+
+	/**
+	 * 特殊要求
+	 */
+	@ApiModelProperty(value = "特殊要求")
+	private String specalMarks;
+
 
 }

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

@@ -1935,6 +1935,16 @@ public class Bills implements Serializable {
 	 */
 	@ApiModelProperty(value = "放单")
 	private Integer isPutOrder;
+	/**
+	 * 报价方式
+	 */
+	@ApiModelProperty(value = "报价方式")
+	private String quotationMethod;
+/**
+	 * 结算方式
+	 */
+	@ApiModelProperty(value = "结算方式")
+	private String accountPeriodType;
 
 	/**
 	 * 入库

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

@@ -191,6 +191,12 @@ public class AgreementPrice implements Serializable {
 	private String tenantId;
 
 	/**
+	 * 结算方式
+	 */
+	@ApiModelProperty(value = "结算方式")
+	private String accountPeriodType;
+
+	/**
 	 * 协议价管理-明细
 	 */
 	@TableField(exist = false)

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

@@ -4002,11 +4002,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		} else {
 			throw new RuntimeException("获取报表表头数据失败");
 		}
-		BCurrency bCurrency = ibCurrencyService.getOne(new LambdaQueryWrapper<BCurrency>()
-			.eq(BCurrency::getStatus, 0)
-			.eq(BCurrency::getTenantId, AuthUtil.getTenantId())
-			.eq(BCurrency::getIsDeleted, 0)
-			.eq(BCurrency::getCode, MagicValues.USD));
 		if (MagicValues.COST.equals(reportCode) &&
 			(MagicValues.MEET.equals(groupCode) || MagicValues.MEET_BILL.equals(groupCode)) && MagicValues.AMEND.equals(type)) {
 			Bills bills;
@@ -4295,11 +4290,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						analysis += bills.getCorpCnName();
 					}
 					bills.setAnalysis(analysis);
-					if (bCurrency != null) {
-						bills.setRate(bCurrency.getExrate());
-					} else {
-						bills.setRate(new BigDecimal(MagicValues.ZERO));
-					}
+					bills.setRate(ibCurrencyService.getCnyExrate(amends.getBillDate(), "USD", "D", "1"));
 					if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
 						List<Bills> billsList = billsService.list(new LambdaQueryWrapper<Bills>()
 							.eq(Bills::getMasterId, bills.getId())
@@ -5225,11 +5216,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						analysis += bills.getCorpCnName();
 					}
 					bills.setAnalysis(analysis);
-					if (bCurrency != null) {
-						bills.setRate(bCurrency.getExrate());
-					} else {
-						bills.setRate(new BigDecimal(MagicValues.ZERO));
-					}
+					bills.setRate(ibCurrencyService.getCnyExrate(amends.getBillDate(), "USD", "D", "1"));
 					if (MagicValues.MM.equals(bills.getBillType()) || MagicValues.DD.equals(bills.getBillType())) {
 						List<AeaBills> billsList = aeaBillsService.list(new LambdaQueryWrapper<AeaBills>()
 							.eq(AeaBills::getMasterId, bills.getId())

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

@@ -895,11 +895,11 @@ public class BillsController extends BladeController {
 	/**
 	 * 单据校验
 	 */
-	/*@PostMapping("/documentVerification")
+	@PostMapping("/documentVerification")
 	@RepeatSubmit
-	public R documentVerification(@RequestBody Bills bills) {
+	public R documentVerification(@RequestBody Bills bills)throws Exception {
 		return billsService.documentVerification(bills);
-	}*/
+	}
 
 
 	@PostMapping("/getReceiptUrl")

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

@@ -163,6 +163,8 @@ public interface IBillsService extends IService<Bills> {
 
 	void removeHblNo(Long id);
 
+    R documentVerification(Bills bills)throws Exception;
+
 	/**
 	 * 获取回执单地址
 	 *

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

@@ -3503,6 +3503,87 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 	}
 
 	@Override
+	public R documentVerification(Bills billss) throws Exception {
+		Object object = StringTools.handle(billss, "Bills");
+		Bills bills = JSONObject.parseObject(JSONObject.toJSONString(object), Bills.class);
+		String branchId = deptUtils.getDeptPid() + "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(bills.getMblno())) {
+			bills.setMblno(bills.getMblno().replaceAll(" ", ""));
+		}
+		List<Bills> count = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getBranchId, branchId)
+			.eq(Bills::getCreateDept, AuthUtil.getDeptId())
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.eq(Bills::getMblno, bills.getMblno()));
+		if ("SE".equals(bills.getBusinessType())) {
+			bills.setBillDate(bills.getEtd());
+		} else {
+			bills.setBillDate(bills.getEta());
+		}
+		if (ObjectUtils.isNotNull(bills.getBillDate())) {
+			LocalDate date = bills.getBillDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+			int year = date.getYear();
+			int month = date.getMonthValue();
+			FinPeriod finPeriod = finPeriodMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
+				.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
+				.eq(FinPeriod::getIsDeleted, 0)
+				.eq(FinPeriod::getPeriodYear, year)
+				.eq(FinPeriod::getPeriodMonth, month));
+			if (finPeriod != null) {
+				if (1 == finPeriod.getIsClosed()) {
+					return R.data("1", year + "年" + month + "月账期已结转,保存失败");
+				}
+				if (1 == finPeriod.getLockingStatus()) {
+					return R.data("1", year + "年" + month + "月账期已锁定,保存失败");
+				}
+			}
+		}
+		List<Bills> dateList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.eq(Bills::getVesselId, bills.getVesselId())
+			.eq(Bills::getVoyageNo, bills.getVoyageNo()));
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		if (bills.getId() == null) {
+			if (!"MH".equals(bills.getBillType())) {
+				if (ObjectUtils.isNotNull(bills.getMblno())) {
+					List<Bills> billsList = count.stream().filter(e -> e.getTeamId().equals(AuthUtil.getPostId())).collect(Collectors.toList());
+					if (!billsList.isEmpty()) {
+						return R.data("1", "提单号不允许重复:" + bills.getMblno());
+					}
+				}
+			}
+			if (ObjectUtils.isNotNull(bills.getVesselId()) && ObjectUtils.isNotNull(bills.getVoyageNo())) {
+				if (!dateList.isEmpty() && dateList.stream().anyMatch(e -> !e.getBillDate().equals(bills.getBillDate()))) {
+					List<Bills> bills1 = dateList.stream().filter(e -> !e.getBillDate().equals(bills.getBillDate())).collect(Collectors.toList());
+					return R.data("2", "系统已存在船名,航次,日期" + sdf.format(bills1.get(0).getBillDate()) + "与当前所填日期不符,是否确认?");
+				}
+			}
+		} else {
+			List<Bills> billsList = count.stream().filter(e -> ObjectUtils.isNotNull(e.getTeamId()) && e.getTeamId().equals(AuthUtil.getPostId())).collect(Collectors.toList());
+			if (!billsList.isEmpty()) {
+				List<Long> ids = billsList.stream().map(Bills::getId).distinct().collect(Collectors.toList());
+				if (!"MH".equals(bills.getBillType())) {
+					if (ObjectUtils.isNotNull(bills.getMblno())) {
+						if (!ids.contains(bills.getId())) {
+							return R.data("1", "提单号不允许重复:" + bills.getMblno());
+						}
+					}
+				}
+			}
+			if (ObjectUtils.isNotNull(bills.getVesselId()) && ObjectUtils.isNotNull(bills.getVoyageNo())) {
+				if (!dateList.isEmpty() && dateList.stream().anyMatch(e -> !e.getId().equals(bills.getId()) && !e.getBillDate().equals(bills.getBillDate()))) {
+					List<Bills> bills1 = dateList.stream().filter(e -> !e.getId().equals(bills.getId()) && !e.getBillDate().equals(bills.getBillDate())).collect(Collectors.toList());
+					return R.data("2", "系统已存在船名,航次,日期" + sdf.format(bills1.get(0).getBillDate()) + "与当前所填日期不符,是否确认?");
+				}
+			}
+		}
+		return R.data("0");
+	}
+
+	@Override
 	public R<String> getReceiptUrl(Long billId) {
 		Bills bills = baseMapper.selectById(billId);
 		if (org.springframework.util.ObjectUtils.isEmpty(bills)) {