Browse Source

2022年12月7 18:35

wangzhuo 2 years ago
parent
commit
fd640744f3

+ 21 - 6
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/declare/DeclareCustomsController.java

@@ -68,14 +68,15 @@ public class DeclareCustomsController extends BladeController {
 			.like(ObjectUtil.isNotEmpty(declareCustoms.getPreEntryNo()), DeclareCustoms::getPreEntryNo, declareCustoms.getPreEntryNo())//预录入编号
 			.like(ObjectUtil.isNotEmpty(declareCustoms.getCustomsNo()), DeclareCustoms::getCustomsNo, declareCustoms.getCustomsNo())//海关编号
 			.like(ObjectUtil.isNotEmpty(declareCustoms.getDeliveryNumbers()), DeclareCustoms::getDeliveryNumbers, declareCustoms.getDeliveryNumbers())//提运单号
-			.like(ObjectUtil.isNotEmpty(declareCustoms.getCustomsDeclarationPlace()), DeclareCustoms::getCustomsDeclarationPlace, declareCustoms.getCustomsDeclarationPlace());
+			.like(ObjectUtil.isNotEmpty(declareCustoms.getCustomsDeclarationPlace()), DeclareCustoms::getCustomsDeclarationPlace, declareCustoms.getCustomsDeclarationPlace())//申报地海关
+			.eq(ObjectUtil.isNotEmpty(declareCustoms.getStatus()), DeclareCustoms::getStatus, declareCustoms.getStatus());//状态
 
 		if (declareCustoms.getDeclareDateList() != null && declareCustoms.getDeclareDateList().size() > 1) {
 			lambdaQueryWrapper.ge(ObjectUtil.isNotEmpty(declareCustoms.getDeclareDateList().get(0)), DeclareCustoms::getDeclareDate, declareCustoms.getDeclareDateList().get(0));//申报日期开始时间
 			lambdaQueryWrapper.le(ObjectUtil.isNotEmpty(declareCustoms.getDeclareDateList().get(1)), DeclareCustoms::getDeclareDate, declareCustoms.getDeclareDateList().get(1));//申报日期结束日期
 		}
-
 		lambdaQueryWrapper.orderByDesc(DeclareCustoms::getDeclareDate);
+
 		IPage<DeclareCustoms> page = declareCustomsService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		return R.data(page);
@@ -140,6 +141,16 @@ public class DeclareCustomsController extends BladeController {
 	}
 
 	/**
+	 * 复制单据
+	 */
+	@PostMapping("/copyCustoms")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "复制单据", notes = "传入declareCustoms")
+	public R copyCustoms(DeclareCustoms declareCustoms){
+		return declareCustomsService.copyCustoms(declareCustoms);
+	}
+
+	/**
 	 * 报关请核
 	 *
 	 * @param declareCustoms
@@ -212,10 +223,14 @@ public class DeclareCustomsController extends BladeController {
 			.like(ObjectUtil.isNotEmpty(declareCustoms.getPreEntryNo()), DeclareCustoms::getPreEntryNo, declareCustoms.getPreEntryNo())//预录入编号
 			.like(ObjectUtil.isNotEmpty(declareCustoms.getCustomsNo()), DeclareCustoms::getCustomsNo, declareCustoms.getCustomsNo())//海关编号
 			.like(ObjectUtil.isNotEmpty(declareCustoms.getDeliveryNumbers()), DeclareCustoms::getDeliveryNumbers, declareCustoms.getDeliveryNumbers())//提运单号
-			.like(ObjectUtil.isNotEmpty(declareCustoms.getCustomsDeclarationPlace()), DeclareCustoms::getCustomsDeclarationPlace, declareCustoms.getCustomsDeclarationPlace())
-			.ge(ObjectUtil.isNotEmpty(declareCustoms.getDeclareDateList().get(0)), DeclareCustoms::getDeclareDate, declareCustoms.getDeclareDateList().get(0))//申报日期开始时间
-			.le(ObjectUtil.isNotEmpty(declareCustoms.getDeclareDateList().get(1)), DeclareCustoms::getDeclareDate, declareCustoms.getDeclareDateList().get(1))//申报日期结束日期
-			.orderByDesc(DeclareCustoms::getDeclareDate);
+			.like(ObjectUtil.isNotEmpty(declareCustoms.getCustomsDeclarationPlace()), DeclareCustoms::getCustomsDeclarationPlace, declareCustoms.getCustomsDeclarationPlace())//申报地海关
+			.eq(ObjectUtil.isNotEmpty(declareCustoms.getStatus()), DeclareCustoms::getStatus, declareCustoms.getStatus());//状态
+
+		if (declareCustoms.getDeclareDateList() != null && declareCustoms.getDeclareDateList().size() > 1) {
+			lambdaQueryWrapper.ge(ObjectUtil.isNotEmpty(declareCustoms.getDeclareDateList().get(0)), DeclareCustoms::getDeclareDate, declareCustoms.getDeclareDateList().get(0));//申报日期开始时间
+			lambdaQueryWrapper.le(ObjectUtil.isNotEmpty(declareCustoms.getDeclareDateList().get(1)), DeclareCustoms::getDeclareDate, declareCustoms.getDeclareDateList().get(1));//申报日期结束日期
+		}
+		lambdaQueryWrapper.orderByDesc(DeclareCustoms::getDeclareDate);
 
 		List<DeclareCustoms> list = declareCustomsService.list(lambdaQueryWrapper);
 

+ 5 - 0
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/IDeclareCustomsService.java

@@ -38,6 +38,11 @@ public interface IDeclareCustomsService extends IService<DeclareCustoms> {
 	DeclareCustoms add(DeclareCustoms declareCustoms);
 
 	/**
+	 * 复制单据
+	 */
+	R copyCustoms(DeclareCustoms declareCustoms);
+
+	/**
 	 * 报关请核
 	 */
 	DeclareCustoms checkDeclareCustoms(DeclareCustoms declareCustoms);

