From a3637a710b37d7179366faf06f4e2b8121dc4b33 Mon Sep 17 00:00:00 2001 From: mashuai Date: Mon, 10 Nov 2025 18:01:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BackApplyInfoController.java | 25 +++ .../material/back/domain/ExitPermit.java | 23 ++- .../back/domain/vo/BackExportDetailsVo.java | 151 +++++++++++++++++ .../back/mapper/BackApplyInfoMapper.java | 18 +- .../back/service/IBackApplyInfoService.java | 7 + .../impl/BackApplyInfoServiceImpl.java | 63 ++++++- .../material/basic/mapper/BmReportMapper.java | 9 +- .../service/impl/BmReportServiceImpl.java | 28 ++- .../material/back/BackApplyInfoMapper.xml | 109 +++++++++++- .../mapper/material/basic/BmReportMapper.xml | 160 ++++++++++++------ 10 files changed, 505 insertions(+), 88 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackExportDetailsVo.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java index 133af43a..a9edea40 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java @@ -597,6 +597,19 @@ public class BackApplyInfoController extends BaseController { } + /** + * 出门证列表导出 + * @param response + * @param bean + */ + @ApiOperation(value = "导出出门证列表") + @PostMapping("/exportExitPermitList") + public void exportExitPermitList(HttpServletResponse response, ExitPermit bean) { + List list = backApplyInfoService.getExitPermitList(bean); + ExcelUtil util = new ExcelUtil(ExitPermit.class); + util.exportExcel(response, list, "出门证列表"); + } + @ApiOperation(value = "出门证领料单号下拉") @GetMapping("/getCodeList") public AjaxResult getCodeList(ExitPermit bean) { @@ -658,6 +671,18 @@ public class BackApplyInfoController extends BaseController { return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); } + /** + * 导出退料明细 + * @param response + * @param dto + */ + @PostMapping("/exportBackDetailsList") + public void exportBackDetailsList(HttpServletResponse response, BackApplyInfo dto) { + List list = backApplyInfoService.exportBackDetailsList(dto); + ExcelUtil util = new ExcelUtil(BackExportDetailsVo.class); + util.exportExcel(response, list, "退料明细数据"); + } + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/ExitPermit.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/ExitPermit.java index 5d874bb5..085aabb0 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/ExitPermit.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/ExitPermit.java @@ -1,11 +1,13 @@ package com.bonus.material.back.domain; +import com.bonus.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors; import java.io.Serializable; +import java.util.List; /** * 出门证 @@ -28,18 +30,26 @@ public class ExitPermit implements Serializable { @ApiModelProperty(value="姓名") private String name; - @ApiModelProperty(value = "车牌号") - private String carCode; - @ApiModelProperty(value = "物资") + @Excel(name = "物资") private String material; - @ApiModelProperty(value = "日期") - private String addDate; + @ApiModelProperty(value = "车牌号") + @Excel(name = "车牌号") + private String carCode; @ApiModelProperty(value = "领料单号") + @Excel(name = "领料单号") private String code; + @ApiModelProperty(value = "日期") + @Excel(name = "日期") + private String addDate; + + @ApiModelProperty(value = "备注") + @Excel(name = "备注") + private String remark; + /** * 创建人 @@ -75,4 +85,7 @@ public class ExitPermit implements Serializable { */ private String source; + @ApiModelProperty(value = "领料单号集合") + private List codeList; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackExportDetailsVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackExportDetailsVo.java new file mode 100644 index 00000000..55fa7112 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackExportDetailsVo.java @@ -0,0 +1,151 @@ +package com.bonus.material.back.domain.vo; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; +import lombok.experimental.Accessors; +import org.apache.poi.ss.usermodel.HorizontalAlignment; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 退料任务对象 back_apply_info + * + * @author xsheng + * @date 2024-10-16 + */ + +@Accessors(chain = true) +@Data +@ToString +public class BackExportDetailsVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean isExport; + + @ApiModelProperty(value = "登录用户id") + private Long userId; + + private Long deptId; + + /** ID */ + private Long id; + + @ApiModelProperty(value = "协议id") + private Long agreementId; + + @ApiModelProperty(value = "材料站协议id") + private Long clzAgreementId; + + @ApiModelProperty(value = "任务类型") + private Integer taskType; + + @ApiModelProperty(value = "单位id") + private Long unitId; + + @ApiModelProperty(value = "单位名称") + @Excel(name = "退料单位") + private String unitName; + + @ApiModelProperty(value="工程id") + private Long proId; + + @ApiModelProperty(value="工程名称") + @Excel(name = "退料工程") + private String proName; + + @Excel(name = "退料单号") + @ApiModelProperty(value = "退料单号") + private String code; + + @ApiModelProperty(value = "类型id") + private String typeId; + + @ApiModelProperty(value = "类型名称") + @Excel(name = "物资类型") + private String typeName; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value="设备编码") + @Excel(name = "设备编码") + private String maCode; + + @Excel(name = "退料数量", cellType = Excel.ColumnType.NUMERIC, align = HorizontalAlignment.RIGHT) + private BigDecimal backNum; + + @ApiModelProperty(value = "任务ID") + private Long taskId; + + @Excel(name = "退料人") + @ApiModelProperty(value = "退料人") + private String backPerson; + + private String backSignUrl; + + private Byte backSignType; + + @ApiModelProperty(value = "退料人电话") + private String phone; + + @ApiModelProperty(value = "预退料时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date backTime; + + @Excel(name = "创建人") + private String createBy; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value = "1.机具分公司审核通过,2.机具分公司审批不通过,3.调试分公司审批通过,4.调试分公司审批不通过,5.出库进行中,6.出库完成") + private String status; + + @ApiModelProperty(value = "任务状态") + @Excel(name = "状态", readConverterExp = "0=退料未完成,1=维修驳回,2=退料已完成") + private Integer taskStatus; + + private String updateBy; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty(value = "打印状态") + private String printStatus; + + @Excel(name = "备注") + private String remark; + + @ApiModelProperty(value = "机具id") + private Long maId; + + @ApiModelProperty(value = "任务ID") + private Long parentId; + + @ApiModelProperty(value="开始时间") + private String startTime; + + @ApiModelProperty(value="结束时间") + private String endTime; + + @ApiModelProperty(value="关键字") + private String keyWord; + + @ApiModelProperty(value = "制单人签名地址") + private String signUrl; + + @ApiModelProperty(value = "制单人签名类型 手写0 和 图片上传1") + private int signType; + + @ApiModelProperty("机具类型(1机具,2安全工器具)") + @Excel(name = "机具类型", readConverterExp = "1=机具,2=安全工器具") + private String jiJuType; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java index 9e80abbf..fd5bd4e5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java @@ -8,6 +8,7 @@ import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.back.domain.*; import com.bonus.material.back.domain.vo.BackApplyInfoVo; import com.bonus.material.back.domain.vo.BackApplyVo; +import com.bonus.material.back.domain.vo.BackExportDetailsVo; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.clz.domain.back.MaterialBackApplyDetails; import com.bonus.material.settlement.domain.SltAgreementInfo; @@ -469,9 +470,10 @@ public interface BackApplyInfoMapper { /** * 查询是否存在班组数据 * @param bean + * @param agreementId * @return */ - List getTbList(BackApplyInfo bean); + List getTbList(@Param("record") BackApplyInfo bean, @Param("agreementId") Long agreementId); /** * 获取出门证 @@ -539,10 +541,24 @@ public interface BackApplyInfoMapper { */ List getClzList(BackApplyDetails applyInfo); + /** + * 查询该编码是否存在于班组在用 + * @param info + * @return + */ + List getMaIdInfo(SltAgreementInfo info); + /** * 退料查询 * @param backApplyInfo * @return */ List getBackQueryList(BackApplyInfo backApplyInfo); + + /** + * 导出退料明细 + * @param dto + * @return + */ + List exportBackDetailsList(BackApplyInfo dto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java index 495f10a0..26c91459 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java @@ -265,5 +265,12 @@ public interface IBackApplyInfoService { * @return */ List getBackQueryList(BackApplyInfo backApplyInfo); + + /** + * 导出退料明细 + * @param dto + * @return + */ + List exportBackDetailsList(BackApplyInfo dto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java index 753a26eb..10a00ef6 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java @@ -420,6 +420,28 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { } } + /** + * 导出退料明细 + * @param dto + * @return + */ + @Override + public List exportBackDetailsList(BackApplyInfo dto) { + try { + Long userId = SecurityUtils.getLoginUser().getUserid(); + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + // 检查用户是否具有特殊角色 + boolean hasSpecialRole = hasSpecialRole(userRoles); + if (!hasSpecialRole) { + dto.setUserId(userId == 0 ? null : userId); + } + return backApplyInfoMapper.exportBackDetailsList(dto); + } catch (Exception e) { + e.printStackTrace(); + return new ArrayList<>(); + } + } + /** * 检查是否有编码设备 */ @@ -2327,9 +2349,12 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { List codeList = new ArrayList<>(); // 根据传入的id查询退料申请信息 + // 原始协议id + Long agreementId = null; List applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo); // 将applyInfoList中状态不为在用的数据收集到新集合中 if (CollectionUtils.isNotEmpty(applyInfoList)) { + agreementId = applyInfoList.get(0).getAgreementId(); for (BackApplyInfo applyInfo : applyInfoList) { // 根据maId查询设备是否处于在用状态(需要同时查询机具和材料站) if (applyInfo.getMaId() != null) { @@ -2406,7 +2431,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { // 插入任务表 Long newTaskId = insertTt(SecurityUtils.getLoginUser().getSysUser().getNickName(), backApplyInfo.getRemark(), backApplyInfo.getTaskId()); // 插入协议任务表,使用的是项目部协议ID - result += insertTeamTta(newTaskId, leaseOutDetail.getProjectUnitAgreementId()); + result += insertTeamTta(newTaskId, agreementId); // -----------------给材料站新建退料任务,处理数据开始✅ ---------------- BackApplyInfo backApplyInfo4 = new BackApplyInfo(); @@ -2521,7 +2546,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { List allList = backApplyInfoMapper.selectBackDetails(backApplyInfo); if (CollectionUtils.isNotEmpty(allList)) { // 更新结算协议✍️表 - int res = updateBzSlt4Bean(backApplyInfo,backApplyInfo4, allList); + int res = updateBzSlt4Bean(backApplyInfo,backApplyInfo4, allList, leaseOutDetail.getProjectUnitAgreementId()); // 检查机具是否领料 if (res == 0) { throw new RuntimeException("该机具未被领料使用");} @@ -2627,7 +2652,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { * @param allList * @return */ - private int updateBzSlt4Bean(BackApplyInfo record, BackApplyInfo backApplyInfo4, List allList) { + private int updateBzSlt4Bean(BackApplyInfo record, BackApplyInfo backApplyInfo4, List allList, Long projectUnitAgreementId) { for (BackApplyInfo bean : allList) { List infoList = backApplyInfoMapper.getStlInfo(bean); if (CollectionUtils.isEmpty(infoList)) { @@ -2660,9 +2685,8 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { } } - // 查询是否存在班组数据 - List tbList = backApplyInfoMapper.getTbList(bean); - // 非班组退料才同步班组分公司数据 + // 查询是否存在项目部数据 + List tbList = backApplyInfoMapper.getTbList(bean, projectUnitAgreementId); BigDecimal tbBackNum = bean.getBackNum(); if (CollectionUtils.isNotEmpty(tbList)) { BackApplyInfo backApplyInfo = new BackApplyInfo(); @@ -2679,7 +2703,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { } else { BigDecimal many = num.subtract(tbBackNum); backApplyInfoMapper.updateStlInfoTwo(info, backApplyInfo, tbBackNum); - info.setSource("2"); + info.setSource("1"); backApplyInfoMapper.insStlInfoTwo(info, many); break; } @@ -2692,7 +2716,19 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { @Override public List getExitPermitList(ExitPermit bean) { try { - return backApplyInfoMapper.getExitPermitList(bean); + List exitPermitList = backApplyInfoMapper.getExitPermitList(bean); + if (CollectionUtils.isNotEmpty(exitPermitList)) { + for (ExitPermit exitPermit : exitPermitList) { + // 如果领料单号不为空,转换为集合 + if (StringUtils.isNotBlank(exitPermit.getCode())) { + exitPermit.setCodeList(Arrays.asList(exitPermit.getCode().split(","))); + } else { + exitPermit.setCode("/"); + exitPermit.setCodeList(Collections.singletonList("/")); + } + } + } + return exitPermitList; } catch (Exception e) { log.error("获取退料任务列表失败", e); return new ArrayList<>(); @@ -2704,6 +2740,10 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { try { Long userId = SecurityUtils.getLoginUser().getUserid(); bean.setCreateBy(userId.toString()); + if (CollectionUtils.isNotEmpty(bean.getCodeList())) { + // 将领料单号集合转换成字符串 + bean.setCode(String.join(",", bean.getCodeList())); + } int re = backApplyInfoMapper.addExitPermit(bean); if (re > 0) { return AjaxResult.success("添加成功"); @@ -2762,6 +2802,13 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { BigDecimal backNum = bean.getBackNum(); for (SltAgreementInfo info : infoList) { BigDecimal num = info.getBackNum(); + if (info.getMaId() != null) { + // 查询该编码是否存在于班组在用,若存在,则同步进行退料 + List maIdList = backApplyInfoMapper.getMaIdInfo(info); + if (CollectionUtils.isNotEmpty(maIdList)) { + backApplyInfoMapper.updateStlInfo(maIdList.get(0), record); + } + } if (backNum.compareTo(num) == 0) { backApplyInfoMapper.updateStlInfo(info, record); break; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmReportMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmReportMapper.java index 600e8f75..1b927c87 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmReportMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmReportMapper.java @@ -102,8 +102,6 @@ public interface BmReportMapper { */ List getRepairInputDetailsList(RepairInputDto bean); - LeaseOutInfo getLeaseInfoById(Long parentId); - /** * 报废报表 * @param bean @@ -131,4 +129,11 @@ public interface BmReportMapper { * @return */ List getReportList(ReportQuery bean); + + /** + * 查询领用出库任务数据 + * @param bean + * @return + */ + List selectPublishList(LeaseOutInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java index 079525f4..8792a8df 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java @@ -125,22 +125,13 @@ public class BmReportServiceImpl implements BmReportService { BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal totalOutNumNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal totalPendingOutNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); + // 先查询领料任务数据 + bean.setUserId(userId); List list = bmReportMapper.getLeaseOutList(bean); - if (CollectionUtils.isNotEmpty(list)) { - // 将list集合中userId不为空,且和userId相等的数据过滤处理 - list = list.stream().filter(item -> item.getUserId() != null && item.getUserId().equals(userId)) - .collect(Collectors.toList()); - for (LeaseOutInfo leaseOutInfo : list) { - totalLeaseNum = totalLeaseNum.add(leaseOutInfo.getLeaseNum()); - totalOutNumNum = totalOutNumNum.add(leaseOutInfo.getOutNum()); - totalPendingOutNum = totalPendingOutNum.add(leaseOutInfo.getPendingOutNum()); - //判断是否是领用任务 - if (StringUtils.isNotNull(leaseOutInfo) && leaseOutInfo.getTaskType()==19){ - LeaseOutInfo leaseOutInfoNew = bmReportMapper.getLeaseInfoById(leaseOutInfo.getParentId()); - leaseOutInfo.setLeaseUnitName(leaseOutInfoNew.getLeaseUnitName()); - leaseOutInfo.setLeaseProjectName(leaseOutInfoNew.getLeaseProjectName()); - } - } + // 查询领用出库任务数据 + List leaseOutList = bmReportMapper.selectPublishList(bean); + if (CollectionUtils.isNotEmpty(leaseOutList)) { + list.addAll(leaseOutList); } //模糊查询 if (!org.springframework.util.CollectionUtils.isEmpty(list)) { @@ -152,6 +143,13 @@ public class BmReportServiceImpl implements BmReportService { .collect(Collectors.toList()); } } + if (CollectionUtils.isNotEmpty(list)) { + for (LeaseOutInfo leaseOutInfo : list) { + totalLeaseNum = totalLeaseNum.add(leaseOutInfo.getLeaseNum()); + totalOutNumNum = totalOutNumNum.add(leaseOutInfo.getOutNum()); + totalPendingOutNum = totalPendingOutNum.add(leaseOutInfo.getPendingOutNum()); + } + } if (bean.getIsExport() == 0) { LeaseOutInfo info = new LeaseOutInfo(); info.setLeaseNum(totalLeaseNum); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml index ab00f2e9..27a0f187 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml @@ -800,8 +800,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into bm_exit_permit (material,name,car_code,add_date,create_by,create_time,code) - values (#{material}, #{name}, #{carCode}, #{addDate}, #{createBy}, now(), #{code}) + insert into bm_exit_permit (material,name,car_code,add_date,create_by,create_time,code, remark) + values (#{material}, #{name}, #{carCode}, #{addDate}, #{createBy}, now(), #{code}, #{remark}) INSERT INTO archives_record_info @@ -1493,11 +1493,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM slt_agreement_info WHERE - source = '2' - AND type_id = #{typeId} + source = '1' + AND agreement_id = #{agreementId} + AND type_id = #{record.typeId} AND status = 0 - - AND ma_id = #{maId} + + AND ma_id = #{record.maId} order by start_time asc @@ -1675,7 +1676,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" slt_agreement_info WHERE status = 0 - AND source = '2' + AND source = '1' AND type_id = #{typeId} AND agreement_id = #{agreementId} @@ -1765,4 +1766,98 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY bcd.parent_id desc,bcd.create_time desc + + + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml index 6eecb34e..17c9fe61 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml @@ -215,48 +215,112 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + -