From 363d13fd798185779d670764abbbd68ecb984dea Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 22 Nov 2023 15:03:26 +0800
Subject: [PATCH] 水位库容填报修改
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java | 320 +++++++++++++++++++++++++++++++---------------------
1 files changed, 191 insertions(+), 129 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java
index e4ff3b6..1de14d8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.sjztmd.service.impl;
+import cn.gistack.sm.sjztmd.entity.TbAttResRsbVerspi;
import cn.gistack.sm.sjztmd.entity.TbFileStorageLocation;
import cn.gistack.sm.sjztmd.entity.TbRelResUser;
import cn.gistack.sm.sjztmd.entity.TbResStagCapDisc;
@@ -23,6 +24,7 @@
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.stream.Collectors;
@Service
@DS("zt")
@@ -36,32 +38,38 @@
private ITbAttResBaseService tbAttResBaseService;
@Override
- public Boolean addAll(List<TbResStagCapDisc> list) {
- //先把该水库的数据全部删除
- String resGuid = list.get(0).getResGuid();
-
- baseMapper.deleteByResGuid(resGuid);
- Date now = DateUtil.now();
+ public Boolean addAll(List<TbResStagCapDisc> newList) {
+ boolean edit = false;
+ // 编辑标记
+ if (newList.get(0).getCheckState()==4){
+ edit = true;
+ }
+ // 查询是否存在
+ List<TbResStagCapDisc> oldList = baseMapper.getDetailByResGuid(newList.get(0).getResGuid());
+ // 更新日志
+ setUpdateLog(oldList,newList);
+ // 创建或更新数据
+ boolean flag = addOrUpdate(oldList,newList);
+ if (flag){
+// if (!edit) {
+// tbAttResBaseService.updateFinalState(newList.get(0).getResGuid(), 0);
+// }
+ return true;
+ }
+ // 返回
+ return false;
- //循环数组
- list.forEach(tbResStagCapDisc -> {
- //如果guid为空表示新增数据
- if (StringUtil.isBlank(tbResStagCapDisc.getGuid())){
- tbResStagCapDisc.setCreateTime(now);
- tbResStagCapDisc.setUpdateTime(now);
- //更新操作日志
- setUpdateLog(tbResStagCapDisc,tbResStagCapDisc);
- baseMapper.insert(tbResStagCapDisc);
- }else{
- //更新数据
- tbResStagCapDisc.setUpdateTime(now);
- //更新操作日志
- setUpdateLog(tbResStagCapDisc,tbResStagCapDisc);
- baseMapper.insert(tbResStagCapDisc);
- }
- });
- return true;
+ }
+
+ /**
+ * 查询水库填报详情信息
+ * @param resGuid
+ * @return
+ */
+ @Override
+ public List<TbResStagCapDisc> getDetailByResGuid(String resGuid) {
+ return baseMapper.getDetailByResGuid(resGuid);
}
@Override
@@ -73,130 +81,184 @@
}
@Override
- public Boolean auditByGuid(List<TbResStagCapDisc> list) {
- boolean b = false;
+ public Boolean auditByGuid(List<TbResStagCapDisc> newList) {
boolean edit = false;
// 编辑标记
- if (list.get(0).getCheckState()==4){
+ if (newList.get(0).getCheckState()==4){
edit = true;
}
-
- for (int i = 0; i < list.size(); i++) {
-
- TbResStagCapDisc tbResStagCapDisc = list.get(i);
-
- //更新操作日志
- setUpdateLog(tbResStagCapDisc,tbResStagCapDisc);
-
- //更新审核日志
- setUpdateCheckLog(tbResStagCapDisc,tbResStagCapDisc);
-
- // 驳回情况下将状态修改回0即已填写未提交状态
- if (tbResStagCapDisc.getCheckState()==3){
- tbResStagCapDisc.setCheckState(0);
- }
-
- Date now = DateUtil.now();
- //更新数据
- tbResStagCapDisc.setUpdateTime(now);
- updateById(tbResStagCapDisc);
- }
-
-// if (b){
+ // 查询是否存在
+ List<TbResStagCapDisc> oldList = baseMapper.getDetailByResGuid(newList.get(0).getResGuid());
+ // 更新操作日志
+ setUpdateLog(oldList,newList);
+ // 更新审核日志
+ setUpdateCheckLog(oldList,newList);
+ // 更新数据
+ boolean batch = updateBatchById(newList);
+ if (batch){
// if (!edit) {
-// tbAttResBaseService.updateFinalState(list.get(0).getResGuid(), list.get(0).getCheckState());
+// tbAttResBaseService.updateFinalState(newList.get(0).getResGuid(), newList.get(0).getCheckState());
// }
-// return true;
-// }
-
- return true;
+ return true;
+ }
+ // 返回
+ return false;
}
/**
- * @param older
- * @param newer
+ * @param oldList
+ * @param newList
* 更新审核记录
*/
- private void setUpdateCheckLog(TbResStagCapDisc older, TbResStagCapDisc newer) {
- String fillName = "";
- if (newer.getCheckState()==2){
- fillName = "审核";
- }
- if (newer.getCheckState()==3){
- fillName = "退回" + (null==newer.getReason()?"":":" + newer.getReason());
- }
+ private void setUpdateCheckLog(List<TbResStagCapDisc> oldList,List<TbResStagCapDisc> newList) {
+ // 遍历
+ for (TbResStagCapDisc newer : newList) {
+ String fillName = "";
+ if (newer.getCheckState() == 2) {
+ fillName = "审核";
+ }
+ if (newer.getCheckState() == 3) {
+ fillName = "退回" + (null == newer.getCheckLog() ? "" : ":" + newer.getCheckLog());
+ for (TbResStagCapDisc older : oldList) {
+ if (older.getGuid().equals(newer.getGuid())){
+ // 退回时进行设置状态为填写中
+ newer.setCheckState(0);
+ }
+ }
+ }
- // 拼接
- String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
- String userName = AuthUtil.getUser().getUserName();
- String phone = userClient.userInfoById(AuthUtil.getUserId()).getData().getPhone();
- StringBuilder builder = new StringBuilder();
- builder.append(time)
- .append(",")
- .append(fillName)
- .append(",")
- .append(userName)
- .append(",")
- .append(phone)
- .append(";");
- // 判断是否存在
- if (null==older){
- // 填报
- newer.setCheckLog(builder.toString());
- }else {
- StringBuilder stringBuilder = new StringBuilder(null==older.getCheckLog()?"":older.getCheckLog());
- stringBuilder.append(builder);
- // 填报
- newer.setCheckLog(stringBuilder.toString());
+ // 拼接
+ String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
+ String userName = AuthUtil.getUser().getUserName();
+ String phone = userClient.userInfoById(AuthUtil.getUserId()).getData().getPhone();
+ StringBuilder builder = new StringBuilder();
+ builder.append(time)
+ .append(",")
+ .append(fillName)
+ .append(",")
+ .append(userName)
+ .append(",")
+ .append(phone)
+ .append(";");
+ // 判断是否存在
+ if (null==newer.getGuid() || newer.getGuid().equals("")){
+ // 填报
+ newer.setCheckLog(builder.toString());
+ } else {
+ for (TbResStagCapDisc older : oldList) {
+ if (older.getGuid().equals(newer.getGuid())){
+ StringBuilder stringBuilder = new StringBuilder(null == older.getCheckLog() ? "" : older.getCheckLog());
+ stringBuilder.append(builder);
+ // 填报
+ newer.setCheckLog(stringBuilder.toString());
+ }
+ }
+ }
}
}
/**
- * @param older
- * @param newer
+ * @param oldList
+ * @param newList
* 更新操作记录
*/
- private void setUpdateLog(TbResStagCapDisc older,TbResStagCapDisc newer) {
- String fillName = "";
- if (newer.getCheckState()==0){
- fillName = "编辑";
- }
- if (newer.getCheckState()==1){
- fillName = "提交";
- }
- if (newer.getCheckState()==2){
- fillName = "审核";
- }
- if (newer.getCheckState()==3){
- fillName = "退回" + (null==newer.getCheckLog()?"":":" + newer.getCheckLog());
- }
- if (newer.getCheckState()==4){
- fillName = "编辑";
- newer.setCheckState(older.getCheckState());
- }
+ private void setUpdateLog(List<TbResStagCapDisc> oldList,List<TbResStagCapDisc> newList) {
+ // 遍历
+ for (TbResStagCapDisc newer : newList){
+ String fillName = "";
+ if (newer.getCheckState()==0){
+ fillName = "编辑";
+ }
+ if (newer.getCheckState()==1){
+ fillName = "提交";
+ }
+ if (newer.getCheckState()==2){
+ fillName = "审核";
+ }
+ if (newer.getCheckState()==3){
+ fillName = "退回" + (null==newer.getCheckLog()?"":":" + newer.getCheckLog());
+ }
+ // 管理员编辑
+ if (newer.getCheckState()==4){
+ fillName = "编辑";
+ // 找到相关的 guid 数据
+ if (oldList.size()>0){
+ newer.setCheckState(oldList.get(0).getCheckState());
+ }
+ }
- // 拼接
- String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
- String userName = AuthUtil.getUser().getUserName();
- String phone = userClient.userInfoById(AuthUtil.getUserId()).getData().getPhone();
- StringBuilder builder = new StringBuilder();
- builder.append(time)
- .append(",")
- .append(fillName)
- .append(",")
- .append(userName)
- .append(",")
- .append(phone)
- .append(";");
- // 判断是否存在
- if (null==older){
- // 填报
- newer.setLog(builder.toString());
- }else {
- StringBuilder stringBuilder = new StringBuilder(null==older.getLog()?"":older.getLog());
- stringBuilder.append(builder);
- // 填报
- newer.setLog(stringBuilder.toString());
+ // 拼接
+ String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
+ String userName = AuthUtil.getUser().getUserName();
+ String phone = userClient.userInfoById(AuthUtil.getUserId()).getData().getPhone();
+ StringBuilder builder = new StringBuilder();
+ builder.append(time)
+ .append(",")
+ .append(fillName)
+ .append(",")
+ .append(userName)
+ .append(",")
+ .append(phone)
+ .append(";");
+ // 判断是否存在
+ if (null==newer.getGuid() || newer.getGuid().equals("")){
+ // 填报
+ newer.setLog(builder.toString());
+ }else {
+ for (TbResStagCapDisc older : oldList) {
+ if (older.getGuid().equals(newer.getGuid())){
+ StringBuilder stringBuilder = new StringBuilder(null==older.getLog()?"":older.getLog());
+ stringBuilder.append(builder);
+ // 填报
+ newer.setLog(stringBuilder.toString());
+ }
+ }
+ }
}
}
+
+
+
+
+ /**
+ * 新增或更新数据
+ * @param oldList
+ * @param newList
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public boolean addOrUpdate(List<TbResStagCapDisc> oldList, List<TbResStagCapDisc> newList) {
+ // 取旧数据和新提交数据差集--删除
+ // 去除前一天已填报的人员手机号集合
+ List<TbResStagCapDisc> removeList = oldList.stream().filter(vo -> !newList.stream().map(e ->
+ e.getGuid()).collect(Collectors.toList()).contains(vo.getGuid())).collect(Collectors.toList());
+ // 取旧数据和新提交数据交集--更新
+ List<TbResStagCapDisc> updateList = newList.stream().filter(vo -> oldList.stream().map(e ->
+ e.getGuid()).collect(Collectors.toList()).contains(vo.getGuid())).collect(Collectors.toList());
+ // 取新数提交据和旧数据交集--新增
+ List<TbResStagCapDisc> addList = newList.stream().filter(vo -> !oldList.stream().map(e ->
+ e.getGuid()).collect(Collectors.toList()).contains(vo.getGuid())).collect(Collectors.toList());
+ boolean addFlag = true;
+ boolean updateFlag = true;
+ boolean removeFlag = true;
+ if (addList.size()>0){
+ // 批量新增
+ addFlag = saveBatch(addList);
+// tbAttResBaseService.updateFinalState(addList.get(0).getResGuid(),addList.get(0).getCheckState());
+ }
+ if (updateList.size()>0){
+ // 批量更新
+ addFlag = updateBatchById(updateList);
+// tbAttResBaseService.updateFinalState(updateList.get(0).getResGuid(),updateList.get(0).getCheckState());
+ }
+ if (removeList.size()>0){
+ // 批量删除
+ removeFlag = removeBatchByIds(removeList);
+ }
+ if (addFlag && updateFlag && removeFlag){
+ return true;
+ }
+ // 返回
+ return false;
+ }
}
--
Gitblit v1.9.3