Browse Source

20241008_sun

15143018065 6 months ago
parent
commit
c155eeff02

+ 2 - 0
ruoyi-modules/mz-business-btgl/src/main/java/com/ruoyi/business/service/IZwywBtglGlbtService.java

@@ -64,5 +64,7 @@ public interface IZwywBtglGlbtService
 
     public void checkGlbtJob();
 
+    public void checkGlbtJobByMonth(String month);
+
     public String getBfje(ZwywBtglGlbt zwywBtglGlbt);
 }

+ 140 - 0
ruoyi-modules/mz-business-btgl/src/main/java/com/ruoyi/business/service/impl/ZwywBtglGlbtServiceImpl.java

@@ -425,6 +425,146 @@ public class ZwywBtglGlbtServiceImpl implements IZwywBtglGlbtService
         return msg.toString();
     }
 
+    public void checkGlbtJobByMonth(String month) {
+        LoginUser user = userService.getUserInfo("admin", SecurityConstants.INNER).getData();
+        SecurityContextHolder.set(SecurityConstants.LOGIN_USER, user);
+        LambdaQueryWrapper<ZwywBtglGlbt> lqw = new LambdaQueryWrapper<ZwywBtglGlbt>()
+                .eq(ZwywBtglGlbt::getStatus, AdvancedStatus.MONTH.getCode())
+                .le(ZwywBtglGlbt::getFfyf, month);
+        List<ZwywBtglGlbt> glbtList = zwywBtglGlbtMapper.selectList(lqw);
+        // 社区分组
+        Map<String, List<ZwywBtglGlbt>> glbtGroupList = glbtList.stream()
+                .collect(Collectors.groupingBy(ZwywBtglGlbt::getXzqh));
+        // 根据等级部门查询该部门创建且启用日期及停用日期符合要求的高领津贴项目
+        LambdaQueryWrapper<ZwywBtglGlbtxm> xmLqw = new LambdaQueryWrapper<ZwywBtglGlbtxm>()
+                .eq(ZwywBtglGlbtxm::getXmzt, GlbtXmztStatus.QY.getCode())
+                .le(ZwywBtglGlbtxm::getQyrq, month + "31")
+                .and(wq -> wq.ge(ZwywBtglGlbtxm::getTyrq, month + "31")
+                        .or().isNull(ZwywBtglGlbtxm::getTyrq));
+        List<ZwywBtglGlbtxm> xmList = zwywBtglGlbtxmMapper.selectList(xmLqw);
+        glbtGroupList.forEach((xzqh, v) -> {
+            SysDeptJl dept = sysDeptJlMapper.selectSysDeptJlByCode(xzqh);
+            if (ObjectUtils.isNotEmpty(dept)) {
+                List<String> deptCodeList = Arrays.asList(dept.getAncestors().split(","));
+                ZwywBtglGlbtxm qxXm = xmList.stream().filter(x -> StringUtils.equals(deptCodeList.get(2), x.getXzqh()))
+                        .findFirst().orElse(null);
+                ZwywBtglGlbtxm dsXm = xmList.stream().filter(x -> StringUtils.equals(deptCodeList.get(1), x.getXzqh()))
+                        .findFirst().orElse(null);
+                ZwywBtglGlbtxm sjXm = xmList.stream().filter(x -> StringUtils.equals(deptCodeList.get(0), x.getXzqh()))
+                        .findFirst().orElse(null);
+                List<ZwywBtglGlbtmx> mxList = new ArrayList<>();
+                BigDecimal sum = v.stream().map(d -> {
+                    BigDecimal hj = BigDecimal.ZERO;
+                    BigDecimal ffje = BigDecimal.ZERO;
+                    BigDecimal bfje = BigDecimal.ZERO;
+                    BigDecimal zje = BigDecimal.ZERO;
+                    BigDecimal cffje = BigDecimal.ZERO;
+                    BigDecimal cbfje = BigDecimal.ZERO;
+                    BigDecimal czje = BigDecimal.ZERO;
+                    BigDecimal sffje = BigDecimal.ZERO;
+                    BigDecimal sbfje = BigDecimal.ZERO;
+                    BigDecimal szje = BigDecimal.ZERO;
+                    int age = DateUtils.getCurrentAge(DateUtils.dateTime(YYYYMMDD, d.getCsrq()));
+                    if (80 <= age && age <= 89) {
+                        if (ObjectUtils.isNotEmpty(qxXm)) {
+                            ffje = new BigDecimal(qxXm.getBtzjE());
+                        }
+                        if (ObjectUtils.isNotEmpty(dsXm)) {
+                            cffje = new BigDecimal(dsXm.getBtzjE());
+                        }
+                        if (ObjectUtils.isNotEmpty(sjXm)) {
+                            sffje = new BigDecimal(sjXm.getBtzjE());
+                        }
+                    } else if (90 <= age && age <= 99) {
+                        if (ObjectUtils.isNotEmpty(qxXm)) {
+                            ffje = new BigDecimal(qxXm.getBtzjN());
+                        }
+                        if (ObjectUtils.isNotEmpty(dsXm)) {
+                            cffje = new BigDecimal(dsXm.getBtzjN());
+                        }
+                        if (ObjectUtils.isNotEmpty(sjXm)) {
+                            sffje = new BigDecimal(sjXm.getBtzjN());
+                        }
+                    } else if (age >= 100) {
+                        if (ObjectUtils.isNotEmpty(qxXm)) {
+                            ffje = new BigDecimal(qxXm.getBtzjH());
+                        }
+                        if (ObjectUtils.isNotEmpty(dsXm)) {
+                            cffje = new BigDecimal(dsXm.getBtzjH());
+                        }
+                        if (ObjectUtils.isNotEmpty(sjXm)) {
+                            sffje = new BigDecimal(sjXm.getBtzjH());
+                        }
+                    }
+                    // 判断是否第一个月发放
+                    if (StringUtils.equals(d.getFfyf(), month)) {
+                        if (StringUtils.equals(d.getIsBf(), WhetherStatus.YES.getCode())) {
+                            if (StringUtils.isNotEmpty(d.getBfys())) {
+                                if (ObjectUtils.isNotEmpty(qxXm)) {
+                                    bfje = ffje.multiply(new BigDecimal(d.getBfys()));
+                                }
+                                if (ObjectUtils.isNotEmpty(dsXm)) {
+                                    cbfje = cffje.multiply(new BigDecimal(d.getBfys()));
+                                }
+                                if (ObjectUtils.isNotEmpty(sjXm)) {
+                                    sbfje = sffje.multiply(new BigDecimal(d.getBfys()));
+                                }
+                            }
+                        }
+                    }
+                    zje = ffje.add(bfje);
+                    czje = cffje.add(cbfje);
+                    szje = sffje.add(sbfje);
+                    hj = zje.add(czje).add(szje);
+                    ZwywBtglGlbtmx mx = new ZwywBtglGlbtmx();
+                    mx.setGlbtId(d.getId());
+                    mx.setFfje(String.valueOf(ffje));
+                    mx.setBfje(String.valueOf(bfje));
+                    mx.setZje(String.valueOf(zje));
+                    mx.setCffje(String.valueOf(cffje));
+                    mx.setCbfje(String.valueOf(cbfje));
+                    mx.setCzje(String.valueOf(czje));
+                    mx.setSffje(String.valueOf(sffje));
+                    mx.setSbfje(String.valueOf(sbfje));
+                    mx.setSzje(String.valueOf(szje));
+                    mxList.add(mx);
+                    return hj;
+                }).reduce(BigDecimal.ZERO, BigDecimal::add);
+                ZwywBtglGlbtqd qd = new ZwywBtglGlbtqd();
+                qd.setFfyf(month);
+                qd.setFfdq(xzqh);
+                qd.setZrs(String.valueOf(mxList.size()));
+                qd.setZje(String.valueOf(sum));
+                ZwywBtglGlbtqd glbtqd = zwywBtglGlbtqdMapper.selectOne(new LambdaQueryWrapper<ZwywBtglGlbtqd>()
+                        .eq(ZwywBtglGlbtqd::getFfyf, qd.getFfyf())
+                        .eq(ZwywBtglGlbtqd::getFfdq, qd.getFfdq()));
+                // 单月内多次运行逻辑-首次运行插入新数据-再次运行更新数据
+                if (ObjectUtils.isEmpty(glbtqd)) {
+                    zwywBtglGlbtqdMapper.insert(qd);
+                    mxList.forEach(m -> {
+                        m.setGlbtqdId(qd.getId());
+                        zwywBtglGlbtmxMapper.insert(m);
+                    });
+                } else {
+                    qd.setId(glbtqd.getId());
+                    zwywBtglGlbtqdMapper.updateById(qd);
+                    mxList.forEach(m -> {
+                        ZwywBtglGlbtmx glbtmx = zwywBtglGlbtmxMapper.selectOne(new LambdaQueryWrapper<ZwywBtglGlbtmx>()
+                                .eq(ZwywBtglGlbtmx::getGlbtId, m.getGlbtId())
+                                .eq(ZwywBtglGlbtmx::getGlbtqdId, qd.getId()));
+                        if (ObjectUtils.isEmpty(glbtmx)) {
+                            m.setGlbtqdId(qd.getId());
+                            zwywBtglGlbtmxMapper.insert(m);
+                        } else {
+                            m.setId(glbtmx.getId());
+                            zwywBtglGlbtmxMapper.updateById(m);
+                        }
+                    });
+                }
+            }
+        });
+    }
+
     public void checkGlbtJob() {
         LoginUser user = userService.getUserInfo("admin", SecurityConstants.INNER).getData();
         SecurityContextHolder.set(SecurityConstants.LOGIN_USER, user);

+ 13 - 0
ruoyi-modules/mz-business/src/main/java/com/ruoyi/business/controller/ZwywBtglGlbtController.java

@@ -2,6 +2,8 @@ package com.ruoyi.business.controller;
 
 import com.ruoyi.business.domain.ZwywBtglGlbt;
 import com.ruoyi.business.service.IZwywBtglGlbtService;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -127,6 +129,17 @@ public class ZwywBtglGlbtController extends BaseController
         zwywBtglGlbtService.checkGlbtJob();
     }
 
+    @PostMapping("/checkJobByMonth")
+    public void checkJobByMonth(@RequestBody ZwywBtglGlbt zwywBtglGlbt) {
+        if (StringUtils.isEmpty(zwywBtglGlbt.getFfyf())) {
+            throw new ServiceException("发放月份不能为空");
+        }
+        if (zwywBtglGlbt.getFfyf().length() != 6) {
+            throw new ServiceException("发放月份格式不对");
+        }
+        zwywBtglGlbtService.checkGlbtJobByMonth(zwywBtglGlbt.getFfyf());
+    }
+
     @PostMapping("/getBfje")
     public AjaxResult getBfje(@RequestBody ZwywBtglGlbt zwywBtglGlbt) {
         return AjaxResult.success(zwywBtglGlbtService.getBfje(zwywBtglGlbt));

+ 1 - 1
ruoyi-modules/mz-lnst/src/main/java/com/ruoyi/lnst/service/impl/YlServer.java

@@ -40,7 +40,7 @@ public class YlServer {
 //        object2.put("dlhmb", "15143018066");
 //        object2.put("jtfs", "99");
 
-        System.out.println(SecurityUtils.sm4encrypt_ECB("1234567887654321", "1c75c7a26039b6ca1096c72de8bdc10f"));
+        System.out.println(SecurityUtils.sm4decrypt_ECB("1234567887654321", "XTQOX1w7yNlCmPSwhL5XGwKAbsJHyL2ECl2F+DY1uP+M5vfOKBE1tQigyjwBaQ30"));
 //        LnstMchnt mchnt = new LnstMchnt();
 //        mchnt.setMchnt("10002707");
 //        mchnt.setSrc("HHBI");