Browse Source

2023年1月11日17:17:23

纪新园 2 years ago
parent
commit
6fb38722c8

+ 6 - 0
blade-service-api/blade-dict-api/src/main/java/org/springblade/system/entity/DictBiz.java

@@ -104,5 +104,11 @@ public class DictBiz implements Serializable {
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 
+	/**
+	 * 颜色
+	 */
+	@ApiModelProperty(value = "颜色")
+	private String colour;
+
 
 }

+ 14 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Items.java

@@ -342,4 +342,18 @@ public class Items implements Serializable {
 	@ApiModelProperty(value = "箱型")
 	private String ctnType;
 
+	/**
+	 * 单据类型(销售 采购 收货 发货)
+	 */
+	@ApiModelProperty(value = "单据类型(销售 采购 收货 发货)")
+	@TableField("Bill_type")
+	private String billType;
+
+	/**
+	 * 收款 还是 付款
+	 */
+	@ApiModelProperty(value = "收款 还是 付款")
+	@TableField("DC")
+	private String dc;
+
 }

+ 6 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Settlement.java

@@ -311,4 +311,10 @@ public class Settlement  implements Serializable {
 	@TableField(exist = false)
 	private String completionTimeEnd;
 
+	@ApiModelProperty(value = "应收金额合计")
+	private String receivableAmount;
+
+	@ApiModelProperty(value = "应付金额合计")
+	private String payAmount;
+
 }

+ 2 - 1
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransportServiceImpl.java

@@ -345,11 +345,11 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 			transportItem.setUpdateTime(new Date());
 			transportItem.setUpdateUser(AuthUtil.getUserId());
 			transportItem.setUpdateUserName(AuthUtil.getUserName());
-			transportItem.setStatus(type);
 
 			Archives archives = new Archives();
 
 			if ("2".equals(status) && "空箱入场".equals(type)) {
+				transportItem.setStatus("待使用");
 				archives.setStatus("待使用");
 				//判断空箱入场时间是否大于合同时间  true 计算超期金额  false 不计算
 				if (transport.getExpiryDate().compareTo(newDate) < 0) {
@@ -401,6 +401,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				}
 			} else {
 				archives.setStatus("使用");
+				transportItem.setStatus("使用");
 			}
 			transportItemMapper.updateById(transportItem);
 			//更新箱档案信息

+ 29 - 12
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -51,6 +51,7 @@ import org.springblade.finance.vojo.ExportAccOut;
 import org.springblade.purchase.sales.vo.SalesDetailsVo;
 import org.springblade.system.entity.Tenant;
 import org.springblade.system.feign.ITenantClient;
+import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
@@ -155,6 +156,7 @@ public class AccController extends BladeController {
 			.eq(acc.getCreateUser() != null, Acc::getCreateUser, acc.getCreateUser())
 			.eq(acc.getSrcParentId() != null, Acc::getSrcParentId, acc.getSrcParentId())
 			.eq(ObjectUtils.isNotNull(acc.getSrcSysno()), Acc::getSrcSysno, acc.getSrcSysno())
+			.eq(ObjectUtils.isNotNull(acc.getSrcRefno()), Acc::getSrcRefno, acc.getSrcRefno())
 			.eq(StringUtils.isNotBlank(acc.getDc()), Acc::getDc, acc.getDc())
 			.like(ObjectUtil.isNotEmpty(acc.getQuantity()), Acc::getQuantity, acc.getQuantity())
 			.like(ObjectUtil.isNotEmpty(acc.getSettlementAmount()), Acc::getSettlementAmount, acc.getSettlementAmount());
@@ -206,12 +208,21 @@ public class AccController extends BladeController {
 					acc_.setItemName("运费");
 				}
 			}
-			//录入人
-			acc_.setCreateUserName(iUserClient.userInfoById(acc_.getCreateUser()).getData().getRealName());
+			if (ObjectUtils.isNotNull(acc_.getCreateUser())) {
+				R<User> r = iUserClient.userInfoById(acc_.getCreateUser());
+				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+					//录入人
+					acc_.setCreateUserName(r.getData().getRealName());
+				}
+			}
+
 			if (!"064132".equals(AuthUtil.getTenantId())) {
-				//业务员
 				if (ObjectUtils.isNotNull(acc_.getShipName())) {
-					acc_.setShipName(iUserClient.userInfoById(Long.parseLong(acc_.getShipName())).getData().getRealName());
+					R<User> r = iUserClient.userInfoById(Long.parseLong(acc_.getShipName()));
+					if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+						//业务员
+						acc_.setShipName(r.getData().getRealName());
+					}
 				}
 			}
 			//费用名称
