| | |
| | | package cn.gistack.sm.sjztmd.service.impl; |
| | | |
| | | import cn.gistack.sm.sjztmd.entity.TbAttResRsbVerspi; |
| | | import cn.gistack.sm.sjztmd.entity.TbAttResRsbVerspi; |
| | | import cn.gistack.sm.sjztmd.mapper.TbAttResRsbVerspiMapper; |
| | | import cn.gistack.sm.sjztmd.service.ITbAttResRsbVerspiService; |
| | | import cn.gistack.system.user.feign.IUserClient; |
| | |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @ClassName TbAttResRsbVerspiServiceImpl |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public TbAttResRsbVerspi getDetailByGuid(String guid) { |
| | | public List<TbAttResRsbVerspi> getDetailByGuid(String guid) { |
| | | return baseMapper.getDetailByResGuid(guid); |
| | | } |
| | | |
| | | /** |
| | | * 编辑 |
| | | * @param tbAttResRsbVerspi |
| | | * @param newList |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean updateByGuid(TbAttResRsbVerspi tbAttResRsbVerspi) { |
| | | public boolean updateByGuid(List<TbAttResRsbVerspi> newList) { |
| | | // 查询是否存在 |
| | | TbAttResRsbVerspi detail = baseMapper.getDetailByResGuid(tbAttResRsbVerspi.getResGuid()); |
| | | List<TbAttResRsbVerspi> oldList = baseMapper.getDetailByResGuid(newList.get(0).getResGuid()); |
| | | // 更新日志 |
| | | setUpdateLog(detail,tbAttResRsbVerspi); |
| | | // 修改 |
| | | int i = addOrUpdateByGuid(detail,tbAttResRsbVerspi); |
| | | if (i>0){ |
| | | setUpdateLog(oldList,newList); |
| | | // 创建或更新数据 |
| | | boolean flag = addOrUpdate(oldList,newList); |
| | | // 返回 |
| | | return flag; |
| | | } |
| | | |
| | | /** |
| | | * 新增或更新数据 |
| | | * @param oldList |
| | | * @param newList |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean addOrUpdate(List<TbAttResRsbVerspi> oldList,List<TbAttResRsbVerspi> newList) { |
| | | // 取旧数据和新提交数据差集--删除 |
| | | // 去除前一天已填报的人员手机号集合 |
| | | List<TbAttResRsbVerspi> removeList = oldList.stream().filter(vo -> !newList.stream().map(e -> |
| | | e.getGuid()).collect(Collectors.toList()).contains(vo.getGuid())).collect(Collectors.toList()); |
| | | // 取旧数据和新提交数据交集--更新 |
| | | List<TbAttResRsbVerspi> updateList = newList.stream().filter(vo -> oldList.stream().map(e -> |
| | | e.getGuid()).collect(Collectors.toList()).contains(vo.getGuid())).collect(Collectors.toList()); |
| | | // 取新数提交据和旧数据交集--新增 |
| | | List<TbAttResRsbVerspi> 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); |
| | | } |
| | | if (updateList.size()>0){ |
| | | // 批量更新 |
| | | addFlag = updateBatchById(updateList); |
| | | } |
| | | if (removeList.size()>0){ |
| | | // 批量删除 |
| | | removeFlag = removeBatchByIds(removeList); |
| | | } |
| | | if (addFlag && updateFlag && removeFlag){ |
| | | return true; |
| | | } |
| | | // 返回 |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 审核 |
| | | * @param tbAttResRsbVerspi |
| | | * @param newList |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean auditByGuid(TbAttResRsbVerspi tbAttResRsbVerspi) { |
| | | public boolean auditByGuid(List<TbAttResRsbVerspi> newList) { |
| | | // 查询是否存在 |
| | | TbAttResRsbVerspi detail = baseMapper.getDetailByResGuid(tbAttResRsbVerspi.getResGuid()); |
| | | List<TbAttResRsbVerspi> oldList = baseMapper.getDetailByResGuid(newList.get(0).getResGuid()); |
| | | // 更新操作日志 |
| | | setUpdateLog(detail,tbAttResRsbVerspi); |
| | | setUpdateLog(oldList,newList); |
| | | // 更新审核日志 |
| | | setUpdateCheckLog(detail,tbAttResRsbVerspi); |
| | | if (null!=detail){ |
| | | tbAttResRsbVerspi.setGuid(detail.getGuid()); |
| | | } |
| | | // 驳回情况下将状态修改回0即已填写未提交状态 |
| | | if (tbAttResRsbVerspi.getCheckState()==3){ |
| | | tbAttResRsbVerspi.setCheckState(0); |
| | | } |
| | | setUpdateCheckLog(oldList,newList); |
| | | // 更新数据 |
| | | int i = baseMapper.updateById(tbAttResRsbVerspi); |
| | | if (i>0){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 更新 |
| | | * @param tbAttResRsbVerspi |
| | | * @return |
| | | */ |
| | | private int addOrUpdateByGuid(TbAttResRsbVerspi oldAbAttResBase,TbAttResRsbVerspi tbAttResRsbVerspi){ |
| | | int i = 0; |
| | | if (null!=oldAbAttResBase){ |
| | | tbAttResRsbVerspi.setGuid(oldAbAttResBase.getGuid()); |
| | | // 更新 |
| | | i = baseMapper.updateById(tbAttResRsbVerspi); |
| | | }else { |
| | | tbAttResRsbVerspi.setCreateTime(new Date()); |
| | | i = baseMapper.insert(tbAttResRsbVerspi); |
| | | } |
| | | boolean batch = updateBatchById(newList); |
| | | // 返回 |
| | | return i; |
| | | return batch; |
| | | } |
| | | |
| | | /** |
| | | * @param oldAbAttResBase |
| | | * @param newTbAttResRsbVerspi |
| | | * @param oldList |
| | | * @param newList |
| | | * 更新审核记录 |
| | | */ |
| | | private void setUpdateCheckLog(TbAttResRsbVerspi oldAbAttResBase,TbAttResRsbVerspi newTbAttResRsbVerspi) { |
| | | String fillName = ""; |
| | | if (newTbAttResRsbVerspi.getCheckState()==2){ |
| | | fillName = "审核"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==3){ |
| | | fillName = "退回" + (null==newTbAttResRsbVerspi.getCheckLog()?"":":" + newTbAttResRsbVerspi.getCheckLog()); |
| | | } |
| | | private void setUpdateCheckLog(List<TbAttResRsbVerspi> oldList,List<TbAttResRsbVerspi> newList) { |
| | | // 遍历 |
| | | for (TbAttResRsbVerspi newTbAttResRsbVerspi : newList) { |
| | | String fillName = ""; |
| | | if (newTbAttResRsbVerspi.getCheckState() == 2) { |
| | | fillName = "审核"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState() == 3) { |
| | | fillName = "退回" + (null == newTbAttResRsbVerspi.getCheckLog() ? "" : ":" + newTbAttResRsbVerspi.getCheckLog()); |
| | | for (TbAttResRsbVerspi tbAttResRsbVerspi : oldList) { |
| | | if (tbAttResRsbVerspi.getGuid().equals(newTbAttResRsbVerspi.getGuid())){ |
| | | // 退回时进行设置状态为填写中 |
| | | newTbAttResRsbVerspi.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==oldAbAttResBase){ |
| | | // 填报 |
| | | newTbAttResRsbVerspi.setCheckLog(builder.toString()); |
| | | }else { |
| | | StringBuilder stringBuilder = new StringBuilder(null==oldAbAttResBase.getCheckLog()?"":oldAbAttResBase.getCheckLog()); |
| | | stringBuilder.append(builder); |
| | | // 填报 |
| | | newTbAttResRsbVerspi.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==newTbAttResRsbVerspi.getGuid() || newTbAttResRsbVerspi.getGuid().equals("")){ |
| | | // 填报 |
| | | newTbAttResRsbVerspi.setCheckLog(builder.toString()); |
| | | } else { |
| | | for (TbAttResRsbVerspi tbAttResRsbVerspi : oldList) { |
| | | if (tbAttResRsbVerspi.getGuid().equals(newTbAttResRsbVerspi.getGuid())){ |
| | | StringBuilder stringBuilder = new StringBuilder(null == tbAttResRsbVerspi.getCheckLog() ? "" : tbAttResRsbVerspi.getCheckLog()); |
| | | stringBuilder.append(builder); |
| | | // 填报 |
| | | newTbAttResRsbVerspi.setCheckLog(stringBuilder.toString()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @param oldAbAttResBase |
| | | * @param newTbAttResRsbVerspi |
| | | * @param oldList |
| | | * @param newList |
| | | * 更新操作记录 |
| | | */ |
| | | private void setUpdateLog(TbAttResRsbVerspi oldAbAttResBase,TbAttResRsbVerspi newTbAttResRsbVerspi) { |
| | | String fillName = ""; |
| | | if (newTbAttResRsbVerspi.getCheckState()==0){ |
| | | fillName = "编辑"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==1){ |
| | | fillName = "提交"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==2){ |
| | | fillName = "审核"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==3){ |
| | | fillName = "退回" + (null==newTbAttResRsbVerspi.getCheckLog()?"":":" + newTbAttResRsbVerspi.getCheckLog()); |
| | | } |
| | | // 管理员编辑 |
| | | if (newTbAttResRsbVerspi.getCheckState()==4){ |
| | | fillName = "编辑"; |
| | | newTbAttResRsbVerspi.setCheckState(oldAbAttResBase.getCheckState()); |
| | | } |
| | | private void setUpdateLog(List<TbAttResRsbVerspi> oldList,List<TbAttResRsbVerspi> newList) { |
| | | // 遍历 |
| | | for (TbAttResRsbVerspi newTbAttResRsbVerspi : newList){ |
| | | String fillName = ""; |
| | | if (newTbAttResRsbVerspi.getCheckState()==0){ |
| | | fillName = "编辑"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==1){ |
| | | fillName = "提交"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==2){ |
| | | fillName = "审核"; |
| | | } |
| | | if (newTbAttResRsbVerspi.getCheckState()==3){ |
| | | fillName = "退回" + (null==newTbAttResRsbVerspi.getCheckLog()?"":":" + newTbAttResRsbVerspi.getCheckLog()); |
| | | } |
| | | // 管理员编辑 |
| | | if (newTbAttResRsbVerspi.getCheckState()==4){ |
| | | fillName = "编辑"; |
| | | // 找到相关的 guid 数据 |
| | | for (TbAttResRsbVerspi tbAttResRsbVerspi : oldList) { |
| | | if (tbAttResRsbVerspi.getGuid().equals(newTbAttResRsbVerspi.getGuid())){ |
| | | newTbAttResRsbVerspi.setCheckState(tbAttResRsbVerspi.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==oldAbAttResBase){ |
| | | // 填报 |
| | | newTbAttResRsbVerspi.setLog(builder.toString()); |
| | | }else { |
| | | StringBuilder stringBuilder = new StringBuilder(null==oldAbAttResBase.getLog()?"":oldAbAttResBase.getLog()); |
| | | stringBuilder.append(builder); |
| | | // 填报 |
| | | newTbAttResRsbVerspi.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==newTbAttResRsbVerspi.getGuid() || newTbAttResRsbVerspi.getGuid().equals("")){ |
| | | // 填报 |
| | | newTbAttResRsbVerspi.setLog(builder.toString()); |
| | | }else { |
| | | for (TbAttResRsbVerspi tbAttResRsbVerspi : oldList) { |
| | | if (tbAttResRsbVerspi.getGuid().equals(newTbAttResRsbVerspi.getGuid())){ |
| | | StringBuilder stringBuilder = new StringBuilder(null==tbAttResRsbVerspi.getLog()?"":tbAttResRsbVerspi.getLog()); |
| | | stringBuilder.append(builder); |
| | | // 填报 |
| | | newTbAttResRsbVerspi.setLog(stringBuilder.toString()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |