From b89e5655ec7c6ecb1754e8c15378771c77026da6 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 22 Jan 2024 20:29:54 +0800 Subject: [PATCH] fix --- .../controller/NeuPosAdminController.java | 41 +++++++++ .../domain/po/NeuPosOrderMasterExt.java | 1 + .../domain/po/NeuPosShiftTradeMasterExt.java | 21 +++++ .../mapper/NeuPosOrderMasterExtMapper.java | 4 + .../iformall/service/NeuPosOrderService.java | 3 + .../service/impl/NeuPosOrderServiceImpl.java | 68 ++++++++++++++ .../mapper/NeuPosOrderMasterExtMapper.xml | 92 +++++++++++++++++++ 7 files changed, 230 insertions(+) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/NeuPosShiftTradeMasterExt.java diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java index 2e9b30366..80c99c7e5 100644 --- a/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java +++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java @@ -6,6 +6,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; +import com.iformall.domain.po.NeuPosShiftTradeMasterExt; import com.iformall.domain.vo.NeuPosOrderDataBVo; import com.iformall.domain.vo.NeuPosSumDataBVo; import com.iformall.service.NeuPosOrderService; @@ -284,4 +285,44 @@ public class NeuPosAdminController extends BaseController { } + + + @ApiOperation("交接班数据") + @GetMapping("shiftTradelist") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "tenantId", value = "租户号", dataType = "String", paramType = "query", required = true)}) + public ResultData shiftTradelist(@ModelAttribute NeuPosShiftTradeMasterExt example, Integer pageNum, Integer pageSize,String tenantId) { + if (!tenantValid(tenantId)) { + return new ResultData(Result.ERROR,"未安装POS系统"); + } + if (null == example.getCreateBegin() || null == example.getCreateEnd()) { + return new ResultData(Result.ERROR,"请选择时间区间"); + } + example.setOrgId(24); + PageInfo maplist = neuPosOrderService.queryShiftTradeList(example,pageNum,pageSize); + return new ResultData(maplist); + } + +// @GetMapping("exportShiftTradelist") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), +// @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), +// @ApiImplicitParam(name = "tenantId", value = "租户号", dataType = "String", paramType = "query", required = true)}) +// public void exportShiftTradelist(@ModelAttribute NeuPosShiftTradeMasterExt example,String tenantId, HttpServletRequest request, HttpServletResponse response) { +// if (!tenantValid(tenantId)) { +// return; +// } +// if (null == example.getCreateBegin() || null == example.getCreateEnd()) { +// return ; +// } +// example.setOrgId(24); +// PageInfo maplist = neuPosOrderService.queryShiftTradeList(example,1,10000); +// if (null != maplist && null != maplist.getList()) { +// neuPosOrderService.exportData(maplist.getList(),new String[] {"上班时间","退出时间","收银员","现金收银","银行卡(MISPOS)","微信(二维码)","支付宝(二维码)","上午实收","下午实收","全天实收"}, +// new String[] {"loginTime","shiftTime","username","payCount","refundAmount","refundCount","amount"},"门店pos交易汇总",new NeuPosSumDataBVo(), request, response); +// } +// } + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/NeuPosOrderMasterExt.java b/mallinkService/src/main/java/com/iformall/domain/po/NeuPosOrderMasterExt.java index 456bd07b1..85e0bb0b2 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/NeuPosOrderMasterExt.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/NeuPosOrderMasterExt.java @@ -18,4 +18,5 @@ public class NeuPosOrderMasterExt extends BaseEntity{ private Date createBegin; private Date createEnd; private List payTypeList; + private String createBy; } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/NeuPosShiftTradeMasterExt.java b/mallinkService/src/main/java/com/iformall/domain/po/NeuPosShiftTradeMasterExt.java new file mode 100644 index 000000000..d2adda987 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/NeuPosShiftTradeMasterExt.java @@ -0,0 +1,21 @@ +package com.iformall.domain.po; + +import com.iformall.domain.po.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.Date; +import java.util.List; + +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class NeuPosShiftTradeMasterExt extends BaseEntity{ + private static final long serialVersionUID = 8299224510517624828L; + private Integer orgId; + private Integer shopId; + private Date createBegin; + private Date createEnd; + private String customerNumber; +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java b/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java index 5482ea6e7..1bd728124 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java @@ -4,6 +4,8 @@ package com.iformall.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; +import com.iformall.domain.po.NeuPosShiftTradeMasterExt; + import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,6 +18,8 @@ public interface NeuPosOrderMasterExtMapper extends BaseMapper queryShopPayOrderList(NeuPosOrderMasterExt example); List queryShopPayOrderListV1(NeuPosOrderMasterExt example); + List queryShiftTradeList(NeuPosShiftTradeMasterExt example); + List queryShiftTradeSummary(NeuPosOrderMasterExt example); List queryShopPayOrderSum(NeuPosOrderMasterExt example); List queryShopPayOrderSumV1(NeuPosOrderMasterExt example); diff --git a/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java b/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java index e5319400f..9683af47e 100644 --- a/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java @@ -3,6 +3,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; +import com.iformall.domain.po.NeuPosShiftTradeMasterExt; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -20,6 +21,8 @@ public interface NeuPosOrderService { PageInfo queryShopPayOrderListByType(NeuPosOrderMasterExt example,Integer pageIndex, Integer pageSize); + PageInfo queryShiftTradeList(NeuPosShiftTradeMasterExt example,Integer pageIndex, Integer pageSize); + List queryShopPayOrderSum(NeuPosOrderMasterExt example); List queryShopPayOrderSumByType(NeuPosOrderMasterExt example); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java index c835ff1f3..e8d894d76 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java @@ -5,9 +5,12 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; +import com.iformall.domain.po.NeuPosShiftTradeMasterExt; import com.iformall.mapper.NeuPosOrderMasterExtMapper; import com.iformall.service.ExcelService; import com.iformall.service.NeuPosOrderService; +import com.iformall.utils.DateUtils; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -15,6 +18,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import java.math.BigDecimal; import java.util.*; @Service @@ -66,6 +71,69 @@ public class NeuPosOrderServiceImpl implements NeuPosOrderService { } return pageInfo; } + + @Override + public PageInfo queryShiftTradeList(NeuPosShiftTradeMasterExt example,Integer pageIndex, Integer pageSize) { + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> neuPosOrderMasterExtMapper.queryShiftTradeList(example)); + if (null == pageInfo || null == pageInfo.getList() || pageInfo.getList().size()<=0 ) { + return pageInfo; + } + List payOrderList = pageInfo.getList(); + + //3.查询支付渠道信息 + //排除不统计的渠道 + Map typeColumn = new HashMap(); + typeColumn.put("6","6payType"); + typeColumn.put("24","24payType"); + typeColumn.put("31","31payType"); + typeColumn.put("32","32payType"); + List payTypeMap = neuPosOrderMasterExtMapper.selectPayTypeList(); + List payTypeList = new ArrayList(); + Map typeMap = new HashMap(); + for (Map payt:payTypeMap) { + String payttye = (String)payt.get("pay_type"); + if (typeColumn.containsKey(payttye)) { + typeMap.put(Integer.parseInt(payttye), (String)payt.get("name")); + payTypeList.add(Integer.parseInt(payttye)); + } + } + + for (Map payOrder:payOrderList ) { + String createBy = payOrder.get("username").toString(); + Date loginTime = DateUtils.stringToDate(payOrder.get("loginTime").toString(),DateUtils.DATE_TIME_PATTERN); + Date logoutTime = DateUtils.stringToDate(payOrder.get("shiftTime").toString(),DateUtils.DATE_TIME_PATTERN); + NeuPosOrderMasterExt omq = new NeuPosOrderMasterExt(); + omq.setOrgId(example.getOrgId()); + omq.setCreateBegin(loginTime); + omq.setCreateEnd(logoutTime); + omq.setCreateBy(createBy); + List tradeList = neuPosOrderMasterExtMapper.queryShiftTradeSummary(omq); + Map currentUserMap =null; + if(tradeList.size()>0) { + currentUserMap = tradeList.get(0); + }else { + continue; + } + List payTypeTrades = new ArrayList(); + for (Integer payt:payTypeList) { + Map ptrade = new HashMap(); + ptrade.put("payType", payt); + ptrade.put("payTypeName", typeMap.get(payt).toString()); + String typeColumnName = typeColumn.get(String.valueOf(payt)); + BigDecimal paid = new BigDecimal(currentUserMap.get(typeColumnName).toString()); + BigDecimal refund = new BigDecimal(currentUserMap.get(typeColumnName+"Refund").toString()); + ptrade.put("payAmount", paid); + ptrade.put("refundAmount", refund); + ptrade.put("amount", paid.subtract(refund)); + payTypeTrades.add(ptrade); + } + payOrder.put("payTypeOrders", payTypeTrades); + payOrder.put("amountAM", currentUserMap.get("amPaidAmount").toString()); + payOrder.put("amountPM", currentUserMap.get("pmPaidAmount").toString()); + payOrder.put("totalAmount", currentUserMap.get("paidAmount").toString()); + } + return pageInfo; + } @Override public PageInfo queryShopPayOrderList(NeuPosOrderMasterExt example,Integer pageIndex, Integer pageSize) { diff --git a/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml b/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml index 602095e6e..fed3ac2ab 100644 --- a/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml +++ b/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml @@ -356,4 +356,96 @@ SELECT SELECT us.`shop`,ui.id,ui.`username`,ui.`nickname` FROM user_info ui LEFT JOIN user_shop us ON ui.id = us.`usr` WHERE ui.org = #{orgId} AND ui.activated = TRUE AND ui.username = #{username} + + + + \ No newline at end of file