Browse Source

财务专员查看自己的流水
查看部门流水
下载部门流水

limin 7 years ago
parent
commit
c6cd158a76

+ 4 - 0
src/main/java/com/goafanti/common/dao/TOrderBillNewMapper.java

@@ -102,4 +102,8 @@ public interface TOrderBillNewMapper {
     TOrderBillNew getOneRefundFlow(String BillNo);
     
     List<TOrderBillNew> getOneOrderAllRefundFlow(String oid);
+    
+    List<TOrderBillNew> getDeptBySome(TOrderBillNew ob);
+    
+    List<TOrderBillNew> getBillData(TOrderBillNew ob);
 }

+ 126 - 0
src/main/java/com/goafanti/common/mapper/TOrderBillNewMapper.xml

@@ -474,4 +474,130 @@
   	left join admin a on b.payee_id = a.id
   	where b.delete_sign = 0 and order_no = #{_parameter,jdbcType=VARCHAR}
   </select>
+  <!-- 查看自己创建的流水数据 -->
+  <select id="myBillList" parameterType="Map" resultType="com.goafanti.common.model.TOrderBillNew">
+  select 
+  	b.bill_no as billNo, b.order_no as orderNo, b.transaction_amount as transactionAmount,
+  	b.payer_id as payerId, b.payee_id as payeeId, u.nickname as payerName, a.name as payeeName, 
+  	b.transaction_subject as transactionSubject, b.transaction_channel as transactionChannel, 
+  	b.financial_pay_time as financialPayTimes,b.financial_pay_no as financialPayNo,
+  	b.creater, ad.name as createrName, o.salesman_id as saleId, oa.name as saleName
+  	from t_order_bill_new b
+  	left join `user` u on b.payer_id = u.id
+  	left join admin a on b.payee_id = a.id
+  	left join admin ad on b.creater = ad.id
+  	left join t_order_new o on o.order_no = b.order_no
+  	left join admin oa on oa.id = o.salesman_id
+  	where delete_sign = 0 
+  	<if test='b.create != null and b.create != ""'>
+  	and creater = #{creater,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.payerName != null and b.payerName != ""'>
+  	<bind name="nn" value="'%' + b.payerName + '%'"/>
+  	and u.nickname like #{nn,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.payeeName != null and b.payeeName != ""'>
+  	<bind name="n" value="'%' + b.payeeName + '%'"/>
+  	and a.name like #{n,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.departmentId != null and b.departmentId != "" '>
+  	and oa.department_id = #{b.departmentId,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.startTime != null and b.startTime != "" and b.endTime != null and b.endTime != ""'>
+  	<bind name="a" value="b.startTime + ' 00:00:00'"/>
+  	<bind name="e" value="b.endTime + ' 23:59:59'"/>
+  	and b.create_time between #{a,jdbcType=VARCHAR} and #{e,jdbcType=VARCHAR}
+  	</if>
+  	order by b.create_time desc
+  	<if test="page_sql!=null">
+			${page_sql}
+	</if>
+  </select>
+  <select id="myBillCount" parameterType="Map" resultType="java.lang.Integer">
+  select count(*)
+  	from t_order_bill_new b
+  	left join `user` u on b.payer_id = u.id
+  	left join admin a on b.payee_id = a.id
+  	left join t_order_new o on o.order_no = b.order_no
+  	left join admin oa on oa.id = o.salesman_id
+  	where delete_sign = 0 
+  	<if test='b.create != null and b.create != ""'>
+  	and creater = #{creater,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.payerName != null and b.payerName != ""'>
+  	<bind name="nn" value="'%' + b.payerName + '%'"/>
+  	and u.nickname like #{nn,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.payeeName != null and b.payeeName != ""'>
+  	<bind name="n" value="'%' + b.payeeName + '%'"/>
+  	and a.name like #{n,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.departmentId != null and b.departmentId != "" '>
+  	and oa.department_id = #{b.departmentId,jdbcType=VARCHAR}
+  	</if>
+  	<if test='b.startTime != null and b.startTime != "" and b.endTime != null and b.endTime != ""'>
+  	<bind name="a" value="b.startTime + ' 00:00:00'"/>
+  	<bind name="e" value="b.endTime + ' 23:59:59'"/>
+  	and b.create_time between #{a,jdbcType=VARCHAR} and #{e,jdbcType=VARCHAR}
+  	</if>
+  </select>
+  <!-- 带条件的流水部门 -->
+  <select id="getDeptBySome" parameterType="com.goafanti.common.model.TOrderBillNew" resultType="com.goafanti.common.model.TOrderBillNew">
+  	select distinct
+	  	d.id as departmentId, d.name as departmentName
+	  	from t_order_bill_new b
+	  	left join `user` u on b.payer_id = u.id
+	  	left join admin a on b.payee_id = a.id
+	  	left join t_order_new o on o.order_no = b.order_no
+	  	left join admin oa on oa.id = o.salesman_id 
+	  	left join department d on oa.department_id = d.id
+	  	where 
+	  	b.delete_sign = 0 
+	  	<if test='payerName != null and payerName != ""'>
+	  	<bind name="nn" value="'%' + payerName + '%'"/>
+	  	and u.nickname like #{nn,jdbcType=VARCHAR}
+	  	</if>
+	  	<if test='payeeName != null and payeeName != ""'>
+	  	<bind name="n" value="'%' + payeeName + '%'"/>
+	  	and a.name like #{n,jdbcType=VARCHAR}
+	  	</if>
+	  	<if test='startTime != null and startTime != "" and endTime != null and endTime != ""'>
+	  	<bind name="a" value="startTime + ' 00:00:00'"/>
+	  	<bind name="e" value="endTime + ' 23:59:59'"/>
+	  	and b.create_time between #{a,jdbcType=VARCHAR} and #{e,jdbcType=VARCHAR}
+	  	</if>
+  </select>
+  <!-- 获得流水记录 -->
+  <select id="getBillData" parameterType="com.goafanti.common.model.TOrderBillNew" resultType="com.goafanti.common.model.TOrderBillNew">
+  select 
+  	b.bill_no as billNo, b.order_no as orderNo, b.transaction_amount as transactionAmount,
+  	u.nickname as payerName, a.name as payeeName, 
+  	b.transaction_subject as transactionSubject, b.transaction_channel as transactionChannel, 
+  	b.financial_pay_time as financialPayTimes,b.financial_pay_no as financialPayNo,
+  	b.creater, ad.name as createrName, oa.name as saleName, b.create_time as createTime
+  	from t_order_bill_new b
+  	left join `user` u on b.payer_id = u.id
+  	left join admin a on b.payee_id = a.id
+  	left join admin ad on b.creater = ad.id
+  	left join t_order_new o on o.order_no = b.order_no
+  	left join admin oa on oa.id = o.salesman_id
+  	where b.delete_sign = 0 
+  	<if test='payerName != null and payerName != ""'>
+  	<bind name="nn" value="'%' + payerName + '%'"/>
+  	and u.nickname like #{nn,jdbcType=VARCHAR}
+  	</if>
+  	<if test='payeeName != null and payeeName != ""'>
+  	<bind name="n" value="'%' + payeeName + '%'"/>
+  	and a.name like #{n,jdbcType=VARCHAR}
+  	</if>
+  	<if test='departmentId != null and departmentId != "" '>
+  	and oa.department_id = #{departmentId,jdbcType=VARCHAR}
+  	</if>
+  	<if test='startTime != null and startTime != "" and endTime != null and endTime != ""'>
+  	<bind name="a" value="startTime + ' 00:00:00'"/>
+  	<bind name="e" value="endTime + ' 23:59:59'"/>
+  	and b.create_time between #{a,jdbcType=VARCHAR} and #{e,jdbcType=VARCHAR}
+  	</if>
+  	order by b.order_no, b.creater , b.financial_pay_time
+ </select>
 </mapper>

