|
@@ -0,0 +1,386 @@
|
|
|
|
+package com.ruoyi.gljt.service.impl;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.bean.copier.CopyOptions;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.ruoyi.common.core.exception.ServiceException;
|
|
|
|
+import com.ruoyi.common.core.utils.DateUtils;
|
|
|
|
+import com.ruoyi.common.core.utils.StringUtils;
|
|
|
|
+import com.ruoyi.common.core.utils.uuid.IdUtils;
|
|
|
|
+import com.ruoyi.common.security.utils.EncryptionUtils;
|
|
|
|
+import com.ruoyi.common.security.utils.SecurityUtils;
|
|
|
|
+import com.ruoyi.common.security.utils.SysDeptJlUtils;
|
|
|
|
+import com.ruoyi.gljt.domain.GljtJfxx;
|
|
|
|
+import com.ruoyi.gljt.domain.GljtJfxxZjbf;
|
|
|
|
+import com.ruoyi.gljt.domain.GljtPlzj;
|
|
|
|
+import com.ruoyi.gljt.mapper.GljtJfxxMapper;
|
|
|
|
+import com.ruoyi.gljt.mapper.GljtJfxxZjbfMapper;
|
|
|
|
+import com.ruoyi.gljt.mapper.GljtPlzjMapper;
|
|
|
|
+import com.ruoyi.gljt.service.IGljtPlzjService;
|
|
|
|
+import com.ruoyi.system.domain.SysDeptJl;
|
|
|
|
+import com.ruoyi.system.mapper.SysDeptJlMapper;
|
|
|
|
+import com.ruoyi.system.utils.SubCodeUtil;
|
|
|
|
+import io.seata.common.util.CollectionUtils;
|
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+import java.util.stream.Stream;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 高龄津贴批量追加信息Service业务层处理
|
|
|
|
+ *
|
|
|
|
+ * @author sun
|
|
|
|
+ * @date 2025-03-25
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+public class GljtPlzjServiceImpl implements IGljtPlzjService
|
|
|
|
+{
|
|
|
|
+ @Autowired
|
|
|
|
+ private GljtPlzjMapper gljtPlzjMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private GljtJfxxZjbfMapper gljtJfxxZjbfMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysDeptJlMapper sysDeptJlMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private GljtJfxxMapper gljtJfxxMapper;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询高龄津贴批量追加信息
|
|
|
|
+ *
|
|
|
|
+ * @param id 高龄津贴批量追加信息主键
|
|
|
|
+ * @return 高龄津贴批量追加信息
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public GljtPlzj selectGljtPlzjById(String id)
|
|
|
|
+ {
|
|
|
|
+ GljtPlzj res = gljtPlzjMapper.selectById(id);
|
|
|
|
+ if (ObjectUtils.isNotEmpty(res)) {
|
|
|
|
+ List<Map<String, String>> xzqhList = new ArrayList<>();
|
|
|
|
+ if (res.getXzqh().contains(",")) {
|
|
|
|
+ List<String> xzqh = Stream.of(res.getXzqh().split(",")).collect(Collectors.toList());
|
|
|
|
+ xzqh.forEach(x -> {
|
|
|
|
+ Map<String, String> qh = new LinkedHashMap<>();
|
|
|
|
+ qh.put("xzqh", x);
|
|
|
|
+ qh.put("xzqhName", SysDeptJlUtils.getDeptCache(x));
|
|
|
|
+ qh.put("xzqhCode", sysDeptJlMapper.getXzqhCodes(x));
|
|
|
|
+ xzqhList.add(qh);
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ Map<String, String> qh = new LinkedHashMap<>();
|
|
|
|
+ qh.put("xzqh", res.getXzqh());
|
|
|
|
+ qh.put("xzqhName", SysDeptJlUtils.getDeptCache(res.getXzqh()));
|
|
|
|
+ qh.put("xzqhCode", sysDeptJlMapper.getXzqhCodes(res.getXzqh()));
|
|
|
|
+ xzqhList.add(qh);
|
|
|
|
+ }
|
|
|
|
+ res.setXzqhList(xzqhList);
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询高龄津贴批量追加信息列表
|
|
|
|
+ *
|
|
|
|
+ * @param gljtPlzj 高龄津贴批量追加信息
|
|
|
|
+ * @return 高龄津贴批量追加信息
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<GljtPlzj> selectGljtPlzjList(GljtPlzj gljtPlzj)
|
|
|
|
+ {
|
|
|
|
+ String filter = StringUtils.isEmpty(gljtPlzj.getXzqh()) ? SecurityUtils.getAreaCode() : gljtPlzj.getXzqh();
|
|
|
|
+ gljtPlzj.setXzqh(null);
|
|
|
|
+ List<GljtPlzj> res = gljtPlzjMapper.selectList(new LambdaQueryWrapper<>(gljtPlzj)
|
|
|
|
+ .likeRight(GljtPlzj::getXzqh, SubCodeUtil.code2Short(filter))
|
|
|
|
+ .orderByDesc(GljtPlzj::getCreateTimeStr));
|
|
|
|
+ for (GljtPlzj r: res) {
|
|
|
|
+ List<Map<String, String>> xzqhList = new ArrayList<>();
|
|
|
|
+ if (r.getXzqh().contains(",")) {
|
|
|
|
+ List<String> xzqh = Stream.of(r.getXzqh().split(",")).collect(Collectors.toList());
|
|
|
|
+ xzqh.forEach(x -> {
|
|
|
|
+ Map<String, String> qh = new LinkedHashMap<>();
|
|
|
|
+ qh.put("xzqh", x);
|
|
|
|
+ qh.put("xzqhName", SysDeptJlUtils.getDeptCache(x));
|
|
|
|
+ qh.put("xzqhCode", sysDeptJlMapper.getXzqhCodes(x));
|
|
|
|
+ xzqhList.add(qh);
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ Map<String, String> qh = new LinkedHashMap<>();
|
|
|
|
+ qh.put("xzqh", r.getXzqh());
|
|
|
|
+ qh.put("xzqhName", SysDeptJlUtils.getDeptCache(r.getXzqh()));
|
|
|
|
+ qh.put("xzqhCode", sysDeptJlMapper.getXzqhCodes(r.getXzqh()));
|
|
|
|
+ xzqhList.add(qh);
|
|
|
|
+ }
|
|
|
|
+ r.setXzqhList(xzqhList);
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 新增高龄津贴批量追加信息
|
|
|
|
+ *
|
|
|
|
+ * @param gljtPlzj 高龄津贴批量追加信息
|
|
|
|
+ * @return 结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public int insertGljtPlzj(GljtPlzj gljtPlzj)
|
|
|
|
+ {
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getZjsj())) gljtPlzj.setZjsj(DateUtils.dateTimeNow());
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getZjr())) gljtPlzj.setZjr(SecurityUtils.getUsername());
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getZjrxm())) gljtPlzj.setZjrxm(SecurityUtils.getNickName());
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getZjdw())) gljtPlzj.setZjdw(SecurityUtils.getUserUnitName());
|
|
|
|
+ int res = gljtPlzjMapper.insert(gljtPlzj);
|
|
|
|
+ checkInZj(gljtPlzj);
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 修改高龄津贴批量追加信息
|
|
|
|
+ *
|
|
|
|
+ * @param gljtPlzj 高龄津贴批量追加信息
|
|
|
|
+ * @return 结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public int updateGljtPlzj(GljtPlzj gljtPlzj)
|
|
|
|
+ {
|
|
|
|
+ if (StringUtils.equals(gljtPlzj.getStatus(), "1")) {
|
|
|
|
+ // 已确认
|
|
|
|
+ asyncIn(gljtPlzj);
|
|
|
|
+ } else {
|
|
|
|
+ // 草稿编辑
|
|
|
|
+ gljtJfxxZjbfMapper.delete(new LambdaQueryWrapper<GljtJfxxZjbf>().eq(GljtJfxxZjbf::getPcId, gljtPlzj.getId()));
|
|
|
|
+ checkInZj(gljtPlzj);
|
|
|
|
+ }
|
|
|
|
+ return gljtPlzjMapper.updateById(gljtPlzj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 批量删除高龄津贴批量追加信息
|
|
|
|
+ *
|
|
|
|
+ * @param ids 需要删除的高龄津贴批量追加信息主键
|
|
|
|
+ * @return 结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public int deleteGljtPlzjByIds(String[] ids)
|
|
|
|
+ {
|
|
|
|
+ List<String> idList = Stream.of(ids).collect(Collectors.toList());
|
|
|
|
+ idList.forEach(i -> gljtJfxxZjbfMapper.delete(new LambdaQueryWrapper<GljtJfxxZjbf>().eq(GljtJfxxZjbf::getPcId, i)));
|
|
|
|
+ return gljtPlzjMapper.deleteBatchIds(Arrays.asList(ids));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int addJfxx(GljtPlzj gljtPlzj) {
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getId())) throw new ServiceException("发放批次主键不能为空");
|
|
|
|
+ GljtPlzj old = gljtPlzjMapper.selectById(gljtPlzj.getId());
|
|
|
|
+ if (ObjectUtils.isEmpty(old)) throw new ServiceException("未查询到该批次");
|
|
|
|
+ List<GljtJfxxZjbf> jfxxList = com.alibaba.fastjson.JSONArray.parseArray(gljtPlzj.getJfxxList().toJSONString(),
|
|
|
|
+ GljtJfxxZjbf.class);
|
|
|
|
+ if (CollectionUtils.isEmpty(gljtPlzj.getJfxxList())) throw new ServiceException("添加的计发信息不能为空");
|
|
|
|
+ List<GljtJfxx> jfje = com.alibaba.fastjson.JSONArray.parseArray(old.getJestr(),
|
|
|
|
+ GljtJfxx.class);
|
|
|
|
+ List<GljtJfxxZjbf> inList = new ArrayList<>();
|
|
|
|
+ for (GljtJfxxZjbf jfxx: jfxxList) {
|
|
|
|
+ String je = jfje.stream().filter(j -> StringUtils.equals(j.getFfyf(), jfxx.getFfyf())).findFirst().orElse(new GljtJfxx()).getFfje();
|
|
|
|
+ if (StringUtils.isEmpty(je)) je = "0";
|
|
|
|
+ jfxx.setId(IdUtils.simpleUUID());
|
|
|
|
+ jfxx.setFfje(je);
|
|
|
|
+ jfxx.setFflx("3");
|
|
|
|
+ jfxx.setPcId(gljtPlzj.getId());
|
|
|
|
+ jfxx.setStatus("0");
|
|
|
|
+ inList.add(jfxx);
|
|
|
|
+ }
|
|
|
|
+ gljtJfxxMapper.batchInsertZjbf(inList);
|
|
|
|
+ List<GljtJfxxZjbf> zjbfList = gljtJfxxZjbfMapper.selectList(new LambdaQueryWrapper<GljtJfxxZjbf>()
|
|
|
|
+ .eq(GljtJfxxZjbf::getPcId, gljtPlzj.getId()).select(GljtJfxxZjbf::getLrId, GljtJfxxZjbf::getFfje));
|
|
|
|
+ List<String> lrIdList = zjbfList.stream().map(GljtJfxxZjbf::getLrId).distinct().collect(Collectors.toList());
|
|
|
|
+ BigDecimal all = BigDecimal.ZERO;
|
|
|
|
+ for (GljtJfxxZjbf zjbf: zjbfList) {
|
|
|
|
+ all = all.add(new BigDecimal(zjbf.getFfje()));
|
|
|
|
+ }
|
|
|
|
+ gljtPlzj.setZjrs(String.valueOf(lrIdList.size()));
|
|
|
|
+ gljtPlzj.setZjje(all.toString());
|
|
|
|
+ return gljtPlzjMapper.updateById(gljtPlzj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int deleteJfxx(GljtPlzj gljtPlzj) {
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getJfIdList())) throw new ServiceException("删除的计发信息主键不能为空");
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getId())) throw new ServiceException("发放批次主键不能为空");
|
|
|
|
+ GljtPlzj old = gljtPlzjMapper.selectById(gljtPlzj.getId());
|
|
|
|
+ if (ObjectUtils.isEmpty(old)) throw new ServiceException("未查询到该批次");
|
|
|
|
+ List<String> deleteList = Stream.of(gljtPlzj.getJfIdList()).collect(Collectors.toList());
|
|
|
|
+ LambdaQueryWrapper<GljtJfxxZjbf> ldw = new LambdaQueryWrapper<GljtJfxxZjbf>()
|
|
|
|
+ .in(GljtJfxxZjbf::getId, deleteList);
|
|
|
|
+ gljtJfxxZjbfMapper.delete(ldw);
|
|
|
|
+ List<GljtJfxxZjbf> zjbfList = gljtJfxxZjbfMapper.selectList(new LambdaQueryWrapper<GljtJfxxZjbf>()
|
|
|
|
+ .eq(GljtJfxxZjbf::getPcId, gljtPlzj.getId()).select(GljtJfxxZjbf::getLrId, GljtJfxxZjbf::getFfje));
|
|
|
|
+ List<String> lrIdList = zjbfList.stream().map(GljtJfxxZjbf::getLrId).distinct().collect(Collectors.toList());
|
|
|
|
+ BigDecimal all = BigDecimal.ZERO;
|
|
|
|
+ for (GljtJfxxZjbf zjbf: zjbfList) {
|
|
|
|
+ all = all.add(new BigDecimal(zjbf.getFfje()));
|
|
|
|
+ }
|
|
|
|
+ gljtPlzj.setZjrs(String.valueOf(lrIdList.size()));
|
|
|
|
+ gljtPlzj.setZjje(all.toString());
|
|
|
|
+ return gljtPlzjMapper.updateById(gljtPlzj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void asyncIn(GljtPlzj gljtPlzj) {
|
|
|
|
+ GljtPlzj old = gljtPlzjMapper.selectById(gljtPlzj.getId());
|
|
|
|
+ List<GljtJfxxZjbf> zjbfList = gljtJfxxZjbfMapper.selectList(new LambdaQueryWrapper<GljtJfxxZjbf>().eq(GljtJfxxZjbf::getPcId, gljtPlzj.getId()));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(zjbfList)) {
|
|
|
|
+ List<GljtJfxx> inList = new ArrayList<>();
|
|
|
|
+ zjbfList.forEach(z -> {
|
|
|
|
+ EncryptionUtils.decryptForPlaintext(z);
|
|
|
|
+ GljtJfxx in = new GljtJfxx();
|
|
|
|
+ BeanUtil.copyProperties(z, in, new CopyOptions().ignoreNullValue());
|
|
|
|
+ in.setId(IdUtils.simpleUUID());
|
|
|
|
+ in.setPcId(null);
|
|
|
|
+ in.setDfyf(old.getDfyf());
|
|
|
|
+ in.setJfms("追加补发");
|
|
|
|
+ inList.add(in);
|
|
|
|
+ });
|
|
|
|
+ gljtJfxxMapper.batchInsert(inList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void checkInZj(GljtPlzj gljtPlzj) {
|
|
|
|
+ List<GljtJfxx> jfxxList = getJfxxList(gljtPlzj);
|
|
|
|
+ List<String> lrIdList = jfxxList.stream().map(GljtJfxx::getLrId).distinct().collect(Collectors.toList());
|
|
|
|
+ BigDecimal all = BigDecimal.ZERO;
|
|
|
|
+ List<GljtJfxxZjbf> inList = new ArrayList<>();
|
|
|
|
+ String jestr = gljtPlzj.getJeList().toJSONString();
|
|
|
|
+ gljtPlzj.setJestr(jestr);
|
|
|
|
+ List<GljtJfxx> jfje = com.alibaba.fastjson.JSONArray.parseArray(jestr, GljtJfxx.class);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(jfxxList)) {
|
|
|
|
+ for (GljtJfxx jfxx: jfxxList) {
|
|
|
|
+ String je = jfje.stream().filter(j -> StringUtils.equals(j.getFfyf(), jfxx.getFfyf())).findFirst().orElse(new GljtJfxx()).getFfje();
|
|
|
|
+ if (StringUtils.isEmpty(je)) je = "0";
|
|
|
|
+ GljtJfxxZjbf in = new GljtJfxxZjbf();
|
|
|
|
+ all = all.add(new BigDecimal(je));
|
|
|
|
+ BeanUtil.copyProperties(jfxx, in, new CopyOptions().ignoreNullValue());
|
|
|
|
+ in.setId(IdUtils.simpleUUID());
|
|
|
|
+ in.setFfje(je);
|
|
|
|
+ in.setFflx("3");
|
|
|
|
+ in.setPcId(gljtPlzj.getId());
|
|
|
|
+ in.setStatus("0");
|
|
|
|
+ inList.add(in);
|
|
|
|
+ }
|
|
|
|
+ gljtJfxxMapper.batchInsertZjbf(inList);
|
|
|
|
+ }
|
|
|
|
+ gljtPlzj.setZjrs(String.valueOf(lrIdList.size()));
|
|
|
|
+ gljtPlzj.setZjje(all.toString());
|
|
|
|
+ gljtPlzjMapper.updateById(gljtPlzj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<GljtJfxx> getJfxxList(GljtPlzj gljtPlzj) {
|
|
|
|
+ String filter = StringUtils.isEmpty(gljtPlzj.getXzqh()) ? SecurityUtils.getAreaCode() : gljtPlzj.getXzqh();
|
|
|
|
+ // 当发/补发,已发放
|
|
|
|
+ LambdaQueryWrapper<GljtJfxx> baseLqw = new LambdaQueryWrapper<GljtJfxx>()
|
|
|
|
+ .in(GljtJfxx::getFflx, Arrays.asList("0", "1")).eq(GljtJfxx::getStatus, "1");
|
|
|
|
+ // 行政区划(如某街道)
|
|
|
|
+ if (filter.contains(",")) {
|
|
|
|
+ List<String> xzqh = Stream.of(gljtPlzj.getXzqh().split(",")).collect(Collectors.toList());
|
|
|
|
+ baseLqw.and(l -> {
|
|
|
|
+ for (String f: xzqh) {
|
|
|
|
+ l.or(x -> x.likeRight(GljtJfxx::getXzqh, SubCodeUtil.code2Short(f)));
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ baseLqw.likeRight(GljtJfxx::getXzqh, SubCodeUtil.code2Short(filter));
|
|
|
|
+ }
|
|
|
|
+ // 开始月份(大于等于)
|
|
|
|
+ if (StringUtils.isNotEmpty(gljtPlzj.getStartyf())) baseLqw.ge(GljtJfxx::getDfyf, gljtPlzj.getStartyf());
|
|
|
|
+ // 结束月份(小于等于)
|
|
|
|
+ if (StringUtils.isNotEmpty(gljtPlzj.getEndyf())) baseLqw.le(GljtJfxx::getDfyf, gljtPlzj.getEndyf());
|
|
|
|
+ // 补贴标准(多选)
|
|
|
|
+ if (StringUtils.isNotEmpty(gljtPlzj.getBtbz())) {
|
|
|
|
+ List<String> btbzList = new ArrayList<>();
|
|
|
|
+ if (gljtPlzj.getBtbz().contains(",")) {
|
|
|
|
+ btbzList = Stream.of(gljtPlzj.getBtbz().split(",")).collect(Collectors.toList());
|
|
|
|
+ } else {
|
|
|
|
+ btbzList.add(gljtPlzj.getBtbz());
|
|
|
|
+ }
|
|
|
|
+ baseLqw.in(GljtJfxx::getBtbz, btbzList);
|
|
|
|
+ }
|
|
|
|
+ // 验活
|
|
|
|
+ if (StringUtils.equals(gljtPlzj.getJkzk(), "1")) baseLqw.eq(GljtJfxx::getJkzk, "0");
|
|
|
|
+ // 正常/暂停
|
|
|
|
+ if (StringUtils.equals(gljtPlzj.getLrzt(), "0")) baseLqw.eq(GljtJfxx::getLrzt, "1");
|
|
|
|
+ List<GljtJfxx> res = gljtJfxxMapper.selectList(baseLqw);
|
|
|
|
+ if (StringUtils.isNotEmpty(gljtPlzj.getId())) {
|
|
|
|
+ List<GljtJfxxZjbf> zjbfList = gljtJfxxZjbfMapper.selectList(new LambdaQueryWrapper<GljtJfxxZjbf>()
|
|
|
|
+ .select(GljtJfxxZjbf::getFfyf, GljtJfxxZjbf::getLrId).eq(GljtJfxxZjbf::getPcId, gljtPlzj.getId()));
|
|
|
|
+ for (GljtJfxxZjbf zjbf: zjbfList) {
|
|
|
|
+ res.removeIf(r -> StringUtils.equals(zjbf.getLrId(), r.getLrId()) && StringUtils.equals(zjbf.getFfyf(), r.getFfyf()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ res.forEach(EncryptionUtils::decryptForPlaintext);
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<GljtJfxxZjbf> getJfxxZjbfList(GljtJfxxZjbf gljtJfxxZjbf) {
|
|
|
|
+ if (StringUtils.isEmpty(gljtJfxxZjbf.getPcId())) {
|
|
|
|
+ gljtJfxxZjbf.setPcId("0");
|
|
|
|
+ }
|
|
|
|
+ EncryptionUtils.encryptionForPlaintext(gljtJfxxZjbf);
|
|
|
|
+ List<GljtJfxxZjbf> res = gljtJfxxZjbfMapper.selectList(new LambdaQueryWrapper<>(gljtJfxxZjbf).orderByDesc(GljtJfxxZjbf::getCreateTimeStr));
|
|
|
|
+ res.forEach(r -> {
|
|
|
|
+ EncryptionUtils.decryptForPlaintext(r);
|
|
|
|
+ r.setXzqhName(SysDeptJlUtils.getDeptCache(r.getXzqh()));
|
|
|
|
+ r.setXzqhCode(sysDeptJlMapper.getXzqhCodes(r.getXzqh()));
|
|
|
|
+ });
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<Map<String, Object>> getPcTj(GljtPlzj gljtPlzj) {
|
|
|
|
+ List<Map<String, Object>> res = new ArrayList<>();
|
|
|
|
+ if (StringUtils.isEmpty(gljtPlzj.getId())) throw new ServiceException("批次不能为空");
|
|
|
|
+ GljtPlzj pc = gljtPlzjMapper.selectById(gljtPlzj.getId());
|
|
|
|
+ if (ObjectUtils.isEmpty(pc)) throw new ServiceException("批次未查询到,请刷新后再次操作");
|
|
|
|
+ List<GljtJfxxZjbf> jfxxList = gljtJfxxZjbfMapper.selectList(new LambdaQueryWrapper<GljtJfxxZjbf>()
|
|
|
|
+ .select(GljtJfxxZjbf::getXzqh, GljtJfxxZjbf::getFfyf, GljtJfxxZjbf::getFfje)
|
|
|
|
+ .eq(GljtJfxxZjbf::getPcId, gljtPlzj.getId()));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(jfxxList)) {
|
|
|
|
+ List<String> xzqhList = new ArrayList<>();
|
|
|
|
+ if (pc.getXzqh().contains(",")) {
|
|
|
|
+ xzqhList.addAll(Stream.of(pc.getXzqh().split(",")).collect(Collectors.toList()));
|
|
|
|
+ } else {
|
|
|
|
+ xzqhList.add(pc.getXzqh());
|
|
|
|
+ }
|
|
|
|
+ BigDecimal allsum = BigDecimal.ZERO;
|
|
|
|
+ long zrssum = 0;
|
|
|
|
+ for (String xzqh: xzqhList) {
|
|
|
|
+ SysDeptJl deptJl = sysDeptJlMapper.selectSysDeptJlByCode(xzqh);
|
|
|
|
+ if (ObjectUtils.isNotEmpty(deptJl)) {
|
|
|
|
+ Map<String, Object> in = new LinkedHashMap<>();
|
|
|
|
+ String xzqhName = deptJl.getName();
|
|
|
|
+ String subCode = SubCodeUtil.code2Short(xzqh);
|
|
|
|
+ List<GljtJfxxZjbf> jdjfList = jfxxList.stream().filter(j -> j.getXzqh().contains(subCode)).collect(Collectors.toList());
|
|
|
|
+ BigDecimal all = jdjfList.stream().map(d -> new BigDecimal(d.getFfje()))
|
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
+ allsum = allsum.add(all);
|
|
|
|
+ long zrs = jdjfList.size();
|
|
|
|
+ zrssum += zrs;
|
|
|
|
+ in.put("jdmc", xzqhName);
|
|
|
|
+ in.put("zrs", zrs);
|
|
|
|
+ in.put("zje", all.toString());
|
|
|
|
+ res.add(in);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Map<String, Object> sum = new LinkedHashMap<>();
|
|
|
|
+ sum.put("jdmc", "总计");
|
|
|
|
+ sum.put("zrs", zrssum);
|
|
|
|
+ sum.put("zje", allsum.toString());
|
|
|
|
+ res.add(sum);
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+}
|