报表功能查看
This commit is contained in:
parent
1b186c7587
commit
162014c18a
|
|
@ -393,7 +393,9 @@ public class OrderPlaceMobileBusinessImplV3 implements OrderPlaceMobileBusiness
|
||||||
custInfo,
|
custInfo,
|
||||||
stagePayDTO);
|
stagePayDTO);
|
||||||
unifyPayDTO.setAmount(stagePayDTO.getAmount());
|
unifyPayDTO.setAmount(stagePayDTO.getAmount());
|
||||||
unifyPayDTO.setRemark("驿站支付");
|
unifyPayDTO.setRemark(stagePayDTO.getRemark()+"支付");
|
||||||
|
//处理设备sn码问题
|
||||||
|
unifyPayDTO.setMachineSn( stagePayDTO.getMerchant());
|
||||||
return payApi.pay(unifyPayDTO);
|
return payApi.pay(unifyPayDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,4 +21,6 @@ public class StagePayMobileDTO extends OrderPayMobileDTO{
|
||||||
|
|
||||||
@ApiModelProperty("sourceType")
|
@ApiModelProperty("sourceType")
|
||||||
private Integer sourceType;
|
private Integer sourceType;
|
||||||
|
@ApiModelProperty("设备sn")
|
||||||
|
private String merchant;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.bonus.canteen.core.reportforms.beans;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrgConsume {
|
||||||
|
private Long orgId;
|
||||||
|
private String orgName; // 食堂名字
|
||||||
|
private BigDecimal reserveAmount = BigDecimal.ZERO; // APP预定金额
|
||||||
|
private BigDecimal canteenAmount = BigDecimal.ZERO; // 食堂消费
|
||||||
|
private BigDecimal superAmount = BigDecimal.ZERO; // 超市消费
|
||||||
|
private BigDecimal amount= BigDecimal.ZERO; //详情中都用这个字段做消费
|
||||||
|
private String startPayTime;//开始支付时间
|
||||||
|
private String endPayTime;//结束支付时间
|
||||||
|
private String custName;
|
||||||
|
private String custNameLike;
|
||||||
|
|
||||||
|
private String flowId;
|
||||||
|
private Integer flowType;
|
||||||
|
private String payTime;
|
||||||
|
/**
|
||||||
|
* 1:APP预定 2:APP消费 3:食堂消费 4:超市消费
|
||||||
|
*/
|
||||||
|
private Integer conSource;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
package com.bonus.canteen.core.reportforms.controller;
|
||||||
|
|
||||||
|
import com.bonus.canteen.core.reportforms.beans.OrgConsume;
|
||||||
|
import com.bonus.canteen.core.reportforms.service.reportformsService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping({"/api/v2/report"})
|
||||||
|
public class reportformsController {
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(reportformsController.class);
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private reportformsService service;
|
||||||
|
@PostMapping("/consume/list")
|
||||||
|
public List<OrgConsume> list(@RequestBody OrgConsume orgConsume) {
|
||||||
|
return service.getOrgConsumeList(orgConsume);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 食堂预订餐接口查询
|
||||||
|
* 通过区域名称查询
|
||||||
|
* @param orgConsume
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/consume/listByArea")
|
||||||
|
public List<OrgConsume> listByArea(@RequestBody OrgConsume orgConsume) {
|
||||||
|
//区域
|
||||||
|
String orgName = orgConsume.getOrgName();
|
||||||
|
// 去掉里面的“食堂”字样
|
||||||
|
if (orgName != null) {
|
||||||
|
orgName = orgName.replace("食堂", "");
|
||||||
|
orgConsume.setOrgName(orgName);
|
||||||
|
}
|
||||||
|
if(orgConsume.getConSource() == 1){
|
||||||
|
return service.getlistByH5list(orgConsume);
|
||||||
|
} else if (orgConsume.getConSource() == 3) {
|
||||||
|
return service.getlistByArealist(orgConsume);
|
||||||
|
} else if (orgConsume.getConSource() ==4 ) {
|
||||||
|
return service.getlistBySuperlist(orgConsume);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 超市预订餐接口查询
|
||||||
|
*/
|
||||||
|
@PostMapping("/consume/listBySuper")
|
||||||
|
public List<OrgConsume> listBySuper(@RequestBody OrgConsume orgConsume) {
|
||||||
|
return service.getlistBySuperlist(orgConsume);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* H5预订餐详情查询
|
||||||
|
*/
|
||||||
|
@PostMapping("/consume/listByH5")
|
||||||
|
public List<OrgConsume> listByH5(@RequestBody OrgConsume orgConsume) {
|
||||||
|
return service.getlistByH5list(orgConsume);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.bonus.canteen.core.reportforms.mapper;
|
||||||
|
|
||||||
|
import com.bonus.canteen.core.menu.vo.AppletReserveCanteenVO;
|
||||||
|
import com.bonus.canteen.core.menu.vo.AppletWeekCanteenVO;
|
||||||
|
import com.bonus.canteen.core.reportforms.beans.OrgConsume;
|
||||||
|
import org.apache.ibatis.annotations.MapKey;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface OrgConsumeMapper {
|
||||||
|
|
||||||
|
List<Map<String, Object>> selectConsumeRecords(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<Map<String, Object>> selectReserveRecords(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<Map<String, String>> selectAreaOrgMap();
|
||||||
|
|
||||||
|
List<OrgConsume> getlistByArealist(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<OrgConsume> getlistBySuperlist(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<OrgConsume> getlistByH5list(OrgConsume orgConsume);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
package com.bonus.canteen.core.reportforms.service.impl;
|
||||||
|
|
||||||
|
import com.bonus.canteen.core.reportforms.beans.OrgConsume;
|
||||||
|
import com.bonus.canteen.core.reportforms.mapper.OrgConsumeMapper;
|
||||||
|
import com.bonus.canteen.core.reportforms.service.reportformsService;
|
||||||
|
import com.bonus.common.houqin.utils.SM4EncryptUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class reportformsServiceImpl implements reportformsService {
|
||||||
|
@Resource
|
||||||
|
private OrgConsumeMapper mapper;
|
||||||
|
@Override
|
||||||
|
public List<OrgConsume> getOrgConsumeList(OrgConsume orgConsume) {
|
||||||
|
// 查询食堂、超市的所有数据信息
|
||||||
|
List<Map<String, Object>> consumeRecords = mapper.selectConsumeRecords(orgConsume);
|
||||||
|
//查询预订的订单信息
|
||||||
|
List<Map<String, Object>> reserveRecords = mapper.selectReserveRecords(orgConsume);
|
||||||
|
//查询区域关联的字段信息
|
||||||
|
List<Map<String, String>> areaOrgMaps = mapper.selectAreaOrgMap();
|
||||||
|
|
||||||
|
// area -> org 映射
|
||||||
|
Map<String, String> areaToOrg = new HashMap<>();
|
||||||
|
for (Map<String, String> map : areaOrgMaps) {
|
||||||
|
areaToOrg.put(map.get("area_name"), map.get("org_name"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化结果
|
||||||
|
Map<String, OrgConsume> resultMap = new HashMap<>();
|
||||||
|
for (Map<String, Object> r : reserveRecords) {
|
||||||
|
String orgName = (String) r.get("orgName");
|
||||||
|
BigDecimal reserveAmount = (r.get("reserveAmount") != null) ?
|
||||||
|
new BigDecimal(r.get("reserveAmount").toString()) : BigDecimal.ZERO;
|
||||||
|
|
||||||
|
OrgConsume oc = new OrgConsume();
|
||||||
|
oc.setOrgName(orgName);
|
||||||
|
oc.setReserveAmount(reserveAmount);
|
||||||
|
resultMap.put(orgName, oc);
|
||||||
|
}
|
||||||
|
// 合并消费记录
|
||||||
|
for (Map<String, Object> c : consumeRecords) {
|
||||||
|
String areaName = (String) c.get("areaName");
|
||||||
|
String conSource = (String) c.get("conSource");
|
||||||
|
BigDecimal amount = (c.get("amount") != null) ?
|
||||||
|
new BigDecimal(c.get("amount").toString()).abs() : BigDecimal.ZERO;
|
||||||
|
String orgName = areaToOrg.get(areaName);
|
||||||
|
if (orgName == null) {
|
||||||
|
continue; // 没有映射关系,跳过
|
||||||
|
}
|
||||||
|
OrgConsume oc = resultMap.getOrDefault(orgName, new OrgConsume());
|
||||||
|
oc.setOrgName(orgName);
|
||||||
|
|
||||||
|
if ("canteen".equals(conSource)) {
|
||||||
|
oc.setCanteenAmount(oc.getCanteenAmount().add(amount));
|
||||||
|
} else if ("super".equals(conSource)) {
|
||||||
|
oc.setSuperAmount(oc.getSuperAmount().add(amount));
|
||||||
|
}
|
||||||
|
resultMap.put(orgName, oc);
|
||||||
|
}
|
||||||
|
return new ArrayList<>(resultMap.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OrgConsume> getlistByArealist(OrgConsume orgConsume) {
|
||||||
|
List<OrgConsume> orgConsumes = mapper.getlistByArealist(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<OrgConsume> getlistBySuperlist(OrgConsume orgConsume) {
|
||||||
|
List<OrgConsume> orgConsumes = mapper.getlistBySuperlist(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<OrgConsume> getlistByH5list(OrgConsume orgConsume) {
|
||||||
|
List<OrgConsume> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.bonus.canteen.core.reportforms.service;
|
||||||
|
|
||||||
|
import com.bonus.canteen.core.reportforms.beans.OrgConsume;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface reportformsService {
|
||||||
|
List<OrgConsume> getOrgConsumeList(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<OrgConsume> getlistByArealist(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<OrgConsume> getlistBySuperlist(OrgConsume orgConsume);
|
||||||
|
|
||||||
|
List<OrgConsume> getlistByH5list(OrgConsume orgConsume);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue