Browse Source

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

# Conflicts:
#	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
纪新园 6 months ago
parent
commit
86b1eb5e6a

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

@@ -917,5 +917,11 @@ public class BillsController extends BladeController {
 	public R documentVerification(@RequestBody Bills bills) throws Exception {
 		return billsService.documentVerification(bills);
 	}
+
+
+	@PostMapping("/getReceiptUrl")
+	public R<String> getReceiptUrl(@RequestParam("billId") Long billId) {
+		return billsService.getReceiptUrl(billId);
+	}
 }
 

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

@@ -165,5 +165,13 @@ public interface IBillsService extends IService<Bills> {
 
     R documentVerification(Bills bills)throws Exception;
 
+	/**
+	 * 获取回执单地址
+	 *
+	 * @param billId id
+	 * @return 结果
+	 */
+	R<String> getReceiptUrl(Long billId);
+
 	R batchCopyBills(String ids, String billType, String copyCntr, String copyFee);
 }

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

@@ -61,6 +61,7 @@ import org.springblade.los.check.entity.LosAuditPathsLevels;
 import org.springblade.los.check.service.IAuditPathsActsService;
 import org.springblade.los.check.service.IAuditPathsLevelsService;
 import org.springblade.los.check.service.IAuditProecessService;
+import org.springblade.los.enums.ReceiptStationEnum;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
@@ -80,6 +81,7 @@ import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
 import java.math.MathContext;
@@ -159,6 +161,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 	private final ZrUtil zrUtil;
 
 
+
+
+
+
 	@Override
 	public IPage<BillsVO> selectBillsPage(IPage<BillsVO> page, BillsVO bills) {
 		return page.setRecords(baseMapper.selectBillsPage(page, bills));
@@ -297,14 +303,15 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			// 初始创建为1
 			bills.setVersion("1");
 			this.save(bills);
-		} else {
+		}
+		else {
 			Bills dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<Bills>().select(Bills::getId, Bills::getVersion).eq(Bills::getId, bills.getId()));
 			if (!Objects.equals(dataSourceBill.getVersion(), bills.getVersion())) {
 				return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
 			}
 			// 每更新一次往上累加一次版本
 			// 旧数据处理
-			int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
+			int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 :Integer.parseInt(dataSourceBill.getVersion());
 			bills.setVersion(String.valueOf(version + 1));
 			List<Long> ids = count.stream().map(Bills::getId).distinct().collect(Collectors.toList());
 			if (!"MH".equals(bills.getBillType())) {
@@ -579,7 +586,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 						.distinct().filter(Objects::nonNull).collect(Collectors.joining(",")));
 				}
 			}
-		} else {
+		}else{
 			bills.setQuantityCntrDescr(null);
 		}
 		bills.setQuantityV20(V20);
@@ -3587,6 +3594,50 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 	}
 
 	@Override
+	public R<String> getReceiptUrl(Long billId) {
+		Bills bills = baseMapper.selectById(billId);
+		if (org.springframework.util.ObjectUtils.isEmpty(bills)) {
+			return R.fail("单据不存在");
+		}
+		if (!StringUtils.hasText(bills.getMblno())) {
+			return R.fail("提单号不存在, 不允许复制");
+		}
+		BCorps corps = ibCorpsService.getById(bills.getCarrierId());
+		if (org.springframework.util.ObjectUtils.isEmpty(corps)) {
+			return R.fail("船公司不存在");
+		}
+		String returnUrl = "http://www.jms-logistics.com:7805/ep/CtnTicket/JMS/%s/%s?cyCode=";
+		List<String> corpNoList = Arrays.asList("QDCMA", "QDCNC", "QDANL");
+		R<String> successR = R.success("复制成功,内容已复制到剪切板");
+		if (corpNoList.contains(corps.getCode())) {
+			String shipCode = "LIANYUNGANG".equals(bills.getPodEnName()) ? "CMA_LYG" : "CMA_TAO";
+			successR.setData(String.format(returnUrl, shipCode, bills.getMblno()));
+			return successR;
+		}
+		if ("QDHMM".equals(corps.getCode())) {
+			String mblNo = bills.getMblno().startsWith("HDMU") ? bills.getMblno().replace("HDMU", "") : bills.getMblno();
+			successR.setData(String.format(returnUrl, "HMM_TAO", mblNo));
+			return successR;
+		}
+		if ("QDPIL".equals(corps.getCode())) {
+			successR.setData(String.format(returnUrl, "PIL_TAO", bills.getMblno()));
+			return successR;
+		}
+		if ("ONE".equals(corps.getCode())) {
+			if (org.springframework.util.ObjectUtils.isEmpty(bills.getCyId())) {
+				return R.fail("ONE 船公司必须选择场站!");
+			}
+			ReceiptStationEnum receiptEnum = ReceiptStationEnum.getById(bills.getCyId());
+			if (receiptEnum == null) {
+				return R.fail("当前场站不在支持范围内!");
+			}
+			successR.setData(String.format(returnUrl, "ONE_TAO", bills.getMblno()) + receiptEnum.code);
+			return successR;
+		}
+		return R.fail("仅 CMA/NAL/CNC/HMM/ONE/PIL 可以复制背箱小票连接地址!");
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public R batchCopyBills(String ids, String billType, String copyCntr, String copyFee) {
 		if (ObjectUtils.isNull(ids)) {

+ 79 - 0
blade-service/blade-los/src/main/java/org/springblade/los/enums/ReceiptStationEnum.java

@@ -0,0 +1,79 @@
+package org.springblade.los.enums;
+
+/**
+ * @author Rain
+ */
+
+public enum ReceiptStationEnum {
+
+	/**
+	 * 青岛港捷丰
+	 */
+	QINGDAO_PORT_JIEFENG("青岛港捷丰", 11351L, "CNTAO31"),
+
+	/**
+	 * 青岛大亚
+	 */
+	QINGDAO_DAYA("青岛大亚", 341L, "CNTAO32"),
+
+	/**
+	 * 青岛港联华
+	 */
+	QINGDAO_GONGLIANHUA("青岛港联华", 11278L, "CNTAO33"),
+
+	/**
+	 * 青岛陆海
+	 */
+	QINGDAO_LUHAI("青岛陆海", 142L, "CNTAO36"),
+
+	/**
+	 * 青岛港联欣
+	 */
+	QINGDAO_GONGLIANXIN("青岛港联欣", 10298L, "CNTAO39"),
+
+	/**
+	 * 青岛港联捷
+	 */
+	QINGDAO_GONGLIANJIE("青岛港联捷", 10554L, "CNTAO43"),
+
+	/**
+	 * 青岛中外运
+	 */
+	QINGDAO_WOYUAN("青岛中外运", 143L, "CNTAO44"),
+
+	/**
+	 * 胜狮物流
+	 */
+	SHENGSHI_LOGISTICS("胜狮物流", 272L, "CNTAO47");
+
+	/**
+	 * 场站名
+	 */
+	public final String name;
+
+	/**
+	 *
+	 */
+	public final Long id;
+
+	/**
+	 * ship Code
+	 */
+	public final String code;
+
+	ReceiptStationEnum(String name, Long id, String code) {
+		this.name = name;
+		this.id = id;
+		this.code = code;
+	}
+
+	public static ReceiptStationEnum getById(Long id) {
+		for (ReceiptStationEnum value : ReceiptStationEnum.values()) {
+			if (value.id.equals(id)) {
+				return value;
+			}
+		}
+		return null;
+	}
+
+}