shenhao il y a 4 ans
Parent
commit
b5c8131825

+ 2 - 1
src/main/java/com/ssj/api/controller/ApiWxController.java

@@ -3,6 +3,7 @@ package com.ssj.api.controller;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -117,7 +118,7 @@ public class ApiWxController extends BaseController {
                         tokenManager.setString(key, "1");
                         try {
                             Merchant merchant = merchantService.getById(libOrderDetails.getUserId());
-                            double unitPrice = libOrderDetails.getPrice().divide(new BigDecimal(libOrderDetails.getNumber())).divide(new BigDecimal(libOrderDetails.getType())).doubleValue();
+                            double unitPrice = libOrderDetails.getPrice().multiply(new BigDecimal("0.4")).divide(new BigDecimal(libOrderDetails.getNumber())).setScale(2,RoundingMode.HALF_UP).doubleValue();
                             if (merchant.getPosType() == 2) {
                                 merchantMealService.saveMerchantMeal(merchant.getId(), 5, libOrderDetails.getType(), libOrderDetails.getNumber(), 0, unitPrice, libOrderDetails.getPrice().doubleValue(), libOrderDetails.getStartActiveTime(), libOrderDetails.getActiveTime());
                             } else { //3

+ 1 - 1
src/main/java/com/ssj/dao/sys/fx/dao/impl/FxQueryDaoImpl.java

@@ -818,7 +818,7 @@ public class FxQueryDaoImpl implements FxQueryDao {
         selSql.append(" SELECT t.*,m.unit_name,o.unit_price from fx_merchant_meal t    ");
         selSql.append(" LEFT JOIN fx_merchant_meal_order o on t.order_id=o.id ");
         selSql.append(" LEFT JOIN fx_merchant m ON t.merchant_id=m.id  ");
-        selSql.append(" where t.status=1 and t.type>1 ");
+        selSql.append(" where t.status=1 and t.type>1 and m.type=5 ");
         if(!"".equals(params.get("type"))){
             selSql.append(" and t.type=? ");
             queryParams.add(params.get("type"));

+ 1 - 1
src/main/java/com/ssj/service/weixin/order/service/impl/OrderServiceImpl.java

@@ -452,7 +452,7 @@ public class OrderServiceImpl extends BaseServiceImpl<Order, String> implements
 		libOrderDetails.setStartActiveTime(startActiveTime);
 
 		LibSalesPrice libSalesPrice=libSalesPriceService.getById(libOrderDetails.getSalesPriceId());
-		libOrderDetails.setPrice(libSalesPrice.getPrice().multiply(new BigDecimal(libService)).multiply(new BigDecimal(buyMonth)));
+		libOrderDetails.setPrice(libSalesPrice.getPrice().multiply(new BigDecimal(libService)).multiply(new BigDecimal(buyMonth)).setScale(0,BigDecimal.ROUND_HALF_UP));
 
 
 		logger.info("私塾家-商户小塾学伴续费:"+libOrderDetails.getPrice());

+ 6 - 6
src/main/java/com/ssj/sys/controller/FxController.java

@@ -4994,13 +4994,13 @@ public class FxController  extends BaseController {
         List<Map<String, Object>> mapList=page.getContent();
         for (Map<String, Object> map : mapList) {
         	if(Integer.parseInt(map.get("cap_type").toString())==1) {
-        		map.put("pr_1",new BigDecimal(new BigDecimal(map.get("price").toString()).doubleValue()/(Integer.parseInt(map.get("buy_month").toString())+Integer.parseInt(map.get("give_month").toString()))/Integer.parseInt(map.get("lib_service").toString())).setScale(2, RoundingMode.UP).doubleValue());
+        		map.put("pr_1",new BigDecimal(map.get("price").toString()).divide(new BigDecimal(map.get("buy_month").toString()).add(new BigDecimal(map.get("give_month").toString())),RoundingMode.HALF_UP).divide(new BigDecimal(map.get("lib_service").toString()),RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP).doubleValue());
         		map.put("pr_2",map.get("price"));
         		map.put("pr_3","");
         	}else if(Integer.parseInt(map.get("cap_type").toString())==2) {
-        		map.put("pr_1",new BigDecimal(new BigDecimal(map.get("price").toString()).doubleValue()/(Integer.parseInt(map.get("buy_month").toString())+Integer.parseInt(map.get("give_month").toString()))/Integer.parseInt(map.get("lib_service").toString())).setScale(2, RoundingMode.UP).doubleValue());
+        		map.put("pr_1",new BigDecimal(map.get("price").toString()).divide(new BigDecimal(map.get("buy_month").toString()).add(new BigDecimal(map.get("give_month").toString())),RoundingMode.HALF_UP).divide(new BigDecimal(map.get("lib_service").toString()),RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP).doubleValue());
         		map.put("pr_2","");
-        		map.put("pr_3",new BigDecimal(new BigDecimal(map.get("price").toString()).doubleValue()/(Integer.parseInt(map.get("buy_month").toString())+Integer.parseInt(map.get("give_month").toString()))).setScale(2, RoundingMode.UP).doubleValue());
+        		map.put("pr_3",new BigDecimal(map.get("price").toString()).divide(new BigDecimal(map.get("buy_month").toString()).add(new BigDecimal(map.get("give_month").toString())),RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP).doubleValue());
         	}else if(Integer.parseInt(map.get("cap_type").toString())==3) {
         		map.put("pr_1","");
         		map.put("pr_2",map.get("price"));
@@ -5010,13 +5010,13 @@ public class FxController  extends BaseController {
         		map.put("pr_2","");
         		map.put("pr_3",map.get("price"));
         	}else if(Integer.parseInt(map.get("cap_type").toString())==5) { 
-        		map.put("pr_1", new BigDecimal(new BigDecimal(map.get("price").toString()).doubleValue()*(Integer.parseInt(map.get("buy_month").toString()))/Integer.parseInt(map.get("lib_service").toString())).setScale(2, RoundingMode.UP).doubleValue());
+        		map.put("pr_1", new BigDecimal(map.get("price").toString()).divide(new BigDecimal(map.get("buy_month").toString())).divide(new BigDecimal(map.get("lib_service").toString()),RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP).doubleValue());
         		map.put("pr_2", map.get("price"));
         		map.put("pr_3","");
         	}else if(Integer.parseInt(map.get("cap_type").toString())==6) {
-        		map.put("pr_1", new BigDecimal(new BigDecimal(map.get("price").toString()).doubleValue()/Integer.parseInt(map.get("lib_service").toString())).setScale(2, RoundingMode.UP).doubleValue());
+        		map.put("pr_1", new BigDecimal(map.get("price").toString()).divide(new BigDecimal(map.get("lib_service").toString()),RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP).doubleValue());
         		map.put("pr_2","");
-        		map.put("pr_3",new BigDecimal(new BigDecimal(map.get("price").toString()).doubleValue()/(Integer.parseInt(map.get("buy_month").toString()))).setScale(2, RoundingMode.UP).doubleValue());
+        		map.put("pr_3",new BigDecimal(new BigDecimal(map.get("price").toString()).divide(new BigDecimal(map.get("buy_month").toString()),RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP).doubleValue()));
         	}
 		}
         model.addAttribute("list", mapList);

+ 9 - 1
src/main/java/com/ssj/sys/controller/ReportController.java

@@ -129,7 +129,15 @@ public class ReportController extends BaseController {
            }else if("2".equals(reportType)){ //价格配置CD
         	   fileName = new String("价格配置".getBytes("gb2312"), "ISO8859-1") +".xlsx";  
            }else if("3".equals(reportType)){ //订单明细CD
-        	   fileName = new String("订单明细".getBytes("gb2312"), "ISO8859-1") +".xlsx";  
+           	   String firstName = "订单明细";
+			   String beginDate =  request.getParameter("beginDate")==null?"":request.getParameter("beginDate");
+			   String endDate = request.getParameter("endDate")==null?"":request.getParameter("endDate");
+			   firstName = firstName.concat(beginDate);
+			   if(!"".equals(beginDate) && !"".equals(endDate)){
+			   		firstName = firstName.concat("_");
+			   }
+			   firstName = firstName.concat(endDate);
+        	   fileName = new String(firstName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
            }else if("4".equals(reportType)){//渠道统计明细(管理员,CD)
         	   fileName = new String("各馆月度销售情况".getBytes("gb2312"), "ISO8859-1") +".xlsx";  
 

+ 74 - 0
src/main/java/com/ssj/sys/controller/SysOrderController.java

@@ -1,7 +1,10 @@
 package com.ssj.sys.controller;
 
 import com.ssj.bean.common.framework.core.domain.Response;
+import com.ssj.bean.sys.fx.domain.Device;
+import com.ssj.bean.sys.fx.domain.Merchant;
 import com.ssj.bean.sys.imlibuser.TbClassTeacherTemp;
+import com.ssj.bean.sys.role.domain.Admin;
 import com.ssj.bean.weixin.libmy.domain.LibVip;
 import com.ssj.bean.weixin.order.domain.Order;
 import com.ssj.bean.weixin.sales.domain.LibOrderDetails;
@@ -19,6 +22,9 @@ import com.ssj.service.weixin.sales.service.LibOrderDetailsService;
 import com.ssj.service.weixin.sales.service.LibSalesPriceService;
 import com.ssj.service.weixin.sales.service.LibStaffingService;
 import com.ssj.service.weixin.sales.service.LibVipServiceService;
+import com.ssj.sys.util.thirdparty.excel.CustomizeToExcel;
+import com.ssj.sys.util.thirdparty.excel.ExcelColumn;
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -32,7 +38,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -387,6 +396,71 @@ public class SysOrderController extends BaseController {
 		return "sys/order/invoiceOrderList";
 	}
 
+	@RequestMapping(value = "/exportInvoiceOrder", method = RequestMethod.POST)
+	@ResponseBody
+	public void exportInvoiceOrder( HttpServletRequest request, HttpServletResponse response) {
+		ServletOutputStream os = null;
+		try {
+			String libName="小塾系统订单发票申请";
+			Map<String, Object> params = new HashMap<String, Object>();
+			params.put("beginDate", request.getParameter("beginDate")==null? DateHelper.format(DateHelper.getTheMonthFirstDay(), "yyyy-MM-dd"):request.getParameter("beginDate"));
+			params.put("endDate", request.getParameter("endDate")==null?DateHelper.format(new Date(), "yyyy-MM-dd"):request.getParameter("endDate"));
+			libName = libName.concat(params.get("beginDate").toString()).concat("_").concat(params.get("endDate").toString());
+			os = response.getOutputStream(); //获得输出流
+			response.reset();   //清空输出流
+			String fileName = new String(libName.getBytes("gb2312"), "ISO8859-1") +".xlsx";
+			response.setHeader("Content-disposition", "attachment; filename="+ fileName); //设定输出文件头
+			response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+			response.setCharacterEncoding("utf-8");
+
+			params.put("libId", request.getParameter("libId")==null?"":request.getParameter("libId"));
+			params.put("order_no", request.getParameter("order_no")==null?"":request.getParameter("order_no"));
+
+			Page<Map<String, Object>>  page= libOrderDetailsService.findForInvoicePageList(params, initPage(1,10000));
+
+			List<Map<String, Object>> list = page.getContent();
+			List<ExcelColumn> myColumns3 = new ArrayList<ExcelColumn>();
+
+			list.forEach(m->{
+				m.put("order_status", MapUtils.getIntValue(m,"order_status")==1?"已支付":MapUtils.getIntValue(m,"order_status")==2?"已退款":MapUtils.getIntValue(m,"order_status")==3?"财务手动":"其他");
+				m.put("type", MapUtils.getIntValue(m,"type")==1?"个人":"企业");
+				m.put("invoice_state",Objects.isNull(m.get("invoice_state"))?"未开票":MapUtils.getIntValue(m,"invoice_state")==1?"已开票":MapUtils.getIntValue(m,"invoice_state")==2?"申请中":"未开票");
+			});
+
+			myColumns3.add(new ExcelColumn("机构", "league_name", 20));
+			myColumns3.add(new ExcelColumn("订单编号", "order_no", 20));
+			myColumns3.add(new ExcelColumn("微信支付业务单号", "transaction_id", 20));
+			myColumns3.add(new ExcelColumn("产品明细", "details", 20));
+
+			myColumns3.add(new ExcelColumn("金额", "price", 20));
+			myColumns3.add(new ExcelColumn("支付时间", "zf_time", 20));
+			myColumns3.add(new ExcelColumn("订单状态", "order_status", 20));
+			myColumns3.add(new ExcelColumn("抬头类型", "type", 20));
+			myColumns3.add(new ExcelColumn("发票抬头", "invoice_title", 20));
+			myColumns3.add(new ExcelColumn("纳税人识别号", "taxpayer_id", 20));
+			myColumns3.add(new ExcelColumn("email", "email", 20));
+
+			myColumns3.add(new ExcelColumn("是否已开票", "invoice_state", 20));
+			myColumns3.add(new ExcelColumn("申请开票时间", "create_time", 20));
+
+			CustomizeToExcel.downFile(myColumns3, list, os);
+		}catch (IOException e) {
+			e.printStackTrace();
+		}catch (Exception e1){
+			e1.printStackTrace();
+		}finally{
+			if(os != null){
+				try {
+					os.flush();
+					os.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+
+		}
+	}
+
 	@RequestMapping(value="/updateOrderInvoice",method=RequestMethod.POST)
 	@ResponseBody
 	public ResponseEntity updateOrderInvoice(HttpServletRequest request, Model model,String id){

BIN
src/main/resources/static/sys/excel/order.xlsx


+ 7 - 7
src/main/resources/templates/sys/fx/merchantMealSelfAdd.html

@@ -400,21 +400,21 @@
 			}
 			$("#1_service_num").val(parseInt($("#1_service_num").val())-1);
 
-			$("#payPrice").val(Number($("#price").val())*Number($("#1_service_num").val())*Number($("#2_service_num").val()));
+			$("#payPrice").val(parseInt($("#price").val())*parseInt($("#1_service_num").val())*parseInt($("#2_service_num").val()));
 
 		});
 
 		$("#1_service_num").bind("input propertychange", function (event) {
-				$("#payPrice").val(Number($("#price").val())*Number($("#1_service_num").val())*Number($("#2_service_num").val()));
+				$("#payPrice").val(parseInt($("#price").val())*parseInt($("#1_service_num").val())*parseInt($("#2_service_num").val()));
 		});
 
 		$("#2_service_num").bind("input propertychange", function (event) {
-				$("#payPrice").val(Number($("#price").val())*Number($("#1_service_num").val())*Number($("#2_service_num").val()));
+				$("#payPrice").val(parseInt($("#price").val())*parseInt($("#1_service_num").val())*parseInt($("#2_service_num").val()));
 		});
 		
 		$("#1_add_num").click(function (){
 			$("#1_service_num").val(parseInt($("#1_service_num").val())+1);
-			$("#payPrice").val(Number($("#price").val())*Number($("#1_service_num").val())*Number($("#2_service_num").val()));
+			$("#payPrice").val(parseInt($("#price").val())*parseInt($("#1_service_num").val())*parseInt($("#2_service_num").val()));
 		});
 		
 		$("#2_reduce_num").click(function (){
@@ -424,12 +424,12 @@
 				return;
 			}
 			$("#2_service_num").val(parseInt($("#2_service_num").val())-1);
-			$("#payPrice").val(Number($("#price").val())*Number($("#1_service_num").val())*Number($("#2_service_num").val()));
+			$("#payPrice").val(parseInt($("#price").val())*parseInt($("#1_service_num").val())*parseInt($("#2_service_num").val()));
 		});
 		
 		$("#2_add_num").click(function (){
-			$("#2_service_num").val(Number($("#2_service_num").val())+1);
-			$("#payPrice").val(Number($("#price").val())*Number($("#1_service_num").val())*Number($("#2_service_num").val()));
+			$("#2_service_num").val(parseInt($("#2_service_num").val())+1);
+			$("#payPrice").val(parseInt($("#price").val())*parseInt($("#1_service_num").val())*parseInt($("#2_service_num").val()));
 		});
 		
 	})

+ 11 - 1
src/main/resources/templates/sys/order/invoiceOrderList.html

@@ -57,6 +57,12 @@
 	</ul>
 
 	</form>
+
+	<ul class="seachform">
+		<li>
+			<input type="button" id="button" class="scbtn" value="导出明细" />
+		</li>
+	</ul>
 	<table class="tablelist">
 		<thead>
 		    <tr>
@@ -136,7 +142,11 @@ function updateCourseNum(id,_this){
 		}
 	});
 }
-
+$("#button").on('click',function(){
+	document.getElementById("seachform").action = "[[${sysUrl}]]/sys/order/exportInvoiceOrder";
+	$("#seachform").submit();
+	document.getElementById("seachform").action = "[[${sysUrl}]]/sys/order/invoiceOrderList.html";
+});
 </script>
 
 </html>