Browse Source

2023年10月19日11:49:52

纪新园 2 years ago
parent
commit
35cacccb4b

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

@@ -34,6 +34,8 @@ import org.springblade.los.business.sea.vo.ContainersVO;
 import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.List;
+
 /**
  * 业务-海运进出口配箱-箱号装箱业务 控制器
  *
@@ -111,6 +113,16 @@ public class ContainersController extends BladeController {
 		return containersService.submit(containers);
 	}
 
+	/**
+	 * 清除箱号
+	 */
+	@PostMapping("/cleanBoxNo")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R cleanBoxNo( @RequestParam List<Containers> containersList) {
+		return containersService.cleanBoxNo(containersList);
+	}
+
 
 	/**
 	 * 删除 业务-海运进出口配箱-箱号装箱业务

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

@@ -119,7 +119,7 @@ public class PreContainersController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(preContainersService.removeByIds(Func.toLongList(ids)));
+		return preContainersService.delete(Func.toLongList(ids));
 	}
 
 

+ 9 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IContainersService.java

@@ -22,6 +22,8 @@ import org.springblade.los.business.sea.vo.ContainersVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 业务-海运进出口配箱-箱号装箱业务 服务类
  *
@@ -58,4 +60,11 @@ public interface IContainersService extends IService<Containers> {
 	 * @param pid
 	 */
 	void removeByPid(Long pid);
+
+	/**
+	 * 清除箱号
+	 * @param containersList
+	 * @return
+	 */
+	R cleanBoxNo(List<Containers> containersList);
 }

+ 9 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IPreContainersService.java

@@ -22,6 +22,8 @@ import org.springblade.los.business.sea.vo.PreContainersVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 业务-海运进出口-预配箱型箱量 服务类
  *
@@ -45,4 +47,11 @@ public interface IPreContainersService extends IService<PreContainers> {
 	 * @return
 	 */
 	R submit(PreContainers preContainers);
+
+	/**
+	 * 删除 业务-海运进出口-预配箱型箱量
+	 * @param toLongList
+	 * @return
+	 */
+    R delete(List<Long> toLongList);
 }

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

@@ -107,7 +107,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				throw new RuntimeException("单据编号不允许重复");
 			}
 			BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
-				.eq(BusinessType::getCode, "HYCK")
+				.eq(BusinessType::getCode, bills.getBillNoFormat())
 				.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
 				.eq(BusinessType::getIsDeleted, 0)
 				.eq(BusinessType::getStatus, 0));
@@ -443,8 +443,18 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R getBillNo(Bills bills) {
-		R clientBillNo = serialClient.getBillNoLos(bills.getBillType(), bills.getSeaType(), bills.getBusinessType(), bills.getCorpCode());
+		BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
+			.eq(BusinessType::getCode, bills.getBillNoFormat())
+			.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessType::getIsDeleted, 0)
+			.eq(BusinessType::getStatus, 0));
+		if (businessType == null) {
+			throw new RuntimeException("请先设置单据编码格式");
+		}
+		R clientBillNo = serialClient.getBillNoLos(bills.getBillType(), bills.getSeaType(), bills.getBusinessType(), businessType.getBillNoFormat());
 		if (!clientBillNo.isSuccess()) {
 			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 			return R.fail(500, "生成订单编号失败");

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

@@ -185,4 +185,21 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 		baseMapper.removeByPid(pid);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R cleanBoxNo(List<Containers> containersList) {
+		for (Containers item : containersList) {
+			if (item.getId() == null) {
+				throw new RuntimeException("请先保存");
+			}
+			item.setCntrNo("");
+			item.setUpdateTime(new Date());
+			item.setUpdateUser(AuthUtil.getUserId());
+			item.setUpdateUserName(AuthUtil.getUserName());
+		}
+		this.updateBatchById(containersList);
+		return R.data(containersList);
+	}
+
 }

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

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.business.sea.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;
@@ -25,10 +26,10 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.entity.Containers;
+import org.springblade.los.business.sea.entity.ContainersBills;
 import org.springblade.los.business.sea.entity.PreContainers;
 import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.business.sea.mapper.PreContainersMapper;
-import org.springblade.los.business.sea.service.IBillsService;
 import org.springblade.los.business.sea.service.IContainersBillsService;
 import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.los.business.sea.service.IPreContainersService;
@@ -41,6 +42,7 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 业务-海运进出口-预配箱型箱量 服务实现类
@@ -144,4 +146,32 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 		return R.data(preContainers);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R delete(List<Long> ids) {
+		for (Long id : ids) {
+			List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
+				.eq(Containers::getTenantId, AuthUtil.getTenantId())
+				.eq(Containers::getIsDeleted, 0)
+				.eq(Containers::getLineNo, id));
+			if (containersList.size() > 0) {
+				List<Long> containersIds = containersList.stream().map(Containers::getId).collect(Collectors.toList());
+				if (containersIds.size() > 0) {
+					long count = containersBillsService.count(new LambdaQueryWrapper<ContainersBills>()
+						.eq(ContainersBills::getTenantId, AuthUtil.getTenantId())
+						.eq(ContainersBills::getIsDeleted, 0)
+						.in(ContainersBills::getPid, containersIds));
+					if (count > 0) {
+						throw new RuntimeException("请先撤销配箱信息");
+					} else {
+						containersService.removeByIds(containersIds);
+					}
+				}
+			}
+		}
+		this.removeByIds(ids);
+		return R.data("操作成功");
+	}
+
 }