guoshilong
2023-11-22 363d13fd798185779d670764abbbd68ecb984dea
水位库容填报修改
5 files modified
346 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbResStagCapDisc.java 15 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResStagCapDiscMapper.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResStagCapDiscMapper.xml 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java 320 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbResStagCapDisc.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.sjztmd.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -29,42 +30,42 @@
     * 水位
     */
    @ApiModelProperty(value = "水位(米)")
    @TableField("\"stag\"")
    @TableField(value = "\"stag\"",fill = FieldFill.UPDATE)
    private Double stag;
    /**
     * 面积
     */
    @ApiModelProperty(value = "面积(平方千米)")
    @TableField("\"area\"")
    @TableField(value = "\"area\"",fill = FieldFill.UPDATE)
    private Double area;
    /**
     * 库容
     */
    @ApiModelProperty(value = "库容(万立方米)")
    @TableField("\"cap\"")
    @TableField(value = "\"cap\"",fill = FieldFill.UPDATE)
    private Double cap;
    /**
     * 库容
     */
    @ApiModelProperty(value = "溢洪道(秒每立方米)")
    @TableField("\"spillway\"")
    @TableField(value = "\"spillway\"",fill = FieldFill.UPDATE)
    private Double spillway;
    /**
     * 库容
     */
    @ApiModelProperty(value = "非常溢洪道(秒每立方米)")
    @TableField("\"emergency_spillway\"")
    @TableField(value = "\"emergency_spillway\"",fill = FieldFill.UPDATE)
    private Double emergencySpillway;
    /**
     * 库容
     */
    @ApiModelProperty(value = "总泄量(秒每立方米)")
    @TableField("\"total_discharge\"")
    @TableField(value = "\"total_discharge\"",fill = FieldFill.UPDATE)
    private Double totalDischarge;
    /**
@@ -121,6 +122,4 @@
    @TableField("\"check_log\"")
    private String checkLog;
    @TableField(exist = false)
    private String reason;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResStagCapDiscMapper.java
@@ -1,12 +1,17 @@
package cn.gistack.sm.sjztmd.mapper;
import cn.gistack.sm.sjztmd.entity.TbAttResRsbVerspi;
import cn.gistack.sm.sjztmd.entity.TbResStagCapDisc;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import java.util.List;
public interface TbResStagCapDiscMapper extends BaseMapper<TbResStagCapDisc> {
    void deleteByResGuid(@Param("resGuid") String resGuid);
    List<TbResStagCapDisc> getDetailByResGuid(@Param("resGuid") String resGuid);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResStagCapDiscMapper.xml
@@ -8,4 +8,7 @@
    </delete>
    <select id="getDetailByResGuid" resultType="cn.gistack.sm.sjztmd.entity.TbResStagCapDisc">
        SELECT * FROM "tb_res_stag_cap_disc" WHERE "res_guid" = #{resGuid}
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.sjztmd.service;
import cn.gistack.sm.sjztmd.entity.TbAttResRsbVerspi;
import cn.gistack.sm.sjztmd.entity.TbRelResUser;
import cn.gistack.sm.sjztmd.entity.TbResStagCapDisc;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -12,4 +13,6 @@
    List<TbResStagCapDisc> getAll(TbResStagCapDisc tbResStagCapDisc);
    Boolean auditByGuid(List<TbResStagCapDisc> list);
    List<TbResStagCapDisc> getDetailByResGuid(String ResGuid);
}
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;
    }
}