Browse Source

导入年度订单数据
导出年段订单模板

limin 7 years ago
parent
commit
91631b9c65
20 changed files with 456 additions and 110 deletions
  1. 2 0
      src/main/java/com/goafanti/common/dao/TOrderMonthReportMapper.java
  2. 7 0
      src/main/java/com/goafanti/common/mapper/TOrderMonthReportMapper.xml
  3. 2 2
      src/main/java/com/goafanti/common/mapper/TOrderRefundMapper.xml
  4. 150 3
      src/main/java/com/goafanti/common/utils/ExcelUtils.java
  5. 95 51
      src/main/java/com/goafanti/common/utils/ExportExcelUtil.java
  6. 14 0
      src/main/java/com/goafanti/order/bo/OrderReportBo.java
  7. 3 2
      src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java
  8. 9 9
      src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java
  9. 91 10
      src/main/java/com/goafanti/order/controller/OrderBonusStatisticsApiController.java
  10. 2 2
      src/main/java/com/goafanti/order/controller/OrderProjectApiController.java
  11. 2 2
      src/main/java/com/goafanti/order/service/OrderBillService.java
  12. 2 2
      src/main/java/com/goafanti/order/service/OrderBonusService.java
  13. 2 7
      src/main/java/com/goafanti/order/service/OrderNewService.java
  14. 2 2
      src/main/java/com/goafanti/order/service/OrderProjectService.java
  15. 18 2
      src/main/java/com/goafanti/order/service/OrderReportService.java
  16. 3 3
      src/main/java/com/goafanti/order/service/impl/OrderBillServiceImpl.java
  17. 3 3
      src/main/java/com/goafanti/order/service/impl/OrderBonusServiceImpl.java
  18. 3 4
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  19. 3 4
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  20. 43 2
      src/main/java/com/goafanti/order/service/impl/OrderReportServiceImpl.java

+ 2 - 0
src/main/java/com/goafanti/common/dao/TOrderMonthReportMapper.java

@@ -80,4 +80,6 @@ public interface TOrderMonthReportMapper {
 	int insertLastMonthOrderData();
 	
 	List<OrderReportBo> exportMonthData(OrderReportBo orderReportBo);
+	
+	int checkData(OrderReportBo orderReportBo);
 }

+ 7 - 0
src/main/java/com/goafanti/common/mapper/TOrderMonthReportMapper.xml

@@ -397,4 +397,11 @@
 	group by
 	a.department_id, a.id, m.`type`
  </select>
+ <!-- 查看某人某年某月某类型的数据是否存在 -->
+ <select id="checkData" parameterType="com.goafanti.order.bo.OrderReportBo" resultType="java.lang.Integer">
+ 	select count(*) from
+	t_order_month_report
+	where salemans_id = #{salemansId,jdbcType=VARCHAR} and `month` = #{month,jdbcType=INTEGER}
+	and type = #{type,jdbcType=INTEGER}
+ </select>
 </mapper>

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

@@ -458,7 +458,7 @@
   	 left join t_order_new o on r.order_no = o.order_no
   	 left join `user` u on o.buyer_id = u.id
   	 left join admin a on o.salesman_id = a.id
-  	where accept = #{accept,jdbcType=VARCHAR}
+  	where accept = #{r.accept,jdbcType=VARCHAR}
   	and refund_status &lt; 2
   	<if test='r.id != null and r.id != ""'>
   		and id= #{r.id,jdbcType=INTEGER}
@@ -489,7 +489,7 @@
   	 left join t_order_new o on r.order_no = o.order_no
   	 left join `user` u on o.buyer_id = u.id
   	 left join admin a on o.salesman_id = a.id
-  	where accept = #{accept,jdbcType=VARCHAR}
+  	where accept = #{r.accept,jdbcType=VARCHAR}
   	<if test='r.refundStatus == null or r.refundStatus == ""'>
   		and refund_status &lt; 2
   	</if>

+ 150 - 3
src/main/java/com/goafanti/common/utils/ExcelUtils.java

@@ -4,7 +4,10 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -16,7 +19,9 @@ import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
 import com.goafanti.customer.bo.CustomerExcelBo;
