diff --git a/cds-fontend-2025.V1/src/typings/api/mps.market.api.d.ts b/cds-fontend-2025.V1/src/typings/api/mps.market.api.d.ts index 333125c..3a3c46d 100644 --- a/cds-fontend-2025.V1/src/typings/api/mps.market.api.d.ts +++ b/cds-fontend-2025.V1/src/typings/api/mps.market.api.d.ts @@ -79,6 +79,8 @@ declare namespace Api { delFlag: string; /** 创建时间 */ entryDate: string; + /** 更新状态 */ + updateFlag: string; }>; /** market search params */ diff --git a/cds-fontend-2025.V1/src/views/mps/market/index.vue b/cds-fontend-2025.V1/src/views/mps/market/index.vue index f255599..69b5971 100644 --- a/cds-fontend-2025.V1/src/views/mps/market/index.vue +++ b/cds-fontend-2025.V1/src/views/mps/market/index.vue @@ -391,8 +391,8 @@ const { if (!hasAuth('mps:market:edit')) { return null; } - // 只有当checkType为'9'时才显示编辑按钮 - if (row.checkFlag !== '9') { + // 只有当updateFlag为'1'时才显示编辑按钮 + if (row.updateFlag !== '1') { return null; } diff --git a/cds-fontend-2025.V1/src/views/mps/market/modules/market-search.vue b/cds-fontend-2025.V1/src/views/mps/market/modules/market-search.vue index 0c31303..f7c92de 100644 --- a/cds-fontend-2025.V1/src/views/mps/market/modules/market-search.vue +++ b/cds-fontend-2025.V1/src/views/mps/market/modules/market-search.vue @@ -176,7 +176,7 @@ async function search() { - + diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/controller/MpsMarketController.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/controller/MpsMarketController.java index 819f897..811c990 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/controller/MpsMarketController.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/controller/MpsMarketController.java @@ -144,7 +144,7 @@ public class MpsMarketController extends BaseController { if(!"9".equals(bo.getCheckFlag())){//9-校验失败 return R.fail("校验状态异常,不允许修改!"); } - bo.setCheckFlag("2");//2-修改完成 +// bo.setCheckFlag("2");//2-修改完成 return toAjax(mpsMarketService.updateByBo(bo)); } diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/domain/vo/MpsMarketVo.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/domain/vo/MpsMarketVo.java index bd04adc..1ee6232 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/domain/vo/MpsMarketVo.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/domain/vo/MpsMarketVo.java @@ -231,5 +231,7 @@ public class MpsMarketVo implements Serializable { @ExcelProperty(value = "创建时间") private String entryDate; + private String updateFlag; + } diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/service/impl/MpsMarketServiceImpl.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/service/impl/MpsMarketServiceImpl.java index b7c0cad..ff56a92 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/service/impl/MpsMarketServiceImpl.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/service/impl/MpsMarketServiceImpl.java @@ -2,10 +2,10 @@ package org.dromara.mps.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DatePattern; import cn.hutool.core.util.ObjectUtil; -import cn.idev.excel.util.DateUtils; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; -import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.exception.ServiceException; @@ -16,13 +16,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.mps.domain.MpsBatch; import org.dromara.mps.domain.MpsMagneticcard; import org.dromara.mps.domain.MpsTraffic; import org.dromara.mps.domain.vo.MpsMagneticcardVo; import org.dromara.mps.domain.vo.MpsTrafficVo; +import org.dromara.mps.mapper.MpsBatchMapper; import org.dromara.mps.mapper.MpsMagneticcardMapper; import org.dromara.mps.mapper.MpsTrafficMapper; -import org.dromara.system.domain.SysDeptTransfer; import org.springframework.stereotype.Service; import org.dromara.mps.domain.bo.MpsMarketBo; import org.dromara.mps.domain.vo.MpsMarketVo; @@ -33,7 +34,6 @@ import org.dromara.mps.service.IMpsMarketService; import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.stream.Collectors; /** * 营销数据管理Service业务层处理 @@ -50,6 +50,7 @@ public class MpsMarketServiceImpl implements IMpsMarketService { private final IdentifierGenerator identifierGenerator; private final MpsMagneticcardMapper magneticcardMapper; private final MpsTrafficMapper TrafficMapper; + private final MpsBatchMapper batchMapper; @Override @@ -119,7 +120,17 @@ public class MpsMarketServiceImpl implements IMpsMarketService { )); } }); -// result.getRecords().forEach(r -> r.setTrafficList(TrafficMapper.selectVoList(new LambdaQueryWrapper().eq(MpsTraffic::getTrafficId, r.getTrafficId())))); + //当MpsBatch表里有满足batch_code='formal' and batch_month=上月 and pre_batch_status=1 and check_status=0 + // 条件的记录时,将result中上个月的check_flg不为1的数据updateFlag设为1,表示该数据需要更新 + String lastMonth = DateUtil.format(DateUtil.lastMonth(), DatePattern.NORM_MONTH_PATTERN); + if (isUpdateSupport()) { + result.getRecords().forEach(r -> { + //当在修改周期内时,对上月的失败记录更新状态设置为1 + if (lastMonth.equals(r.getEntryDate().substring( 0, 7)) && !"1".equals(r.getCheckFlag())) { + r.setUpdateFlag("1"); + } + }); + } return TableDataInfo.build(result); } @@ -179,7 +190,7 @@ public class MpsMarketServiceImpl implements IMpsMarketService { @Override public Boolean insertByBo(MpsMarketBo bo) { MpsMarket add = MapstructUtils.convert(bo, MpsMarket.class); - add.setEntryDate(DateUtils.format(new Date(), "yyyy-MM-dd")); + add.setEntryDate(DateUtil.format(new Date(), "yyyy-MM-dd")); validEntityBefore(add); System.out.println("add:--->"+add); boolean flag = baseMapper.insert(add) > 0; @@ -191,6 +202,25 @@ public class MpsMarketServiceImpl implements IMpsMarketService { return flag; } + private boolean isUpdateSupport() { + // 获取上月日期 + String lastMonth = DateUtil.format(DateUtil.lastMonth(), "yyyy-MM"); + LambdaQueryWrapper batchQueryWrapper = Wrappers.lambdaQuery(); + batchQueryWrapper.eq(MpsBatch::getBatchCode, "formal") + .eq(MpsBatch::getBatchMonth, lastMonth) + .eq(MpsBatch::getAfterBatchStatus, 1) + .eq(MpsBatch::getCheckStatus, 0); + + // 这里需要注入MpsBatchMapper来查询MpsBatch表 + List batchList = batchMapper.selectList(batchQueryWrapper); + if (CollUtil.isNotEmpty(batchList)) { + return true; + } + else { + return false; + } + } + /** * 修改营销数据管理 * @@ -199,6 +229,9 @@ public class MpsMarketServiceImpl implements IMpsMarketService { */ @Override public Boolean updateByBo(MpsMarketBo bo) { + if (!isUpdateSupport() || "1".equals(bo.getCheckFlag())) { + throw new ServiceException("当前数据已锁定,请勿修改"); + } MpsMarket update = MapstructUtils.convert(bo, MpsMarket.class); validEntityBefore(update); return baseMapper.updateById(update) > 0; @@ -478,107 +511,6 @@ public class MpsMarketServiceImpl implements IMpsMarketService { } - /** - * 新增前的数据校验 - */ -// private void validEntityBeforeUpdate(MpsMarket entity){ -// //TODO 做一些数据校验,如唯一约束,非空校验 -// switch (entity.getSubcategoryName()) { -// case "公积金缴纳账户": -// if (StringUtils.isEmpty(entity.getSurplusAccountName())) { -// throw new ServiceException("请填写公积金账户名称"); -// } -// break; -// case "磁条卡更换金融IC卡": -// if (CollectionUtil.isEmpty(entity.getMagneticCardList())) { -// throw new ServiceException("请填写磁条卡更换金融IC卡记录"); -// } -// checkMagneticCardList(entity.getMagneticCardList()); -// -// //id -// Long magneticCardId = entity.getMagneticCardId(); -// if (magneticCardId == null) { -// magneticCardId = identifierGenerator.nextId(entity).longValue(); -// entity.setMagneticCardId(magneticCardId); -// } -// //删除原记录 -// MpsMagneticcard bo = new MpsMagneticcard(); -// bo.setMagneticCardId(magneticCardId); -// magneticcardMapper.delete( new LambdaQueryWrapper<>(bo)); -// //插入数据库 -// for (MpsMagneticcard mpsMagneticCard : entity.getMagneticCardList()) { -// mpsMagneticCard.setMagneticCardId(magneticCardId); -// } -// magneticcardMapper.insertBatch(entity.getMagneticCardList()); -// break; -// case "代收交警罚没款": -// if (CollectionUtil.isEmpty(entity.getTrafficList())) { -// throw new ServiceException("请填写磁条卡更换金融IC卡记录"); -// } -// for (MpsTraffic mpsTraffic : entity.getTrafficList()) { -// -// if ( StringUtils.isEmpty(mpsTraffic.getTrafficNo())) { -// throw new ServiceException("请填写代缴交警罚没款编号"); -// } -// if (mpsTraffic.getTrafficAmt() == null) { -// throw new ServiceException("请填写代缴交警罚没款金额"); -// } -// //判重 -// MpsTraffic traffic = new MpsTraffic(); -// traffic.setTrafficNo(mpsTraffic.getTrafficNo()); -// LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>(traffic); -// lqw1.ne( ObjectUtil.isNotNull(mpsTraffic.getTrafficId()), MpsTraffic::getTrafficId, mpsTraffic.getTrafficId()); -// List result1 = TrafficMapper.selectVoList(lqw1); -// if (!result1.isEmpty()) { -// throw new ServiceException("该代缴交警罚没款已存在,编号:"+mpsTraffic.getTrafficNo()); -// } -// } -// //id -// Long TrafficId = entity.getTrafficId(); -// if (TrafficId == null) { -// TrafficId = identifierGenerator.nextId(entity).longValue(); -// entity.setTrafficId(TrafficId); -// } -// //删除原记录 -// MpsTraffic trafficbo = new MpsTraffic(); -// trafficbo.setTrafficId(TrafficId); -// TrafficMapper.delete( new LambdaQueryWrapper<>(trafficbo)); -// //插入数据库 -// List trafficList = entity.getTrafficList(); -// for (MpsTraffic mpsTraffic : trafficList) { -// mpsTraffic.setTrafficId(TrafficId); -// } -// TrafficMapper.insertBatch(entity.getTrafficList()); -// break; -// case "新增综合收单商户(首月)": -// if (entity.getAcquiringId() == null) { -// throw new ServiceException("请填写收单机构ID"); -// } -// if (entity.getAcquiringName() == null) { -// throw new ServiceException("请填写收单机构名称"); -// } -// break; -// case "网上支付客户": -// if (entity.getInternetChannel() == null) { -// throw new ServiceException("请填写网上支付渠道"); -// } -// break; -// case "营销职工社保卡": -// if (entity.getWorkplace() == null) { -// throw new ServiceException("请填写营销职工社保卡工作单位"); -// } -// break; -// case "取暖费": -// if (entity.getHeatingNo() == null) { -// throw new ServiceException("请填写取暖费编号"); -// } -// break; -// default: -// break; -// } -// -// -// } private void checkMagneticCardList(List mpsMagneticCardList) {