提交 56a1ec16 authored 作者: 邓砥奕's avatar 邓砥奕

添加了装备更换表

上级 207d15fb
......@@ -3,6 +3,7 @@ package com.tykj.dev.device.library.controller;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.repository.DeviceLogDao;
import com.tykj.dev.device.library.service.DeviceChangeService;
import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
......@@ -38,6 +39,9 @@ public class DeviceLibraryController {
@Autowired
private DeviceLogDao deviceLogDao;
@Autowired
private DeviceChangeService deviceChangeService;
@ApiOperation(value = "模糊查询装备分页", notes = "可以通过这个接口查询装备")
@PostMapping("/selectDevicePage")
public ResponseEntity selectDevicePage(@RequestBody DeviceLibrarySelectVo deviceLibrarySelectVo) {
......
package com.tykj.dev.device.library.repository;
import com.tykj.dev.device.library.subject.domin.DeviceChange;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
* @author dengdiyi
*/
public interface DeviceChangeDao extends JpaRepository<DeviceChange,Integer>, JpaSpecificationExecutor<DeviceChange> {
/**
* @param id 新装备Id
* 根据换新装备id查询装备更换记录
*/
DeviceChange findByNewDeviceId(Integer id);
}
package com.tykj.dev.device.library.service;
import com.tykj.dev.device.library.subject.domin.DeviceChange;
import java.util.List;
/**
* @author dengdiyi
*/
public interface DeviceChangeService {
DeviceChange add(DeviceChange deviceChange);
DeviceChange getOne(Integer id);
Integer getOldDeviceId(Integer newDeviceId);
/**
* @param newDeviceId 新装备id
* 获取所有以前的旧装备id列表
*/
List<Integer> getAllFatherDevice(Integer newDeviceId);
}
package com.tykj.dev.device.library.service.impl;
import com.tykj.dev.device.library.repository.DeviceChangeDao;
import com.tykj.dev.device.library.service.DeviceChangeService;
import com.tykj.dev.device.library.subject.domin.DeviceChange;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
/**
* @author dengdiyi
*/
@Service
public class DeviceChangeServiceImpl implements DeviceChangeService {
@Autowired
private DeviceChangeDao deviceChangeDao;
@Override
public DeviceChange add(DeviceChange deviceChange) {
return deviceChangeDao.save(deviceChange);
}
@Override
public DeviceChange getOne(Integer id) {
Optional<DeviceChange> deviceChange = deviceChangeDao.findById(id);
if (deviceChange.isPresent()) {
return deviceChange.get();
}
else {
throw new ApiException(ResultUtil.failed("所查询id不存在"));
}
}
@Override
public Integer getOldDeviceId(Integer newDeviceId) {
DeviceChange deviceChange = deviceChangeDao.findByNewDeviceId(newDeviceId);
if (deviceChange!=null){
return deviceChange.getOldDeviceId();
}
else{
return 0;
}
}
/**
* @param newDeviceId 新装备id
* 获取所有以前的旧装备id列表
*/
@Override
public List<Integer> getAllFatherDevice(Integer newDeviceId) {
List<Integer> ids = new ArrayList<>();
Integer id = getOldDeviceId(newDeviceId);
if (id>0){
ids.add(id);
ids.addAll(getAllFatherDevice(id));
}
return ids;
}
}
package com.tykj.dev.device.library.subject.domin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
@Data
@Entity
@EntityListeners(AuditingEntityListener.class)
@SQLDelete(sql = "update device_change set delete_tag = 1 where id = ?")
@Where(clause = "delete_tag = 0")
@ApiModel("装备维修新装备换新表")
public class DeviceChange {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty(name = "主键id")
private Integer id;
@ApiModelProperty(name = "旧装备id")
private Integer oldDeviceId;
@ApiModelProperty(name = "新装备id")
private Integer newDeviceId;
@CreatedBy
@ApiModelProperty(value = "创建用户id")
private Integer createUserId;
/**
* 创建时间
*/
@CreatedDate
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**
* 更新用户id
*/
@LastModifiedBy
@ApiModelProperty(value = "更新用户id")
private Integer updateUserId;
/**
* 更新时间
*/
@LastModifiedDate
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
@ApiModelProperty(value = "删除标记(0:未删除,1:已删除)")
private Integer deleteTag = 0;
}
package com.tykj.dev.device.repair.controller;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.service.DeviceChangeService;
import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.service.DeviceLogService;
import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
import com.tykj.dev.device.library.subject.domin.DeviceChange;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.vo.FileVo;
import com.tykj.dev.device.repair.repository.RepairBackBillDao;
......@@ -94,6 +96,9 @@ public class RepairController {
@Autowired
private RepairBackBillDao repairBackBillDao;
@Autowired
private DeviceChangeService deviceChangeService;
@ApiOperation(value = "发起维修", notes = "可以通过这个接口发起维修")
@PostMapping(value = "/form")
public ResponseEntity createRepair(@RequestBody RepairBillSaveVo repairBillSaveVo) {
......@@ -192,7 +197,7 @@ public class RepairController {
taskBto.setOwnUnit(userPublicService.findUnitIdByName(repairBill.getReceiveUnit()));
}
//任务推至下一阶段
if (level==1) {
if (level==2||level==3) {
if (repairSendBill.getRepairUseraId() != null) {
//指定用户
taskService.update(taskService.moveToNext(taskBto, repairSendBill.getRepairUseraId()));
......@@ -202,8 +207,8 @@ public class RepairController {
}
}
//省送国家,任务之间推至维修状态,发起人a的待办
else{
taskService.update(taskService.moveToSpecial(taskBto,StatusEnum.REPAIRING,repairSendBill.getStartUseraId()));
if (level==1){
taskService.update(taskService.moveToSpecial(taskBto,StatusEnum.COUNTRY_REPAIRING,repairSendBill.getStartUseraId()));
}
//存业务日志
TaskLogBto taskLogBto = new TaskLogBto(taskBto.getId(),"审核成功并出库",null);
......@@ -859,37 +864,39 @@ public class RepairController {
TaskBto taskBto = taskService.get(repairStatusChangeVo.getTaskId());
//获取所有父任务id
List<Integer> fathers = StringSplitUtil.taskIdSplit(taskBto.getNodeIdDetail());
//获取维修详情单
RepairDetail repairDetail1 = deviceRepairDetailService.getOne(repairStatusChangeVo.getId());
//获取旧状态
Integer oldStatus = repairDetail1.getRepairStatus();
//修改当前任务维修详情单该装备状态
repairDetail1.setRepairStatus(repairStatusChangeVo.getNewStatus());
//如果修改为已报废,更改新装备详情id为0,,更新装备状态
if (repairStatusChangeVo.getNewStatus()==4){
repairDetail1.setNewDeviceDetailId(0);
DeviceLibrary deviceLibrary = deviceLibraryService.getOne(repairDetail1.getDeviceId());
deviceLibrary.setLifeStatus(5);
deviceLibraryService.update(deviceLibrary);
}
deviceRepairDetailService.update(repairDetail1);
//修改父任务中所有维修详情单中的该装备的状态
if (fathers.size()>0) {
fathers.forEach(integer -> {
deviceRepairDetailService.findByBillId(integer).stream()
.filter(repairDetail -> repairDetail.getDeviceId().equals(repairStatusChangeVo.getDeviceId()))
.forEach(repairDetail -> {
repairDetail.setRepairStatus(repairStatusChangeVo.getNewStatus());
deviceRepairDetailService.update(repairDetail);
});
});
for (Integer id:repairStatusChangeVo.getId()) {
//获取维修详情单
RepairDetail repairDetail1 = deviceRepairDetailService.getOne(id);
//获取旧状态
Integer oldStatus = repairDetail1.getRepairStatus();
//修改当前任务维修详情单该装备状态
repairDetail1.setRepairStatus(repairStatusChangeVo.getNewStatus());
//如果修改为已报废,更改新装备详情id为0,,更新装备状态
if (repairStatusChangeVo.getNewStatus() == 4) {
repairDetail1.setNewDeviceDetailId(0);
DeviceLibrary deviceLibrary = deviceLibraryService.getOne(repairDetail1.getDeviceId());
deviceLibrary.setLifeStatus(5);
deviceLibraryService.update(deviceLibrary);
}
deviceRepairDetailService.update(repairDetail1);
//修改父任务中所有维修详情单中的该装备的状态
if (fathers.size() > 0) {
fathers.forEach(integer -> {
deviceRepairDetailService.findByBillId(integer).stream()
.filter(repairDetail -> repairDetail.getDeviceId().equals(repairDetail1.getDeviceId()))
.forEach(repairDetail -> {
repairDetail.setRepairStatus(repairStatusChangeVo.getNewStatus());
deviceRepairDetailService.update(repairDetail);
});
});
}
//获取装备名称
String deviceName = deviceLibraryService.getOne(repairDetail1.getDeviceId()).getName();
//添加业务日志
String remark = "将装备" + deviceName + "状态由" + GlobalMap.getRepairStatusMap().get(oldStatus).name + "改为" + GlobalMap.getRepairStatusMap().get(repairStatusChangeVo.getNewStatus()).name;
TaskLogBto taskLogBto = new TaskLogBto(taskBto.getId(), remark, null);
taskLogService.addLog(taskLogBto);
}
//获取装备名称
String deviceName = deviceLibraryService.getOne(repairStatusChangeVo.getDeviceId()).getName();
//添加业务日志
String remark = "将装备"+deviceName+"状态由"+ GlobalMap.getRepairStatusMap().get(oldStatus).name+"改为"+GlobalMap.getRepairStatusMap().get(repairStatusChangeVo.getNewStatus()).name;
TaskLogBto taskLogBto = new TaskLogBto(taskBto.getId(),remark,null);
taskLogService.addLog(taskLogBto);
return ResultUtil.success("修改成功");
}
......@@ -904,6 +911,8 @@ public class RepairController {
List<Integer> fathers = StringSplitUtil.taskIdSplit(taskBto.getNodeIdDetail());
//获取维修详情单
RepairDetail repairDetail1 = deviceRepairDetailService.getOne(changeNewDeviceVo.getId());
//获取原装备
DeviceLibrary originDevice = deviceLibraryService.getOne(repairDetail1.getDeviceId());
//获取换新装备
DeviceLibrary deviceLibrary = deviceLibraryService.getOne(changeNewDeviceVo.getDeviceId());
//判断当前装备是否已报废
......@@ -936,6 +945,13 @@ public class RepairController {
//改变装备的所属
deviceLibrary.setOwnUnit(repairDetail.getOwnUnit());
deviceLibraryService.update(deviceLibrary);
//如果是新装备换新,添加换新记录
if (changeNewDeviceVo.getType()==1){
DeviceChange deviceChange = new DeviceChange();
deviceChange.setNewDeviceId(deviceLibrary.getId());
deviceChange.setOldDeviceId(originDevice.getId());
deviceChangeService.add(deviceChange);
}
}
return ResultUtil.success("换新成功");
}
......
......@@ -19,4 +19,7 @@ public class ChangeNewDeviceVo {
@ApiModelProperty(name = "装备主键id",value = "1")
private Integer deviceId;
@ApiModelProperty(name = "换新类型",value = "0:库存换新(不继承日志),1:新装备换新(继承日志)")
private Integer type;
}
......@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author dengdiyi
*/
......@@ -14,11 +16,8 @@ public class RepairStatusChangeVo {
@ApiModelProperty(name = "业务id",value = "1")
private Integer taskId;
@ApiModelProperty(name = "维修详情单主键Id",value = "1")
private Integer id;
@ApiModelProperty(name = "装备主键id",value = "1")
private Integer deviceId;
@ApiModelProperty(name = "维修详情单主键Id列表")
private List<Integer> id;
@ApiModelProperty(name = "新的维修状态",value = "1")
private Integer newStatus;
......
......@@ -144,12 +144,13 @@ public enum StatusEnum {
WAIT_RECEIVE(701,"等待接收维修装备"),
REPAIR_RECEIVE_CONFIRM(702,"接收维修装备待审核"),
REPAIRING(703,"维修中"),
COUNTRY_REPAIRING(777,"等待接收维修退回装备"),
/**
* 维修完成退回状态
*/
REPAIR_BACK_CONFIRM(800,"维修退回装备出库待审核"),
WAIT_BACK_RECEIVE(801,"等待接收维修装备"),
REPAIR_BACK_RECEIVE_CONFIRM(802,"接收维修装备待审核")
WAIT_BACK_RECEIVE(801,"等待接收维修退回装备"),
REPAIR_BACK_RECEIVE_CONFIRM(802,"接收维修退回装备待审核")
;
public Integer id;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论