package com.gkhy.sign.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gkhy.sign.dto.rep.SignatureFlowRep;
|
import com.gkhy.sign.dto.req.SignatureFlowAddReq;
|
import com.gkhy.sign.dto.req.SignatureFlowSignReq;
|
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.SignatureFlowService;
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.system.mapper.SysDeptMapper;
|
import com.ruoyi.system.mapper.SysUserMapper;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class SignatureFlowServiceImpl extends ServiceImpl<SignatureFlowMapper, SignatureFlow> implements SignatureFlowService {
|
|
@Autowired
|
private SignatureFlowMapper signatureFlowMapper;
|
@Autowired
|
private SignatureItemMapper signatureItemMapper;
|
@Autowired
|
private SysUserMapper sysUserMapper;
|
@Autowired
|
private SysDeptMapper sysDeptMapper;
|
|
|
|
@Override
|
public List<SignatureFlowRep> selectFlowList(Long id) {
|
return signatureFlowMapper.selectbyItemId(id);
|
}
|
|
@Override
|
public int insertSignatureFlow(SignatureFlowAddReq signatureFlowAddReq) {
|
List<SignatureFlow> signatureFlows = signatureFlowMapper.selectByItemIdAndStatus(signatureFlowAddReq.getItemId());
|
if (!CollectionUtils.isEmpty(signatureFlows)){
|
throw new RuntimeException("存在未签名记录,不能流转");
|
}
|
List<String> userDept = signatureFlowAddReq.getUserDept();
|
for (String fileData : userDept) {
|
String[] split = fileData.split("_");
|
List<SignatureFlow> signatureFlows1 = signatureFlowMapper.selectByItemIdAndUserId(signatureFlowAddReq.getItemId(), Long.valueOf(split[0]));
|
if (!signatureFlows1.isEmpty()){
|
throw new RuntimeException("用户已签名,请勿重复选择");
|
}
|
}
|
|
int insert = 0;
|
List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureFlowAddReq.getItemId());
|
for (String fileData : userDept) {
|
SignatureFlow signatureFlow = new SignatureFlow();
|
BeanUtils.copyProperties(signatureFlowAddReq,signatureFlow);
|
String[] split = fileData.split("_");
|
signatureFlow.setSort(signatureFlowReps.size()+1);
|
SysUser sysUser = sysUserMapper.selectUserById(signatureFlow.getUserId());
|
SysDept sysDept = sysDeptMapper.selectDeptById(signatureFlow.getDeptId());
|
signatureFlow.setUserName(sysUser.getNickName());
|
signatureFlow.setDeptName(sysDept.getDeptName());
|
SysUser sysUserSign = sysUserMapper.selectUserById(Long.valueOf(split[0]));
|
SysDept sysDeptSign = sysDeptMapper.selectDeptById(Long.valueOf(split[1]));
|
signatureFlow.setSignUserId(sysUserSign.getUserId());
|
signatureFlow.setSignUserName(sysUserSign.getNickName());
|
signatureFlow.setSignDeptId(sysDeptSign.getDeptId());
|
signatureFlow.setSignDeptName(sysDeptSign.getDeptName());
|
|
insert+= signatureFlowMapper.insert(signatureFlow);
|
}
|
|
return insert;
|
}
|
|
@Override
|
public int saveSignatureFlow(SignatureFlowSignReq signatureFlowReq) {
|
|
return signatureFlowMapper.updateByFlowItemId(signatureFlowReq);
|
}
|
|
@Override
|
public int returnFile(SignatureFlow signatureFlow) {
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
signatureFlow.setStatus(3);
|
SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId());
|
SysDept sysDept = sysDeptMapper.selectDeptById(loginUser.getDeptId());
|
signatureFlow.setUserId(loginUser.getUserId());
|
signatureFlow.setUserName(sysUser.getNickName());
|
signatureFlow.setDeptId(loginUser.getDeptId());
|
signatureFlow.setDeptName(sysDept.getDeptName());
|
signatureFlow.setSignDeptId(sysDept.getDeptId());
|
signatureFlow.setSignDeptName(sysDept.getDeptName());
|
signatureFlow.setSignUserId(sysUser.getUserId());
|
signatureFlow.setSignUserName(sysUser.getNickName());
|
List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureFlow.getItemId());
|
signatureFlow.setSort(signatureFlowReps.size()+1);
|
int i = signatureFlowMapper.insert(signatureFlow);
|
SignatureItem signatureItem = new SignatureItem();
|
if (i>0){
|
signatureItem.setId(Long.valueOf(signatureFlow.getItemId()));
|
signatureItem.setFilePath(signatureFlow.getFilePath());
|
signatureItem.setStatus(2);
|
signatureItem.setUpdateBy(SecurityUtils.getUsername());
|
signatureItem.setUpdateTime(new Date());
|
signatureItemMapper.updateByItemId(signatureItem);
|
}
|
return i;
|
}
|
}
|