+ 5 - 5
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -821,7 +821,7 @@
   	<if test='o.startTime != null and o.startTime != "" and o.endTime != null and o.endTime != ""'>
   	<bind name="a" value="o.startTime + ' 00:00:00'"/>
   	<bind name="b" value="o.endTime + ' 23:59:59'"/>
-  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{a,jdbcType=VARCHAR}
+  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}
   	</if>
   	<if test="ob == 1">
   	order by o.sign_time
@@ -855,7 +855,7 @@
   	<if test='o.startTime != null and o.startTime != "" and o.endTime != null and o.endTime != ""'>
   	<bind name="a" value="o.startTime + ' 00:00:00'"/>
   	<bind name="b" value="o.endTime + ' 23:59:59'"/>
-  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{a,jdbcType=VARCHAR}
+  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}
   	</if>
   </select>
   <!-- 查看某订单状态是否符合要求 -->
@@ -953,12 +953,12 @@
 	  	<if test='o.startTime != null and o.startTime != "" and o.endTime != null and o.endTime != ""'>
 	  	<bind name="a" value="o.startTime + ' 00:00:00'"/>
 	  	<bind name="b" value="o.endTime + ' 23:59:59'"/>
-	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{a,jdbcType=VARCHAR}
+	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}
 	  	</if>