+import com.goafanti.order.bo.OrderReportBo;
 
 public class ExcelUtils {
 	private Set<Integer> vacantRows = new HashSet<Integer>(); //数据不完整的
@@ -162,8 +167,150 @@ public class ExcelUtils {
 	}
 	
 	public static void main(String[] args) {
-		ExcelUtils utils = new ExcelUtils();
-		String s = utils.checkMobile("18320746285", 1);
-		System.out.println(s);
+//		ExcelUtils utils = new ExcelUtils();
+//		String s = utils.checkMobile("18320746285", 1);
+//		System.out.println(s);
+		String mm = "201111";
+		if(mm.length() != 2 && mm.length() != 6){
+			System.out.println("cuowu=-----");
+		}else{
+			Integer m = Integer.valueOf(mm.substring(mm.length()-2, mm.length()));
+			System.out.println(m);
+			if(m>12 || m<0){
+				System.out.println("月份不对------");
+			}else{
+				Integer re = Integer.valueOf(mm);
+				if(re>m){
+					System.out.println(re);
+				}else{
+					String ym = new SimpleDateFormat("yyyy").format(new Date()) + m;
+					System.out.println(ym);
+				}
+			}
+			
+			
+			
+		}
 	}
+	
+	
+	public  Set<OrderReportBo> parseOrderExcel(String excelPath) throws IOException{
+		InputStream excelFile = new FileInputStream(new File(excelPath));
+		XSSFWorkbook wb = new XSSFWorkbook(excelFile);	
+		Set<OrderReportBo> result = new HashSet<OrderReportBo>();
+		XSSFSheet sheet = wb.getSheetAt(0);
+		Iterator<Row> rowIterator = sheet.iterator();
+		Row currentRow = sheet.getRow(1); //表头
+		int totalNumber = sheet.getLastRowNum();
+		int rowNumber = 1;
+		rowIterator.next();
+		while(rowIterator.hasNext() && rowNumber <= totalNumber){
+			rowNumber++;
+			currentRow = rowIterator.next();
+			Iterator<Cell> cellIterator = currentRow.iterator();
+			OrderReportBo bo = new OrderReportBo();
+			
+			bo.setSaleName(checkEmptyStr(cellIterator.next().getStringCellValue(),rowNumber));
+			//电话
+			Cell cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC) {
+				bo.setMobile(checkMobile(df.format(cell.getNumericCellValue()), rowNumber));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setMobile(checkMobile(cell.getStringCellValue(), rowNumber));
+			}
+			//月份
+			cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC){
+				bo.setMonth(checkOrderMonth(df.format(cell.getNumericCellValue()),rowNumber));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setMonth(checkOrderMonth(cell.getStringCellValue(),rowNumber));
+			}
+			bo.setType(checkOrderType(cellIterator.next().getStringCellValue(),rowNumber));
+			//数量
+			cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC){
+				bo.setProofCount(Float.valueOf(checkEmptyStr(df.format(cell.getNumericCellValue()),rowNumber)));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setProofCount(Float.valueOf(checkEmptyStr(cell.getStringCellValue(),rowNumber)));
+			}
+			//金额
+			cell = cellIterator.next();
+			if(cell.getCellTypeEnum() == CellType.NUMERIC){
+				bo.setAmount(new BigDecimal(checkEmptyStr(df.format(cell.getNumericCellValue()),rowNumber)));
+			}else if(cell.getCellTypeEnum() == CellType.STRING){
+				bo.setAmount(new BigDecimal(checkEmptyStr(cell.getStringCellValue(),rowNumber)));
+			}
+			bo.setRowNumber(rowNumber);
+			result.add(bo);
+		}
+		return result;
+	}
+	
+	private Integer checkOrderType(String OrderType,int rowNumber){
+		if(checkEmpty(OrderType, rowNumber)){
+			return null;
+		}
+		if(OrderType.equals("认证项目")) return 0; 
+		if(OrderType.equals("科技项目")) return 1;
+		vacantRows.add(rowNumber);
+		return null;
+	}
+	private Integer checkOrderMonth(String month,int rowNumber){
+		
+		if(checkEmpty(month, rowNumber)){
+			return null;
+		}
+		Integer m = null;
+		if(month.length() == 2 || month.length() == 6){
+			try {
+				m = Integer.valueOf(month.substring(month.length()-2, month.length()));
+			} catch (Exception e) {
+				vacantRows.add(rowNumber);
+				return null;
+			}
+		}else{
+			if(month.length() == 1){
+				try {
+					m = Integer.valueOf(month);
+				} catch (Exception e) {
+					vacantRows.add(rowNumber);
+					return null;
+				}
+			}else{
+				vacantRows.add(rowNumber);
+			}
+		}
+		if(m>0 && m<=12){
+			Integer re = Integer.valueOf(month);
+			if(re>m){
+				return re;
+			}else{
+				String ym = new SimpleDateFormat("yyyy").format(new Date()) + (m>10?m:"0"+m);
+				System.out.println(ym);
+				return Integer.valueOf(ym);
+			}
+		}else{
+			vacantRows.add(rowNumber);
+		}
+		return null;
+	}
+	private Boolean checkEmpty(String str,int rowNumber){
+		if(StringUtils.isEmpty(str)) {
+			vacantRows.add(rowNumber);
+			return true;
+		}else{
+			return false;
+		}
+	}
+	private String checkEmptyStr(String str,int rowNumber){
+		if(StringUtils.isEmpty(str)) {
+			vacantRows.add(rowNumber);
+			return "";
+		}else{
+			return str;
+		}
+	}
+	
+	//检查表头
+	
 }

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

@@ -15,35 +15,40 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
-import org.apache.poi.hssf.usermodel.HSSFFont;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFFont;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderBillNew;
 import com.goafanti.order.bo.OrderReportBo;
 import com.goafanti.order.bo.TOrderBonusBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderTaskListBo;
+import com.goafanti.order.enums.BonusSubject;
 import com.goafanti.order.enums.LiquidationNewState;
 import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.enums.ProjectNewStage;
 import com.goafanti.techproject.enums.TaskState;
