ioioio 3 лет назад
Родитель
Сommit
62edfefe45

+ 5 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -694,4 +694,9 @@ public class Order implements Serializable {
 
 	private BigDecimal refundForeignSettlmentAmount;
 
+	@TableField(exist = false)
+	private String startTime;
+	@TableField(exist = false)
+	private String endTime;
+
 }

+ 4 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderStatisticAnalysisVO.java

@@ -38,6 +38,8 @@ public class OrderStatisticAnalysisVO
    private BigDecimal amount;
    //业务员id
    private Long createUser;
+
+   private String createUserName;
    //时间
    private Date createTime;
    //发票抬头
@@ -60,6 +62,8 @@ public class OrderStatisticAnalysisVO
 	private BigDecimal gstMoney;
 	//货款
 	private BigDecimal itemMoney;
+	//币别汇率
+	private BigDecimal exchangeRate;
 
 
 

+ 49 - 10
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -332,7 +332,7 @@ public class OrderController extends BladeController {
 	public R listOrderStatisticAnalysis(Order order, Query query)
 	{
 		Page<OrderStatisticAnalysisVO> iPage = new Page(query.getCurrent(),query.getSize());
-		IPage<OrderStatisticAnalysisVO> orderStatisticAnalysisVOIPage = orderService.listOrderStatisticAnalysis(iPage, AuthUtil.getTenantId(), order.getOrderNo());
+		IPage<OrderStatisticAnalysisVO> orderStatisticAnalysisVOIPage = orderService.listOrderStatisticAnalysis(iPage, AuthUtil.getTenantId(), order.getOrderNo(),order.getStartTime(),order.getEndTime());
 		List<OrderStatisticAnalysisVO> records = orderStatisticAnalysisVOIPage.getRecords();
 		if(CollectionUtils.isNotEmpty(records))
 		{
@@ -355,6 +355,15 @@ public class OrderController extends BladeController {
 						e.setSaleCorpName(corpsDescClientCorpMessage.getData().getCname());
 					}
 				}
+				//业务员名称
+				if(e.getCreateUser()!=null)
+				{
+					R<User> info = userClient.userInfoById(e.getCreateUser());
+					if(info.isSuccess())
+					{
+						e.setCreateUserName(info.getData().getRealName());
+					}
+				}
 				//采购主表id
 				Long orderId = e.getOrderId();
 				LambdaQueryWrapper<Order> orderLambdaQueryWrapper=new LambdaQueryWrapper<>();
@@ -369,37 +378,56 @@ public class OrderController extends BladeController {
 				//调用-费用微服务-获取费用设置详情
 				R<FeesDesc> customDuty = feesDescClient.getFeesByName("关税");
 				Long customDutyId=null;
-                if(customDuty.isSuccess())
+                if(customDuty.isSuccess()&&customDuty.getData()!=null)
                 {
 					customDutyId=customDuty.getData().getId();
 				}
+                else
+				{
+					throw new SecurityException("请检查是否配置关税费用项目");
+				}
 
 				Long quotaId=null;
 				R<FeesDesc> quota = feesDescClient.getFeesByName("配额");
-				if(quota.isSuccess())
+				if(quota.isSuccess()&&customDuty.getData()!=null)
 				{
 					quotaId=quota.getData().getId();
 				}
+				else
+				{
+					throw new SecurityException("请检查是否配置配额费用项目");
+				}
 
 				Long gstId=null;
 				R<FeesDesc> GST = feesDescClient.getFeesByName("增值税");
-				if(GST.isSuccess())
+				if(GST.isSuccess()&&GST.getData()!=null)
 				{
 					gstId=GST.getData().getId();
 				}
+				else
+				{
+					throw new SecurityException("请检查是否配置增值税费用项目");
+				}
 
-                Long deliverId=null;
+				Long deliverId=null;
 				R<FeesDesc> deliver = feesDescClient.getFeesByName("物流费");
-				if(deliver.isSuccess())
+				if(deliver.isSuccess()&&deliver.getData()!=null)
 				{
 					deliverId=deliver.getData().getId();
 				}
+				else
+				{
+					throw new SecurityException("请检查是否配置物流费用项目");
+				}
 
 				//获取关税账单明细
 				Acc customDutyAcc=new Acc();
 				customDutyAcc.setSrcType(2);
 				customDutyAcc.setSrcFeesId(customDutyId);
 				customDutyAcc.setSrcParentId(orderId);
+				//只有 itemType=采购 && billType=申请 才是付钱
+				customDutyAcc.setItemType("采购");
+				customDutyAcc.setBillType("申请");
 				R<List<Acc>> accListByCondition = iFinanceClient.getAccListByCondition(customDutyAcc);
 				//关税
 				BigDecimal customDutyMoney=BigDecimal.ZERO;
@@ -425,6 +453,9 @@ public class OrderController extends BladeController {
 				quotaAcc.setSrcType(2);
 				quotaAcc.setSrcFeesId(quotaId);
 				quotaAcc.setSrcParentId(orderId);
+				//只有 itemType=采购 && billType=申请 才是付钱
+				quotaAcc.setItemType("采购");
+				quotaAcc.setBillType("申请");
 				R<List<Acc>> accListByCondition2 = iFinanceClient.getAccListByCondition(quotaAcc);
 				//配额
 				BigDecimal quotaMoney=BigDecimal.ZERO;
@@ -448,6 +479,9 @@ public class OrderController extends BladeController {
 				gstAcc.setSrcType(2);
 				gstAcc.setSrcFeesId(gstId);
 				gstAcc.setSrcParentId(orderId);
+				//只有 itemType=采购 && billType=申请 才是付钱
+				gstAcc.setItemType("采购");
+				gstAcc.setBillType("申请");
 				R<List<Acc>> accListByCondition3 = iFinanceClient.getAccListByCondition(gstAcc);
 				//增值税
 				BigDecimal gstMoney=BigDecimal.ZERO;
@@ -472,6 +506,9 @@ public class OrderController extends BladeController {
 				itemAcc.setSrcType(1);
 				itemAcc.setSrcFeesId(null);
 				itemAcc.setSrcParentId(orderId);
+				//只有 itemType=采购 && billType=申请 才是付钱
+				itemAcc.setItemType("采购");
+				itemAcc.setBillType("申请");
 				R<List<Acc>> accListByCondition4 = iFinanceClient.getAccListByCondition(itemAcc);
 				//货款
 				BigDecimal itemMoney=BigDecimal.ZERO;
@@ -488,6 +525,7 @@ public class OrderController extends BladeController {
 						itemMoney=BigDecimal.ZERO;
 					}
 				}
+				itemMoney.setScale(2,BigDecimal.ROUND_HALF_UP);
 				e.setItemMoney(itemMoney);
 				//销售主表信息
 				LambdaQueryWrapper<Order> saleOrderWrapper=new LambdaQueryWrapper<>();
@@ -495,17 +533,18 @@ public class OrderController extends BladeController {
 				Order serviceOne = orderService.getOne(saleOrderWrapper);
 
 				//成本单价=(货款+关税+配额)/发票重量---精确小数点2位
-                BigDecimal unitPrice=((itemMoney.add(quotaMoney)).add(customDutyMoney)).divide(service.getInvoiceWeight(),2,BigDecimal.ROUND_DOWN);
+                BigDecimal unitPrice=((itemMoney.add(quotaMoney)).add(customDutyMoney)).divide(service.getInvoiceWeight(),2,BigDecimal.ROUND_HALF_UP);
                 e.setUnitPrice(unitPrice);
 				if(serviceOne.getExchangeRate()==null)
 				{
                    throw new SecurityException("销售订单:"+serviceOne.getOrderNo()+",汇率未填,无法完成统计");
 				}
 				//开票金额= 销售订单明细总价*销售订单主表的汇率
-				BigDecimal InvoiceAmount=e.getAmount().multiply(serviceOne.getExchangeRate());
+				BigDecimal InvoiceAmount=e.getAmount().multiply(serviceOne.getExchangeRate()).setScale(2,BigDecimal.ROUND_HALF_UP);
 				e.setInvoiceAmount(InvoiceAmount);
+				e.setExchangeRate(serviceOne.getExchangeRate());
 				//成本金额=提货数量*成本价格
-				BigDecimal costAmount=e.getSaleBillWeight().multiply(unitPrice);
+				BigDecimal costAmount=e.getSaleBillWeight().multiply(unitPrice).setScale(2,BigDecimal.ROUND_HALF_UP);
 				e.setCostAmount(costAmount);
 				//物流费用
 				Acc deliverAcc=new Acc();
@@ -531,7 +570,7 @@ public class OrderController extends BladeController {
 				}
 				e.setDeliverMoney(deliverMoney);
                 //利润=开票金额-成本金额-物流费用
-				BigDecimal profit=(InvoiceAmount.subtract(costAmount)).subtract(deliverMoney);
+				BigDecimal profit=(InvoiceAmount.subtract(costAmount)).subtract(deliverMoney).setScale(2,BigDecimal.ROUND_HALF_UP);
                 e.setProfit(profit);
 			});
 		}

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -46,6 +46,6 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	List<OrderItemBillNoVO> findContractNoByBillNo(@Param("billNo")String billNo, @Param("billType")String billType);
 
-	IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page, @Param("tenantId")String tenantId, @Param("orderNo")String orderNo);
+	IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page, @Param("tenantId")String tenantId, @Param("orderNo")String orderNo,@Param("startTime")String startTime,@Param("endTime")String endTime);
 
 }