+	  	order by o.liquidation_status, o.sign_time
 	  	<if test="page_sql != null">
 			${page_sql}
 		</if>
-	  	order by o.liquidation_status, o.sign_time
   </select>
   <select id="financeCount" parameterType="Map" resultType="java.lang.Integer">
   select count(*)
@@ -981,7 +981,7 @@
 	  	<if test='o.startTime != null and o.startTime != "" and o.endTime != null and o.endTime != ""'>
 	  	<bind name="a" value="o.startTime + ' 00:00:00'"/>
 	  	<bind name="b" value="o.endTime + ' 23:59:59'"/>
-	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{a,jdbcType=VARCHAR}
+	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}
 	  	</if>
   </select>
   <!-- 通过订单编号获得订单的负责人(营销员) -->

+ 2 - 2
src/main/java/com/goafanti/common/mapper/TOrderRefundMapper.xml

@@ -476,7 +476,7 @@
   	<if test='r.startTime != null and r.startTime != "" and r.endTime != null and r.endTime != ""'>
 	  	<bind name="a" value="r.startTime + ' 00:00:00'"/>
 	  	<bind name="b" value="r.endTime + ' 23:59:59'"/>
-	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{a,jdbcType=VARCHAR}
+	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}
 	</if>
 	order by r.refundStatus
   	<if test="page_sql!=null">
@@ -509,7 +509,7 @@
   	<if test='r.startTime != null and r.startTime != "" and r.endTime != null and r.endTime != ""'>
 	  	<bind name="a" value="r.startTime + ' 00:00:00'"/>
 	  	<bind name="b" value="r.endTime + ' 23:59:59'"/>
-	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{a,jdbcType=VARCHAR}
+	  	and o.sign_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}
 	</if>
   </select>
   <!-- 修改退款数据 -->

+ 63 - 0
src/main/java/com/goafanti/common/model/TOrderBillNew.java

