package com.java110.fee.api; import com.alibaba.fastjson.JSONObject; import com.java110.fee.bmo.importFeeDetail.IDeleteImportFeeDetailBMO; import com.java110.fee.bmo.importFeeDetail.IGetImportFeeDetailBMO; import com.java110.fee.bmo.importFeeDetail.ISaveImportFeeDetailBMO; import com.java110.fee.bmo.importFeeDetail.IUpdateImportFeeDetailBMO; import com.java110.po.importFee.MpFifthPaymentRecord; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.vo.ResultVo; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 第五次拟付实付记录接口 * 匹配原有 ImportFeeApi 代码风格 */ @RestController @RequestMapping(value = "/mpFifthPaymentRecord") public class MpFifthPaymentRecordApi { @Autowired private ISaveImportFeeDetailBMO saveImportFeeDetailBMOImpl; @Autowired private IUpdateImportFeeDetailBMO updateImportFeeDetailBMOImpl; @Autowired private IDeleteImportFeeDetailBMO deleteImportFeeDetailBMOImpl; @Autowired private IGetImportFeeDetailBMO getImportFeeDetailBMOImpl; /** * 保存第五次拟付实付记录 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/saveMpFifthPaymentRecord * @path /app/mpFifthPaymentRecord/saveMpFifthPaymentRecord */ @RequestMapping(value = "/saveMpFifthPaymentRecord", method = RequestMethod.POST) public ResponseEntity saveMpFifthPaymentRecord(@RequestBody JSONObject reqJson) { // 核心参数校验 Assert.hasKeyAndValue(reqJson, "mpId", "请求报文中未包含打印记录ID"); Assert.hasKeyAndValue(reqJson, "fifthPlannedPaymentAmount", "请求报文中未包含第五次拟付金额"); Assert.hasKeyAndValue(reqJson, "plannedPaymentDate", "请求报文中未包含拟付日期"); // 将JSON参数转换为MpFifthPaymentRecord实体类 MpFifthPaymentRecord mpFifthPaymentRecord = BeanConvertUtil.covertBean(reqJson, MpFifthPaymentRecord.class); // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return saveImportFeeDetailBMOImpl.save(mpFifthPaymentRecord); } public ResponseEntity saveMpFifthPaymentRecord(MpFifthPaymentRecord mpFifthPaymentRecord) { return saveImportFeeDetailBMOImpl.save(mpFifthPaymentRecord); } /** * 修改第五次拟付实付记录 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/updateMpFifthPaymentRecord * @path /app/mpFifthPaymentRecord/updateMpFifthPaymentRecord */ @RequestMapping(value = "/updateMpFifthPaymentRecord", method = RequestMethod.POST) public ResponseEntity updateMpFifthPaymentRecord(@RequestBody JSONObject reqJson) { // 主键校验(修改必须传id) Assert.hasKeyAndValue(reqJson, "id", "请求报文中未包含主键ID"); Assert.hasKeyAndValue(reqJson, "id", "主键ID不能为空"); // 将JSON参数转换为MpFifthPaymentRecord实体类 MpFifthPaymentRecord mpFifthPaymentRecord = BeanConvertUtil.covertBean(reqJson, MpFifthPaymentRecord.class); // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return updateImportFeeDetailBMOImpl.update(mpFifthPaymentRecord); } /** * 删除第五次拟付实付记录 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/deleteMpFifthPaymentRecord * @path /app/mpFifthPaymentRecord/deleteMpFifthPaymentRecord */ @RequestMapping(value = "/deleteMpFifthPaymentRecord", method = RequestMethod.POST) public ResponseEntity deleteMpFifthPaymentRecord(@RequestBody JSONObject reqJson) { // 必要参数校验 Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空"); Assert.hasKeyAndValue(reqJson, "id", "主键ID不能为空"); // 将JSON参数转换为MpFifthPaymentRecord实体类 MpFifthPaymentRecord mpFifthPaymentRecord = BeanConvertUtil.covertBean(reqJson, MpFifthPaymentRecord.class); // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return deleteImportFeeDetailBMOImpl.delete(mpFifthPaymentRecord); } /** * 分页查询第五次拟付实付记录列表 * * @param mpId 打印记录ID(必填) * @param page 页码 * @param row 每页条数 * @param category 类别(可选) * @param reimburser 报销人(可选) * @param startDate 开始日期(可选) * @param endDate 结束日期(可选) * @param id 主键ID(可选) * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/queryMpFifthPaymentRecord * @path /app/mpFifthPaymentRecord/queryMpFifthPaymentRecord */ @RequestMapping(value = "/queryMpFifthPaymentRecord", method = RequestMethod.GET) public ResponseEntity queryMpFifthPaymentRecord(@RequestParam(value = "mpId") String mpId, @RequestParam(value = "page") int page, @RequestParam(value = "row") int row, @RequestParam(value = "category", required = false) String category, @RequestParam(value = "reimburser", required = false) String reimburser, @RequestParam(value = "startDate", required = false) String startDate, @RequestParam(value = "endDate", required = false) String endDate, @RequestParam(value = "id", required = false) String id) { // 封装查询DTO MpFifthPaymentRecord mpFifthPaymentRecordDto = new MpFifthPaymentRecord(); mpFifthPaymentRecordDto.setPage(page); mpFifthPaymentRecordDto.setRow(row); mpFifthPaymentRecordDto.setMpId(mpId); mpFifthPaymentRecordDto.setCategory(category); mpFifthPaymentRecordDto.setReimburser(reimburser); // 设置其他查询条件 if (id != null && !id.isEmpty()) { mpFifthPaymentRecordDto.setId(id); } // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return getImportFeeDetailBMOImpl.get(mpFifthPaymentRecordDto); } @Autowired private SqlSessionTemplate sqlSessionTemplate; /** * 分页查询第五次拟付实付记录列表 * * @param mpId 打印记录ID(必填) * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/queryMpFifthPaymentRecordAll * @path /app/mpFifthPaymentRecord/queryMpFifthPaymentRecordAll */ @RequestMapping(value = "/queryMpFifthPaymentRecordAll", method = RequestMethod.GET) public ResponseEntity queryMpFifthPaymentRecordAll(@RequestParam(value = "mpId") String mpId) { // 封装查询DTO MpFifthPaymentRecord mpFifthPaymentRecordDto = new MpFifthPaymentRecord(); mpFifthPaymentRecordDto.setMpId(mpId); // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 List objects = sqlSessionTemplate.selectList("mpFifthPaymentRecordServiceDaoImpl.getMpFifthPaymentRecordInfoAll",BeanConvertUtil.beanCovertMap(mpFifthPaymentRecordDto)); List objects2 = sqlSessionTemplate.selectList("mpFifthPaymentRecordServiceDaoImpl.getMpFifthPaymentRecordInfoAll2",BeanConvertUtil.beanCovertMap(mpFifthPaymentRecordDto)); if (objects == null) { objects = new ArrayList<>(); } objects.addAll(objects2); // 核心合并操作 ResultVo resultVo = new ResultVo(objects); return new ResponseEntity(resultVo.toString(), HttpStatus.OK); } /** * 根据ID查询单条第五次拟付实付记录 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/getMpFifthPaymentRecordById * @path /app/mpFifthPaymentRecord/getMpFifthPaymentRecordById */ @RequestMapping(value = "/getMpFifthPaymentRecordById", method = RequestMethod.POST) public ResponseEntity getMpFifthPaymentRecordById(@RequestBody JSONObject reqJson) { // 主键校验 Assert.hasKeyAndValue(reqJson, "id", "请求报文中未包含主键ID"); Assert.hasKeyAndValue(reqJson, "id", "主键ID不能为空"); // 封装查询DTO MpFifthPaymentRecord mpFifthPaymentRecordDto = new MpFifthPaymentRecord(); mpFifthPaymentRecordDto.setId("id"); // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return getImportFeeDetailBMOImpl.get(mpFifthPaymentRecordDto); } /** * 根据打印记录ID查询记录 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/getMpFifthPaymentRecordByMpId * @path /app/mpFifthPaymentRecord/getMpFifthPaymentRecordByMpId */ @RequestMapping(value = "/getMpFifthPaymentRecordByMpId", method = RequestMethod.POST) public ResponseEntity getMpFifthPaymentRecordByMpId(@RequestBody JSONObject reqJson) { // 参数校验 Assert.hasKeyAndValue(reqJson, "mpId", "请求报文中未包含打印记录ID"); // 封装查询DTO MpFifthPaymentRecord mpFifthPaymentRecordDto = new MpFifthPaymentRecord(); mpFifthPaymentRecordDto.setMpId(reqJson.getString("mpId")); // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return getImportFeeDetailBMOImpl.get(mpFifthPaymentRecordDto); } /** * 查询第五次拟付实付统计信息 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/queryPaymentStatistics * @path /app/mpFifthPaymentRecord/queryPaymentStatistics */ @RequestMapping(value = "/queryPaymentStatistics", method = RequestMethod.POST) public ResponseEntity queryPaymentStatistics(@RequestBody JSONObject reqJson) { // 参数校验 Assert.hasKeyAndValue(reqJson, "mpId", "请求报文中未包含打印记录ID"); // 封装查询DTO MpFifthPaymentRecord mpFifthPaymentRecordDto = new MpFifthPaymentRecord(); mpFifthPaymentRecordDto.setMpId(reqJson.getString("mpId")); // 可选参数:时间范围 if (reqJson.containsKey("startDate")) { try { mpFifthPaymentRecordDto.setStartDate(reqJson.getDate("startDate")); } catch (Exception e) { // 日期格式转换异常处理 mpFifthPaymentRecordDto.setStartDate(null); } } if (reqJson.containsKey("endDate")) { try { mpFifthPaymentRecordDto.setEndDate(reqJson.getDate("endDate")); } catch (Exception e) { // 日期格式转换异常处理 mpFifthPaymentRecordDto.setEndDate(null); } } // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return getImportFeeDetailBMOImpl.get(mpFifthPaymentRecordDto); } /** * 查询实付与拟付对比分析 * * @param reqJson 请求参数 * @return 响应结果 * @serviceCode /mpFifthPaymentRecord/queryPaymentComparison * @path /app/mpFifthPaymentRecord/queryPaymentComparison */ @RequestMapping(value = "/queryPaymentComparison", method = RequestMethod.POST) public ResponseEntity queryPaymentComparison(@RequestBody JSONObject reqJson) { // 参数校验 Assert.hasKeyAndValue(reqJson, "mpId", "请求报文中未包含打印记录ID"); Assert.hasKeyAndValue(reqJson, "startDate", "请求报文中未包含开始日期"); Assert.hasKeyAndValue(reqJson, "endDate", "请求报文中未包含结束日期"); // 封装查询DTO MpFifthPaymentRecord mpFifthPaymentRecordDto = new MpFifthPaymentRecord(); mpFifthPaymentRecordDto.setMpId(reqJson.getString("mpId")); // 处理日期参数 try { mpFifthPaymentRecordDto.setStartDate(reqJson.getDate("startDate")); mpFifthPaymentRecordDto.setEndDate(reqJson.getDate("endDate")); } catch (Exception e) { // 日期格式转换异常处理 mpFifthPaymentRecordDto.setStartDate(null); mpFifthPaymentRecordDto.setEndDate(null); } // 可选参数:类别筛选 if (reqJson.containsKey("category")) { mpFifthPaymentRecordDto.setCategory(reqJson.getString("category")); } // 由于BMO接口使用MaintenancePayment,这里需要做适配转换 return getImportFeeDetailBMOImpl.get(mpFifthPaymentRecordDto); } }