+ 110 - 2
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/DeclareCustomsServiceImpl.java

@@ -151,7 +151,9 @@ public class DeclareCustomsServiceImpl extends ServiceImpl<DeclareCustomsMapper,
 			declareCustoms.setCreateTime(new Date());
 			declareCustoms.setCreateUser(AuthUtil.getUserId());
 			declareCustoms.setTenantId(AuthUtil.getTenantId());
+			declareCustoms.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			declareCustoms.setStatus(0);
+			declareCustoms.setAuditStatus("录入");
 			baseMapper.insert(declareCustoms);
 		}else {
 			declareCustoms.setUpdateTime(new Date());
@@ -265,6 +267,110 @@ public class DeclareCustomsServiceImpl extends ServiceImpl<DeclareCustomsMapper,
 	}
 
 	/**
+	 * 复制单据
+	 */
+	@Override
+	public R copyCustoms(DeclareCustoms declareCustoms){
+		LambdaQueryWrapper<DeclareCustoms> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(DeclareCustoms::getId, declareCustoms.getId())
+			.eq(DeclareCustoms::getTenantId, AuthUtil.getTenantId())
+			.eq(DeclareCustoms::getIsDeleted, 0);
+		DeclareCustoms customs = baseMapper.selectOne(lambdaQueryWrapper);
+
+		if (ObjectUtil.isEmpty(customs)){
+			throw new SecurityException("信息获取异常");
+		}
+
+		customs.setId(null);
+		customs.setCreateUser(AuthUtil.getUserId());
+		customs.setCreateTime(new Date());
+		customs.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+		customs.setSysNo("");
+		customs.setTenantId(AuthUtil.getTenantId());
+		customs.setDeclareDate(new Date());
+		customs.setStatus(null);
+		customs.setAuditStatus("");
+
+		//获得商品明细
+		LambdaQueryWrapper<DeclareCustomsItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		itemLambdaQueryWrapper.eq(DeclareCustomsItem::getPid, declareCustoms.getId())
+			.eq(DeclareCustomsItem::getIsDeleted, 0)
+			.eq(DeclareCustomsItem::getTenantId, AuthUtil.getTenantId());
+		List<DeclareCustomsItem> itemList = declareCustomsItemMapper.selectList(itemLambdaQueryWrapper);
+		itemList.forEach(e ->{
+			e.setId(null);
+			e.setPid(null);
+			e.setCreateUser(AuthUtil.getUserId());
+			e.setCreateTime(new Date());
+			e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+		});
+		customs.setItemList(itemList);
+
+		//获得集装箱明细
+		LambdaQueryWrapper<DeclareCustomsContainer> containerLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		containerLambdaQueryWrapper.eq(DeclareCustomsContainer::getPid, declareCustoms.getId())
+			.eq(DeclareCustomsContainer::getIsDeleted, 0)
+			.eq(DeclareCustomsContainer::getTenantId, AuthUtil.getTenantId());
+		List<DeclareCustomsContainer> containerList = containerMapper.selectList(containerLambdaQueryWrapper);
+		containerList.forEach(e ->{
+			e.setId(null);
+			e.setPid(null);
+			e.setCreateUser(AuthUtil.getUserId());
+			e.setCreateTime(new Date());
+			e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+		});
+		customs.setContainerList(containerList);
+
+		//获得单证明细
+		LambdaQueryWrapper<DeclareCustomsDocuments> documentsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		documentsLambdaQueryWrapper.eq(DeclareCustomsDocuments::getPid, declareCustoms.getId())
+			.eq(DeclareCustomsDocuments::getIsDeleted, 0)
+			.eq(DeclareCustomsDocuments::getTenantId, AuthUtil.getTenantId());
+		List<DeclareCustomsDocuments> documentsList = documentsMapper.selectList(documentsLambdaQueryWrapper);
+		documentsList.forEach(e ->{
+			e.setId(null);
+			e.setPid(null);
+			e.setCreateUser(AuthUtil.getUserId());
+			e.setCreateTime(new Date());
+			e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+		});
+		customs.setDocumentsList(documentsList);
+
+		//费用明细
+		LambdaQueryWrapper<DeclareCustomsFees> feesLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		documentsLambdaQueryWrapper.eq(DeclareCustomsDocuments::getPid, declareCustoms.getId())
+			.eq(DeclareCustomsDocuments::getIsDeleted, 0)
+			.eq(DeclareCustomsDocuments::getTenantId, AuthUtil.getTenantId());
+		List<DeclareCustomsFees> feesList = feesMapper.selectList(feesLambdaQueryWrapper);
+		feesList.forEach(e ->{
+			e.setId(null);
+			e.setPid(null);
+			e.setCreateUser(AuthUtil.getUserId());
+			e.setCreateTime(new Date());
+			e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+		});
+		customs.setFeesList(feesList);
+
+		//获取附件信息
+		LambdaQueryWrapper<DeclareCustomsFiles> filesLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		filesLambdaQueryWrapper.eq(DeclareCustomsFiles::getIsDeleted, 0)
+			.eq(DeclareCustomsFiles::getTenantId, AuthUtil.getTenantId())
+			.eq(DeclareCustomsFiles::getType, "1")
+			.eq(DeclareCustomsFiles::getPid, declareCustoms.getId());
+		List<DeclareCustomsFiles> filesList = filesMapper.selectList(filesLambdaQueryWrapper);
+		filesList.forEach(e ->{
+			e.setId(null);
+			e.setPid(null);
+			e.setCreateUser(AuthUtil.getUserId());
+			e.setCreateTime(new Date());
+			e.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+		});
+		customs.setFileList(filesList);
+
+		return R.data(customs);
+	}
+
+	/**
 	 * 报关请核
 	 */
 	@Override
