Просмотр исходного кода

导出修改

Signed-off-by: anderx <312518615@qq.com>
anderx лет назад: 6
Родитель
Сommit
f612c6f95b

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

@@ -1360,17 +1360,12 @@ where super_id is null ) e on e.order_no=a.order_no
   </select>
   
   <select id="selectDunOrderNewListByPage" resultType="com.goafanti.order.bo.TOrderNewBo">
-  	 	select a.id,a.order_no as orderNo,date_format(b.sign_time,'%Y-%m-%d') as signDate,
-    c.nickname as userName,b.order_status as orderStatus,b.total_amount as totalAmount,
-    b.project_status as projectStatus,b.liquidation_status as liquidationStatus,
-    b.settlement_amount as settlementAmount,d.name as salesmanName,a.dun_subject as dunSubject,
-    date_format(a.start_time, '%Y-%m-%d') as startDate,dep.name as depName,
-    a.money as accountsReceivable,if((a.money-b.settlement_amount) &lt; 1,0,(a.money-b.settlement_amount)) as uncollectedAmount
-    from t_order_dun a left join t_order_new b on a.order_no=b.order_no
-    left join `user` c on b.buyer_id=c.id 
-    left join admin d on b.salesman_id=d.id
-    left join department dep on d.department_id=dep.id
-    where a.start_time is not null and b.delete_sign != 1
+  	 		select a.id, b.contract_no contractNo,a.order_no as orderNo,c.nickname as userName,d.name as salesmanName,b.project_status projectStatus,
+	b.total_amount as totalAmount,b.liquidation_status as liquidationStatus,b.settlement_amount as settlementAmount,a.money as accountsReceivable,
+	if((a.money-b.settlement_amount) &lt; 1,0,(a.money-b.settlement_amount)) as uncollectedAmount,a.dun_subject as dunSubject,b.order_status as orderStatus,
+	date_format(a.start_time, '%Y-%m-%d') as startDate,dep.name as depName,date_format(b.sign_time,'%Y-%m-%d') as signDate,b.project_status as projectStatus
+    from t_order_dun a left join t_order_new b on a.order_no=b.order_no left join `user` c on b.buyer_id=c.id left join admin d on b.salesman_id=d.id
+    left join department dep on d.department_id=dep.id where a.start_time is not null and b.delete_sign != 1
     <if test="name != null">
   	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
   	</if>

+ 9 - 15
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -1027,16 +1027,13 @@ from t_order_task a left join business_project b on a.commodity_id=b.id
   </select>
   
    <select id="selectTaskHoursListByPage" resultType="com.goafanti.order.bo.TOrderTaskListBo">
-  	select  a.id,a.commodity_name as taskName,a.order_no as orderNo,c.cname,d.name as receiverName,dep.name as depName,
+  	select  a.id,a.commodity_name as taskName,a.order_no as orderNo,c.cname,d.name as receiverName,dep.name as depName,a.project_status projectStatus,
     a.task_status as taskStatus,f.nickname as userName,ifnull(g.hours,0) as hours,a.commodity_quantity as commodityQuantity,
-    e.contract_no as contractNo,date_format(e.create_time,'%Y-%m-%d %H:%I:%S')as creteTime,date_format(e.sign_time,'%Y-%m-%d')as signTime
-  	from t_order_task a left join business_project b on a.commodity_id=b.id
-  	left join business_category c on b.cid=c.id
-    left join admin d on a.task_receiver=d.id
-    left join t_order_new e on a.order_no=e.order_no
-    left join department dep on e.order_dep=dep.id  
-    left join user f on e.buyer_id=f.id
-    left join (select task_id,sum(hours) as hours from t_task_hours group by task_id) g on a.id=g.task_id
+    e.contract_no as contractNo,date_format(e.create_time,'%Y-%m-%d %H:%i:%S')as creteTime,date_format(e.sign_time,'%Y-%m-%d')as signTime,
+    date_format(a.task_distribution_time,'%Y-%m-%d %H:%i:%S')taskDistributionTime, date_format(a.task_end_time,'%Y-%m-%d')taskEndTime
+  	from t_order_task a left join business_project b on a.commodity_id=b.id left join business_category c on b.cid=c.id
+    left join admin d on a.task_receiver=d.id left join t_order_new e on a.order_no=e.order_no left join department dep on e.order_dep=dep.id  
+    left join user f on e.buyer_id=f.id left join (select task_id,sum(hours) as hours from t_task_hours group by task_id) g on a.id=g.task_id
     where e.delete_sign !=1 and a.super_id is null
     <if test="fid != null">
   	and dep.finance_id= #{fid,jdbcType=VARCHAR}