-import com.goafanti.order.enums.BonusSubject;
 
 public class ExportExcelUtil {
 	
 	//设置单元格格式
-	private static HSSFCellStyle setCellStyle1(HSSFWorkbook workbook){
+	private static XSSFCellStyle setCellStyle1(XSSFWorkbook workbook){
 		// 设置字体  
-		HSSFFont font = workbook.createFont();  
+		XSSFFont font = workbook.createFont();  
 		// font.setColor(HSSFFont.COLOR_RED);  
 		font.setFontName("微软雅黑");
 		font.setFontHeightInPoints((short) 10);//字体大小  
 		  
 		// 设置样式  
-		HSSFCellStyle cellStyle = workbook.createCellStyle();  
+		XSSFCellStyle cellStyle = workbook.createCellStyle();  
 		cellStyle.setFont(font);  //字体
 		
 		//设置自动换行
@@ -117,30 +122,30 @@ public class ExportExcelUtil {
 	 * @param comment 表头(列名)
 	 * @param filePath 生成文件路径
 	 */
-	public static HSSFWorkbook exportDeptBillInfo(Map<String,List<TOrderBillNew>> map,String[] deptnames,String[] comment,String filePath){
+	public static XSSFWorkbook exportDeptBillInfo(Map<String,List<TOrderBillNew>> map,String[] deptnames,String[] comment,String filePath){
 		//map 数据 ,deptnames 部门名称,comment表头 (列名称)
  		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		int count = 0;
 		//遍历map
 		for (Map.Entry<String,List<TOrderBillNew>> entry : map.entrySet()) {
 			//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet(entry.getKey());
+			XSSFSheet sheet = wb.createSheet(entry.getKey());
 			//3。创建一个row
-			HSSFRow row = sheet.createRow(0);
+			XSSFRow row = sheet.createRow(0);
 			//4.创建一个cell
-			HSSFCell cell = row.createCell(0);
+			XSSFCell cell = row.createCell(0);
 			cell.setCellValue(deptnames[count]+" 流水记录");
 			count ++;
-			HSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFCellStyle style1 = setCellStyle1(wb);
 			cell.setCellStyle(style1);
 			//合并列
 			sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, comment.length-1));//合并单元格
 			//创建表头
-			HSSFRow row2 = sheet.createRow(1);
+			XSSFRow row2 = sheet.createRow(1);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row2.createCell(i);
+				XSSFCell c = row2.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
@@ -152,7 +157,7 @@ public class ExportExcelUtil {
 			}
 			for (TOrderBillNew ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o ;
@@ -190,7 +195,7 @@ public class ExportExcelUtil {
 					case "订单负责人": o = ob.getSaleName(); break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
@@ -221,30 +226,30 @@ public class ExportExcelUtil {
 	 * @param comment
 	 * @return
 	 */
-	public static HSSFWorkbook exportDeptBonusInfoT(Map<String,List<TOrderBonusBo>> map,String[] deptnames,String[] comment){
+	public static XSSFWorkbook exportDeptBonusInfoT(Map<String,List<TOrderBonusBo>> map,String[] deptnames,String[] comment){
 		//map 数据 ,deptnames 部门名称,comment表头 (列名称)
 		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		int count = 0;
 		//遍历map
 		for (Map.Entry<String,List<TOrderBonusBo>> entry : map.entrySet()) {
 			//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet(entry.getKey());
+			XSSFSheet sheet = wb.createSheet(entry.getKey());
 			//3。创建一个row
-			HSSFRow row = sheet.createRow(0);
+			XSSFRow row = sheet.createRow(0);
 			//4.创建一个cell
-			HSSFCell cell = row.createCell(0);
+			XSSFCell cell = row.createCell(0);
 			cell.setCellValue(deptnames[count]+" 奖金记录");
 			count ++;
-			HSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFCellStyle style1 = setCellStyle1(wb);
 			cell.setCellStyle(style1);
 			//合并列
 			sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, comment.length-1));//合并单元格
 			//创建表头
-			HSSFRow row2 = sheet.createRow(1);
+			XSSFRow row2 = sheet.createRow(1);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row2.createCell(i);
+				XSSFCell c = row2.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
@@ -256,7 +261,7 @@ public class ExportExcelUtil {
 			}
 			for (TOrderBonusBo ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o = "";
@@ -281,7 +286,7 @@ public class ExportExcelUtil {
 					break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
@@ -311,28 +316,28 @@ public class ExportExcelUtil {
 	 * @param date
 	 * @return
 	 */
-	public static HSSFWorkbook exportOrderInfo(List<OrderReportBo> list,String date){
+	public static XSSFWorkbook exportOrderInfo(List<OrderReportBo> list,String date){
 		//list 数据 ,comment表头 (列名称)
 		String[] comment = {"序号","订单部门","订单类型","签单人员","签单数量","累计签单金额(万元)"};
 		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		//遍历map
 		//2.创建一个sheet
-		HSSFSheet sheet = wb.createSheet(date + "订单统计");
+		XSSFSheet sheet = wb.createSheet(date + "订单统计");
 		//3。创建一个row
-		HSSFRow row = sheet.createRow(0);
+		XSSFRow row = sheet.createRow(0);
 		//4.创建一个cell
-		HSSFCell cell = row.createCell(0);
+		XSSFCell cell = row.createCell(0);
 		cell.setCellValue(date + "订单统计");
-		HSSFCellStyle style1 = setCellStyle1(wb);
+		XSSFCellStyle style1 = setCellStyle1(wb);
 		cell.setCellStyle(style1);
 		//合并列
 		sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, comment.length-1));//合并单元格
 		//创建表头
-		HSSFRow row2 = sheet.createRow(1);
+		XSSFRow row2 = sheet.createRow(1);
 		for(int i = 0; i < comment.length; i++){
 			sheet.setColumnWidth(i, 3000);//设置列宽
-			HSSFCell c = row2.createCell(i);
+			XSSFCell c = row2.createCell(i);
 			c.setCellValue(comment[i]);
 			c.setCellStyle(style1);
 		}
@@ -340,7 +345,7 @@ public class ExportExcelUtil {
 		//int rowmnum = sheet.getLastRowNum();//获得当前行数据
 		for (OrderReportBo ob : list) {
 			//新增一行
-			HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+			XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 			for (int i = 0; i < comment.length; i++) {
 				//当前列的只
 				String o = "";
@@ -354,7 +359,7 @@ public class ExportExcelUtil {
 				
 				default: o = ""; break;
 				}
-				HSSFCell c = r.createCell(i);
+				XSSFCell c = r.createCell(i);
 				c.setCellValue(o);
 			}
 		}
@@ -378,24 +383,24 @@ public class ExportExcelUtil {
 		}*/
 	}
 	
-	public static HSSFWorkbook exportOrderDunData(List<TOrderNewBo> list,String[] comment,String filePath){
+	public static XSSFWorkbook exportOrderDunData(List<TOrderNewBo> list,String[] comment,String filePath){
 		//map 数据 comment表头 (列名称)
  		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet();
+			XSSFSheet sheet = wb.createSheet();
 			//创建表头
-			HSSFCellStyle style1 = setCellStyle1(wb);
-			HSSFRow row = sheet.createRow(0);
+			XSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFRow row = sheet.createRow(0);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row.createCell(i);
+				XSSFCell c = row.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
 			for (TOrderNewBo ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o ;
@@ -413,7 +418,7 @@ public class ExportExcelUtil {
 					case "催款启动日期": o = ob.getStartDate(); break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
@@ -436,25 +441,25 @@ public class ExportExcelUtil {
 		return "";
 	}
 
-	public static HSSFWorkbook exportTaskHoursListData(List<TOrderTaskListBo> list, String[] comment, String filePath) {
+	public static XSSFWorkbook exportTaskHoursListData(List<TOrderTaskListBo> list, String[] comment, String filePath) {
 
 		//map 数据 comment表头 (列名称)
  		//1,创建一个workbook,对应的是一个excel文件
-		HSSFWorkbook wb = new HSSFWorkbook();
+		XSSFWorkbook wb = new XSSFWorkbook();
 		//2.创建一个sheet
-			HSSFSheet sheet = wb.createSheet();
+			XSSFSheet sheet = wb.createSheet();
 			//创建表头
-			HSSFCellStyle style1 = setCellStyle1(wb);
-			HSSFRow row = sheet.createRow(0);
+			XSSFCellStyle style1 = setCellStyle1(wb);
+			XSSFRow row = sheet.createRow(0);
 			for(int i = 0; i < comment.length; i++){
 				sheet.setColumnWidth(i, 3000);//设置列宽
-				HSSFCell c = row.createCell(i);
+				XSSFCell c = row.createCell(i);
 				c.setCellValue(comment[i]);
 				c.setCellStyle(style1);
 			}
 			for (TOrderTaskListBo ob : list) {
 				//新增一行
-				HSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+				XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
 				for (int i = 0; i < comment.length; i++) {
 					//当前列的只
 					String o ;
@@ -470,11 +475,50 @@ public class ExportExcelUtil {
 					case "工时": o = ob.getHours(); break;
 					default: o = ""; break;
 					}
-					HSSFCell c = r.createCell(i);
+					XSSFCell c = r.createCell(i);
 					c.setCellValue(o);
 				}
 			}
 		return wb;
 	}
+	/**
+	 * 年度导出数据模板
+	 * @return
+	 */
+	public static XSSFWorkbook downOrderModelExcel() {
+		String[] comment = {"姓名","电话","月份","项目类型","签单数量","累计签单金额(万元)"};
+		String[] d1 = {"张三","13275161283","1","科技项目","2","12"};
+		String[] d2 = {"张三","13275161283","1","认证项目","0.3","3"};
+		
+		//map 数据 comment表头 (列名称)
+		//1,创建一个workbook,对应的是一个excel文件
+		XSSFWorkbook wb = new XSSFWorkbook();
+		//2.创建一个sheet
+		XSSFSheet sheet = wb.createSheet();
+		//创建表头
+		XSSFCellStyle style1 = setCellStyle1(wb);
+		XSSFRow row = sheet.createRow(0);
+		XSSFRow row1 = sheet.createRow(1);
+		XSSFRow row2 = sheet.createRow(2);
+		for(int i = 0; i < comment.length; i++){
+			sheet.setColumnWidth(i, 3000);//设置列宽
+			XSSFCell c = row.createCell(i);
+			c.setCellValue(comment[i]);
+			c.setCellStyle(style1);
+		}
+		for(int i = 0; i < d1.length; i++){
+			XSSFCell c = row1.createCell(i);
+			c.setCellValue(d1[i]);
+			c.setCellStyle(style1);
+		}
+		for(int i = 0; i < d2.length; i++){
+			XSSFCell c = row2.createCell(i);
+			c.setCellValue(d2[i]);
+			c.setCellStyle(style1);
+		}
+		return wb;
+	}
+	
+	
 	
 }

+ 14 - 0
src/main/java/com/goafanti/order/bo/OrderReportBo.java

@@ -7,6 +7,8 @@ public class OrderReportBo  extends TOrderMonthReport{
 	private String deptName;
 	private String departmentId;
 	private Integer month1;
+	private Integer rowNumber;
+	private String mobile;
 	
 	public String getSaleName() {
 		return saleName;
@@ -32,5 +34,17 @@ public class OrderReportBo  extends TOrderMonthReport{
 	public void setDepartmentId(String departmentId) {
 		this.departmentId = departmentId;
 	}
+	public String getMobile() {
+		return mobile;
+	}
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
+	public Integer getRowNumber() {
+		return rowNumber;
+	}
+	public void setRowNumber(Integer rowNumber) {
+		this.rowNumber = rowNumber;
+	}
 	
 }

+ 3 - 2
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -12,11 +12,12 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
+
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
@@ -428,7 +429,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	@RequestMapping(value = "/exportOrderDunData", method = RequestMethod.GET)
 	public Result exportOrderDunData(String name,String orderNo,String starTime,String endTime,HttpServletResponse response) throws IOException{
 		 Result res = new Result();
-		 HSSFWorkbook wb = orderNewService.exportOrderDunData( name, orderNo, starTime, endTime);
+		 XSSFWorkbook wb = orderNewService.exportOrderDunData( name, orderNo, starTime, endTime);
 		 if(null == wb){
 			 res.getError().add(buildError("", "没有找到数据"));
 			 return res;

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

@@ -9,10 +9,10 @@ import java.util.Date;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.poi.hssf.usermodel.HSSFCell;
-import org.apache.poi.hssf.usermodel.HSSFRow;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+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.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -274,12 +274,12 @@ public class FundManagerOrderApiController extends CertifyApiController {
 	 public Result exportBillData(TOrderBillNew billNew,HttpServletResponse response) throws IOException{
 		 OutputStream out = response.getOutputStream();
 		 Result res = new Result();
-		 HSSFWorkbook wb = orderBillServiceImpl.exportBillData(billNew);
+		 XSSFWorkbook wb = orderBillServiceImpl.exportBillData(billNew);
 		 if(null == wb){
-			 wb = new HSSFWorkbook();
-			HSSFSheet sheet = wb.createSheet("没有流水记录");
-			HSSFRow row = sheet.createRow(0);
-			HSSFCell cell = row.createCell(0);
+			 wb = new XSSFWorkbook();
+			XSSFSheet sheet = wb.createSheet("没有流水记录");
+			XSSFRow row = sheet.createRow(0);
+			XSSFCell cell = row.createCell(0);
 			cell.setCellValue("没有流水记录");
 		 }
 		 String fileName = "部门流水" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";

+ 91 - 10
src/main/java/com/goafanti/order/controller/OrderBonusStatisticsApiController.java

@@ -4,21 +4,33 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Set;
+import java.util.TreeSet;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+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.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.goafanti.common.bo.Error;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.utils.ExcelUtils;
+import com.goafanti.common.utils.ExportExcelUtil;
+import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.OrderReportBo;
 import com.goafanti.order.bo.TOrderBonusBo;
@@ -36,6 +48,8 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 	@Resource
 	private OrderReportService orderReportServiceImpl;
 	
+	@Value(value = "${upload.private.path}")
+	private String	uploadPrivatePath	= null;
 	 /**
 	  * 财务专员校对单量
 	  * @param orderNew
@@ -122,12 +136,12 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 OutputStream out = response.getOutputStream();
 		 Result res = new Result();
 		 bonusBo.setGrantBy(TokenManager.getAdminId());
-		 HSSFWorkbook wb = orderBonusServiceImpl.exportTechnicianBonusData(bonusBo);
+		 XSSFWorkbook wb = orderBonusServiceImpl.exportTechnicianBonusData(bonusBo);
 		 if(null == wb){
-			 wb = new HSSFWorkbook();
-			 HSSFSheet sheet = wb.createSheet("没有技术员奖金记录");
-			 HSSFRow row = sheet.createRow(0);
-			 HSSFCell cell = row.createCell(0);
+			 wb = new XSSFWorkbook();
+			 XSSFSheet sheet = wb.createSheet("没有技术员奖金记录");
+			 XSSFRow row = sheet.createRow(0);
+			 XSSFCell cell = row.createCell(0);
 			 cell.setCellValue("没有技术员奖金记录");
 		 }
 		 String fileName = "技术员奖金统计" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
@@ -180,12 +194,12 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 }
 		 String date = orderReportBo.getMonth() == orderReportBo.getMonth1() ? orderReportBo.getMonth().toString() : orderReportBo.getMonth() + "-" + orderReportBo.getMonth1(); 
 		 OutputStream out = response.getOutputStream();
-		 HSSFWorkbook wb = orderReportServiceImpl.exportMonthData(orderReportBo, date);
+		 XSSFWorkbook wb = orderReportServiceImpl.exportMonthData(orderReportBo, date);
 		 if(null == wb){
-			 wb = new HSSFWorkbook();
-			 HSSFSheet sheet = wb.createSheet("没有订单统计记录");
-			 HSSFRow row = sheet.createRow(0);
-			 HSSFCell cell = row.createCell(0);
+			 wb = new XSSFWorkbook();
+			 XSSFSheet sheet = wb.createSheet("没有订单统计记录");
+			 XSSFRow row = sheet.createRow(0);
+			 XSSFCell cell = row.createCell(0);
 			 cell.setCellValue("没有订单统计记录");
 		 }
 		 String fileName = "订单统计" + date + ".xls";
@@ -202,4 +216,71 @@ public class OrderBonusStatisticsApiController extends CertifyApiController {
 		 }
 		 return res;
 	 }
+	 /**
+	  * 导入订单模板
+	  * @param req
+	  * @return
+	  */
+	@RequestMapping(value = "/uploadOrderExcel",method = RequestMethod.POST)
+	public Result uploadExcel(HttpServletRequest req){
+		Result res = new Result();
+		String excelPath = handleFile(res, "/order_report_file/", true, req, "");
+		ExcelUtils utils = new ExcelUtils();
+			Set<OrderReportBo> boSet;
+			try {
+				boSet = utils.parseOrderExcel(uploadPrivatePath + excelPath);
+				String errorMessage = "";
+				//if(boSet.size()>100)	errorMessage += "导入数据不能超过一百条;";
+				errorMessage += utils.getVacantRows();
+				if(StringUtils.isNotBlank(errorMessage)) {
+					res.getError().add(new Error(errorMessage));
+					return res;
+				}
+				Set<Integer> existRows = new TreeSet<Integer>(); //数据库已存在
+				Set<Integer> filterRows = new TreeSet<Integer>(); //过滤提示
+				orderReportServiceImpl.checkOrderReport(boSet,existRows,filterRows);
+				if(existRows.size()>0){
+					errorMessage = StringUtils.join(existRows.toArray(),",")+ " 订单统计数据已存在;";
+					res.getError().add(new Error(errorMessage));
+					return res;
+				}
+				if(filterRows.size()>0){
+					errorMessage = StringUtils.join(filterRows.toArray(),",")+ " 行没有找到相关员工电话,已经被系统过滤;";
+					res.getError().add(new Error(errorMessage));
+					return res;
+				}
+				res.setData(orderReportServiceImpl.saveUploadData(boSet));
+			} catch (IOException e) {
+				e.printStackTrace();
+			}	
+		return res;
+	}
+	
+	/**
+	 * 下载年度订单数据模板
+	 * @param response
+	 * @return
+	 * @throws IOException
+	 */
+	@RequestMapping(value = "/downOrderModelExcel",method = RequestMethod.GET)
+	public Result downOrderModelExcel(HttpServletResponse response) throws IOException{
+		Result res = new Result();
+		 OutputStream out = response.getOutputStream();
+		 XSSFWorkbook wb = ExportExcelUtil.downOrderModelExcel();
+		 String fileName = "导入年度销售数据模板.xls";
+		 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(); 
+		 }
+		return res;
+	}
+	 
+	 
 }

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

@@ -10,7 +10,7 @@ import java.util.Date;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -127,7 +127,7 @@ public class OrderProjectApiController extends CertifyApiController {
 	@RequestMapping(value = "/exportTaskHoursListData", method = RequestMethod.GET)
 	public Result exportTaskHoursListData(String name, String taskId ,String starTime,String endTime ,HttpServletResponse response) throws IOException{
 		 Result res = new Result();
-		 HSSFWorkbook wb = orderProjectService.exportTaskHoursListData( name, taskId, starTime, endTime);
+		 XSSFWorkbook wb = orderProjectService.exportTaskHoursListData( name, taskId, starTime, endTime);
 		 if(null == wb){
 			 res.getError().add(buildError("", "没有找到数据"));
 			 return res;

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderBillService.java

@@ -1,6 +1,6 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderBillNew;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -21,5 +21,5 @@ public interface OrderBillService {
 	 * @param billNew
 	 * @return
 	 */
-	HSSFWorkbook exportBillData(TOrderBillNew billNew);
+	XSSFWorkbook exportBillData(TOrderBillNew billNew);
 }

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderBonusService.java

@@ -1,6 +1,6 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TOrderBonus;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -47,5 +47,5 @@ public interface OrderBonusService {
 	 * @param bonusBo
 	 * @return
 	 */
-	HSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo);
+	XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo);
 }

+ 2 - 7
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -2,18 +2,13 @@ package com.goafanti.order.service;
 
 import java.util.List;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
-import com.goafanti.common.model.TDunLog;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
-import com.goafanti.common.model.TOrderRefund;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.core.mybatis.page.Pagination;
-import com.goafanti.order.bo.BackOrderListBo;
-import com.goafanti.order.bo.BillListBo;
-import com.goafanti.order.bo.OrderRefundBo;
 import com.goafanti.order.bo.OrderRefundDetailBo;
 import com.goafanti.order.bo.TDunLogListBo;
 import com.goafanti.order.bo.TOrderNewBo;
@@ -153,7 +148,7 @@ public interface OrderNewService {
 	int deleteOrderNew(String orderNo);
 	boolean checkOderSettlementAmount(String orderNo);
 	boolean checkORderTask(String orderNo);
-	HSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime);
+	XSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime);
 	int updateOrderOver(String orderNo);
 	OrderRefundDetailBo orderRefundDetail(String id);
 	int updateOrderRefund(TOrderRefundWithBLOBs t);

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderProjectService.java

@@ -1,6 +1,6 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.common.model.TTaskHours;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -23,6 +23,6 @@ public interface OrderProjectService {
 	Pagination<TOrderTaskListBo> taskHoursList(String name, String taskId,String starTime,String endTime ,
 			Integer pageNo, Integer pageSize);
 
-	HSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime);
+	XSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime);
 	
 }

+ 18 - 2
src/main/java/com/goafanti/order/service/OrderReportService.java

@@ -1,6 +1,8 @@
 package com.goafanti.order.service;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import java.util.Set;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.order.bo.OrderReportBo;
@@ -23,6 +25,20 @@ public interface OrderReportService {
 	 * @param orderReportBo
 	 * @return
 	 */
-	HSSFWorkbook exportMonthData(OrderReportBo orderReportBo,String date);
+	XSSFWorkbook exportMonthData(OrderReportBo orderReportBo,String date);
+	
+	/**
+	 * 检查这个数据是否存在
+	 * @param bos
+	 * @param existRows
+	 */
+	void checkOrderReport(Set<OrderReportBo> bos, Set<Integer> existRows,Set<Integer> fiterRows);
+	
+	/**
+	 * 保存导入的数据
+	 * @param bos
+	 * @return
+	 */
+	int saveUploadData(Set<OrderReportBo> bos);
 	
 }

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

@@ -4,7 +4,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -38,7 +38,7 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 
 
 	@Override
-	public HSSFWorkbook exportBillData(TOrderBillNew billNew) {
+	public XSSFWorkbook exportBillData(TOrderBillNew billNew) {
 		// 判断导出是否有部门
 		String deptid = billNew.getDepartmentId();
 		Map<String, List<TOrderBillNew>> map = new HashMap<String, List<TOrderBillNew>>();
@@ -67,7 +67,7 @@ public class OrderBillServiceImpl extends BaseMybatisDao<TOrderBillNewMapper> im
 //			f.mkdirs();
 //		}
 		//filePath += "/" + System.nanoTime() +".xls";
-		HSSFWorkbook wb = ExportExcelUtil.exportDeptBillInfo(map, deptnames, comment, filePath);
+		XSSFWorkbook wb = ExportExcelUtil.exportDeptBillInfo(map, deptnames, comment, filePath);
 		
 		return wb;
 	}

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

@@ -5,7 +5,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -77,7 +77,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 	}
 
 	@Override
-	public HSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) {
+	public XSSFWorkbook exportTechnicianBonusData(TOrderBonusBo bonusBo) {
 		// 判断导出是否有部门
 		String deptid = bonusBo.getDepartmentId();
 		Map<String, List<TOrderBonusBo>> map = new HashMap<String, List<TOrderBonusBo>>();
@@ -100,7 +100,7 @@ public class OrderBonusServiceImpl extends BaseMybatisDao<TOrderBonusMapper> imp
 			map.put(bonusBo.getDepartmentName(), bonusMapper.getBonusData(bonusBo));
 		}
 		String[] comment = {"任务编号","订单编号","任务负责人","任务状态","任务数量","项目状态","受理日期","评审日期","下证日期","订单结算状态","发放类型","发放状态"};
-		HSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoT(map, deptnames, comment);
+		XSSFWorkbook wb = ExportExcelUtil.exportDeptBonusInfoT(map, deptnames, comment);
 		return wb;
 	}
 }

+ 3 - 4
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -11,7 +11,7 @@ import java.util.Map;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -41,7 +41,6 @@ import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.customer.bo.LockingReleaseBo;
-import com.goafanti.order.bo.OrderRefundBo;
 import com.goafanti.order.bo.OrderRefundDetailBo;
 import com.goafanti.order.bo.TDunLogListBo;
 import com.goafanti.order.bo.TOrderNewBo;
@@ -473,7 +472,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	 */
 	@SuppressWarnings("null")
 	@Override
-	public HSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime) {
+	public XSSFWorkbook exportOrderDunData(String name, String orderNo, String starTime, String endTime) {
 		if(endTime!=null) endTime=endTime+" 23:59:59";
 		List<TOrderNewBo> list=tOrderDunMapper.getOrderDunData(name,orderNo,starTime,endTime);
 		if (list==null && list.size()==0) {
@@ -481,7 +480,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}
 		String[] comment = {"订单编号","签单时间","客户名称","订单状态","签单金额","项目状态","结算状态","已收款","订单负责人","催收科目","催款启动日期"};
 		String filePath = uploadPath + "/OrderDun";
-		HSSFWorkbook wb = ExportExcelUtil.exportOrderDunData(list, comment, filePath);
+		XSSFWorkbook wb = ExportExcelUtil.exportOrderDunData(list, comment, filePath);
 		return wb;
 	}
 

+ 3 - 4
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -14,6 +14,7 @@ import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.converters.DateConverter;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -31,13 +32,11 @@ import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.bo.TOrderTaskBo;
 import com.goafanti.order.bo.TOrderTaskDetailBo;
 import com.goafanti.order.bo.TOrderTaskListBo;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.enums.ProjectNewStage;
-import com.goafanti.order.service.OrderBillService;
 import com.goafanti.order.service.OrderProjectService;
 import com.goafanti.techproject.enums.TaskState;
 @Service
@@ -207,7 +206,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 
 	@SuppressWarnings("null")
 	@Override
-	public HSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime) {
+	public XSSFWorkbook exportTaskHoursListData(String name, String taskId, String starTime, String endTime) {
 		if(endTime!=null) endTime=endTime+" 23:59:59";
 		List<TOrderTaskListBo> list=tTaskHoursMapper.getTaskHoursData(name,taskId,starTime,endTime);
 		if (list==null && list.size()==0) {
@@ -215,7 +214,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		}
 		String[] comment = {"任务编号","任务名称","订单编号","业务别类","客户名称","任务负责人","任务状态","工时"};
 		String filePath = uploadPath + "/TaskHours";
-		HSSFWorkbook wb = ExportExcelUtil.exportTaskHoursListData(list, comment, filePath);
+		XSSFWorkbook wb = ExportExcelUtil.exportTaskHoursListData(list, comment, filePath);
 		return wb;
 	}
 	

+ 43 - 2
src/main/java/com/goafanti/order/service/impl/OrderReportServiceImpl.java

@@ -3,12 +3,15 @@ package com.goafanti.order.service.impl;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.goafanti.common.dao.AdminMapper;
 import com.goafanti.common.dao.TOrderMonthReportMapper;
+import com.goafanti.common.model.Admin;
 import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -20,6 +23,8 @@ public class OrderReportServiceImpl extends BaseMybatisDao<TOrderMonthReportMapp
 	
 	@Autowired
 	private TOrderMonthReportMapper	monthReportMapper;
+	@Autowired
+	private AdminMapper adminMapper;
 	
 	@Override
 	public int insertOrderStatisticsByMonthTask() {
@@ -37,13 +42,49 @@ public class OrderReportServiceImpl extends BaseMybatisDao<TOrderMonthReportMapp
 	}
 
 	@Override
-	public HSSFWorkbook exportMonthData(OrderReportBo orderReportBo, String date) {
+	public XSSFWorkbook exportMonthData(OrderReportBo orderReportBo, String date) {
 		List<OrderReportBo> list = monthReportMapper.exportMonthData(orderReportBo);
 		if(null == list || list.size() == 0){
 			return null;
 		}
 		return ExportExcelUtil.exportOrderInfo(list, date);
 	}
+
+	@Override
+	public void checkOrderReport(Set<OrderReportBo> rbos, Set<Integer> existRows, Set<Integer> fiterRows) {
+		OrderReportBo[] bos = (OrderReportBo[]) rbos.toArray(new OrderReportBo[] {});
+		for (int i = 0; i < bos.length; i++) {
+			OrderReportBo or = bos[i];
+			// 首先通过手机号码获得adminid
+			Admin admin = adminMapper.selectByMobile(or.getMobile());
+			if(null == admin){
+				fiterRows.add(or.getRowNumber());
+			}else{
+				// 检查名字和电话是否匹配
+				if(admin.getName().equals(or.getSaleName())){
+					// 检查数据是否存在
+					or.setSalemansId(admin.getId());
+					int count = monthReportMapper.checkData(or);
+					if(count>0){
+						existRows.add(or.getRowNumber());
+					}
+				}else{
+					fiterRows.add(or.getRowNumber());
+				}
+				
+			}
+		}
+	}
+
+	@Override
+	public int saveUploadData(Set<OrderReportBo> bos) {
+		OrderReportBo[] datas = (OrderReportBo[]) bos.toArray(new OrderReportBo[] {});
+		int count = 0;
+		for (int i = 0; i < datas.length; i++) {
+			monthReportMapper.insertSelective(datas[i]);
+		}
+		return count;
+	}
 	
 	
 }