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.*; /** *

* 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2024-09-21 10:53:51 */ @Service @Transactional(rollbackFor = Exception.class) public class DeviceBorrowServiceImpl extends ServiceImpl implements DeviceBorrowService { @Resource DeviceBorrowMapper deviceBorrowMapper; @Resource DeviceLogMapper deviceLogMapper; @Resource GetLook getLook; @Resource UserMapper userMapper; @Autowired private NumberGenerator numberGenerator; @Override public Map deviceBorrowPage(Page page, DeviceBorrow deviceBorrow) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(DeviceBorrow.class)); IPage 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 deviceLogs = deviceLogMapper.selectList(Wrappers.lambdaQuery() .eq(DeviceLog::getRelevanceForm, "device_borrow") .eq(DeviceLog::getRelevanceId, id)); DeviceBorrow deviceBorrow = deviceBorrowMapper.selectById(id); deviceBorrow.setDeviceLogs(deviceLogs); return deviceBorrow; } @Override public List getDeviceBorrowBydeviceId(Integer deviceId) { return deviceBorrowMapper.getDeviceBorrowBydeviceId(deviceId); } }