@@ -142,6 +142,13 @@ public class TOrderBillNew {
     private String financialPayTimes;
     private String payerName;
     private String payeeName;
+    private String createrName;
+    private String startTime;
+    private String endTime;
+    private String departmentId;
+    private String saleId;
+    private String saleName;
+    private String departmentName;
     
     
     /**
@@ -527,4 +534,60 @@ public class TOrderBillNew {
 	public void setPayeeName(String payeeName) {
 		this.payeeName = payeeName;
 	}
+
+	public String getCreaterName() {
+		return createrName;
+	}
+
+	public void setCreaterName(String createrName) {
+		this.createrName = createrName;
+	}
+
+	public String getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}
+
+	public String getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+
+	public String getDepartmentId() {
+		return departmentId;
+	}
+
+	public void setDepartmentId(String departmentId) {
+		this.departmentId = departmentId;
+	}
+
+	public String getSaleId() {
+		return saleId;
+	}
+
+	public void setSaleId(String saleId) {
+		this.saleId = saleId;
+	}
+
+	public String getSaleName() {
+		return saleName;
+	}
+
+	public void setSaleName(String saleName) {
+		this.saleName = saleName;
+	}
+
+	public String getDepartmentName() {
+		return departmentName;
+	}
+
+	public void setDepartmentName(String departmentName) {
+		this.departmentName = departmentName;
+	}
 }

+ 79 - 4
src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java

@@ -1,6 +1,11 @@
 package com.goafanti.order.controller;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -11,17 +16,23 @@ import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderBack;
 import com.goafanti.common.model.TOrderBillNew;
 import com.goafanti.common.model.TOrderRefund;
+import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.OrderListBo;
 import com.goafanti.order.bo.OrderRefundBo;
 import com.goafanti.order.service.FundManageOrderService;
+import com.goafanti.order.service.OrderBillService;
+import com.goafanti.order.service.OrderRefundService;
 
 @RestController
 @RequestMapping(value = "/api/admin/financial")
 public class FundManagerOrderApiController extends CertifyApiController {
 	@Resource
 	private FundManageOrderService fundManageOrderServiceImpl;
-	
+	@Resource
+	private OrderBillService orderBillServiceImpl;
+	@Resource
+	private OrderRefundService orderRefundServiceImpl;
 	
 	/**
 	 * 财务管理员查看所有待分配的订单
@@ -45,9 +56,9 @@ public class FundManagerOrderApiController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value="/distributionFinance", method = RequestMethod.POST)
-	public Result distributionFinance(String orderid, String financeId, Integer approval){
+	public Result distributionFinance(String orderNo, String financeId, Integer approval){
 		Result res = new Result();
-		Integer r = fundManageOrderServiceImpl.distributionFinance(orderid, financeId, approval);
+		Integer r = fundManageOrderServiceImpl.distributionFinance(orderNo, financeId, approval);
 		if(r == -1){
 			res.getError().add(buildError("", "未通过特批不能分配"));
 			return res;
@@ -110,6 +121,14 @@ public class FundManagerOrderApiController extends CertifyApiController {
 			res.getError().add(buildError("", "备注长度不能大于255"));
 			return res;
 		}
+		//流水时间处理
+		try {
+			billNew.setFinancialPayTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(billNew.getFinancialPayTimes()));
+		} catch (ParseException e) {
+			e.printStackTrace();
+			res.getError().add(buildError("", "财务流水时间有误!"));
+			return res;
+		}
 		Integer i = fundManageOrderServiceImpl.addReceiptsFlow(billNew);
 		if(i>0){
 			res.setData("新增收款记录成功!");
@@ -130,7 +149,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 	public Result getRefundList(OrderRefundBo refund, Integer pageNo, Integer pageSize){
 		Result res = new Result();
 		refund.setAccept(TokenManager.getAdminId());
-		res.setData(fundManageOrderServiceImpl.getRefundList(refund, pageNo, pageSize));
+		res.setData(orderRefundServiceImpl.getRefundList(refund, pageNo, pageSize));
 		return res;
 	}
 	
@@ -167,6 +186,13 @@ public class FundManagerOrderApiController extends CertifyApiController {
 			res.getError().add(buildError("", "备注长度不能大于255"));
 			return res;
 		}
+		try {
+			orderRefund.setFinancialPayTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderRefund.getFinancialPayTimes()));
+		} catch (ParseException e) {
+			e.printStackTrace();
+			res.getError().add(buildError("", "财务流水时间有误!"));
+			return res;
+		}
 		int r = fundManageOrderServiceImpl.addRefundFlow(orderRefund);
 		if(r>0){
 			res.setData("退款记录新增成功!");
@@ -200,5 +226,54 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		return res;
 	}
 	
+	/**
+	 * 财务专员查看自己的流水
+	 * @param billNew
+	 * @param pageNo
+	 * @param pageSize
+	 * @return
+	 */
+	@RequestMapping(value="/myBillList", method = RequestMethod.GET)
+	public Result myBillList(TOrderBillNew billNew, Integer pageNo, Integer pageSize){
+		Result res = new Result();
+		billNew.setCreater(TokenManager.getAdminId());
+		res.setData(orderBillServiceImpl.myBillList(billNew, pageNo, pageSize));
+		return res;
+	}
+
+	/**
+	 * 查看部门的流水
+	 * @param billNew
+	 * @param pageNo
+	 * @param pageSize
+	 * @return
+	 */
+	@RequestMapping(value="/deptBillList", method = RequestMethod.GET)
+	public Result deptBillList(TOrderBillNew billNew, Integer pageNo, Integer pageSize){
+		Result res = new Result();
+		res.setData(orderBillServiceImpl.myBillList(billNew, pageNo, pageSize));
+		return res;
+	}
+	
+	/**
+	 * 下载部门流水数据
+	 * @param billNew
+	 * @param response
+	 * @return
+	 */
+	 @RequestMapping(value="/exportBillData", method = RequestMethod.GET)
+	 public Result exportBillData(TOrderBillNew billNew,HttpServletResponse response){
+		 Result res = new Result();
+		 String path = orderBillServiceImpl.exportBillData(billNew);
+		 if("null".equals(path)){
+			 res.getError().add(buildError("", "没有流水记录!"));
+			 return res;
+		 }
+		 String fileName = "部门流水" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
+		 ExportExcelUtil.download(path,response,fileName);
+		 res.setData(path);
+		 return res;
+	 }
+	 
 	
 }

