Browse Source

修改审批 财务 统计分析

ioioio 4 years ago
parent
commit
e33d07eb6b

+ 5 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IFeesDescClient.java

@@ -23,6 +23,8 @@ public interface IFeesDescClient {
 
 	String FEESDE_SCMESSAGE = API_PREFIX + "/feesDescMessage";
 
+	String GET_FEES_BY_NAME = API_PREFIX + "/getFeesByName";
+
 	/**
 	 * 获取费用详情
 	 * @param id
@@ -39,4 +41,7 @@ public interface IFeesDescClient {
 	@GetMapping(FEESDE_BASIC)
 	R<List<FeesDescVO>> selectGoodsBasic();
 
+	@GetMapping(GET_FEES_BY_NAME)
+	R<FeesDesc> getFeesByName(@RequestParam("cname") String cName);
+
 }

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

@@ -0,0 +1,44 @@
+package org.springblade.purchase.sales.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class OrderStatisticAnalysisVO
+{
+   //采购表id
+   private Long orderId;
+   //销售主表id
+   private Long orderSaleId;
+   //供应商id
+   private Long corpId;
+   //供应商名称
+   private String corpName;
+   //合同号
+   private String orderNo;
+   //合同数量(码单重量)
+   private BigDecimal billWeight;
+   //合同数量(发票重量)
+   private BigDecimal invoiceWeight;
+   //客户id
+   private Long saleCorpId;
+   //客户名称
+   private String saleCorpName;
+   //品名
+   private String priceCategoryNames;
+   //提单号
+   private String billNo;
+   //单价
+   private BigDecimal price;
+   //提货数量
+   private BigDecimal saleBillWeight;
+   //总价
+   private BigDecimal amount;
+   //业务员id
+   private Long createUser;
+   //时间
+   private Date createTime;
+
+}

+ 25 - 1
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -42,6 +42,7 @@ import org.springblade.finance.entity.Settlement;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
+import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -73,6 +74,8 @@ public class AuditProecessController extends BladeController {
 
 	private final IFinanceClient financeClient;
 
+	private final IUserClient userClient;
+
 	/**
 	 * 分页 审批流记录
 	 */
@@ -166,7 +169,28 @@ public class AuditProecessController extends BladeController {
 			.eq(AuditProecess::getSrcBillId,id)
 		.eq(AuditProecess::getIsDelete,0)
 		.eq(AuditProecess::getTenantId,AuthUtil.getTenantId());
-		return R.data(auditProecessService.list(auditProecessLambdaQueryWrapper));
+		List<AuditProecess> list = auditProecessService.list(auditProecessLambdaQueryWrapper);
+		if(CollectionUtils.isNotEmpty(list))
+		{
+			list.forEach(e->{
+
+				try
+				{
+					R<User> userR  = userClient.userInfoById(Long.valueOf(e.getAuditUserId()));
+					if(userR.isSuccess())
+					{
+						e.setAuditName(userR.getData().getRealName());
+					}
+				}
+				catch (Exception exception)
+				{
+					throw new SecurityException("审批人名称查询错误:"+exception.getMessage());
+				}
+
+
+			});
+		}
+		return R.data(list);
 
 	}
 

+ 3 - 0
blade-service/blade-check/src/main/java/org/springblade/check/entity/AuditProecess.java

@@ -145,4 +145,7 @@ public class AuditProecess implements Serializable {
 
 	    private int batchNo;
 
+	    @TableField(exist = false)
+	    private String auditName;
+
 }

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/fees/feign/FeesDescClient.java

@@ -1,5 +1,6 @@
 package org.springblade.client.fees.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.FeesDesc;
@@ -7,6 +8,7 @@ import org.springblade.client.fees.assemble.mapstruct.FeesDescMapstructMapper;
 import org.springblade.client.fees.service.IFeesDescService;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.client.vo.FeesDescVO;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -51,4 +53,12 @@ public class FeesDescClient implements IFeesDescClient {
 //		return R.data(feesDescList.stream().map(feesDescMapstructMapper::toVo).collect(Collectors.toList()));
 		return null;
 	}
+
+	@Override
+	@GetMapping(GET_FEES_BY_NAME)
+	public R<FeesDesc> getFeesByName(String cName)
+	{
+
+		return R.data(feesDescService.getOne(new LambdaQueryWrapper<FeesDesc>().eq(FeesDesc::getCname,cName).eq(FeesDesc::getTenantId, AuthUtil.getTenantId())));
+	}
 }

