提交 48039544 authored 作者: 133's avatar 133

[清退 报废 销毁 退役] 代码提交测试

上级 f85ed9b0
......@@ -188,7 +188,15 @@ public enum LogType {
SEND_BACK_27(100017,SEND_BACK.id, SEND_BACK_1202.id,SEND_BACK_1213.id , "省直属单位清退装备选择完成,等待签字单据上传"),
SEND_BACK_28(100018,SEND_BACK.id, SEND_BACK_1213.id,END.id , "上传了直属单位清退签字单据"),
SEND_BACK_29(100019,SEND_BACK.id, SEND_BACK_1209.id,SEND_BACK_1215.id , "单据未上传,继续等待单据上传"),
SEND_BACK_30(100020,SEND_BACK.id, SEND_BACK_1215.id,END.id , "接收单据已上传,清退装备配送完成"),
SEND_BACK_30(100020,SEND_BACK.id, SEND_BACK_1208.id,SEND_BACK_1217.id , "调用电子签章,等待审核"),
SEND_BACK_31(100021,SEND_BACK.id, SEND_BACK_1217.id,SEND_BACK_1219.id , "电之签章调用审核通过,等待盖章出库"),
SEND_BACK_32(100022,SEND_BACK.id, SEND_BACK_1217.id,SEND_BACK_1208.id , "电之签章调用审核不通过,等待重新出库"),
SEND_BACK_33(100023,SEND_BACK.id, SEND_BACK_1209.id,SEND_BACK_1220.id , "入库任务调用电子签章,等待审核"),
SEND_BACK_34(100024,SEND_BACK.id, SEND_BACK_1220.id,SEND_BACK_1218.id , "入库任务调用电子签章审核通过,等待盖章入库"),
SEND_BACK_35(100025,SEND_BACK.id, SEND_BACK_1220.id,SEND_BACK_1209.id , "入库任务调用电子签章审核不通过,等待重新入库"),
//退役
DECOMMISSIONING_1(100201,DECOMMISSIONING.id, ORIGIN_STATUS.id,SEND_BACK_1210.id , "发起退役任务,等待中办签字单据"),
......@@ -200,12 +208,18 @@ public enum LogType {
DECOMMISSIONING_7(100207,DECOMMISSIONING.id, DECOMMISSIONING_1251.id,DECOMMISSIONING_1250.id , "调用电子签章审核,拒绝"),
DECOMMISSIONING_8(100208,DECOMMISSIONING.id, DECOMMISSIONING_1251.id,DECOMMISSIONING_1252.id , "调用电子签章审核,通过"),
DECOMMISSIONING_9(100209,DECOMMISSIONING.id, DECOMMISSIONING_1252.id,END.id , "上传中办签字单据,任务结束"),
// DECOMMISSIONING_2(100202,DESTROY.id, SEND_BACK_1210.id,END.id , "上传中办签字单据,任务结束"),
// DECOMMISSIONING_2(100202,DECOMMISSIONING.id, SEND_BACK_1210.id,END.id , "上传中办签字单据,任务结束"),
// DECOMMISSIONING_2(100202,DECOMMISSIONING.id, SEND_BACK_1210.id,END.id , "上传中办签字单据,任务结束"),
//销毁任务日志
DESTROY_LOG_1(100301,DESTROY.id, ORIGIN_STATUS.id, DESTROY_2.id, "发起装备销毁"),
DESTROY_LOG_2(100302,DESTROY.id, DESTROY_2.id, END.id, "上传销毁单据,任务结束"),
DESTROY_LOG_3(100303,DESTROY.id, ORIGIN_STATUS.id, DESTROY_0.id, "发起了销毁任务的草稿"),
DESTROY_LOG_4(100304,DESTROY.id, DESTROY_0.id, DESTROY_2.id, "发起了销毁任务"),
//重新入库
AGAINSTORAGE_01(100021,AGAINSTORAGE.id, ORIGIN_STATUS.id,END.id , "发起了装备生命状态转换"),
AGAINSTORAGE_01(100901,AGAINSTORAGE.id, ORIGIN_STATUS.id,END.id , "发起了装备生命状态转换"),
SCRAP_1(100101,SCRAP.id, ORIGIN_STATUS.id, SCRAP_2222.id, "发起装备报废"),
SCRAP_2(100102,SCRAP.id, SCRAP_2222.id, END.id, "上传报废单据,任务结束"),
......
......@@ -77,4 +77,14 @@ public class DecommissioningDevController {
}
/**
* 退役草稿任务封存
*/
@ApiOperation(value = "退役草稿任务封存", notes = "退役草稿任务封存")
@PostMapping(value ="/moveToArchiveDecommissioning/{taskId}")
public ResponseEntity deleteDrafts(@PathVariable Integer taskId){
deviceDecommissioningBusinessService.deleteDrafts(taskId);
return ResponseEntity.ok("退役草稿任务封存成功,任务结束");
}
}
......@@ -3,6 +3,7 @@ package com.tykj.dev.device.decommissioning.service;
import com.tykj.dev.device.decommissioning.entity.DeviceDecommissioningDetail;
import com.tykj.dev.device.decommissioning.entity.vo.DecommissioningOrderOutData;
import com.tykj.dev.device.decommissioning.entity.vo.StorageDeviceDevommissiong;
import com.tykj.dev.device.task.subject.bto.TaskBto;
/**
* @author zjm
......@@ -16,7 +17,7 @@ public interface DeviceDecommissioningBusinessService {
/**
* 退役任务保存草稿
*/
DeviceDecommissioningDetail saveDeviceDecommissioningDraft(Integer userId, DecommissioningOrderOutData decommissioningOrderOutData);
TaskBto saveDeviceDecommissioningDraft(Integer userId, DecommissioningOrderOutData decommissioningOrderOutData);
/**
* 生成省中办退役的任务
......
......@@ -39,6 +39,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
......@@ -76,10 +77,11 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
MessageService messageService;
@Override
public DeviceDecommissioningDetail saveDeviceDecommissioningDraft(Integer userId, DecommissioningOrderOutData decommissioningOrderOutData) {
public TaskBto saveDeviceDecommissioningDraft(Integer userId, DecommissioningOrderOutData decommissioningOrderOutData) {
User user = userService.findByUser(userId);
Units units = unitsService.findById(user.getUnitsId());
DeviceDecommissioningDetail deviceDecommissioningDetail = decommissioningOrderOutData.toDeviceDecommissioningDetail();
DeviceDecommissioningDetail deviceDecommissioningDetail=decommissioningOrderOutData.toDeviceDecommissioningDetail();
TaskBto taskBto;
List<ScriptSaveVo> scriptSaveVos = decommissioningOrderOutData.getScriptSaveVos();
List<String> seqNumbers = new ArrayList<>();
scriptSaveVos.forEach(
......@@ -89,17 +91,24 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
}
}
);
deviceDecommissioningDetail.setDeviceIds(StringUtils.ListToString(decommissioningOrderOutData.getDevIds()));
deviceDecommissioningDetail.setOutboundFile(FilesUtil.stringFileToList(decommissioningOrderOutData.getOutboundFileList()));
deviceDecommissioningDetailService.saveDeviceDecommissioningDetail(deviceDecommissioningDetail);
if (decommissioningOrderOutData.getTaskId()==null){
DeviceDecommissioningDetail deviceDestroyBill1=deviceDecommissioningDetailService.findApplyId(decommissioningOrderOutData.getApplyId());
if (deviceDestroyBill1!=null){
deviceDecommissioningDetail.setId(deviceDestroyBill1.getId());
}
deviceDecommissioningDetailService.saveDeviceDecommissioningDetail(deviceDecommissioningDetail);
deviceDecommissioningDetail.setNum("NO:第" + LocalDateTime.now().getYear() + "QT" + deviceDecommissioningDetail.getId());
taskBto= sendDraftTask(units.getUnitId(), deviceDecommissioningDetail.getId(),userId);
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),user.getName()+"保存退役任务草稿",gainThisUser(userId,units.getUnitId())));
}else {
taskBto=taskService.get(decommissioningOrderOutData.getTaskId());
DeviceDecommissioningDetail deviceDecommissioningDetail1 = deviceDecommissioningDetailService.findDeviceDecommissioningDetail(taskBto.getBillId());
deviceDecommissioningDetail.setId(deviceDecommissioningDetail1.getId());
}
deviceDecommissioningDetail.setScripts(decommissioningOrderOutData.getScriptSaveVos());
deviceDecommissioningDetail.setScriptJson(JacksonUtil.toJSon(decommissioningOrderOutData.getScriptSaveVos()));
deviceDecommissioningDetail.setNum("NO:第" + LocalDateTime.now().getYear() + "QT" + deviceDecommissioningDetail.getId());
deviceDecommissioningDetailService.saveDeviceDecommissioningDetail(deviceDecommissioningDetail);
if (decommissioningOrderOutData.getTaskId()==null){
sendDraftTask(units.getUnitId(), deviceDecommissioningDetail.getId(),userId);
}
return deviceDecommissioningDetail;
return taskBto;
}
@Override
......@@ -126,7 +135,10 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(), statusEnums);
DeviceDecommissioningDetail deviceDecommissioningDetail1=deviceDecommissioningDetailService.findDeviceDecommissioningDetail(taskBto.getBillId());
deviceDecommissioningDetail.setId(deviceDecommissioningDetail1.getId());
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1210);
deviceDecommissioningDetail.setNum(deviceDecommissioningDetail1.getNum());
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1210,"country");
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),user.getName()+"保存退役任务草稿",gainThisUser(userId,units.getUnitId())));
}else {
TaskBto taskBto= sendOutSuperior(units.getUnitId(), deviceDecommissioningDetail.getId(),userId);
addMessage(new MessageBto(taskBto.getId(), taskBto.getBusinessType(), "发起退役任务,待上传回执单据", gainThisUser(user.getUserId(), user.getUnitsId())));
......@@ -137,9 +149,10 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
deviceDecommissioningDetail.setOutboundFile(FilesUtil.stringFileToList(decommissioningOrderOutData.getOutboundFileList()));
deviceDecommissioningDetail.setScripts(decommissioningOrderOutData.getScriptSaveVos());
deviceDecommissioningDetail.setScriptJson(JacksonUtil.toJSon(decommissioningOrderOutData.getScriptSaveVos()));
deviceDecommissioningDetail.setDeviceLibraryEntities(findInvoleDevice(deviceDecommissioningDetail.getDeviceIds()));
// deviceDecommissioningDetail.setDeviceLibraryEntities(findInvoleDevice(deviceDecommissioningDetail.getDeviceIds()));
deviceDecommissioningDetailService.saveDeviceDecommissioningDetail(deviceDecommissioningDetail);
deviceLibraryDao.upDateSeqNumbersLeftStatus(DeviceLifeStatus.RETIRED.id,seqNumbers);
devLogAdd(seqNumbers,"发了退役任务,状态转化为退役中",userId);
return deviceDecommissioningDetail;
}
......@@ -177,6 +190,8 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
deviceLibraryDao.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(DeviceLifeStatus.RETIRE.id,deviceDecommissioningDetail.getReceiveUnit(),0,seqNumbers);
deviceDecommissioningDetailService.saveDeviceDecommissioningDetail(deviceDecommissioningDetail);
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"退役任务回执单据上传成功任务结束",gainThisUser(user.getUserId(),user.getUnitsId())));
devLogAdd(seqNumbers,"退役任务完成,状态转化为已退役",storageDeviceDevommissiong.getUserId());
}
@Override
......@@ -222,8 +237,8 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
//删除 把task删除
//并且涉及的装备改为在库
TaskBto taskBto= taskService.get(taskId);
deviceDecommissioningDetailService.findDeviceDecommissioningDetail(taskBto.getBillId());
// deviceDecommissioningDetailService.findDeviceDecommissioningDetail(taskBto.getBillId());
taskService.moveToArchive(taskBto);
}
......@@ -243,7 +258,7 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
List<Integer> list=new ArrayList<>();
list.add(userId);
list.add(0);
return taskService.start(new TaskBto(StatusEnum.SEND_BACK_1210.id, "退役设备任务", null, ".", repelDetailId, BusinessEnum.DECOMMISSIONING.id, unitId, 1, "", list));
return taskService.start(new TaskBto(StatusEnum.SEND_BACK_1210.id, "退役设备任务", null, ".", repelDetailId, BusinessEnum.DECOMMISSIONING.id, unitId, 1, "country", list));
}
/**
......@@ -259,15 +274,18 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
/**
* 异步添加装备日志
*/
private void devLogAdd(List<DeviceLibrary> deviceLibraries, String remark, Integer userId){
List<DeviceLog> logDtos=new ArrayList<>();
deviceLibraries.forEach(
private void devLogAdd(List<String> seqNumbers, String remark, Integer userId){
CompletableFuture.runAsync(() -> {
List<DeviceLog> logDtos=new ArrayList<>();
deviceLibraryDao.findAllBySeqNumberIn(seqNumbers).forEach(
deviceLibrary -> {
logDtos.add(new DeviceLogDto(deviceLibrary.getId(),remark,null,userId).toDo());
}
);
CompletableFuture.runAsync(() -> {
deviceLogService.saveAllLog(logDtos);
});
......
......@@ -120,14 +120,17 @@ public class DeviceDecommissioningQueryServiceImpl implements DeviceDecommission
@Override
public TaskBto findApplyIdToDecommissioningTask(Integer applyId) {
DeviceDecommissioningDetail deviceDecommissioningDetail= deviceDecommissioningDetailService.findApplyId(applyId);
if (deviceDecommissioningDetail.getId()==null){
if (deviceDecommissioningDetail==null){
return null;
}else {
Optional<Task> billIdAndBusinessType = taskService.findBillIdAndBusinessType(deviceDecommissioningDetail.getId(), BusinessEnum.DECOMMISSIONING.id);
Optional<Task> billIdAndBusinessType = taskService.findBillIdAndBusinessType(deviceDecommissioningDetail.getId(), BusinessEnum.DECOMMISSIONING.id,StatusEnum.ARCHIVE.id);
if (billIdAndBusinessType.isPresent()){
return billIdAndBusinessType.get().parse2Bto();
TaskBto taskBto=billIdAndBusinessType.get().parse2Bto();
return taskBto;
}else {
throw new ApiException(ResponseEntity.status(500).body("[退役] 根据申请id未查询退役任务 :"+applyId));
log.info("[退役] 根据申请id未查询退役任务 :{}",applyId);
return null;
// throw new ApiException(ResponseEntity.status(500).body("[退役] 根据申请id未查询退役任务 :"+applyId));
}
}
......@@ -137,7 +140,6 @@ public class DeviceDecommissioningQueryServiceImpl implements DeviceDecommission
PredicateBuilder<DeviceLibrary> predicateBuilder = getPredicateBuilder(repelManagementVo);
predicateBuilder.eq("lifeStatus", DeviceLifeStatus.RETIRE.id);
return predicateBuilder.build();
}
......
......@@ -52,5 +52,14 @@ public class DeviceDestroyController {
return ResponseEntity.ok("上传销毁单成功,任务完结");
}
/**
* 销毁草稿任务封存完成
*/
@ApiOperation(value = "销毁草稿任务封存", notes = "销毁草稿任务封存")
@PostMapping(value ="/moveToArchiveDestroyBill/{taskId}")
public ResponseEntity moveToArchiveDestroyBill(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser,@PathVariable Integer taskId){
deviceDestroyBusinessService.moveToArchiveDestroyBill(taskId);
return ResponseEntity.ok("销毁草稿任务封存完成");
}
}
......@@ -13,6 +13,7 @@ import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Column;
......@@ -85,6 +86,9 @@ public class DeviceDestroyBillVo {
private String unitName;
@ApiModelProperty(value = "操作人id")
private Integer operationId;
public DeviceDestroyBill toDeviceDestroyBill() {
ModelMapper mapper = BeanHelper.getUserMapper();
return mapper.map(this, DeviceDestroyBill.class);
......
......@@ -2,6 +2,7 @@ package com.tykj.dev.device.destroy.service;
import com.tykj.dev.device.destroy.entity.domain.DeviceDestroyBill;
import com.tykj.dev.device.destroy.entity.vo.DeviceDestroyBillVo;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.user.subject.entity.SecurityUser;
/**
......@@ -15,7 +16,7 @@ public interface DeviceDestroyBusinessService {
/**
* 销毁任务保存草稿
*/
DeviceDestroyBill saveDeviceDestroyBill(SecurityUser securityUser, DeviceDestroyBillVo deviceDestroyBillVo);
TaskBto saveDeviceDestroyBill(SecurityUser securityUser, DeviceDestroyBillVo deviceDestroyBillVo);
/**
* 生成销毁任务等待上传销毁单
......@@ -27,4 +28,6 @@ public interface DeviceDestroyBusinessService {
*/
void receiptSingle(Integer taskId, DeviceDestroyBillVo deviceDestroyBillVo);
void moveToArchiveDestroyBill(Integer taskId);
}
......@@ -7,11 +7,14 @@ import com.tykj.dev.device.task.service.TaskService;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.task.subject.domin.Task;
import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.exception.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Optional;
/**
......@@ -22,6 +25,7 @@ import java.util.Optional;
* @createTime 2021年04月09日 13:03:00
*/
@Service
@Slf4j
public class DeviceDestroyQueryServiceImpl implements DeviceDestroyQueryService {
@Autowired
DeviceDestroyBillService deviceDestroyBillService;
......@@ -41,11 +45,15 @@ public class DeviceDestroyQueryServiceImpl implements DeviceDestroyQueryService
if (!deviceDestroyBill.isPresent()){
return null;
}else {
Optional<Task> billIdAndBusinessType = taskService.findBillIdAndBusinessType(deviceDestroyBill.get().getId(), BusinessEnum.SCRAP.id);
Optional<Task> billIdAndBusinessType = taskService.findBillIdAndBusinessType(deviceDestroyBill.get().getId(), BusinessEnum.DESTROY.id,StatusEnum.ARCHIVE.id);
if (billIdAndBusinessType.isPresent()){
return billIdAndBusinessType.get().parse2Bto();
TaskBto taskBto=billIdAndBusinessType.get().parse2Bto();
return taskBto;
}else {
throw new ApiException(ResponseEntity.status(500).body("[销毁] 根据申请id未查询退役任务 :"+applyId));
log.info("[销毁] 根据申请id未查询退役任务 :{}",applyId);
// throw new ApiException(ResponseEntity.status(500).body("[销毁] 根据申请id未查询退役任务 :"+applyId));
return null;
}
}
}
......
......@@ -25,9 +25,10 @@ public enum StatusEnum {
* 销毁业务
*/
DESTROY_0(8110, "装备销毁业务草稿"),
DESTROY_1(8111, "等待审核"),
DESTROY_2(8112, "等待上传销毁单"),
/**
* 退装业务
*/
......@@ -75,11 +76,14 @@ public enum StatusEnum {
SEND_BACK_1212(1212, "清退统计任务待办结"),
SEND_BACK_1213(1213,"省直属清退任务待上传单据"),
SEND_BACK_1214(1214,"清退出库等待上传回执单"),
SEND_BACK_1215(1215,"清退出库接收方单据待补充"),
SEND_BACK_1215(1215,"清退接收方单据待补充"),
SEND_BACK_1216(1216, "市本级装备待清退"),
SEND_BACK_1217(1217, "签章审核"),
SEND_BACK_1217(1217, "出库签章审核"),
SEND_BACK_1218(1218, "入库等待盖电子签章"),
SEND_BACK_1219(1219, "出库等待盖电子签章"),
SEND_BACK_1220(1220, "入库电子签章审核"),
......@@ -259,8 +263,7 @@ public enum StatusEnum {
SCRAP_2222(2222, "待上传报废单"),
SCRAP_2223(2223, "报废草稿"),
SCRAP_2224(2224, "报废出库签章审核"),
SCRAP_2225(2225, "报废出库等待盖电子签章")
;
SCRAP_2225(2225, "报废出库等待盖电子签章");
public Integer id;
......
......@@ -4,11 +4,14 @@ import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.scrap.service.ScrapBusinessService;
import com.tykj.dev.device.scrap.subject.vo.ScrapOrderOutData;
import com.tykj.dev.device.scrap.subject.vo.StorageScrap;
import com.tykj.dev.device.user.subject.entity.SecurityUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
/**
* @author zjm
......@@ -78,4 +81,13 @@ public class ScrapBusinessController {
}
/**
* 报废草稿任务封存
*/
@ApiOperation(value = "报废草稿任务封存", notes = "报废草稿任务封存")
@PostMapping(value ="/moveToArchiveScrap/{taskId}")
public ResponseEntity deleteDrafts(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser, @PathVariable Integer taskId){
scrapBusinessService.deleteDrafts(taskId);
return ResponseEntity.ok("报废草稿任务封存完成");
}
}
......@@ -3,6 +3,7 @@ package com.tykj.dev.device.scrap.service;
import com.tykj.dev.device.scrap.subject.domin.Scrap;
import com.tykj.dev.device.scrap.subject.vo.ScrapOrderOutData;
import com.tykj.dev.device.scrap.subject.vo.StorageScrap;
import com.tykj.dev.device.task.subject.bto.TaskBto;
/**
* @author zjm
......@@ -16,7 +17,7 @@ public interface ScrapBusinessService {
/**
* 退役任务保存草稿
*/
Scrap saveDeviceScrapDraft(Integer userId, ScrapOrderOutData scrapOrderOutData);
TaskBto saveDeviceScrapDraft(Integer userId, ScrapOrderOutData scrapOrderOutData);
/**
* 生成省中办报废的任务
......
......@@ -35,6 +35,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
......@@ -70,12 +71,13 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
MessageService messageService;
@Override
public Scrap saveDeviceScrapDraft(Integer userId, ScrapOrderOutData scrapOrderOutData) {
public TaskBto saveDeviceScrapDraft(Integer userId, ScrapOrderOutData scrapOrderOutData) {
User user = userService.findByUser(userId);
Units units = unitsService.findById(user.getUnitsId());
Scrap scrap = scrapOrderOutData.toScrap();
List<ScriptSaveVo> scriptSaveVos = scrapOrderOutData.getScriptSaveVos();
List<String> seqNumbers = new ArrayList<>();
TaskBto taskBto;
scriptSaveVos.forEach(
scriptSaveVo -> {
if (scriptSaveVo.getSeqNumber() != null) {
......@@ -85,16 +87,25 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
);
scrap.setDeviceIds(StringUtils.ListToString(scrapOrderOutData.getDevIds()));
scrap.setOutboundFile(FilesUtil.stringFileToList(scrapOrderOutData.getOutboundFileList()));
scrapService.saveScrap(scrap);
if (scrapOrderOutData.getTaskId()==null) {
Optional<Scrap> scrap1=scrapService.findApplyId(scrapOrderOutData.getApplyId());
if (scrap1.isPresent()){
scrap.setId(scrap1.get().getId());
}
scrapService.saveScrap(scrap);
scrap.setNum("NO:第" + LocalDateTime.now().getYear() + "QT" + scrap.getId());
taskBto=sendDraftTask(units.getUnitId(), scrap.getId(), userId);
}else {
taskBto=taskService.get(scrapOrderOutData.getTaskId());
Scrap scrap1= scrapService.findScrap(taskBto.getBillId());
scrap.setId(scrap1.getId());
}
scrap.setScripts(scrapOrderOutData.getScriptSaveVos());
scrap.setScriptJson(JacksonUtil.toJSon(scrapOrderOutData.getScriptSaveVos()));
scrap.setNum("NO:第" + LocalDateTime.now().getYear() + "QT" + scrap.getId());
scrap.setDeviceLibraryEntities(findInvoleDevice(scrap.getDeviceIds()));
// scrap.setDeviceLibraryEntities(findInvoleDevice(scrap.getDeviceIds()));
scrapService.saveScrap(scrap);
if (scrapOrderOutData.getTaskId()==null) {
sendDraftTask(units.getUnitId(), scrap.getId(), userId);
}
return scrap;
return taskBto;
}
@Override
......@@ -115,12 +126,14 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
if (scrapOrderOutData.getTaskId()!=null){
TaskBto taskBto= taskService.get(scrapOrderOutData.getTaskId());
List<StatusEnum> statusEnums = new ArrayList<>();
statusEnums.add(StatusEnum.DECOMMISSIONING_1250);
statusEnums.add(StatusEnum.DECOMMISSIONING_1252);
statusEnums.add(StatusEnum.SCRAP_2223);
statusEnums.add(StatusEnum.SCRAP_2225);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(), statusEnums);
Scrap scrap1=scrapService.findScrap(taskBto.getBillId());
scrap.setId(scrap1.getId());
taskService.moveToSpecial(taskBto,StatusEnum.SCRAP_2222);
scrap.setNum(scrap1.getNum());
taskService.moveToSpecial(taskBto,StatusEnum.SCRAP_2222,"country");
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"发起报废任务,待上传回执单据",gainThisUser(user.getUserId(),user.getUnitsId())));
}else {
scrapService.saveScrap(scrap);
scrap.setNum("NO:第" + LocalDateTime.now().getYear() + "QT" + scrap.getId());
......@@ -131,9 +144,10 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
scrap.setOutboundFile(FilesUtil.stringFileToList(scrapOrderOutData.getOutboundFileList()));
scrap.setScripts(scrapOrderOutData.getScriptSaveVos());
scrap.setScriptJson(JacksonUtil.toJSon(scrapOrderOutData.getScriptSaveVos()));
scrap.setDeviceLibraryEntities(findInvoleDevice(scrap.getDeviceIds()));
scrapService.saveScrap(scrap);
deviceLibraryDao.upDateSeqNumbersLeftStatus(DeviceLifeStatus.IN_THE_SCRAPPED.id,seqNumbers);
devLogAdd(seqNumbers,"发了报废任务,状态转化为报废中",userId);
return scrap;
}
......@@ -171,7 +185,7 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
);
deviceLibraryDao.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(DeviceLifeStatus.SCRAP_I.id,scrap.getReceiveUnit(),0,seqNumbers);
scrapService.saveScrap(scrap);
devLogAdd(findInvoleDevice(scrap.getDeviceIds()),"上传了报废单据,装备状态-》已报废",storageScrap.getUserId());
devLogAdd(seqNumbers,"报废任务完成,状态转化为已报废",user.getUserId());
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"报废单据上传,任务结束",gainThisUser(user.getUserId(),user.getUnitsId())));
}
......@@ -215,7 +229,8 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
@Override
public void deleteDrafts(Integer taskId) {
TaskBto taskBto= taskService.get(taskId);
taskService.moveToArchive(taskBto);
}
/**
......@@ -238,28 +253,9 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
List<Integer> userIds = new ArrayList<>();
userIds.add(userId);
userIds.add(0);
return taskService.start(new TaskBto(StatusEnum.SCRAP_2222.id, "报废业务", null, ".", repelDetailId, BusinessEnum.SCRAP.id, unitId, 1, "country", userIds));
return taskService.start(new TaskBto(StatusEnum.SCRAP_2222.id, "报废设备任务", null, ".", repelDetailId, BusinessEnum.SCRAP.id, unitId, 1, "country", userIds));
}
/**
* 异步添加装备日志
* @param deviceLibraries
* @param remark
* @param userId
*/
private void devLogAdd(List<DeviceLibrary> deviceLibraries, String remark, Integer userId){
List<DeviceLog> logDtos=new ArrayList<>();
deviceLibraries.forEach(
deviceLibrary -> {
logDtos.add(new DeviceLogDto(deviceLibrary.getId(),remark,null,userId).toDo());
}
);
CompletableFuture.runAsync(() -> {
deviceLogService.saveAllLog(logDtos);
});
}
/**
* 报废保存为草稿
......@@ -268,10 +264,31 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
List<Integer> list=new ArrayList<>();
list.add(userId);
list.add(0);
return taskService.start(new TaskBto(StatusEnum.SCRAP_2223.id, "报废设备任务", null, ".", repelDetailId, BusinessEnum.DECOMMISSIONING.id, unitId, 1, "", list));
return taskService.start(new TaskBto(StatusEnum.SCRAP_2223.id, "报废设备任务", null, ".", repelDetailId, BusinessEnum.SCRAP.id, unitId, 1, "", list));
}
/**
* 异步添加装备日志
*/
private void devLogAdd(List<String> seqNumbers, String remark, Integer userId){
CompletableFuture.runAsync(() -> {
List<DeviceLog> logDtos=new ArrayList<>();
deviceLibraryDao.findAllBySeqNumberIn(seqNumbers).forEach(
deviceLibrary -> {
logDtos.add(new DeviceLogDto(deviceLibrary.getId(),remark,null,userId).toDo());
}
);
deviceLogService.saveAllLog(logDtos);
});
}
private void addMessage(MessageBto messageBto){
messageService.add(messageBto);
}
......@@ -295,6 +312,8 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
return userService.findAllByUnite(unitId).stream().map(User::getUserId).collect(Collectors.toList());
}
private List<DeviceLibrary> findInvoleDevice(String involeDevice){
if (involeDevice!=null && !involeDevice.equals(",") ) {
List<String> idStringList = Arrays.asList(involeDevice.split(","));
......
......@@ -11,7 +11,9 @@ import com.tykj.dev.device.task.service.TaskService;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.task.subject.domin.Task;
import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.exception.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
......@@ -19,6 +21,7 @@ import org.springframework.stereotype.Service;
import javax.persistence.Transient;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Optional;
/**
......@@ -29,6 +32,7 @@ import java.util.Optional;
* @createTime 2021年03月31日 14:14:00
*/
@Service
@Slf4j
public class ScrapQueryServiceImpl implements ScrapQueryService {
@Autowired
ScrapService scrapService;
......@@ -53,11 +57,14 @@ public class ScrapQueryServiceImpl implements ScrapQueryService {
if (!scrap.isPresent()){
return null;
}else {
Optional<Task> billIdAndBusinessType = taskService.findBillIdAndBusinessType(scrap.get().getId(), BusinessEnum.SCRAP.id);
Optional<Task> billIdAndBusinessType = taskService.findBillIdAndBusinessType(scrap.get().getId(), BusinessEnum.SCRAP.id,StatusEnum.ARCHIVE.id);
if (billIdAndBusinessType.isPresent()){
return billIdAndBusinessType.get().parse2Bto();
TaskBto taskBto=billIdAndBusinessType.get().parse2Bto();
return taskBto;
}else {
throw new ApiException(ResponseEntity.status(500).body("[报废] 根据申请id未查询退役任务 :"+applyId));
log.info("[报废] 根据申请id未查询退役任务 :{}",applyId);
// throw new ApiException(ResponseEntity.status(500).body("[报废] 根据申请id未查询退役任务 :"+applyId));
return null;
}
}
}
......
......@@ -53,7 +53,7 @@ public class ScrapServiceImpl implements ScrapService {
Optional<Scrap> optional = scrapDao.findById(scrapId);
if (optional.isPresent()){
Scrap scrap=optional.get();
scrap.setDeviceLibraryEntities(findInvoleDevice(scrap.getDeviceIds()));
// scrap.setDeviceLibraryEntities(findInvoleDevice(scrap.getDeviceIds()));
scrap.setScripts(JacksonUtil.readValue(scrap.getScriptJson(), new TypeReference<List<ScriptSaveVo>>() {}));
scrap.setBillFiles(FilesUtil.stringFileToList(scrap.getBillFile()));
scrap.setOutboundFiles(FilesUtil.stringFileToList(scrap.getOutboundFile()));
......
......@@ -84,8 +84,8 @@ public class RepelDevController {
@ApiOperation(value = "清退入库任务申请签章", notes = "清退入库任务申请签章")
@PostMapping(value ="/sendSealOfAudit/{userId}/{taskId}")
public ResponseEntity sendSealOfAudit(@PathVariable Integer taskId, @PathVariable Integer userId){
repelBusinessService.sendSealOfAudit(taskId,userId);
public ResponseEntity sendSealOfAudit(@PathVariable Integer taskId, @PathVariable Integer userId,@RequestBody StorageDeviceRepel storageDeviceRepel){
repelBusinessService.sendSealOfAudit(taskId,userId,storageDeviceRepel);
return ResponseEntity.ok("申请成功,等待审核");
}
......
......@@ -71,7 +71,7 @@ public interface RepelBusinessService {
/**
* 入库把任务推送至盖章审核
*/
void sendSealOfAudit(Integer taskId,Integer userId);
void sendSealOfAudit(Integer taskId,Integer userId, StorageDeviceRepel storageDeviceRepel);
/**
* 出库盖章审核调用
* 通过出库
......
......@@ -274,7 +274,7 @@ public class RepelBusinessServiceImpl implements RepelBusinessService {
repelTaskStatisticalService.saveRepelTaskStatistical(repelTaskStatistical);
taskService.moveToSpecial(currentTask,StatusEnum.SEND_BACK_1206);
DeviceRepel deviceRepelCurrent=deviceRepelService.findDeviceRepel(deviceRepelDetail1.getRepelId());
if (deviceRepelCurrent.getType()!=0){
if (deviceRepelCurrent.getEquipmentInvolvingUnit()!=null){
Map<Integer,List<SupervisorVo>> integerListMap=JacksonUtil.readValue(deviceRepelCurrent.getEquipmentInvolvingUnit(), new TypeReference<Map<Integer,List<SupervisorVo>>>() {});
if (integerListMap.containsKey(units.getUnitId())){
deviceRepel.setTaskScopes(integerListMap.get(units.getUnitId()).stream().map(SupervisorVo::getUnitid).collect(Collectors.toList()));
......@@ -547,30 +547,37 @@ public class RepelBusinessServiceImpl implements RepelBusinessService {
statusEnums.add(StatusEnum.SEND_BACK_1208);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(),statusEnums);
DeviceRepelDetail deviceRepelDetail=deviceRepelDetailService.findDeviceRepelDetail(taskBto.getBillId());
deviceRepelDetail.setSenderUserA(orderOutData.getSenderUserA());
deviceRepelDetail.setSendUseraId(orderOutData.getSendUseraId());
deviceRepelDetail.setScriptJson(JacksonUtil.toJSon(orderOutData.getScriptSaveVos()));
deviceRepelDetail.setScripts(orderOutData.getScriptSaveVos());
deviceRepelDetail.setSenderUserB(memberThat.getName());
deviceRepelDetail.setSendUserbId(orderOutData.getSendUserbId());
deviceRepelDetailService.saveDeviceRepelDetail(deviceRepelDetail);
DeviceRepelDetail orderOutDataRepelDetail =orderOutData.toTrainDetailsVo();
orderOutDataRepelDetail.setId(deviceRepelDetail.getId());
orderOutDataRepelDetail.setRepelId(deviceRepelDetail.getRepelId());
orderOutDataRepelDetail.setDeviceIds(deviceRepelDetail.getDeviceIds());
orderOutDataRepelDetail.setRightSignatureId(UUID.randomUUID().toString());
orderOutDataRepelDetail.setNum("NO:第"+ LocalDateTime.now().getYear()+"QT"+taskBto.getBillId());
orderOutDataRepelDetail.setReplyFiles(FilesUtil.stringFileToList(orderOutData.getReplyFileList()));
orderOutDataRepelDetail.setSendFiles(FilesUtil.stringFileToList(orderOutData.getSendFileList()));
orderOutDataRepelDetail.setScriptJson(JacksonUtil.toJSon(orderOutData.getScriptSaveVos()));
orderOutDataRepelDetail.setScripts(orderOutData.getScriptSaveVos());
orderOutDataRepelDetail.setReplyFiles(FilesUtil.stringFileToList(orderOutData.getReplyFileList()));
orderOutDataRepelDetail.setApplyFiles(FilesUtil.stringFileToList(orderOutData.getApplyFileList()));
deviceRepelDetailService.saveDeviceRepelDetail(orderOutDataRepelDetail);
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1217,orderOutData.getSendUserbId());
}
@Override
public void sendSealOfAudit(Integer taskId, Integer userId) {
public void sendSealOfAudit(Integer taskId, Integer userId, StorageDeviceRepel storageDeviceRepel) {
TaskBto taskBto= taskService.get(taskId);
MemberThat memberThat = userService.findById(userId);
List<StatusEnum> enumList=new ArrayList<>();
enumList.add(StatusEnum.SEND_BACK_1209);
enumList.add(StatusEnum.SEND_BACK_1213);
enumList.add(StatusEnum.SEND_BACK_1215);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(),enumList);
DeviceRepelDetail deviceRepelDetail=deviceRepelDetailService.findDeviceRepelDetail(taskBto.getBillId());
deviceRepelDetail.setReceiveUserB(memberThat.getName());
deviceRepelDetail.setReceiveUserbId(userId);
deviceRepelDetail.setReceiveUserB(storageDeviceRepel.getUserBName());
deviceRepelDetail.setReceiveUserbId(storageDeviceRepel.getUserB());
deviceRepelDetail.setReceiveUserA(storageDeviceRepel.getUserAName());
deviceRepelDetail.setReceiveUseraId(storageDeviceRepel.getUserA());
deviceRepelDetailService.saveDeviceRepelDetail(deviceRepelDetail);
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1217,userId);
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1218,storageDeviceRepel.getUserB());
}
@Override
......@@ -591,7 +598,7 @@ public class RepelBusinessServiceImpl implements RepelBusinessService {
public void sendSealOfAuditEnd(Integer taskId, Integer reviewTheResults) {
TaskBto taskBto= taskService.get(taskId);
if (reviewTheResults==0){
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1218,0);
taskService.moveToSpecial(taskBto,StatusEnum.SEND_BACK_1220,0);
}else {
DeviceRepelDetail deviceRepelDetail=deviceRepelDetailService.findDeviceRepelDetail(taskBto.getBillId());
deviceRepelDetail.setReceiveUserbId(null);
......
......@@ -20,6 +20,13 @@ public interface TaskDao extends JpaRepository<Task, Integer>, JpaSpecificationE
*/
Optional<Task> findByBillIdAndBusinessType(Integer billId, Integer businessType);
/**
* @param billId 账单id
* @param businessType 业务类型
* 根据账单Id和业务类型查询task
* @param billStatus 业务状态
*/
Optional<Task> findByBillIdAndBusinessTypeAndBillStatusNot(Integer billId, Integer businessType,Integer billStatus);
/**
* 根据账单id、业务类型、任务状态查询task
*
......
......@@ -176,7 +176,7 @@ public interface TaskService {
/**
* 根据业务id 以及 业务类型进行查询
*/
Optional<Task> findBillIdAndBusinessType(Integer billId, Integer businessType);
Optional<Task> findBillIdAndBusinessType(Integer billId, Integer businessType,Integer billStatus);
/**
* 根据父id查询customInfo为shi的task
......
......@@ -776,8 +776,8 @@ public class TaskServiceImpl implements TaskService {
}
@Override
public Optional<Task> findBillIdAndBusinessType(Integer billId, Integer businessType) {
return taskDao.findByBillIdAndBusinessType(billId,businessType);
public Optional<Task> findBillIdAndBusinessType(Integer billId, Integer businessType,Integer billStatus) {
return taskDao.findByBillIdAndBusinessTypeAndBillStatusNot(billId,businessType,billStatus);
}
@Override
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论