diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCustomerUserController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCustomerUserController.java index d37648903..d65b12235 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCustomerUserController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCustomerUserController.java @@ -42,6 +42,8 @@ import com.xdadan.erp.common.utils.StringUtils; import com.xdadan.erp.common.utils.poi.ExcelUtil; import com.xdadan.erp.emis.service.IEmisCustomerUserService; +import com.xdadan.erp.emis.domain.EmisWaybill; +import com.xdadan.erp.emis.domain.vo.MonthlyCustomerShipmentStatVO; /** * 快递客户用户Controller @@ -477,4 +479,47 @@ public class EmisCustomerUserController extends EmisBaseController { return toAjax(emisCustomerUserService.deleteEmisCustomerUserByIds(ids)); } + + /** + * 查询月结客户出货统计 + */ + @PreAuthorize("@ss.hasPermi('emis:emisCustomerUser:monthlyShipmentStat')") + @GetMapping("/monthlyShipmentStat") + public TableDataInfo monthlyShipmentStat(EmisWaybill emisWaybill) { + startPage(); + // 设置权限参数 + setPrivParams(emisWaybill); + List list = emisCustomerUserService + .selectMonthlyCustomerShipmentStat(emisWaybill); + return getDataTable(list); + } + + /** + * 查询月结客户出货明细 + */ + @PreAuthorize("@ss.hasPermi('emis:emisCustomerUser:monthlyShipmentDetail')") + @GetMapping("/monthlyShipmentDetail") + public TableDataInfo monthlyShipmentDetail(EmisWaybill emisWaybill) { + startPage(); + // 设置权限参数 + setPrivParams(emisWaybill); + List list = emisCustomerUserService.selectMonthlyCustomerShipmentDetail(emisWaybill); + return getDataTable(list); + } + + /** + * 导出月结客户出货统计 + */ + @PreAuthorize("@ss.hasPermi('emis:emisCustomerUser:export')") + @Log(title = "月结客户出货统计", businessType = BusinessType.EXPORT) + @PostMapping("/exportMonthlyShipmentStat") + public void exportMonthlyShipmentStat(HttpServletResponse response, EmisWaybill emisWaybill) { + // 设置权限参数 + setPrivParams(emisWaybill); + List list = emisCustomerUserService + .selectMonthlyCustomerShipmentStat(emisWaybill); + ExcelUtil util = new ExcelUtil( + MonthlyCustomerShipmentStatVO.class); + util.exportExcel(response, list, "月结客户出货统计"); + } } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java index 8c7a3f161..659a5d797 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java @@ -363,4 +363,20 @@ public interface EmisWaybillMapper extends BaseMapper * @return 运单列表 */ List selectProblemWaybillsForResubmit(EmisWaybill emisWaybill); + + /** + * 查询月结客户出货统计 + * + * @param emisWaybill 查询条件 + * @return 统计结果列表 + */ + List selectMonthlyCustomerShipmentStat(EmisWaybill emisWaybill); + + /** + * 查询月结客户出货明细 + * + * @param emisWaybill 查询条件 + * @return 运单明细列表 + */ + List selectMonthlyCustomerShipmentDetail(EmisWaybill emisWaybill); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCustomerUserService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCustomerUserService.java index 7f6311e17..e3acbf6e8 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCustomerUserService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCustomerUserService.java @@ -11,6 +11,8 @@ package com.xdadan.erp.emis.service; import java.util.List; import com.xdadan.erp.emis.domain.EmisCustomerUser; +import com.xdadan.erp.emis.domain.EmisWaybill; +import com.xdadan.erp.emis.domain.vo.MonthlyCustomerShipmentStatVO; /** * @ClassName EmisCustomerUserService @@ -86,4 +88,20 @@ public interface IEmisCustomerUserService * @return 结果 */ public int updateEnterpriseInfoByMonthlyPayCode(EmisCustomerUser emisCustomerUser); + + /** + * 查询月结客户出货统计 + * + * @param emisWaybill 查询条件 + * @return 统计结果列表 + */ + public List selectMonthlyCustomerShipmentStat(EmisWaybill emisWaybill); + + /** + * 查询月结客户出货明细 + * + * @param emisWaybill 查询条件 + * @return 运单明细列表 + */ + public List selectMonthlyCustomerShipmentDetail(EmisWaybill emisWaybill); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCustomerUserServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCustomerUserServiceImpl.java index 651ea7b40..eb0bacc2d 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCustomerUserServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCustomerUserServiceImpl.java @@ -11,13 +11,18 @@ package com.xdadan.erp.emis.service.impl; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import com.xdadan.erp.common.utils.SecurityUtils; import com.xdadan.erp.emis.service.EmisBaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xdadan.erp.emis.domain.EmisCustomerUser; +import com.xdadan.erp.emis.domain.EmisWaybill; +import com.xdadan.erp.emis.domain.vo.MonthlyCustomerShipmentStatVO; import com.xdadan.erp.emis.mapper.EmisCustomerUserMapper; +import com.xdadan.erp.emis.mapper.EmisWaybillMapper; import com.xdadan.erp.emis.service.IEmisCustomerUserService; /** @@ -32,6 +37,9 @@ public class EmisCustomerUserServiceImpl extends EmisBaseService implements IEmi @Autowired private EmisCustomerUserMapper emisCustomerUserMapper; + @Autowired + private EmisWaybillMapper emisWaybillMapper; + /** * 查询快递客户用户 * @@ -146,4 +154,57 @@ public class EmisCustomerUserServiceImpl extends EmisBaseService implements IEmi return emisCustomerUserMapper.updateEnterpriseInfoByMonthlyPayCode(emisCustomerUser); } + /** + * 查询月结客户出货统计 + * + * @param emisWaybill 查询条件 + * @return 统计结果列表 + */ + @Override + public List selectMonthlyCustomerShipmentStat(EmisWaybill emisWaybill) { + List mapList = emisWaybillMapper.selectMonthlyCustomerShipmentStat(emisWaybill); + return mapList.stream().map(map -> { + MonthlyCustomerShipmentStatVO vo = new MonthlyCustomerShipmentStatVO(); + vo.setCustomerName((String) map.get("customerName")); + vo.setCustNo((String) map.get("custNo")); + vo.setCustomerCode((String) map.get("customerCode")); + Object totalTicketsObj = map.get("totalTickets"); + if (totalTicketsObj != null) { + vo.setTotalTickets(((Number) totalTicketsObj).intValue()); + } else { + vo.setTotalTickets(0); + } + vo.setTotalWeight((java.math.BigDecimal) map.get("totalWeight")); + vo.setSalesmen((String) map.get("salesmen")); + + Object expressTicketsObj = map.get("expressTickets"); + vo.setExpressTickets(expressTicketsObj != null ? ((Number) expressTicketsObj).intValue() : 0); + vo.setExpressWeight((java.math.BigDecimal) map.getOrDefault("expressWeight", java.math.BigDecimal.ZERO)); + + Object airTicketsObj = map.get("airTickets"); + vo.setAirTickets(airTicketsObj != null ? ((Number) airTicketsObj).intValue() : 0); + vo.setAirWeight((java.math.BigDecimal) map.getOrDefault("airWeight", java.math.BigDecimal.ZERO)); + + Object landTicketsObj = map.get("landTickets"); + vo.setLandTickets(landTicketsObj != null ? ((Number) landTicketsObj).intValue() : 0); + vo.setLandWeight((java.math.BigDecimal) map.getOrDefault("landWeight", java.math.BigDecimal.ZERO)); + + Object importTicketsObj = map.get("importTickets"); + vo.setImportTickets(importTicketsObj != null ? ((Number) importTicketsObj).intValue() : 0); + vo.setImportWeight((java.math.BigDecimal) map.getOrDefault("importWeight", java.math.BigDecimal.ZERO)); + return vo; + }).collect(Collectors.toList()); + } + + /** + * 查询月结客户出货明细 + * + * @param emisWaybill 查询条件 + * @return 运单明细列表 + */ + @Override + public List selectMonthlyCustomerShipmentDetail(EmisWaybill emisWaybill) { + return emisWaybillMapper.selectMonthlyCustomerShipmentDetail(emisWaybill); + } + } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceRecordServiceImpl.java index 08f3c8ffd..2c87d7646 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceRecordServiceImpl.java @@ -1118,6 +1118,10 @@ public class EmisSettleInvoiceRecordServiceImpl extends EmisBaseService implemen throw new EmisBizError(EmisBizErrorType.FAIL, "只能对未开票状态的发票进行延期操作,申请序号: " + record.getApplySeqNo()); } + if ("1".equals(record.getBlDelay())) { + throw new EmisBizError(EmisBizErrorType.FAIL, + "已延期,请勿重复点击,申请序号: " + record.getApplySeqNo()); + } } // 获取当前操作人 diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 5a2946271..56abbbb81 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -3990,4 +3990,176 @@ order by a.order_date desc + + + + + +