package com.gkhy.sign.service.impl; import cn.hutool.crypto.asymmetric.Sign; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageInfo; import com.gkhy.sign.dto.rep.SignatureFlowRep; import com.gkhy.sign.dto.rep.SignatureItemRep; import com.gkhy.sign.dto.req.SignatureItemAddReq; import com.gkhy.sign.dto.req.SignatureItemReq; import com.gkhy.sign.entity.SignatureFlow; import com.gkhy.sign.entity.SignatureItem; import com.gkhy.sign.mapper.SignatureFlowMapper; import com.gkhy.sign.mapper.SignatureItemMapper; import com.gkhy.sign.service.SignatureItemService; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysUserMapper; import io.lettuce.core.RedisClient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @Service public class SignatureItemServiceImpl extends ServiceImpl implements SignatureItemService { @Autowired private SignatureItemMapper signatureItemMapper; @Autowired private SysDeptMapper sysDeptMapper; @Autowired private SysUserMapper sysUserMapper; @Autowired private SignatureFlowMapper signatureFlowMapper; @Override public List selectItemList(SignatureItemReq signatureItem) { if (!SysUser.isAdmin(SecurityUtils.getUserId())) { signatureItem.setUserId(SecurityUtils.getUserId()); } List signatureItemReps = new ArrayList<>(); if (signatureItem.getType()==1){ signatureItemReps = signatureItemMapper.getItemList(signatureItem); }else { signatureItemReps = signatureItemMapper.getItemListApp(signatureItem); } for (SignatureItemRep signatureItemRep : signatureItemReps) { List signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureItemRep.getId()); signatureItemRep.setSignatureFlows(signatureFlowReps); String initiaiUserId = signatureItemRep.getInitiaiUserId(); String[] split = initiaiUserId.split(","); StringBuffer stringBuffer = new StringBuffer(); for (String userId : split) { SysUser sysUser1 = sysUserMapper.selectUserById(Long.valueOf(userId)); stringBuffer.append(sysUser1.getNickName()).append(","); } stringBuffer.deleteCharAt(stringBuffer.length()-1); signatureItemRep.setInitiaiUserName(stringBuffer.toString()); } return signatureItemReps; } @Override public int insertSignatureItem(SignatureItemAddReq signatureItemAddReq) { SignatureItem signatureItem = new SignatureItem(); BeanUtils.copyProperties(signatureItemAddReq,signatureItem); SysUser user = SecurityUtils.getLoginUser().getUser(); signatureItem.setCreateBy(user.getUserName()); signatureItem.setCreateTime(new Date()); signatureItem.setOriginateTime(new Date()); int insert = signatureItemMapper.insertSignatureItem(signatureItem); List signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureItem.getId()); for (String userDept : signatureItemAddReq.getUserDept()) { String[] split = userDept.split("_"); SignatureFlow signatureFlow = new SignatureFlow(); signatureFlow.setItemId(signatureItem.getId()); signatureFlow.setUserId(SecurityUtils.getUserId()); SysUser sysUser2 = sysUserMapper.selectUserById(SecurityUtils.getUserId()); signatureFlow.setUserName(sysUser2.getNickName()); signatureFlow.setDeptId(SecurityUtils.getDeptId()); SysDept sysDept = sysDeptMapper.selectDeptById(SecurityUtils.getDeptId()); signatureFlow.setDeptName(sysDept.getDeptName()); signatureFlow.setSignUserId(Long.valueOf(split[0])); SysUser sysUserSign = sysUserMapper.selectUserById(Long.valueOf(split[0])); SysDept sysDeptSign = sysDeptMapper.selectDeptById(Long.valueOf(split[1])); signatureFlow.setSignUserName(sysUserSign.getNickName()); signatureFlow.setSignDeptId(sysDeptSign.getDeptId()); signatureFlow.setSignDeptName(sysDeptSign.getDeptName()); signatureFlow.setStatus(0); signatureFlow.setSort(signatureFlowReps.size()+1); signatureFlowMapper.insert(signatureFlow); } return insert; } @Override public int updateSignatureIteme(SignatureItem signatureItem) { SysUser user = SecurityUtils.getLoginUser().getUser(); signatureItem.setUpdateBy(user.getUserName()); signatureItem.setUpdateTime(new Date()); return signatureItemMapper.updateById(signatureItem); } @Override public int deleteItem(Integer ids) { return signatureItemMapper.deleteItemByIds(ids); } }