@@ -1060,12 +1057,9 @@ from t_order_task a left join business_project b on a.commodity_id=b.id
   </select>
   
    <select id="selectTaskHoursListCount" resultType="java.lang.Integer">
-  		select  count(*)
-  	from t_order_task a left join business_project b on a.commodity_id=b.id
-  	left join business_category c on b.cid=c.id
-    left join admin d on a.task_receiver=d.id
-    left join t_order_new e on a.order_no=e.order_no
-    left join user f on e.buyer_id=f.id
+  	select  count(*) from t_order_task a left join business_project b on a.commodity_id=b.id
+  	left join business_category c on b.cid=c.id left join admin d on a.task_receiver=d.id
+    left join t_order_new e on a.order_no=e.order_no left join user f on e.buyer_id=f.id
     where e.delete_sign !=1 and a.super_id is null
     <if test="fid != null">
   	and e.finance_id= #{fid,jdbcType=VARCHAR}

+ 1 - 1
src/main/java/com/goafanti/common/utils/ExportExcelUtil.java

@@ -452,7 +452,7 @@ public class ExportExcelUtil {
 		
 	}
 
-	private static String getDunSuBubject(String dunSubject) {
+	public static String getDunSuBubject(String dunSubject) {
 		if ("12".equals(dunSubject)) return "订单审核通过";
 		if ("20".equals(dunSubject)) return "项目待提交";
 		if ("21".equals(dunSubject)) return "项目已提交";

+ 10 - 20
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -479,28 +479,18 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	 * @throws IOException 
 	 */
 	@RequestMapping(value = "/exportOrderDunData", method = RequestMethod.GET)
-	public Result exportOrderDunData(String name,String orderNo,String adminName,String depId,String starTime,String endTime,HttpServletResponse response) throws IOException{
+	public Result exportOrderDunData(String name,String orderNo,String starTime,String endTime,Integer specially,String adminName,String depId,
+			Integer pageNo,Integer pageSize,HttpServletResponse response) throws IOException{
 		 Result res = new Result();
-		 XSSFWorkbook wb = orderNewService.exportOrderDunData( name, orderNo, adminName, depId, starTime, endTime);
-		 if(null == wb){
-			 res.getError().add(buildError("", "没有找到数据"));
-			 return res;
-		 }
-		 String fileName = "催款信息表  " + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + ".xls";
-		 OutputStream out = response.getOutputStream();
-		 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
-         response.setContentType("application/octet-stream;charset=utf-8");  
-		try {
-			// 返回数据流
-			wb.write(out);
-			out.flush();
-			out.close();
-		} finally {
-			out.flush();
-			out.close();
+ 		try {
+ 			orderNewService.exportOrderDunData( name, orderNo, starTime, endTime, specially, adminName, depId, pageNo, pageSize, response);
+		} catch (Exception e) {
+			res.getError().add(buildError("格式不正确"));
+			e.printStackTrace();
+			return res;
 		}
-		
-		return res;
+ 		res.data(1); 
+ 		return res;
 	}
 	
 }

+ 1 - 1
src/main/java/com/goafanti/order/controller/OrderProjectApiController.java

@@ -126,7 +126,7 @@ public class OrderProjectApiController extends CertifyApiController {
 	public Result taskHoursList(String name,String orderNo, String taskId ,String starTime,String endTime ,Integer type,
 			Integer pageNo, Integer pageSize){
 		Result res=new Result();
-		//type 1 个人
+		//type 0所有 1个人
 		res.setData(orderProjectService.taskHoursList(name,orderNo,taskId,  starTime, endTime ,type,pageNo, pageSize));
 		return res;
 	}

+ 4 - 1
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -1,9 +1,11 @@
 package com.goafanti.order.service;
 
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.List;
 
 import javax.mail.MessagingException;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
@@ -157,7 +159,8 @@ public interface OrderNewService {
 	int deleteOrderNew(String orderNo);
 	boolean checkOderSettlementAmount(String orderNo);
 	boolean checkORderTask(String orderNo);
-	XSSFWorkbook exportOrderDunData(String name, String orderNo,String adminName,String depId, String starTime, String endTime);
+	void exportOrderDunData(String name,String orderNo,String starTime,String endTime,Integer specially,String adminName,
+			String depId,Integer pageNo,Integer pageSize,HttpServletResponse response) throws IOException ;
 	int updateOrderOver(String orderNo);
 	OrderRefundDetailBo orderRefundDetail(String id);
 	int updateOrderRefund(TOrderRefundWithBLOBs t);

+ 63 - 10
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -1,6 +1,8 @@
 package com.goafanti.order.service.impl;
 
 
+import java.io.IOException;
+import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.text.ParseException;
@@ -15,8 +17,12 @@ import java.util.Map;
 import java.util.UUID;
 
 import javax.mail.MessagingException;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -77,6 +83,7 @@ import com.goafanti.order.bo.TOrderLogBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderRefundBo;
 import com.goafanti.order.bo.TOrderTaskBo;
+import com.goafanti.order.bo.TOrderTaskListBo;
 import com.goafanti.order.enums.ActiveState;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.LiquidationNewState;
@@ -776,19 +783,65 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	/**
 	 * 获取催款数据
+	 * @throws IOException 
 	 */
-	@SuppressWarnings("null")
 	@Override
-	public XSSFWorkbook exportOrderDunData(String name, String orderNo,String adminName,String depId, String starTime, String endTime) {
-		if(endTime!=null) endTime=endTime+" 23:59:59";
-		List<TOrderNewBo> list=tOrderDunMapper.getOrderDunData(name,orderNo, adminName, depId,starTime,endTime);
-		if (list==null && list.size()==0) {
-			return null;
+	public void exportOrderDunData(String name,String orderNo,String starTime,String endTime,Integer specially,String adminName,
+			String depId,Integer pageNo,Integer pageSize,HttpServletResponse response) throws IOException {
+		OutputStream out = response.getOutputStream();
+		try {
+			@SuppressWarnings("unchecked")
+			List<TOrderNewBo> list=(List<TOrderNewBo>) dunOrderNewList( name,  orderNo,  starTime,  endTime,
+					 specially,  adminName, depId, pageNo,  pageSize).getList();
+    		String[] comment = {"合同编号","订单编号","客户名称","订单负责人","订单部门","订单状态","签单金额","结算状态","已收款","应收款","项目节点","项目状态","催收科目","催款启动时间"};
+    		String fileName ="催款信息记录表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
+    		//type 0 变更
+    		XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"催款信息");
+    		//根据列表编写文档
+    		XSSFSheet sheet =wb.getSheetAt(0);
+    		for (TOrderNewBo ob : list) {
+    			//新增一行
+    			XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+    			for (int i = 0; i < comment.length; i++) {
+    				//当前列的只
+    				String o = "";
+    				switch (comment[i]) {
+//    "合同编号","订单编号","客户名称","订单负责人","订单部门","订单状态","项目负责人","签单金额","结算状态","已收款","应收款","项目状态","催收科目","催款启动时间"
+    				case "合同编号": o = ob.getContractNo(); break;
+    				case "订单编号": o = ob.getOrderNo().toString(); break;
+    				case "客户名称": o = ob.getUserName(); break;
+    				case "订单负责人": o = ob.getSalesmanName(); break;
+    				case "订单部门": o = ob.getDepName(); break;
+    				case "订单状态": o = OrderNewState.getValueByCode(ob.getOrderStatus());break;
+    				case "签单金额": o = ob.getTotalAmount().toString(); break;
+    				case "结算状态": o = LiquidationNewState.getValueByCode(ob.getLiquidationStatus()); break;
+    				case "已收款": o = ob.getSettlementAmount().toString(); break;
+    				case "应收款": o = ob.getAccountsReceivable(); break;
+    				case "项目节点": o = ob.getSalesmanName(); break;
+    				case "项目状态": o = ProjectNewStage.getValueByCode(ob.getProjectStatus()); break;
+    				case "催收科目": o = OrderDunSubject.getValueByCode(Integer.valueOf(ob.getDunSubject())); break;
+    				case "催款启动时间": o = ob.getStartDate(); break;
+    				
+    				default: o = ""; break;
+    				}
+    				XSSFCell c = r.createCell(i);
+    				c.setCellValue(o);
+    			}
+    		}
+    		//返回名称及参数
+			 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
+			 response.setContentType("application/octet-stream;charset=utf-8");
+    		 // 返回数据流
+			 wb.write(out); 
+			 out.flush();
+			 out.close();
+		} catch (Exception e) {
+			throw new BusinessException(new Error("表格生成错误。"));
+		}finally {
+			out.flush(); 
+			 out.close(); 
 		}
-		String[] comment = {"订单编号","签单时间","客户名称","订单状态","签单金额(万元)","项目状态","结算状态","应收款(万元)","已收款(万元)","未收款(万元)","订单部门","订单负责人","催收科目","催款启动日期"};
-		String filePath = uploadPath + "/OrderDun";
-		XSSFWorkbook wb = ExportExcelUtil.exportOrderDunData(list, comment, filePath);
-		return wb;
+		
 	}
 
 

+ 8 - 14
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -487,7 +487,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		try {
 			@SuppressWarnings("unchecked")
 			List<TOrderTaskListBo> list=(List<TOrderTaskListBo>) taskHoursList( name, orderNo,  taskId,  starTime, endTime , type,  pageNo, pageSize).getList();
-    		String[] comment = {"合同编号 ","订单编号","客户名称","项目负责人 ","业务别类","项目别类","项目名称","项目状态 工时","分配时间","完成时间"};
+    		String[] comment = {"合同编号","订单编号","客户名称","项目负责人","项目别类","项目名称","项目状态","工时","分配时间","完成时间"};
     		String fileName ="工时信息记录表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
     		//type 0 变更
     		XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"工时信息");
@@ -500,24 +500,18 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
     				//当前列的只
     				String o = "";
     				switch (comment[i]) {
-//    String[] comment = {"合同编号 ","订单编号","客户名称","项目负责人 ","业务别类","项目别类","项目名称","项目状态 工时","分配时间","完成时间"};
+//    String[] comment = {"合同编号 ","订单编号","客户名称","项目负责人 ","项目别类","项目名称","项目状态","工时","分配时间","完成时间"};
     				case "合同编号": o = ob.getContractNo(); break;
     				case "订单编号": o = ob.getOrderNo().toString(); break;
     				case "客户名称": o = ob.getUserName(); break;
     				case "订单部门": o = ob.getDepName(); break;
     				case "项目负责人": o = ob.getReceiverName(); break;
-    				case "业务别类": o = ob.getCname(); break;
-    			/*	case "项目别类": o = ob.getCname(); break;
-    				case "订单类型": o = OrderType.getValueByCode(ob.getOrderType()); break;
-    				case "下单时间": o = ob.getEstablishTimes(); break;
-    				case "订单状态": o = OrderNewState.getValueByCode(ob.getOrderStatus()); break;
-    				case "合同额(万元)": o = ob.getTotalAmount(); break;
-    				case "已付额(万元)": o = ob.getSettlementAmount(); break;
-    				case "欠款(万元)": o = ob.getArrears(); break;
-    				case "订单负责人": o = ob.getSalesmanName(); break;
-    				case "变更类型": o = OrderChangeType.getValueByCode(ob.getType()); break;
-    				case "变更审核状态": o = getProcessState(ob.getProcessState(),ob.getStatus()); break;
-    				case "变更提交时间": o = ob.getCreateTimes(); break;*/
+    				case "项目别类": o = ob.getCname(); break;
+    				case "项目名称": o = ob.getTaskName(); break;
+    				case "项目状态": o = ProjectNewStage.getValueByCode(ob.getProjectStatus()); break;
+    				case "工时": o = ob.getHours().toString(); break;
+    				case "分配时间": o = ob.getTaskDistributionTime(); break;
+    				case "完成时间": o = ob.getTaskEndTime(); break;
     				default: o = ""; break;
     				}
     				XSSFCell c = r.createCell(i);