@@ -490,6 +501,8 @@ public class AccController extends BladeController {
 			.like(StringUtils.isNotBlank(acc.getBillType()), Acc::getBillType, acc.getBillType())
 			.like(StringUtils.isNotBlank(acc.getAccSysNo()), Acc::getAccSysNo, acc.getAccSysNo())
 			.like(StringUtils.isNotBlank(acc.getSrcBillNo()), Acc::getSrcBillNo, acc.getSrcBillNo())
+			.eq(ObjectUtils.isNotNull(acc.getSrcRefno()), Acc::getSrcRefno, acc.getSrcRefno())
+			.eq(ObjectUtils.isNotNull(acc.getSrcSysno()), Acc::getSrcSysno, acc.getSrcSysno())
 			.eq(acc.getCorpId() != null, Acc::getCorpId, acc.getCorpId())
 			.eq(StringUtils.isNotBlank(acc.getItemType()), Acc::getItemType, acc.getItemType())
 			.eq(StringUtils.isNotBlank(acc.getCostType()), Acc::getCostType, acc.getCostType())
@@ -626,10 +639,10 @@ public class AccController extends BladeController {
 	public void selBillBalanceExport(Acc acc, HttpServletResponse response) {
 		acc.setTenantId(AuthUtil.getTenantId());
 		List<Acc> list = accService.selBillBalanceExport(acc);
-		if ("收费".equals(acc.getBillType())){
+		if ("收费".equals(acc.getBillType())) {
 			List<ChargeExcel> chargeExcelList = BeanUtil.copy(list, ChargeExcel.class);
 			ExcelUtil.export(response, "应收账款余额", "应收账款余额", chargeExcelList, ChargeExcel.class);
-		}else if ("申请".equals(acc.getBillType())){
+		} else if ("申请".equals(acc.getBillType())) {
 			List<PayExcel> payExcelList = BeanUtil.copy(list, PayExcel.class);
 			ExcelUtil.export(response, "应付账款余额", "应付账款余额", payExcelList, PayExcel.class);
 		}
@@ -641,7 +654,7 @@ public class AccController extends BladeController {
 	 */
 	@GetMapping("/SelAccItem")
 	@ApiOperation(value = "应收付款明细", notes = "应收付款明细")
-	public R<IPage<Acc>> SelAccItem(Acc acc, Query query){
+	public R<IPage<Acc>> SelAccItem(Acc acc, Query query) {
 		acc.setTenantId(AuthUtil.getTenantId());
 		IPage<Acc> page = accService.SelAccItem(Condition.getPage(query), acc);
 		return R.data(page);
@@ -652,13 +665,13 @@ public class AccController extends BladeController {
 	 */
 	@GetMapping("/SelAccItemExport")
 	@ApiOperation(value = "应收付款明细导出", notes = "应收付款明细导出")
-	public void SelAccItemExport(Acc acc, HttpServletResponse response){
+	public void SelAccItemExport(Acc acc, HttpServletResponse response) {
 		acc.setTenantId(AuthUtil.getTenantId());
 		List<Acc> list = accService.SelAccItemExport(acc);
-		if ("收费".equals(acc.getBillType())){
+		if ("收费".equals(acc.getBillType())) {
 			List<ChargeItemExcel> chargeItemList = BeanUtil.copy(list, ChargeItemExcel.class);
 			ExcelUtil.export(response, "应收账款明细", "应收账款明细", chargeItemList, ChargeItemExcel.class);
-		}else if ("申请".equals(acc.getBillType())){
+		} else if ("申请".equals(acc.getBillType())) {
 			List<PayItemExcel> payItemList = BeanUtil.copy(list, PayItemExcel.class);
 			ExcelUtil.export(response, "应付账款明细", "应付账款明细", payItemList, PayItemExcel.class);
 		}
@@ -712,6 +725,7 @@ public class AccController extends BladeController {
 			.eq(StringUtils.isNotBlank(acc.getCostType()), Acc::getCostType, acc.getCostType())
 			.eq(acc.getCreateUser() != null, Acc::getCreateUser, acc.getCreateUser())
 			.eq(acc.getSrcParentId() != null, Acc::getSrcParentId, acc.getSrcParentId())
+			.eq(ObjectUtils.isNotNull(acc.getSrcRefno()), Acc::getSrcRefno, acc.getSrcRefno())
 			.eq(ObjectUtils.isNotNull(acc.getSrcSysno()), Acc::getSrcSysno, acc.getSrcSysno())
 			.eq(StringUtils.isNotBlank(acc.getDc()), Acc::getDc, acc.getDc());
 		accLambdaQueryWrapper.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getCheckAmount, 0)
@@ -824,16 +838,19 @@ public class AccController extends BladeController {
 			.like(StringUtils.isNotBlank(acc.getDepartureHarbor()), Acc::getDepartureHarbor, acc.getDepartureHarbor())
 			.like(StringUtils.isNotBlank(acc.getPlateNo()), Acc::getPlateNo, acc.getPlateNo())
 			.like(StringUtils.isNotBlank(acc.getObjectiveHarbor()), Acc::getObjectiveHarbor, acc.getObjectiveHarbor())
-			.eq(acc.getCorpId() != null, Acc::getCorpId, acc.getCorpId())
 			.eq(StringUtils.isNotBlank(acc.getItemType()), Acc::getItemType, acc.getItemType())
 			.eq(StringUtils.isNotBlank(acc.getCostType()), Acc::getCostType, acc.getCostType())
 			.eq(acc.getCreateUser() != null, Acc::getCreateUser, acc.getCreateUser())
 			.eq(acc.getSrcParentId() != null, Acc::getSrcParentId, acc.getSrcParentId())
 			.eq(ObjectUtils.isNotNull(acc.getSrcSysno()), Acc::getSrcSysno, acc.getSrcSysno())
-			.eq(ObjectUtils.isNotNull(acc.getFleetId()), Acc::getFleetId, acc.getFleetId())
 			.eq(StringUtils.isNotBlank(acc.getDc()), Acc::getDc, acc.getDc())
 			.like(ObjectUtil.isNotEmpty(acc.getQuantity()), Acc::getQuantity, acc.getQuantity())
 			.like(ObjectUtil.isNotEmpty(acc.getSettlementAmount()), Acc::getSettlementAmount, acc.getSettlementAmount());
+		if("申请".equals(acc.getBillType())){
+			accLambdaQueryWrapper.eq(ObjectUtils.isNotNull(acc.getCorpId()), Acc::getFleetId, acc.getCorpId());
+		}else{
+			accLambdaQueryWrapper.eq(acc.getCorpId() != null, Acc::getCorpId, acc.getCorpId());
+		}
 		accLambdaQueryWrapper.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getCheckAmount, 0)
 			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getCheckAmount, 0)
 			.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getSettlementAmount, 0)

+ 5 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -29,6 +29,7 @@ import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsBank;
 import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
@@ -144,7 +145,10 @@ public class SettlementController extends BladeController {
 				}
 				//费用名称
 				if (StringUtil.isNotBlank(e.getCostType())) {
-					e.setItemName(iFeesDescClient.detail(Long.valueOf(e.getCostType())).getData().getCname());
+					R<FeesDesc> r = iFeesDescClient.detail(Long.valueOf(e.getCostType()));
+					if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())){
+						e.setItemName(r.getData().getCname());
+					}
 				}
 			});
 		}

+ 17 - 2
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -29,6 +29,8 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import org.abego.treelayout.internal.util.java.util.ListUtil;
+import org.apache.commons.collections4.ListUtils;
 import org.springblade.box.tube.entity.DeclareCustomsFees;
 import org.springblade.box.tube.entity.RepairFees;
 import org.springblade.box.tube.entity.TradingBoxFees;
@@ -882,7 +884,12 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		} else if (type == 4) {
 			BigDecimal amount = BigDecimal.ZERO;
 			amount = acc.getAmount();
-			BigDecimal receivedAmount = items.getCurrentAmount();
+			BigDecimal receivedAmount = new BigDecimal("0.00");
+			if (ObjectUtils.isNotNull(items.getCurrentAmount())){
+				receivedAmount = items.getCurrentAmount();
+			}else{
+				receivedAmount = items.getThisAmount();
+			}
 			receivedAmount = receivedAmount.add(acc.getSettlementAmount());
 			amount = amount.subtract(receivedAmount);
 			Order order1 = new Order();
@@ -1304,12 +1311,20 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		BeanUtils.copyProperties(settlementDTO, model);
 		List<Files> filesList = settlementDTO.getFilesList();
 		List<Items> itemsList = settlementDTO.getItemsList();
+		Collections.sort(itemsList, new Comparator<Items>() {
+			@Override
+			public int compare(Items o1, Items o2) {
+				return o2.getDc().compareTo(o1.getDc());
+			}
+		});
 		BigDecimal total = itemsList.stream().filter(e -> e.getAmount() != null && "CNY".equals(e.getCurrency())).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		BigDecimal foreignTotal = itemsList.stream().filter(e -> e.getAmount() != null && !"CNY".equals(e.getCurrency())).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		model.setForeignAmount(foreignTotal);
 		// todo 暂定用租户判断 国内贸易 收费 人民币金额 可以手输
 		if (!"681169".equals(SecureUtil.getTenantId())) {
-			model.setAmount(total);
+			if (!"234557".equals(SecureUtil.getTenantId())) {
+				model.setAmount(total);
+			}
 		}
 		if ("673511".equals(SecureUtil.getTenantId()) && itemsList.size() > 0) {
 			model.setBillNo(itemsList.get(0).getBillNo());