+ 48 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -19,6 +19,7 @@ package org.springblade.purchase.sales.controller;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.protobuf.ServiceException;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
@@ -32,12 +33,15 @@ import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
+import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -312,4 +316,48 @@ public class OrderController extends BladeController {
 		order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
 		return R.data(orderService.createMarket(order));
 	}
+
+	/**
+	 * 统计分析
+	 * */
+	@GetMapping("/listOrderStatisticAnalysis")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "统计分析")
+	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());
+		List<OrderStatisticAnalysisVO> records = orderStatisticAnalysisVOIPage.getRecords();
+		if(CollectionUtils.isNotEmpty(records))
+		{
+			records.forEach(e->{
+				//供应商名称
+				if(e.getCorpId()!=null)
+				{
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
+					if(corpMessage.isSuccess())
+					{
+						e.setCorpName(corpMessage.getData().getCname());
+					}
+				}
+				//客户名称
+				if(e.getSaleCorpId()!=null)
+				{
+					R<CorpsDesc> corpsDescClientCorpMessage = corpsDescClient.getCorpMessage(e.getSaleCorpId());
+					if(corpsDescClientCorpMessage.isSuccess())
+					{
+						e.setSaleCorpName(corpsDescClientCorpMessage.getData().getCname());
+					}
+				}
+
+				Long orderId = e.getOrderId();
+
+
+
+			});
+		}
+		orderStatisticAnalysisVOIPage.setRecords(records);
+		return R.data(orderStatisticAnalysisVOIPage);
+	}
+
 }

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

@@ -16,10 +16,12 @@
  */
 package org.springblade.purchase.sales.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.trade.purchase.order.vo.OrderDTO;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
+import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
 import org.springblade.purchase.sales.vo.OrderVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -44,4 +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);
+
 }

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

@@ -392,4 +392,45 @@
 
     </select>
 
+    <select id="listOrderStatisticAnalysis" resultType="org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO">
+        select
+        a.id as orderId,
+        a.corp_id as corpId,
+        a.order_no as orderNo,
+        a.bill_weight as billWeight,
+        a.invoice_weight as invoiceWeight,
+        b.*
+        from business_order a ,
+        (
+        SELECT
+        a.id as orderSaleId,
+        a.corp_id as saleCorpId,
+        b.price_category_names as priceCategoryNames,
+        b.bill_no as billNo,
+        b.price as price,
+        b.bill_weight as saleBillWeight,
+        b.amount as amount,
+        b.create_user as createUser,
+        b.create_time as createTime,
+        b.org_order_no as orgOrderNo
+        FROM
+        business_order a,
+        business_order_items b
+        where
+        a.id=b.pid
+        and a.trade_type='JK'
+        and a.bill_type='XS'
+        and a.tenant_id=#{tenantId}
+        and b.org_order_no in
+        (
+           select distinct t.order_no from business_order t where t.tenant_id=#{tenantId} and t.trade_type='JK' and t.bill_type='CG' and t.is_deleted=0
+        <if test='orderNo != null and orderNo!= ""'>
+           and t.order_no=#{orderNo}
+        </if>
+        )
+        order by  b.create_time desc
+      )   b
+      where a.order_no=b.orgOrderNo
+    </select>
+
 </mapper>

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

@@ -16,11 +16,13 @@
  */
 package org.springblade.purchase.sales.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.trade.purchase.order.vo.OrderDTO;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
+import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
 import org.springblade.purchase.sales.vo.OrderVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -86,4 +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);
+
 }

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

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.protobuf.ServiceException;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.vo.OrderDTO;
@@ -39,6 +40,7 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.*;
 import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
+import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
 import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.purchase.sales.mapper.OrderMapper;
 import org.springblade.purchase.sales.service.IOrderService;
@@ -533,4 +535,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return orderMapper.findContractNoByBillNo(billNo,billType);
 	}
 
+	@Override
+	public IPage<OrderStatisticAnalysisVO> listOrderStatisticAnalysis(Page<OrderStatisticAnalysisVO> page,String tenantId, String orderNo)
+	{
+		return orderMapper.listOrderStatisticAnalysis(page,tenantId,orderNo);
+	}
+
 }