+ 1 - 9
src/main/java/com/goafanti/order/service/FundManageOrderService.java

@@ -7,7 +7,6 @@ import com.goafanti.common.model.TOrderBillNew;
 import com.goafanti.common.model.TOrderRefund;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.order.bo.OrderListBo;
-import com.goafanti.order.bo.OrderRefundBo;
 
 public interface FundManageOrderService {
 	
@@ -50,14 +49,6 @@ public interface FundManageOrderService {
 	 */
 	Integer addReceiptsFlow(TOrderBillNew billNew);
 	
-	/**
-	 * 财务专员查看自己要处理的退单数据
-	 * @param refund
-	 * @param pageNo
-	 * @param pageSize
-	 * @return
-	 */
-	Pagination<OrderRefundBo> getRefundList(OrderRefundBo refund, Integer pageNo, Integer pageSize);
 	
 	/**
 	 * 财务专员审核退单数据
@@ -85,4 +76,5 @@ public interface FundManageOrderService {
 	 * @return
 	 */
 	List<TOrderBillNew> selectOneOrderAllRefundFlow(String orderNo);
+	
 }

+ 3 - 16
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -22,7 +22,6 @@ import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.OrderListBo;
-import com.goafanti.order.bo.OrderRefundBo;
 import com.goafanti.order.service.FundManageOrderService;
 
 @Service
@@ -55,13 +54,11 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Override
 	public Integer distributionFinance(String orderNo, String financeId, Integer approval) {
 		// 先判断订单id和财务专员是否存在或者能够使用
-		TOrderNew onew = new TOrderNew();
 		//判断是不是特批的数据
-		if(approval == 0){
-			onew.setLiquidationStatus(1);//看有没有付钱
-		}else if(approval != 2){//特批未通过
+		if(approval != 2){//特批未通过
 			return -1;
 		}
+		TOrderNew onew = new TOrderNew();
 		onew.setOrderNo(orderNo);
 		onew.setDeleteSign(0);//正常
 		onew.setProcessStatus(2);//已派财务管理员
@@ -148,6 +145,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		//否则新增流水信息
 		billNew.setBillNo(idGenerator.generateId().toString());
 		billNew.setCreater(TokenManager.getAdminId());
+		billNew.setCreater("1");
 		int result = billNewMapper.insertSelective(billNew);
 		
 		//修改订单结算金额和结算状态
@@ -166,16 +164,6 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		return result;
 	}
 
-	@SuppressWarnings("unchecked")
-	@Override
-	public Pagination<OrderRefundBo> getRefundList(OrderRefundBo refund,
-			Integer pageNo, Integer pageSize) {
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("r", refund);
-		Pagination<OrderRefundBo> data = (Pagination<OrderRefundBo>)findPage("getRefundList", "getRefundCount", params, pageNo, pageSize);
-		return data;
-	}
-
 	@Override
 	public Integer changeRefund(TOrderRefund refund) {
 		//查看当前退单状态
@@ -235,7 +223,6 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	public List<TOrderBillNew> selectOneOrderAllRefundFlow(String orderNo) {
 		return billNewMapper.getOneOrderAllRefundFlow(orderNo);
 	}
-	
 
 	
 }