fanxw 11 달 전
부모
커밋
996333bd68

+ 10 - 3
src/main/java/com/chinaitop/depot/keeperAccount/controller/StorageFcbgzController.java

@@ -138,13 +138,20 @@ public class StorageFcbgzController {
138 138
 			@ApiImplicitParam(name = "jznd", value = "记账年度", required=true, paramType = "query"),
139 139
 			@ApiImplicitParam(name = "orgName", value = "粮库名称", required=true, paramType = "query"),
140 140
 			@ApiImplicitParam(name = "cfhwmc", value = "仓房货位名称", required=true, paramType = "query"),
141
-			@ApiImplicitParam(name="ylorcpl", value="原粮或者成品粮(0:原粮,1:成品粮)", paramType="query")
141
+			@ApiImplicitParam(name="ylorcpl", value="原粮或者成品粮(0:原粮,1:成品粮)", required=true, paramType="query")
142 142
 	})
143 143
 	public void  exportFcbgz(HttpServletResponse response,HttpServletRequest request,
144 144
 										 Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc, String ylorcpl){
145 145
 		try {
146
-			HSSFWorkbook workbook = storageFcbgzService.exportFcbgz(ch, hwh, lsxz, jznd, orgName, cfhwmc, ylorcpl);
147
-			String fileName = "分仓保管账报表";
146
+			HSSFWorkbook workbook = null;
147
+			String fileName = "";
148
+			if ("0".equals(ylorcpl)) {
149
+				workbook = storageFcbgzService.exportYlFcbgz(ch, hwh, lsxz, jznd, orgName, cfhwmc, ylorcpl);
150
+				fileName = "原粮分仓保管账报表";
151
+			} else if ("1".equals(ylorcpl)) {
152
+				workbook = storageFcbgzService.exportCplFcbgz(ch, hwh, lsxz, jznd, orgName, cfhwmc, ylorcpl);
153
+				fileName = "成品粮分仓保管账报表";
154
+			}
148 155
 			// 获取输出流
149 156
 			OutputStream os = response.getOutputStream();
150 157
 			// 重置输出流

+ 18 - 2
src/main/java/com/chinaitop/depot/keeperAccount/service/StorageFcbgzService.java

@@ -77,7 +77,7 @@ public interface StorageFcbgzService {
77 77
 			String jzrq, String crklx) throws Exception;
78 78
 
79 79
 	/**
80
-	 * 导出一个货位的分仓保管账报表数据
80
+	 * 导出一个货位的原粮分仓保管账报表数据
81 81
 	 * @param ch 仓房ID
82 82
 	 * @param hwh 货位ID
83 83
 	 * @param lsxz 粮食性质
@@ -88,7 +88,22 @@ public interface StorageFcbgzService {
88 88
 	 * @return
89 89
 	 * @throws Exception
90 90
 	 */
91
-	HSSFWorkbook exportFcbgz(Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc, String ylorcpl) throws Exception;
91
+	HSSFWorkbook exportYlFcbgz(Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc, String ylorcpl) throws Exception;
92
+
93
+	/**
94
+	 * 导出一个货位的成品粮分仓保管账报表数据
95
+	 * @param ch 仓房ID
96
+	 * @param hwh 货位ID
97
+	 * @param lsxz 粮食性质
98
+	 * @param jznd 记账年度
99
+	 * @param orgName 粮库名称
100
+	 * @param cfhwmc 仓房货位名称
101
+	 * @param ylorcpl 原粮或成品粮(0:原粮,1:成品粮)
102
+	 * @return
103
+	 * @throws Exception
104
+	 */
105
+	HSSFWorkbook exportCplFcbgz(Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc,
106
+			String ylorcpl) throws Exception;
92 107
 
93 108
 	/**
94 109
 	 * 保管总账查询明细
@@ -113,4 +128,5 @@ public interface StorageFcbgzService {
113 128
 	 */
114 129
 	void createHwsnjzData(String orgId, Integer ch, Integer hwh, String jznd, Integer lsxz, String ylorcpl);
115 130
 
131
+
116 132
 }

+ 291 - 1
src/main/java/com/chinaitop/depot/keeperAccount/service/impl/StorageFcbgzServiceImpl.java

@@ -302,7 +302,7 @@ public class StorageFcbgzServiceImpl implements StorageFcbgzService {
302 302
 
303 303
 	@SuppressWarnings("unchecked")
304 304
 	@Override
305
-	public HSSFWorkbook exportFcbgz(Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc, String ylorcpl) throws Exception {
305
+	public HSSFWorkbook exportYlFcbgz(Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc, String ylorcpl) throws Exception {
306 306
 
307 307
 		Map<String,Object> map = queryJzList(ch, hwh, lsxz, jznd, ylorcpl);
308 308
 		List<StorageFcbgz> list = (List<StorageFcbgz>) map.get("list");
@@ -597,6 +597,296 @@ public class StorageFcbgzServiceImpl implements StorageFcbgzService {
597 597
 		
598 598
 		return wb;
599 599
 	}
600
+	
601
+	@SuppressWarnings("unchecked")
602
+	@Override
603
+	public HSSFWorkbook exportCplFcbgz(Integer ch, Integer hwh, Integer lsxz, String jznd, String orgName, String cfhwmc, String ylorcpl) throws Exception {
604
+
605
+		Map<String,Object> map = queryJzList(ch, hwh, lsxz, jznd, ylorcpl);
606
+		List<StorageFcbgz> list = (List<StorageFcbgz>) map.get("list");
607
+		
608
+		HSSFWorkbook wb = new HSSFWorkbook();
609
+		String name = "报表";
610
+		HSSFSheet sheet = wb.createSheet(name);
611
+		// CellRangeAddress坐标顺序:起始行、结束行、起始列、结束列,从0开始
612
+		//第一行
613
+		CellRangeAddress rangeAddress = new CellRangeAddress(0,0,0,11);//第一行标题:天津市储备粮分仓保管账
614
+
615
+		//第二行
616
+		CellRangeAddress rangeAddress1 = new CellRangeAddress(1,1,0,2);//第一列:单位名称
617
+		CellRangeAddress rangeAddress2 = new CellRangeAddress(1,1,3,5);//第二列:仓号-货位
618
+		CellRangeAddress rangeAddress3 = new CellRangeAddress(1,1,6,8);//第三列:记账年度
619
+		CellRangeAddress rangeAddress4 = new CellRangeAddress(1,1,9,11);//第四列:单位
620
+
621
+		//第三行
622
+		CellRangeAddress rangeAddress5 = new CellRangeAddress(2,2,0,0);//记账日期
623
+		CellRangeAddress rangeAddress6 = new CellRangeAddress(2,2,1,1);//记账凭证
624
+		CellRangeAddress rangeAddress7 = new CellRangeAddress(2,2,2,2);//摘要
625
+		CellRangeAddress rangeAddress8 = new CellRangeAddress(2,2,3,3);//粮食性质
626
+		CellRangeAddress rangeAddress9 = new CellRangeAddress(2,2,4,4);//粮食品种
627
+		CellRangeAddress rangeAddress10 = new CellRangeAddress(2,2,5,5);//收入数量
628
+		CellRangeAddress rangeAddress11 = new CellRangeAddress(2,2,6,6);//支出数量
629
+//		CellRangeAddress rangeAddress12 = new CellRangeAddress(2,2,7,7);//损耗
630
+//		CellRangeAddress rangeAddress13 = new CellRangeAddress(2,2,8,8);//溢余
631
+//		CellRangeAddress rangeAddress14 = new CellRangeAddress(2,2,9,9);//库存数量
632
+//		CellRangeAddress rangeAddress15 = new CellRangeAddress(2,2,10,10);//记账员
633
+//		CellRangeAddress rangeAddress16 = new CellRangeAddress(2,2,11,11);//审核人
634
+		CellRangeAddress rangeAddress12 = new CellRangeAddress(2,2,7,7);//库存数量
635
+		CellRangeAddress rangeAddress13 = new CellRangeAddress(2,2,8,8);//记账员
636
+		CellRangeAddress rangeAddress14 = new CellRangeAddress(2,2,9,9);//审核人
637
+		sheet.addMergedRegion(rangeAddress);
638
+		sheet.addMergedRegion(rangeAddress1);
639
+		sheet.addMergedRegion(rangeAddress2);
640
+		sheet.addMergedRegion(rangeAddress3);
641
+		sheet.addMergedRegion(rangeAddress4);
642
+		sheet.addMergedRegion(rangeAddress5);
643
+		sheet.addMergedRegion(rangeAddress6);
644
+		sheet.addMergedRegion(rangeAddress7);
645
+		sheet.addMergedRegion(rangeAddress8);
646
+		sheet.addMergedRegion(rangeAddress9);
647
+		sheet.addMergedRegion(rangeAddress10);
648
+		sheet.addMergedRegion(rangeAddress11);
649
+		sheet.addMergedRegion(rangeAddress12);
650
+		sheet.addMergedRegion(rangeAddress13);
651
+		sheet.addMergedRegion(rangeAddress14);
652
+		sheet.setColumnWidth(0, 13*256);
653
+		sheet.setColumnWidth(1, 20*256);
654
+		sheet.setColumnWidth(2, 25*256);
655
+		sheet.setColumnWidth(3, 10*256);
656
+		sheet.setColumnWidth(4, 20*256);
657
+		sheet.setColumnWidth(5, 20*256);
658
+		sheet.setColumnWidth(6, 15*256);
659
+		sheet.setColumnWidth(7, 15*256);
660
+//		sheet.setColumnWidth(8, 15*256);
661
+//		sheet.setColumnWidth(9, 15*256);
662
+//		sheet.setColumnWidth(10, 25*256);
663
+//		sheet.setColumnWidth(11, 25*256);
664
+		sheet.setColumnWidth(8, 25*256);
665
+		sheet.setColumnWidth(9, 25*256);
666
+
667
+		//标题样式
668
+		HSSFCellStyle contentStyle = wb.createCellStyle();
669
+		HSSFFont contentFont = wb.createFont();
670
+		contentFont.setFontName("黑体");
671
+		contentFont.setFontHeightInPoints((short) 12);
672
+		contentStyle.setFont(contentFont);
673
+		contentStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
674
+		contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
675
+
676
+		//普通数据行样式
677
+		HSSFCellStyle titleStyle = wb.createCellStyle();
678
+		HSSFFont titleFont = wb.createFont();
679
+		titleFont.setFontName("宋体");
680
+		titleFont.setFontHeightInPoints((short) 12);
681
+		titleStyle.setFont(titleFont);
682
+		titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
683
+
684
+		//合计和结转行的第一列样式
685
+		HSSFCellStyle hjRowStyle = wb.createCellStyle();
686
+		HSSFFont htRowFont = wb.createFont();
687
+		htRowFont.setFontName("宋体");
688
+		htRowFont.setFontHeightInPoints((short) 12);
689
+		hjRowStyle.setFont(htRowFont);
690
+		hjRowStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
691
+
692
+		//第一行
693
+		HSSFRow sheetRow0 = sheet.createRow(0);
694
+		HSSFCell row0cell0 = sheetRow0.createCell(0);
695
+		String titles = "";
696
+		if(lsxz == 6877 || lsxz == 6878) {
697
+			titles = "天津市储备粮分仓保管账";
698
+		} else if(lsxz == 3052) {
699
+			titles = "天津市商品粮分仓保管账";
700
+		}
701
+		row0cell0.setCellValue(titles);
702
+		row0cell0.setCellStyle(contentStyle);
703
+
704
+		//第二行
705
+		HSSFRow sheetRow1 = sheet.createRow(1);
706
+		HSSFCell row1cell0 = sheetRow1.createCell(0);
707
+		HSSFCell row1cell1 = sheetRow1.createCell(3);
708
+		HSSFCell row1cell2 = sheetRow1.createCell(6);
709
+		HSSFCell row1cell3 = sheetRow1.createCell(9);
710
+		row1cell0.setCellStyle(hjRowStyle);
711
+		row1cell1.setCellStyle(hjRowStyle);
712
+		row1cell2.setCellStyle(hjRowStyle);
713
+		row1cell3.setCellStyle(hjRowStyle);
714
+		row1cell0.setCellValue("单位名称:"+orgName);
715
+		row1cell1.setCellValue("仓号-货位:"+cfhwmc);
716
+		row1cell2.setCellValue("记账年度:"+jznd);
717
+		row1cell3.setCellValue("单位:公斤");
718
+
719
+		//第三行
720
+		HSSFRow sheetRow2 = sheet.createRow(2);
721
+		HSSFCell row2cell0 = sheetRow2.createCell(0);
722
+		HSSFCell row2cell1 = sheetRow2.createCell(1);
723
+		HSSFCell row2cell2 = sheetRow2.createCell(2);
724
+		HSSFCell row2cell3 = sheetRow2.createCell(3);
725
+		HSSFCell row2cell4 = sheetRow2.createCell(4);
726
+		HSSFCell row2cell5 = sheetRow2.createCell(5);
727
+		HSSFCell row2cell6 = sheetRow2.createCell(6);
728
+		HSSFCell row2cell7 = sheetRow2.createCell(7);
729
+		HSSFCell row2cell8 = sheetRow2.createCell(8);
730
+		HSSFCell row2cell9 = sheetRow2.createCell(9);
731
+//		HSSFCell row2cell10 = sheetRow2.createCell(10);
732
+//		HSSFCell row2cell11 = sheetRow2.createCell(11);
733
+		row2cell0.setCellStyle(contentStyle);
734
+		row2cell1.setCellStyle(contentStyle);
735
+		row2cell2.setCellStyle(contentStyle);
736
+		row2cell3.setCellStyle(contentStyle);
737
+		row2cell4.setCellStyle(contentStyle);
738
+		row2cell5.setCellStyle(contentStyle);
739
+		row2cell6.setCellStyle(contentStyle);
740
+		row2cell7.setCellStyle(contentStyle);
741
+		row2cell8.setCellStyle(contentStyle);
742
+		row2cell9.setCellStyle(contentStyle);
743
+//		row2cell10.setCellStyle(contentStyle);
744
+//		row2cell11.setCellStyle(contentStyle);
745
+		row2cell0.setCellValue("记账日期");
746
+		row2cell1.setCellValue("记账凭证");
747
+		row2cell2.setCellValue("摘要");
748
+		row2cell3.setCellValue("粮食性质");
749
+		row2cell4.setCellValue("粮食品种");
750
+		row2cell5.setCellValue("收入数量");
751
+		row2cell6.setCellValue("支出数量");
752
+//		row2cell7.setCellValue("损耗");
753
+//		row2cell8.setCellValue("溢余");
754
+//		row2cell9.setCellValue("库存数量");
755
+//		row2cell10.setCellValue("记账员");
756
+//		row2cell11.setCellValue("审核人");
757
+		row2cell7.setCellValue("库存数量");
758
+		row2cell8.setCellValue("记账员");
759
+		row2cell9.setCellValue("审核人");
760
+
761
+		int rowNum = 2;
762
+		StorageFcbgz f = null;
763
+		for (int i = 0; i < list.size(); i++) {
764
+			f = list.get(i);
765
+			if (i == 0) {//第一行
766
+//				CellRangeAddress rowsAddress = new CellRangeAddress(3,3,0,11);//
767
+				CellRangeAddress rowsAddress = new CellRangeAddress(3,3,0,9);
768
+				sheet.addMergedRegion(rowsAddress);
769
+				HSSFRow hssfRow = sheet.createRow(++rowNum);
770
+				HSSFCell hssfCell1 = hssfRow.createCell(0);
771
+				hssfCell1.setCellStyle(hjRowStyle);
772
+				hssfCell1.setCellValue("上年结转:"+f.getKcsl());
773
+			} else if (i == list.size()-1) {//最后一行
774
+				CellRangeAddress rowsAddress0 = new CellRangeAddress(i+3,i+3,0,0);
775
+				sheet.addMergedRegion(rowsAddress0);
776
+				CellRangeAddress rowsAddress1 = new CellRangeAddress(i+3,i+3,1,6);
777
+				sheet.addMergedRegion(rowsAddress1);
778
+				CellRangeAddress rowsAddress2 = new CellRangeAddress(i+3,i+3,7,7);
779
+				sheet.addMergedRegion(rowsAddress2);
780
+				CellRangeAddress rowsAddress3 = new CellRangeAddress(i+3,i+3,8,8);
781
+				sheet.addMergedRegion(rowsAddress3);
782
+				CellRangeAddress rowsAddress4 = new CellRangeAddress(i+3,i+3,9,9);
783
+				sheet.addMergedRegion(rowsAddress4);
784
+				HSSFRow hssfRow = sheet.createRow(++rowNum);
785
+				HSSFCell hssfCell0 = hssfRow.createCell(0);
786
+				hssfCell0.setCellStyle(hjRowStyle);
787
+				hssfCell0.setCellValue("结转下年");
788
+				HSSFCell hssfCell1 = hssfRow.createCell(1);
789
+				hssfCell1.setCellStyle(titleStyle);
790
+				hssfCell1.setCellValue("");
791
+				HSSFCell hssfCell2 = hssfRow.createCell(7);
792
+				hssfCell2.setCellStyle(titleStyle);
793
+				hssfCell2.setCellValue(f.getKcsl().toString());
794
+				HSSFCell hssfCell3 = hssfRow.createCell(8);
795
+				hssfCell3.setCellStyle(titleStyle);
796
+				hssfCell3.setCellValue(f.getJzr());
797
+				HSSFCell hssfCell4 = hssfRow.createCell(9);
798
+				hssfCell4.setCellStyle(titleStyle);
799
+				hssfCell4.setCellValue(f.getShr());
800
+			} else {
801
+				HSSFRow hssfRow = sheet.createRow(++rowNum);
802
+				if ("0".equals(f.getDataType())) {//普通数据
803
+					HSSFCell hssfCell0 = hssfRow.createCell(0);
804
+					hssfCell0.setCellStyle(titleStyle);
805
+					hssfCell0.setCellValue(ParameterUtil.date2string1(f.getJzrq()));
806
+					HSSFCell hssfCell1 = hssfRow.createCell(1);
807
+					hssfCell1.setCellStyle(titleStyle);
808
+					hssfCell1.setCellValue(f.getJzpz());
809
+					HSSFCell hssfCell2 = hssfRow.createCell(2);
810
+					hssfCell2.setCellStyle(titleStyle);
811
+					hssfCell2.setCellValue(f.getJzzy());
812
+					HSSFCell hssfCell3 = hssfRow.createCell(3);
813
+					hssfCell3.setCellStyle(titleStyle);
814
+					String lyxzjson = basicFeignClient.getEnumData(f.getLyxz());
815
+					String lyxz = null;
816
+					if (null != lyxzjson && !"".equals(lyxzjson)) {
817
+						JSONObject enum_obj = JSONObject.parseObject(lyxzjson);
818
+						lyxz = enum_obj.get("enumname")+"";//年份字典
819
+					}
820
+					hssfCell3.setCellValue(lyxz);
821
+					HSSFCell hssfCell4 = hssfRow.createCell(4);
822
+					hssfCell4.setCellStyle(titleStyle);
823
+					String mxpzjson = basicFeignClient.getEnumData(f.getMxpz());
824
+					String mxpz = null;
825
+					if (null != mxpzjson && !"".equals(mxpzjson)) {
826
+						JSONObject enum_obj = JSONObject.parseObject(mxpzjson);
827
+						mxpz = enum_obj.get("enumname")+"";//年份字典
828
+					}
829
+					hssfCell4.setCellValue(mxpz);
830
+					HSSFCell hssfCell5 = hssfRow.createCell(5);
831
+					hssfCell5.setCellStyle(titleStyle);
832
+					hssfCell5.setCellValue(f.getSrsl().toString());
833
+					HSSFCell hssfCell6 = hssfRow.createCell(6);
834
+					hssfCell6.setCellStyle(titleStyle);
835
+					hssfCell6.setCellValue(f.getZcsl().toString());
836
+					HSSFCell hssfCell7 = hssfRow.createCell(7);
837
+					hssfCell7.setCellStyle(titleStyle);
838
+					hssfCell7.setCellValue(f.getKcsl().toString());
839
+					HSSFCell hssfCell8 = hssfRow.createCell(8);
840
+					hssfCell8.setCellStyle(titleStyle);
841
+					hssfCell8.setCellValue(f.getJzr());
842
+					HSSFCell hssfCell9 = hssfRow.createCell(9);
843
+					hssfCell9.setCellStyle(titleStyle);
844
+					hssfCell9.setCellValue(f.getShr());
845
+				}
846
+				if ("1".equals(f.getDataType())) {//合计数据
847
+					CellRangeAddress rowsAddress0 = new CellRangeAddress(i+3,i+3,0,0);//第一列
848
+					sheet.addMergedRegion(rowsAddress0);
849
+					CellRangeAddress rowsAddress1 = new CellRangeAddress(i+3,i+3,1,4);//合并格
850
+					sheet.addMergedRegion(rowsAddress1);
851
+					CellRangeAddress rowsAddress2 = new CellRangeAddress(i+3,i+3,5,5);//收入数量
852
+					sheet.addMergedRegion(rowsAddress2);
853
+					CellRangeAddress rowsAddress3 = new CellRangeAddress(i+3,i+3,6,6);//支出数量
854
+					sheet.addMergedRegion(rowsAddress3);
855
+					CellRangeAddress rowsAddress4 = new CellRangeAddress(i+3,i+3,7,7);//库存数量
856
+					sheet.addMergedRegion(rowsAddress4);
857
+					CellRangeAddress rowsAddress5 = new CellRangeAddress(i+3,i+3,8,8);//记账员
858
+					sheet.addMergedRegion(rowsAddress5);
859
+					CellRangeAddress rowsAddress6 = new CellRangeAddress(i+3,i+3,9,9);//审核人
860
+					sheet.addMergedRegion(rowsAddress6);
861
+
862
+					HSSFCell hssfCell0 = hssfRow.createCell(0);
863
+					hssfCell0.setCellStyle(hjRowStyle);
864
+					hssfCell0.setCellValue(f.getSjfm().substring(5,7)+"月合计");
865
+					
866
+					HSSFCell hssfCell1 = hssfRow.createCell(1);
867
+					hssfCell1.setCellStyle(titleStyle);
868
+					hssfCell1.setCellValue("");
869
+					HSSFCell hssfCell2 = hssfRow.createCell(5);
870
+					hssfCell2.setCellStyle(titleStyle);
871
+					hssfCell2.setCellValue(f.getSrsl().toString());
872
+					HSSFCell hssfCell3 = hssfRow.createCell(6);
873
+					hssfCell3.setCellStyle(titleStyle);
874
+					hssfCell3.setCellValue(f.getZcsl().toString());
875
+					HSSFCell hssfCell4 = hssfRow.createCell(7);
876
+					hssfCell4.setCellStyle(titleStyle);
877
+					hssfCell4.setCellValue(f.getKcsl().toString());
878
+					HSSFCell hssfCell5 = hssfRow.createCell(8);
879
+					hssfCell5.setCellStyle(titleStyle);
880
+					hssfCell5.setCellValue(f.getJzr());
881
+					HSSFCell hssfCell6 = hssfRow.createCell(9);
882
+					hssfCell6.setCellStyle(titleStyle);
883
+					hssfCell6.setCellValue(f.getShr());
884
+				}
885
+			}
886
+		}
887
+		
888
+		return wb;
889
+	}
600 890
 
601 891
 	@Override
602 892
 	public List<StorageFcbgz> selectFcbgzDetail(Integer lsxz, Integer lspz, String jzzy, String jzyf, String jznd, String orgId) throws Exception {