+ 5 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -416,7 +416,7 @@
         b.create_user as createUser,
         b.create_time as createTime,
         b.org_order_no as orgOrderNo,
-        b.vbrk as vbrk
+        a.vbrk as vbrk
         FROM
         business_order a,
         business_order_items b
@@ -435,6 +435,10 @@
         order by  b.create_time desc
       )   b
       where a.order_no=b.orgOrderNo
+        <if test='startTime != null and endTime!= null'>
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
+
     </select>
 
 </mapper>

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -88,6 +88,6 @@ public interface IOrderService extends IService<Order> {
 
 	List<OrderItemBillNoVO> findContractNoByBillNo(@Param("billNo")String billNo, @Param("billType")String billType);
 
-	IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page, @Param("tenantId")String tenantId, @Param("orderNo")String orderNo);
+	IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page, @Param("tenantId")String tenantId, @Param("orderNo")String orderNo,@Param("startTime")String startTime,@Param("endTime")String endTime);
 
 }

+ 2 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -540,9 +540,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
-	public IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page,String tenantId, String orderNo)
+	public IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page,String tenantId, String orderNo,String startTime,String endTime )
 	{
-		return orderMapper.listOrderStatisticAnalysis(page,tenantId,orderNo);
+		return orderMapper.listOrderStatisticAnalysis(page,tenantId,orderNo,startTime,endTime);
 	}
 
 }

+ 2 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -184,6 +184,8 @@ public class AccController extends BladeController {
 		accLambdaQueryWrapper
 			.eq(Acc::getTenantId, AuthUtil.getTenantId())
 			.eq(Acc::getSrcType,acc.getSrcType())
+			.eq(StringUtils.isNotBlank(acc.getBillType()),Acc::getBillType,acc.getBillType())
+			.eq(StringUtils.isNotBlank(acc.getItemType()),Acc::getItemType,acc.getItemType())
 			.eq(acc.getSrcParentId()!=null,Acc::getSrcParentId,acc.getSrcParentId())
 			.eq(acc.getSrcFeesId()!=null,Acc::getSrcFeesId,acc.getSrcFeesId());
 		List<Acc> list = accService.list(accLambdaQueryWrapper);

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

@@ -630,7 +630,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 			  AuditProecessDTO auditProecessDTO=new AuditProecessDTO();
 			  //追加跳转路由url
-			  auditProecessDTO.setUrl(selectOne.getUrl());
+			  auditProecessDTO.setUrl(settlement.getUrl());
 			  //增加审批类型
 			  auditProecessDTO.setProcessType("付费审批");
 			  auditProecessDTO.setPathsLevelsList(auditPathsLevels);