package com.yuanchu.mom.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.yuanchu.mom.common.GetLook;
|
import com.yuanchu.mom.common.PrintChina;
|
import com.yuanchu.mom.mapper.DeviceBorrowMapper;
|
import com.yuanchu.mom.mapper.DeviceLogMapper;
|
import com.yuanchu.mom.mapper.UserMapper;
|
import com.yuanchu.mom.numgen.NumberGenerator;
|
import com.yuanchu.mom.pojo.DeviceBorrow;
|
import com.yuanchu.mom.pojo.DeviceLog;
|
import com.yuanchu.mom.pojo.User;
|
import com.yuanchu.mom.service.DeviceBorrowService;
|
import com.yuanchu.mom.utils.QueryWrappers;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.util.*;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author 江苏鵷雏网络科技有限公司
|
* @since 2024-09-21 10:53:51
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class DeviceBorrowServiceImpl extends ServiceImpl<DeviceBorrowMapper, DeviceBorrow> implements DeviceBorrowService {
|
|
@Resource
|
DeviceBorrowMapper deviceBorrowMapper;
|
|
@Resource
|
DeviceLogMapper deviceLogMapper;
|
|
@Resource
|
GetLook getLook;
|
|
@Resource
|
UserMapper userMapper;
|
|
@Autowired
|
private NumberGenerator<DeviceBorrow> numberGenerator;
|
|
@Override
|
public Map<String, Object> deviceBorrowPage(Page page, DeviceBorrow deviceBorrow) {
|
Map<String, Object> map = new HashMap<>();
|
map.put("head", PrintChina.printChina(DeviceBorrow.class));
|
IPage<DeviceBorrow> iPage = deviceBorrowMapper.deviceBorrowPage(page, QueryWrappers.queryWrappers(deviceBorrow));
|
map.put("body", iPage);
|
return map;
|
}
|
|
@Override
|
public int saveDeviceBorrow(DeviceBorrow deviceBorrow) {
|
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
|
User user = userMapper.selectById(userId);
|
//新增的时候添加新建流程
|
if (ObjectUtils.isEmpty(deviceBorrow.getId())) {
|
deviceBorrow.setSubmitUser(user.getName());
|
String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
|
String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
|
String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceBorrow::getProcessNumber);
|
deviceBorrow.setProcessNumber(processNumber);
|
deviceBorrowMapper.insert(deviceBorrow);
|
DeviceLog deviceLog = new DeviceLog();
|
deviceLog.setOperator(user.getName());
|
deviceLog.setOperationTime(LocalDateTime.now());
|
deviceLog.setOperationType("新建");
|
deviceLog.setOperationContent("新建流程");
|
deviceLog.setRelevanceForm("device_borrow");
|
deviceLog.setRelevanceId(deviceBorrow.getId());
|
deviceLogMapper.insert(deviceLog);
|
} else {
|
DeviceBorrow borrow = deviceBorrowMapper.selectById(deviceBorrow.getId());
|
deviceBorrowMapper.updateById(deviceBorrow);
|
//通过或者驳回增加流程跟踪
|
if (deviceBorrow.getNowState().equals("关闭")) {
|
DeviceLog deviceLog = new DeviceLog();
|
deviceLog.setOperator(user.getName());
|
deviceLog.setOperationTime(LocalDateTime.now());
|
deviceLog.setOperationType("接收通过");
|
deviceLog.setRelevanceForm("device_borrow");
|
deviceLog.setRelevanceId(deviceBorrow.getId());
|
deviceLogMapper.insert(deviceLog);
|
}
|
else if (deviceBorrow.getNowState().equals("提交") && borrow.getNowState().equals("接收")) {
|
DeviceLog deviceLog = new DeviceLog();
|
deviceLog.setOperator(user.getName());
|
deviceLog.setOperationTime(LocalDateTime.now());
|
deviceLog.setOperationType("接收驳回");
|
deviceLog.setRelevanceForm("device_borrow");
|
deviceLog.setRelevanceId(deviceBorrow.getId());
|
deviceLogMapper.insert(deviceLog);
|
}
|
}
|
return 0;
|
}
|
|
@Override
|
public DeviceBorrow getDeviceBorrow(Integer id) {
|
List<DeviceLog> deviceLogs = deviceLogMapper.selectList(Wrappers.<DeviceLog>lambdaQuery()
|
.eq(DeviceLog::getRelevanceForm, "device_borrow")
|
.eq(DeviceLog::getRelevanceId, id));
|
DeviceBorrow deviceBorrow = deviceBorrowMapper.selectById(id);
|
deviceBorrow.setDeviceLogs(deviceLogs);
|
return deviceBorrow;
|
}
|
|
@Override
|
public List<DeviceBorrow> getDeviceBorrowBydeviceId(Integer deviceId) {
|
return deviceBorrowMapper.getDeviceBorrowBydeviceId(deviceId);
|
}
|
}
|