@@ -367,7 +473,8 @@ public class DeclareCustomsServiceImpl extends ServiceImpl<DeclareCustomsMapper,
 			BigDecimal payAmount = new BigDecimal("0.00");
 			if (ObjectUtils.isNotNull(receivableOrderFeesList)) {
 				for (DeclareCustomsFees fees : receivableOrderFeesList) {
-					payAmount = payAmount.add(fees.getPrice().multiply(fees.getExchangeRate(), MathContext.DECIMAL32));
+					payAmount = payAmount.add(fees.getAmount());
+					//payAmount = payAmount.add(fees.getPrice().multiply(fees.getExchangeRate(), MathContext.DECIMAL32));
 				}
 			}
 			auditProecessDTO.setPayAmount(payAmount);
@@ -381,7 +488,8 @@ public class DeclareCustomsServiceImpl extends ServiceImpl<DeclareCustomsMapper,
 			BigDecimal receivableAmount = new BigDecimal("0.00");
 			if (ObjectUtils.isNotNull(payOrderFeesList)) {
 				for (DeclareCustomsFees DeclareCustomsFees : payOrderFeesList) {
-					receivableAmount = receivableAmount.add(DeclareCustomsFees.getPrice().multiply(DeclareCustomsFees.getExchangeRate(), MathContext.DECIMAL32));
+					receivableAmount = receivableAmount.add(DeclareCustomsFees.getAmount());
+					//receivableAmount = receivableAmount.add(DeclareCustomsFees.getPrice().multiply(DeclareCustomsFees.getExchangeRate(), MathContext.DECIMAL32));
 				}
 			}
 			auditProecessDTO.setReceivableAmount(receivableAmount);