Selaa lähdekoodia

经营报表修改

周箭河 4 vuotta sitten
vanhempi
commit
ef1b81f907

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectChangeDao.java

@@ -57,4 +57,12 @@ public interface SubjectChangeDao extends BaseDAO<Integer, SubjectChange> {
      * @return
      */
     List<SubjectChange> getStudentGoods(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 获取学生待支付的声部更改
+     * @param studentId
+     * @param musicGroupId
+     * @return
+     */
+    SubjectChange getStudentWaitPay(@Param("studentId") Integer studentId, @Param("musicGroupId") String musicGroupId);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -210,6 +210,10 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
     @Override
     @Transactional(rollbackFor = Exception.class)
     public SubjectChange addChange(SubjectChange subjectChange) {
+        SubjectChange studentWaitPay = subjectChangeDao.getStudentWaitPay(subjectChange.getStudentId(), subjectChange.getMusicGroupId());
+        if(studentWaitPay != null){
+            throw new BizException("已有未支付的声部更改,请勿重复创建");
+        }
         Date nowDate = new Date();
         SubjectChange studentOriginal = getStudentOriginal(subjectChange.getStudentId(), subjectChange.getMusicGroupId());
         subjectChange.setOriginalCost(studentOriginal.getOriginalCost());

+ 8 - 1
mec-biz/src/main/resources/config/mybatis/SubjectChangeMapper.xml

@@ -206,7 +206,7 @@
         SELECT *
         FROM subject_change
         WHERE music_group_id_ = #{musicGroupId}
-          AND status_ = 0
+          AND status_ IN (0, 1)
     </select>
 
     <select id="queryPage" resultMap="SubjectChange">
@@ -287,4 +287,11 @@
             GROUP BY student_id_
         )
     </select>
+    <select id="getStudentWaitPay" resultMap="SubjectChange">
+        SELECT *
+        FROM subject_change
+        WHERE music_group_id_ = #{musicGroupId}
+          AND student_id_ = #{studentId}
+          AND status_ IN (0, 1) LIMIT 1
+    </select>
 </mapper>

+ 82 - 0
mec-util/src/main/java/com/ym/mec/util/excel/POIUtil.java

@@ -672,4 +672,86 @@ public class POIUtil {
 		return map;
 	}
 
+
+	/**
+	 * 将数据集dataset导出到fileName文件中
+	 *
+	 * @param headColumns  导出文件的列名
+	 * @param fieldColumns
+	 * @param dataset      数据源
+	 * @return
+	 * @throws IOException
+	 * @throws NoSuchMethodException
+	 * @throws InvocationTargetException
+	 * @throws IllegalAccessException
+	 */
+	public static <T> HSSFWorkbook multipleSheetExportExcel(String[] headColumns, String[] fieldColumns, List<T> dataset,HSSFWorkbook workbook) throws IOException, IllegalAccessException,
+			InvocationTargetException, NoSuchMethodException {
+		if (headColumns == null) {
+			throw new UtilException("excel列名不能为空");
+		}
+		if (dataset == null) {
+			throw new UtilException("数据集不能为空");
+		}
+		/*if (dataset.size() > MAX_DATA_SIZE) {
+			throw new UtilException("数据集太大,不能导出.最大数据集不能超过" + MAX_DATA_SIZE);
+		}*/
+		if(workbook == null) {
+			workbook = new HSSFWorkbook();
+		}
+		HSSFCellStyle style = workbook.createCellStyle(); // 获取单元格样式
+		/************** 设置单元格样式 *************/
+		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直
+		style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平
+		style.setWrapText(true);
+		HSSFFont font = workbook.createFont();
+		font.setColor(HSSFFont.COLOR_NORMAL);
+		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+		style.setFont(font);
+
+		HSSFSheet sheet = workbook.createSheet(); // 创建sheet
+		// 设置表头
+		// 创建第一行
+		HSSFRow row1 = sheet.createRow(0);
+		HSSFCell cell = null;
+		for (int i = 0; i < headColumns.length; i++) {
+			// 创建列
+			cell = row1.createCell(i);
+			// 定义单元格为字符串类型
+			cell.setCellType(HSSFCell.CELL_TYPE_STRING);
+			// 设置单元格的样式
+			cell.setCellStyle(style);
+			// 设置单元格的值
+			cell.setCellValue(headColumns[i]);
+		}
+		HSSFRow row = null;
+		// 添加数据
+		T data = null;
+		Object obj = null;
+		for (int i = 1; i <= dataset.size(); i++) {
+			data = dataset.get(i - 1);
+			if (data != null) {
+				row = sheet.createRow(i);
+				for (int j = 0; j < fieldColumns.length; j++) {
+					cell = row.createCell(j);
+					try {
+						obj = PropertyUtils.getNestedProperty(data, fieldColumns[j]);
+						if (obj instanceof Date) {
+							obj = sdf.format(obj);
+						}
+					} catch (NestedNullException e) {
+						LOGGER.warn(e.getMessage());
+						obj = null;
+					}
+					if (obj != null) {
+						cell.setCellValue(obj.toString());
+					} else {
+						cell.setCellValue("");
+					}
+				}
+			}
+		}
+		return workbook;
+	}
+
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/OperatingReportController.java

@@ -105,7 +105,7 @@ public class OperatingReportController extends BaseController {
 
             String[] header = {"分部","销售收入(元)","服务收入(元)","业务退费(元)","收入合计(元)","销售成本(元)","固定支出(元)", "变动支出(元)", "分摊费用(元)", "成本费用合计(元)", "利润(元)"};
             String[] body = {"organName", "schoolName", "sellAmount", "serviceAmount", "refundAmount", "incomeTotal", "sellCost","expensesAmount","variableCost","distributionAmount","costAmount","profit"};
-            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList.getRows());
+            HSSFWorkbook workbook = POIUtil.multipleSheetExportExcel(header, body, pageList.getRows(),null);
 
 
             String[] header2 = {"分部","学校","销售收入(元)","服务收入(元)","业务退费(元)","收入合计(元)","销售成本(元)","固定支出(元)", "变动支出(元)", "分摊费用(元)", "成本费用合计(元)", "利润(元)"};