diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java index 9b013ed8..0d152943 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/controller/reportformsController.java @@ -1,20 +1,17 @@ package com.bonus.canteen.core.reportforms.controller; - import com.bonus.canteen.core.reportforms.beans.CanteenOrg; import com.bonus.canteen.core.reportforms.beans.CanteenRecord; import com.bonus.canteen.core.reportforms.beans.OrgConsume; import com.bonus.canteen.core.reportforms.service.reportformsService; +import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.page.TableDataInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; - import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.util.List; - -import static com.bonus.common.core.utils.PageUtils.startPage; - @RestController @RequestMapping({"/api/v2/report"}) public class reportformsController extends BaseController { @@ -33,6 +30,34 @@ public class reportformsController extends BaseController { List peoplelist = service.getPeoplelist(orgConsume); return getDataTable(peoplelist); } + /** + * 人员报表查询导出功能 + * @param orgConsume + * @return + */ + @PostMapping("/consume/exportExcel") + public void exportExcel(HttpServletResponse response, CanteenRecord orgConsume) { + // 1. 查询数据 + List peoplelist = service.getPeoplelist(orgConsume); + // 2. 给 flowTypeText 赋值 + for (CanteenRecord record : peoplelist) { + //获取的金额除以100 + record.setAmount(record.getAmount()/100); + if ("110".equals(record.getFlowType())) { + record.setFlowTypeText("消费"); + } else if ("120".equals(record.getFlowType())) { + record.setFlowTypeText("补助"); + } else if ("130".equals(record.getFlowType())) { + record.setFlowTypeText("退款"); + } else { + record.setFlowTypeText(record.getFlowType()); + } + } + // 3. 导出 Excel + ExcelUtil util = new ExcelUtil<>(CanteenRecord.class); + util.exportExcel(response, peoplelist, "人员导出数据详情"); + } + /** * 食堂预订餐接口查询 * 通过区域名称查询 @@ -40,46 +65,6 @@ public class reportformsController extends BaseController { * @return */ @PostMapping("/consume/listByArea") - /*public List listByArea(@RequestBody OrgConsume orgConsume) { - //区域 - String orgName = orgConsume.getOrgName(); - // 去掉里面的“食堂”字样 - if (orgName != null) { - orgName = orgName.replace("食堂", ""); - orgConsume.setOrgName(orgName); - } - if(orgConsume.getConSource() == 1){ - if ("运检后勤".equals(orgName)) { - orgName = "运检分公司"; - orgConsume.setOrgName(orgName); - } - return service.getlistByH5list(orgConsume); - } else if (orgConsume.getConSource() == 3) { - //如果是送变电工业园食堂 修改成sbd工业园 - if ("送变电工业园".equals(orgName)) { - orgName = "sbd工业园"; - orgConsume.setOrgName(orgName); - } - return service.getlistByArealist(orgConsume); - } else if (orgConsume.getConSource() ==4 ) { - if ("送变电工业园".equals(orgName)) { - orgName = "sbd工业园"; - orgConsume.setOrgName(orgName); - } - return service.getlistBySuperlist(orgConsume); - }else if (orgConsume.getConSource() ==5){ - if ("送变电工业园".equals(orgName)) { - orgName = "sbd工业园"; - orgConsume.setOrgName(orgName); - return service.getDeductionlist(orgConsume); - } - } - else if (orgConsume.getConSource() ==2 ) { - //驿站消费 - return service.getlistByOtherlist(orgConsume); - } - return null; - }*/ public List listByArea(@RequestBody OrgConsume orgConsume) { String orgName = orgConsume.getOrgName(); Integer conSource = orgConsume.getConSource(); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/service/impl/reportformsServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/service/impl/reportformsServiceImpl.java index fe22d89a..ebf7c9b7 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/service/impl/reportformsServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/reportforms/service/impl/reportformsServiceImpl.java @@ -20,11 +20,24 @@ public class reportformsServiceImpl implements reportformsService { private OrgConsumeMapper mapper; @Override public List getOrgConsumeList(OrgConsume orgConsume) { - // 查询食堂、超市的所有数据信息 + // 查询食堂、超市、消费补扣的所有数据信息 List> consumeRecords = mapper.selectConsumeRecords(orgConsume); - //查询预订的订单信息 - List> reserveRecords = mapper.selectReserveRecords(orgConsume); - //查询区域关联的字段信息 + // 查询预定的订单信息 + List> reserveRecords = mapper.selectReserveRecords(orgConsume); + + // 判断是否包含指定的食堂,假设指定食堂的名称为 '宏源工业园食堂' + boolean containsCanteen = reserveRecords.stream() + .anyMatch(record -> "宏源工业园食堂".equals(record.get("orgName"))); + + // 如果没有找到食堂,重新查询并赋值 + if (!containsCanteen) { + List> newReserveRecords = mapper.selectReserveRecordsFromDatabase(orgConsume); + // 插入新的记录到原有的数据列表 + reserveRecords.addAll(newReserveRecords); // 保证格式一致,直接合并 + } + //针对特殊食堂退款的问题进行处理,专门写一个方法 + + //查询区域关联的字段信息 List> areaOrgMaps = mapper.selectAreaOrgMap(); // area -> org 映射 @@ -78,9 +91,6 @@ public class reportformsServiceImpl implements reportformsService { } resultMap.put(orgName, oc); } - //处理驿站退款情况逻辑 - // int yzsum = mapper.yzSumMoney(orgConsume); - return new ArrayList<>(resultMap.values()); } @@ -135,14 +145,24 @@ public class reportformsServiceImpl implements reportformsService { } @Override public List getlistByH5list(OrgConsume orgConsume) { - List orgConsumes = mapper.getlistByH5list(orgConsume) + if ("宏源工业园".equals(orgConsume.getOrgName())) { + // 对 "宏源工业园" 使用专门的查询逻辑 + return getListForH5Special(orgConsume); + } else { + // 使用原有的查询逻辑 + return getListByH5list(orgConsume); + } + } + private List getListForH5Special(OrgConsume orgConsume) { + // 专门处理 "宏源工业园" 的查询逻辑 + List orgConsumes = mapper.getlistForH5Special(orgConsume) .stream() .peek(c -> { if (c.getCustName() != null && !c.getCustName().isEmpty()) { try { c.setCustName(SM4EncryptUtils.sm4Decrypt(c.getCustName())); } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } } }) @@ -150,6 +170,22 @@ public class reportformsServiceImpl implements reportformsService { return orgConsumes; } + private List getListByH5list(OrgConsume orgConsume) { + // 使用原有的查询逻辑 + List orgConsumes = mapper.getlistByH5list(orgConsume) + .stream() + .peek(c -> { + if (c.getCustName() != null && !c.getCustName().isEmpty()) { + try { + c.setCustName(SM4EncryptUtils.sm4Decrypt(c.getCustName())); + } catch (Exception e) { + e.printStackTrace(); + } + } + }) + .collect(Collectors.toList()); + return orgConsumes; + } @Override public List getlistByOtherlist(OrgConsume orgConsume) { List orgConsumes = mapper.getlistByOtherlist(orgConsume) diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml new file mode 100644 index 00000000..bf25c50d --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/reportforms/OrgConsumerMapper.xml @@ -0,0 +1,766 @@ + + + + + + + + + + + + + + + + + + + + +