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

feat(用户,清退,退役,报废,销毁模块): 清退中止任务,添加缓存注解

1.清退任务: 添加维修中止任务,以及修改了清退的全部发起的业务,不需要市手动转发,系统自动转发掉。 2。退役,报废,销毁,清退模块 添加了更新缓存的注解,把使用设备的dao 换成service
上级 352d6377
......@@ -187,7 +187,7 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
deviceDecommissioningDetail.setScriptJson(JacksonUtil.toJSon(decommissioningOrderOutData.getScriptSaveVos()));
// deviceDecommissioningDetail.setDeviceLibraryEntities(findInvoleDevice(deviceDecommissioningDetail.getDeviceIds()));
deviceDecommissioningDetailService.saveDeviceDecommissioningDetail(deviceDecommissioningDetail);
deviceLibraryDao.upDateSeqNumbersLeftStatus(DeviceLifeStatus.RETIRED.id,seqNumbers);
deviceLibraryService.upDateSeqNumbersLeftStatus(DeviceLifeStatus.RETIRED.id,seqNumbers);
devLogAdd(seqNumbers,"发了退役任务,状态转化为退役中",userId,taskBto.getId());
if (decommissioningOrderOutData.getApplyId()!=null) {
Optional<Task> billIdAndBusinessTypeNotBillStatus = taskService.findBillIdAndBusinessTypeNotBillStatus(decommissioningOrderOutData.getApplyId(), BusinessEnum.APPLY.id);
......@@ -242,7 +242,7 @@ public class DeviceDecommissioningBusinessServiceImpl implements DeviceDecommiss
taskBto=taskService.moveToEnd(taskBto);
deviceDecommissioningDetail.setReceiveTime(new Date());
deviceDecommissioningDetail.setDecommissioningStatus(taskBto.getBillStatus());
deviceLibraryDao.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(DeviceLifeStatus.RETIRE.id,deviceDecommissioningDetail.getReceiveUnit(),0,seqNumbers);
deviceLibraryService.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(),taskBto.getId());
......
......@@ -147,7 +147,7 @@ public class DeviceDestroyBusinessServiceImpl implements DeviceDestroyBusinessSe
deviceDestroyBill.setApplyFiles(FilesUtil.stringFileToList(deviceDestroyBillVo.getApplyFileList()));
deviceDestroyBill.setReplayFiles(FilesUtil.stringFileToList(deviceDestroyBillVo.getReplayFileList()));
deviceDestroyBill.setScriptJson(JacksonUtil.toJSon(deviceDestroyBillVo.getScripts()));
deviceLibraryDao.upDateSeqNumbersLeftStatus(DeviceLifeStatus.IN_THE_DESTROYED.id,seqNumbers);
deviceLibraryService.upDateSeqNumbersLeftStatus(DeviceLifeStatus.IN_THE_DESTROYED.id,seqNumbers);
deviceDestroyBillService.saveDeviceDestroyBill(deviceDestroyBill);
devLogAdd(seqNumbers,"发了销毁任务,状态转化为销毁中",securityUser.getCurrentUserInfo().getUserId(),taskBto.getId());
if (deviceDestroyBillVo.getApplyId()!=null) {
......@@ -182,7 +182,7 @@ public class DeviceDestroyBusinessServiceImpl implements DeviceDestroyBusinessSe
// deviceDestroyBill.setDestroyTime(new Date());
deviceDestroyBill.setDestroyStatus(taskBto.getBillStatus());
deviceDestroyBillService.saveDeviceDestroyBill(deviceDestroyBill);
deviceLibraryDao.upDateSeqNumbersLeftStatus(DeviceLifeStatus.DESTROYED.id,seqNumbers);
deviceLibraryService.upDateSeqNumbersLeftStatus(DeviceLifeStatus.DESTROYED.id,seqNumbers);
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"销毁任务补充手续完成",gainThisUser(securityUser.getCurrentUserInfo().getUserId(),securityUser.getCurrentUserInfo().getUnitsId())));
devLogAdd(seqNumbers,"补充单据信息,状态转化已销毁",deviceDestroyBillVo.getOperationId(),taskBto.getId());
......
......@@ -83,6 +83,11 @@ public interface DeviceLibraryDao extends JpaRepository<DeviceLibrary, Integer>,
Integer countAllBySeqNumberInAndOwnUnitInAndLifeStatusIn(List<String> seqNumbers,List<String> unitNames,List<Integer> lifeStatus);
List<DeviceLibrary> findAllBySeqNumberInAndOwnUnitInAndLifeStatusIn(List<String> seqNumbers,List<String> unitNames,List<Integer> lifeStatus);
List<DeviceLibrary> findAllByPackingIdInAndOwnUnitInAndLifeStatusIn(List<Integer> packingIds,List<String> unitNames,List<Integer> lifeStatus);
List<DeviceLibrary> findAllByPackingIdInAndOwnUnit(List<Integer> packingIds,String unitNames);
List<DeviceLibrary> findAllByPackingIdInAndOwnUnitIn(List<Integer> packingIds,List<String> unitNames);
......
......@@ -103,7 +103,7 @@ public class LossBillServiceImpl implements LossBillService {
}
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"发起了装备丢失",gainThisUser(securityUser.getCurrentUserInfo().getUserId(),securityUser.getCurrentUserInfo().getUnitsId())));
deviceLibraryDao.upDateLeftStatus(DeviceLifeStatus.LOSS.id,deviceLoss.getDevIdsList());
deviceLibraryService.upDateLeftStatus(DeviceLifeStatus.LOSS.id,deviceLoss.getDevIdsList());
devLogAdd(deviceLoss.getDevIdsList(),"装备报备丢失", deviceLoss.getCreateUserId(),taskBto.getId());
}
......@@ -147,7 +147,7 @@ public class LossBillServiceImpl implements LossBillService {
TaskBto taskBto;
if (units.getLevel() == 1) {
taskBto= endRetrieve(deviceLossThis.getCreateUserId(), deviceLossThis.getId(), units.getName() + "找回装备任务", units.getUnitId());
deviceLibraryDao.upDateLeftStatus(DeviceLifeStatus.IN_LIBRARY.id,deviceLoss.getDevIdsList());
deviceLibraryService.upDateLeftStatus(DeviceLifeStatus.IN_LIBRARY.id,deviceLoss.getDevIdsList());
} else if (units.getLevel()==2){
Units parentUnits=unitsService.findUnitAreaId(area.getFatherId());
taskBto= newRetrieveCityTask(parentUnits.getUnitId(), deviceLossThis.getId(), units.getName() + "找回装备任务",securityUser.getCurrentUserInfo().getUserId());
......@@ -173,7 +173,7 @@ public class LossBillServiceImpl implements LossBillService {
if (retrieveAuditvo.getType()==1){
taskService.moveToEnd(taskBto);
deviceLoss.setBackStatus(2);
deviceLibraryDao.upDateLeftStatus(DeviceLifeStatus.IN_LIBRARY.id,StringUtils.stringToList(deviceLoss.getDevIds()));
deviceLibraryService.upDateLeftStatus(DeviceLifeStatus.IN_LIBRARY.id,StringUtils.stringToList(deviceLoss.getDevIds()));
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"装备找回业务审核成功",gainThisUser(user.getUserId(),user.getUnitsId())));
}else {
taskService.moveToEnd(taskService.moveToSpecial(taskBto,StatusEnum.RETRIEVE1403));
......
package com.tykj.dev.misc.base;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -54,6 +55,7 @@ public class BaseEntity {
*/
@CreatedDate
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
......@@ -61,6 +63,7 @@ public class BaseEntity {
*/
@LastModifiedDate
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/**
......
package com.tykj.dev.device.repair.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.tykj.dev.blockcha.subject.entity.BcHash;
import com.tykj.dev.blockcha.subject.service.BlockChainUtil;
import com.tykj.dev.config.TaskBeanConfig;
......@@ -165,9 +166,10 @@ public class RepairDetailServiceImpl implements RepairDetailService {
}
}
);
List<BillVo> billVos = new ArrayList<>();
map.forEach(
(k,v)->{
List<BillVo> billVos = new ArrayList<>();
BillVo billVo = new BillVo();
billVo.setRepairBillId(v.getDeviceRepairBillId());
billVo.setDevicesId(v.getDeviceId());
......@@ -291,12 +293,15 @@ public class RepairDetailServiceImpl implements RepairDetailService {
repairBillIds.forEach(integer -> {
RepairSendBill sendBill = repairSendBillDao.findByDeviceRepairBillId(integer);
String scriptJson = sendBill.getScriptJson();
List<ScriptSaveVo> scriptSaveVos = JacksonUtil.readValueToList(scriptJson, ScriptSaveVo.class);
List<ScriptSaveVo> scriptSaveVos = JacksonUtil.readValue(scriptJson, new TypeReference<List<ScriptSaveVo>>() {
});
for (ScriptSaveVo scriptSaveVo : scriptSaveVos) {
if (deviceIds.contains(scriptSaveVo.getId())) {
scriptSaveVo.setRemark(remark);
sendBill.setScriptJson(JacksonUtil.toJSon(scriptJson));
repairSendBillDao.save(sendBill);
}
}
sendBill.setScriptJson(JacksonUtil.toJSon(scriptSaveVos));
repairSendBillDao.save(sendBill);
});
List<Integer> repairDetailIds = billVos.stream().map(BillVo::getRepairDetailId).collect(Collectors.toList());
//删除维修详情
......
......@@ -178,7 +178,7 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
scrap.setScripts(scrapOrderOutData.getScriptSaveVos());
scrap.setScriptJson(JacksonUtil.toJSon(scrapOrderOutData.getScriptSaveVos()));
scrapService.saveScrap(scrap);
deviceLibraryDao.upDateSeqNumbersLeftStatus(DeviceLifeStatus.IN_THE_SCRAPPED.id,seqNumbers);
deviceLibraryService.upDateSeqNumbersLeftStatus(DeviceLifeStatus.IN_THE_SCRAPPED.id,seqNumbers);
devLogAdd(seqNumbers,"发了报废任务,状态转化为报废中",userId,taskBto.getId());
if (scrapOrderOutData.getApplyId()!=null) {
Optional<Task> billIdAndBusinessTypeNotBillStatus = taskService.findBillIdAndBusinessTypeNotBillStatus(scrapOrderOutData.getApplyId(), BusinessEnum.APPLY.id);
......@@ -229,7 +229,7 @@ public class ScrapBusinessServiceImpl implements ScrapBusinessService {
taskBto = taskService.moveToEnd(taskBto);
scrap.setScrapStatus(taskBto.getBillStatus());
scrap.setReceiveTime(new Date());
deviceLibraryDao.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(DeviceLifeStatus.SCRAP_I.id,scrap.getReceiveUnit(),0,seqNumbers);
deviceLibraryService.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(DeviceLifeStatus.SCRAP_I.id,scrap.getReceiveUnit(),0,seqNumbers);
scrapService.saveScrap(scrap);
devLogAdd(seqNumbers,"报废任务完成,状态转化为已报废",user.getUserId(),taskBto.getId());
addMessage(new MessageBto(taskBto.getId(),taskBto.getBusinessType(),"报废单据上传,任务结束",gainThisUser(user.getUserId(),user.getUnitsId())));
......
......@@ -35,8 +35,8 @@ public class RepelDevController {
@PostMapping(value ="/initiateRepel/{userId}")
@ApiOperation(value = "省发布清退接口", notes = "省发布清退接口")
public ResponseEntity initiateRepel(@PathVariable Integer userId,@RequestBody DeviceRepel deviceRepel){
repelBusinessService.initiateRepel(deviceRepel,userId);
public ResponseEntity initiateRepel(@PathVariable Integer userId,@RequestBody DeviceRepel deviceRepel,@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
repelBusinessService.initiateRepel(deviceRepel,userId,securityUser);
return ResponseEntity.ok("发布成功");
}
......@@ -179,10 +179,17 @@ public class RepelDevController {
return ResponseEntity.ok("任务办结完成");
}
@ApiOperation(value = "test", notes = "全部清退无装备办结接口")
@GetMapping(value ="/test/{taskId}")
public ResponseEntity test(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser,@PathVariable Integer taskId){
@ApiOperation(value = "清退任务撤回检查接口", notes = "清退任务撤回检查接口")
@GetMapping(value ="/repelWithdraw/check/{taskId}")
public ResponseEntity repelWithdrawCheck(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser,@PathVariable Integer taskId){
return ResponseEntity.ok(repelBusinessService.repelWithdraw(taskId));
return ResponseEntity.ok(repelBusinessService.repelWithdrawCherck(taskId));
}
@ApiOperation(value = "清退任务撤回接口", notes = "清退任务撤回接口")
@GetMapping(value ="/repelWithdraw/{taskId}")
public ResponseEntity repelWithdraw(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser,@PathVariable Integer taskId){
repelBusinessService.repelWithdraw(taskId);
return ResponseEntity.ok("清退成功");
}
}
package com.tykj.dev.device.sendback.controller;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import com.tykj.dev.device.sendback.entity.vo.HistorySelectSendBillVo;
import com.tykj.dev.device.sendback.service.HistorySendBillService;
import com.tykj.dev.device.sendback.service.RepelBusinessService;
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.web.bind.annotation.*;
/**
* @author zjm
* @version 1.0.0
* @ClassName HistoryPepairContriller.java
* @Description TODO
* @createTime 2021年09月17日 10:21:00
*/
@RestController
@RequestMapping(value = "/historySend")
@AutoDocument
@Api(tags = "清退直属代管模块", description = "清退直属代管模块")
public class RepelEscrowContriller {
@Autowired
RepelBusinessService repelBusinessService;
@ApiOperation(value = "添加相关数据接口",notes = "分为两个阶段使用 1.选择设备阶段,需要传deviceLibraries集合,以及escrowStatus为2。第2阶段 上传签字单据,fileRetList集合以及escrowStatus为2")
@PostMapping("/addDate")
public ResponseEntity toDb(@RequestBody RepelEscrow repelEscrow ){
repelBusinessService.saveRepelEscrow(repelEscrow);
return ResponseEntity.ok("ok");
}
}
......@@ -104,7 +104,7 @@ public class RepelQueryController {
}
@GetMapping(value ="/provinceDirectlyUnderDev/{taskId}/{type}")
@ApiOperation(value = "省直属任务单位列表查询接口", notes = "省直属任务装备查询接口")
@ApiOperation(value = "省直属任务单位列表查询接口", notes = "Repeles对象中 escrowStatus =2 为选择了装备 3上传了单据 根据状态判断是否全部提交 其他不变")
public ResponseEntity provinceDirectlyUnderDev(@PathVariable Integer taskId, @PathVariable Integer type){
return ResponseEntity.ok(repelQueryService.directlyUnderUnitLeftNavigation(taskId,type));
}
......@@ -165,23 +165,25 @@ public class RepelQueryController {
return ResponseEntity.ok(repelQueryService.repelDeviceInList(repelManagementVo));
}
@GetMapping(value ="/provinceDirectlyUnder/device/{taskId}")
@ApiOperation(value = "直属单位全部清退装备查询接口", notes = "直属单位全部清退装备查询接口")
public ResponseEntity provinceDirectlyUnderDevice( @PathVariable Integer taskId){
return ResponseEntity.ok(repelQueryService.provinceDirectlyUnderDev(taskId));
}
@PostMapping(value ="/judgeFieldingIsNotNormal")
@ApiOperation(value = "判断发起的列装是否需要提示接口", notes = "判断发起的列装是否需要提示接口")
public ResponseEntity provinceDirectlyUnderDevice(@RequestBody List<RepelFieldingVo> repelFieldingVoList){
return ResponseEntity.ok(repelQueryService.judgeFieldingIsNotNormal(repelFieldingVoList));
}
@GetMapping(value ="/repel/fileMap/{taskId}")
@ApiOperation(value = "根据任务ID查询业务相关单据", notes = "根据任务ID查询业务相关单据")
public ResponseEntity repelFileMap( @PathVariable Integer taskId){
return ResponseEntity.ok(repelQueryService.findByTaskIdToFileMapList(taskId));
}
}
package com.tykj.dev.device.sendback.controller;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepel;
import com.tykj.dev.device.sendback.entity.vo.CityConfirmRequest;
import com.tykj.dev.device.sendback.entity.vo.ProvinceConfirmRequest;
import com.tykj.dev.device.sendback.service.RepelBusinessService;
import com.tykj.dev.device.sendback.service.SuspensionBillBusinessService;
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;
import java.beans.Transient;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName SuspensionBillController.java
* @Description TODO
* @createTime 2021年09月03日 13:49:00
*/
@RestController
@Api(tags = "中止模块", description = "中止模块相关接口")
@AutoDocument
@RequestMapping("/suspension")
public class SuspensionBillController {
@Autowired
SuspensionBillBusinessService suspensionBillBusinessService;
@PostMapping(value ="/initiateSuspensionBill")
@ApiOperation(value = "生成中止任务接口", notes = "生成中止任务接口")
public ResponseEntity initiateRepel(@RequestBody List<Integer> ids,@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
suspensionBillBusinessService.initiateSuspensionBill1(ids,securityUser);
return ResponseEntity.ok("发布成功");
}
@PostMapping(value ="/initiateSuspensionBill2")
@ApiOperation(value = "直属单位生成中止任务接口", notes = "生成中止任务接口")
public ResponseEntity initiateRepel1(@RequestBody List<Integer> ids,@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
suspensionBillBusinessService.initiateSuspensionBill2(ids,securityUser);
return ResponseEntity.ok("发布成功");
}
@ApiOperation(value = "市确认任务接口", notes = "市确认任务接口")
@PostMapping(value ="/cityConfirm")
public ResponseEntity cityConfirm(@RequestBody CityConfirmRequest cityConfirmRequest, @ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
suspensionBillBusinessService.cityConfirm(cityConfirmRequest,securityUser);
return ResponseEntity.ok("市转发省级任务成功");
}
@ApiOperation(value = "省确认任务接口", notes = "省确认任务接口")
@PostMapping(value ="/provinceConfirm")
public ResponseEntity resolveRepel(@RequestBody ProvinceConfirmRequest provinceConfirmRequest, @ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
suspensionBillBusinessService.provinceConfirm(provinceConfirmRequest,securityUser);
return ResponseEntity.ok("市转发省级任务成功");
}
@GetMapping(value = "/select/id/{taskId}")
@ApiOperation(value = "根据任务查询中止业务详情")
public ResponseEntity findByTaskId(@PathVariable Integer taskId){
return ResponseEntity.ok(suspensionBillBusinessService.findByTaskId(taskId));
}
}
......@@ -3,11 +3,13 @@ package com.tykj.dev.device.sendback.entity.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tykj.dev.device.file.entity.FileRet;
import com.tykj.dev.misc.base.BaseEntity;
import com.tykj.dev.misc.base.BeanHelper;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
......@@ -146,5 +148,9 @@ public class DeviceRepel extends BaseEntity {
@ApiModelProperty(value = "涉及型号集合 添加填写")
private List<String> models;
public DeviceRepel toNew(){
ModelMapper mapper = BeanHelper.getUserMapper();
return mapper.map(this, DeviceRepel.class);
}
}
package com.tykj.dev.device.sendback.entity.domain;
import com.tykj.dev.device.file.entity.FileRet;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.misc.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.checkerframework.checker.units.qual.Temperature;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Transient;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName RepelEscrow.java
* @Description TODO
* @createTime 2021年09月13日 16:16:00
*/
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
@ApiModel("清退代管单位")
public class RepelEscrow extends BaseEntity {
/**
* 代管单位id
*/
private Integer unitId;
@Column(name = "device_ids",columnDefinition = "TEXT")
private String deviceIds;
@Column(name = "file_rets",columnDefinition = "TEXT")
private String fileRets;
/**
* 直属代管状态
*/
private Integer escrowStatus;
/**
* 清退总任务id
*/
private Integer repelId;
@Transient
private List<FileRet> fileRetList;
@Transient
private List<DeviceLibrary> deviceLibraries;
@Transient
private String unitName;
public RepelEscrow(Integer unitId, Integer escrowStatus, Integer repelId) {
this.unitId = unitId;
this.escrowStatus = escrowStatus;
this.repelId = repelId;
}
}
package com.tykj.dev.device.sendback.entity.domain;
import com.tykj.dev.device.file.entity.FileRet;
import com.tykj.dev.device.library.subject.vo.ScriptSaveVo;
import com.tykj.dev.device.repair.subject.vo.BillVo;
import com.tykj.dev.misc.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName SuspensionBill.java
* @Description 中止业务 实体类
* @createTime 2021年08月29日 12:23:00
*/
@Data
@Entity
@EntityListeners(AuditingEntityListener.class)
@ApiModel("中止业务实体")
@NoArgsConstructor
@AllArgsConstructor
public class SuspensionBill extends BaseEntity {
/**
* 标题
*/
@ApiModelProperty(value = "单据编号")
private String title;
/**
* 编号
*/
@ApiModelProperty(value = "单据编号")
private String num;
/**
* 发件单位
*/
@ApiModelProperty(value = "发件单位id")
private Integer sendUnitId;
/**
* 收件单位
*/
@ApiModelProperty(value = "收件单位id")
private Integer receiveUnitId;
/**
* 发件方经办人id
*/
@ApiModelProperty(value = "发件方id(A岗位)")
private Integer sendUserId;
/**
* 发件方经办人名称
*/
@ApiModelProperty(value = "发件方名称(A岗位)")
private String senderUserName;
/**
* 收件单位经办人id
*/
@ApiModelProperty(value = "发件方id(A岗位)")
private Integer receiveUserId;
/**
* 收件单位经办人名称
*/
@ApiModelProperty(value = "发件方名称(A岗位)")
private String receiveUserName;
@Column(name = "bill_vos",columnDefinition = "TEXT")
private String billVos;
@ApiModelProperty(value = "相关任务ID")
private Integer relatedTaskId;
@ApiModelProperty(value = "相关任务业务类型")
private Integer businessType;
@Column(name = "sender_des",columnDefinition = "TEXT")
private String senderDes;
@Column(name = "receive_des",columnDefinition = "TEXT")
private String receiveDes;
@Column(name = "file_ret" ,columnDefinition = "TEXT")
private String fileRets;
/**
* 设备信息
*/
@Transient
private List<BillVo> billVoList = new ArrayList<>();
@Transient
private List<FileRet> fileSet;
@Transient
private String senderUnitName;
@Transient
private String relatedUnitName;
@Transient
private Boolean isEnd;
@Transient
private String iSNotCommitDes;
}
package com.tykj.dev.device.sendback.entity.vo;
import com.tykj.dev.device.library.subject.vo.ScriptSaveVo;
import com.tykj.dev.device.repair.subject.vo.BillVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName CityConfirmRequest.java
* @Description TODO
* @createTime 2021年09月02日 15:39:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("市级确认接口请求对象")
public class CityConfirmRequest {
@ApiModelProperty(value = "任务id")
private Integer taskId;
private String des;
/**
* 设备信息 do
*/
private List<BillVo> billVoList = new ArrayList<>();
}
package com.tykj.dev.device.sendback.entity.vo;
import com.tykj.dev.device.library.subject.vo.ScriptSaveVo;
import com.tykj.dev.device.repair.subject.vo.BillVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName ProvinceConfirmRequest.java
* @Description TODO
* @createTime 2021年09月02日 16:37:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("省级确认接口请求对象")
public class ProvinceConfirmRequest {
@ApiModelProperty(value = "任务id")
private Integer taskId;
@ApiModelProperty(value = "任务id")
private String des;
@ApiModelProperty(value = "任务id")
private List<BillVo> billVoList;
}
package com.tykj.dev.device.sendback.entity.vo;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zjm
* @version 1.0.0
* @ClassName RepelLongoing.java
* @Description TODO
* @createTime 2021年08月25日 10:10:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("清退任务撤回vo")
public class RepelLongoing {
private boolean flag;
private String des;
}
......@@ -3,6 +3,13 @@ package com.tykj.dev.device.sendback.repository;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface DeviceRepelDao extends JpaRepository<DeviceRepel, Integer>, JpaSpecificationExecutor<DeviceRepel> {
@Modifying
@Query(value = "update DeviceRepel d set d.deleteTag = ?1 where d.id in ?2")
int updateDeviceRepelIsDelByIds(Integer deleteTag, List<Integer> ids);
}
......@@ -3,6 +3,7 @@ package com.tykj.dev.device.sendback.repository;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.Date;
......@@ -15,4 +16,8 @@ public interface DeviceRepelDetailDao extends JpaRepository<DeviceRepelDetail, I
List<DeviceRepelDetail> findAllBySendUnitIdOrReceiveUnitId(Integer unitId);
List<DeviceRepelDetail> findAllByReceiveUnitIdIn(List<Integer> ids);
@Modifying
@Query(value = "update DeviceRepelDetail d set d.deleteTag = ?1 where d.id in ?2")
int updateDeviceRepelDetailIsDelByIds(Integer deleteTag, List<Integer> ids);
}
package com.tykj.dev.device.sendback.repository;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName RepelEscrowDao.java
* @Description TODO
* @createTime 2021年09月14日 15:30:00
*/
public interface RepelEscrowDao extends JpaRepository<RepelEscrow, Integer>, JpaSpecificationExecutor<RepelEscrow> {
List<RepelEscrow> findAllByRepelId(Integer repelId);
}
package com.tykj.dev.device.sendback.repository;
import com.tykj.dev.device.sendback.entity.domain.SuspensionBill;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface SuspensionBillDao extends JpaRepository<SuspensionBill, Integer>, JpaSpecificationExecutor<SuspensionBill> {
}
......@@ -47,4 +47,6 @@ public interface DeviceRepelDetailService {
Map<String, List<FileRet>> findByIdToFileMapList(Integer id);
int updateDeviceRepelDetailByIds(Integer deleteTag, List<Integer> ids);
}
......@@ -19,4 +19,9 @@ public interface DeviceRepelService {
* 查询所有未完成的清退信息列表
*/
List<DeviceRepel> findNotEndDeviceRepel();
/**
* 根据业务id更新删除字段
*/
int updateDeviceRepelIsDelByIds(Integer deleteTag,List<Integer> ids);
}
......@@ -2,10 +2,8 @@ package com.tykj.dev.device.sendback.service;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepel;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
import com.tykj.dev.device.sendback.entity.vo.OrderOutData;
import com.tykj.dev.device.sendback.entity.vo.RepelAuditResult;
import com.tykj.dev.device.sendback.entity.vo.ResolveConfirm;
import com.tykj.dev.device.sendback.entity.vo.StorageDeviceRepel;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import com.tykj.dev.device.sendback.entity.vo.*;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.user.subject.entity.SecurityUser;
import org.apache.poi.ss.formula.functions.T;
......@@ -17,7 +15,7 @@ public interface RepelBusinessService {
/**
* 发起清退任务
*/
void initiateRepel(DeviceRepel deviceRepel, Integer userId);
void initiateRepel(DeviceRepel deviceRepel, Integer userId,SecurityUser securityUser);
/**
* 市分解任务
......@@ -151,5 +149,11 @@ public interface RepelBusinessService {
* 清退总任务 撤销
* 判断下面任务是否存在配发中的 有则不能撤回需要等配发结束后在撤回。
*/
List<TaskBto> repelWithdraw(Integer taskId);
RepelLongoing repelWithdrawCherck(Integer taskId);
void repelWithdraw(Integer taskId);
RepelEscrow saveRepelEscrow(RepelEscrow repelEscrow);
}
package com.tykj.dev.device.sendback.service;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName RepelEscrowService.java
* @Description TODO
* @createTime 2021年09月14日 15:29:00
*/
public interface RepelEscrowService {
/**
* 保存直属单位清退信息
*/
void saveRepelEscrowService(RepelEscrow repelEscrow);
/**
* 批量保存直属单位清退信息
*/
void saveAllRepelEscrowService(List<RepelEscrow> repelEscrows);
/**
* 保存直属单位清退信息
* @param repelEscrowID 直属单位清退id
* @return 直属单位详情
*/
RepelEscrow findByRepelEscrow(Integer repelEscrowID);
/**
* 根据清退业务ID查询所有相关代管单位
* @param billId 清退ID
* @return 代管单位单位集合
*/
List<RepelEscrow> findAllBillId(Integer billId);
}
......@@ -4,6 +4,7 @@ import com.tykj.dev.device.file.entity.FileRet;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepel;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import com.tykj.dev.device.sendback.entity.vo.*;
import org.springframework.data.domain.Page;
......@@ -81,7 +82,7 @@ public interface RepelQueryService {
/**
* 查询直属单位列表
*/
List<DirectlyUnderNavigation> directlyUnderUnitLeftNavigation(Integer taskId,Integer type);
List<RepelEscrow> directlyUnderUnitLeftNavigation(Integer taskId, Integer type);
/**
*省直属任务装备已选择装备列表接口
......
package com.tykj.dev.device.sendback.service;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.sendback.entity.domain.SuspensionBill;
import com.tykj.dev.device.sendback.entity.vo.CityConfirmRequest;
import com.tykj.dev.device.sendback.entity.vo.ProvinceConfirmRequest;
import com.tykj.dev.device.user.subject.entity.SecurityUser;
import com.tykj.dev.device.user.subject.entity.Units;
import com.tykj.dev.device.user.subject.entity.User;
import java.util.List;
/**
* @author zjm
* @version 1.0.0
* @ClassName SuspensionBillBusinessService.java
* @Description 中止业逻辑层
* @createTime 2021年09月02日 13:43:00
*/
public interface SuspensionBillBusinessService {
/**
*自动生成中止任务
*/
void initiateSuspensionBill(List<Integer> libraryList, Units units, User user);
/**
*手动触发中止任务
*/
void initiateSuspensionBill1(List<Integer> libraryList,SecurityUser securityUser);
/**
* 直属单位中止任务生成
*/
void initiateSuspensionBill2(List<Integer> libraryList,SecurityUser securityUser);
/**
* 市级确认任务 - 提交省级确认
*/
void cityConfirm(CityConfirmRequest cityConfirmRequest,SecurityUser securityUser);
/**
* 省级确认任务 - 任务结束
*/
void provinceConfirm(ProvinceConfirmRequest provinceConfirmRequest,SecurityUser securityUser);
/**
* 根据任务id查询中止业务详情
*/
SuspensionBill findByTaskId(Integer taskId);
}
package com.tykj.dev.device.sendback.service;
import com.tykj.dev.device.sendback.entity.domain.SuspensionBill;
/**
* @author zjm
* @version 1.0.0
* @ClassName SuspensionBillService.java
* @Description
* @createTime 2021年09月02日 10:35:00
*/
public interface SuspensionBillService {
/**
* 中止业务实体添加
* @param suspensionBill 中止业务实体
* @return 保存后的中止业务实体
*/
SuspensionBill saveSuspensionBill(SuspensionBill suspensionBill);
/**
* 查询中止业务实体
*/
SuspensionBill findByIdToSuspensionBill(Integer id);
}
......@@ -42,7 +42,6 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
@Autowired
DeviceLibraryDao deviceLibraryDao;
@Override
public DeviceRepelDetail saveDeviceRepelDetail(DeviceRepelDetail deviceRepelDetail) {
log.info("[清退] 详情添加成功");
......@@ -135,6 +134,12 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
}
}
@Override
public int updateDeviceRepelDetailByIds(Integer deleteTag, List<Integer> ids) {
return deviceRepelDetailDao.updateDeviceRepelDetailIsDelByIds(deleteTag,ids);
}
private Specification<DeviceRepelDetail> getFindRetiredSpecification(RepelDetailSelectVo repelDetailSelectVo) {
PredicateBuilder<DeviceRepelDetail> predicateBuilder = Specifications.and();
......
......@@ -57,4 +57,9 @@ public class DeviceRepelServiceImpl implements DeviceRepelService {
public List<DeviceRepel> findNotEndDeviceRepel() {
return deviceRepelDao.findAll().stream().filter(deviceRepel -> deviceRepel.getStatus()==0).collect(Collectors.toList());
}
@Override
public int updateDeviceRepelIsDelByIds(Integer deleteTag, List<Integer> ids) {
return deviceRepelDao.updateDeviceRepelIsDelByIds(deleteTag,ids);
}
}
package com.tykj.dev.device.sendback.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.tykj.dev.device.file.service.FilesUtil;
import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import com.tykj.dev.device.sendback.repository.RepelEscrowDao;
import com.tykj.dev.device.sendback.service.RepelEscrowService;
import com.tykj.dev.device.user.cache.UnitsCache;
import com.tykj.dev.device.user.subject.entity.Units;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.JacksonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
/**
* @author zjm
* @version 1.0.0
* @ClassName RepelEscrowServiceImpl.java
* @Description TODO
* @createTime 2021年09月14日 15:42:00
*/
@Service
public class RepelEscrowServiceImpl implements RepelEscrowService {
@Autowired
RepelEscrowDao repelEscrowDao;
@Autowired
DeviceLibraryService deviceLibraryService;
@Autowired
UnitsCache unitsCache;
@Override
public void saveRepelEscrowService(RepelEscrow repelEscrow) {
repelEscrowDao.save(repelEscrow);
}
@Override
public void saveAllRepelEscrowService(List<RepelEscrow> repelEscrows) {
repelEscrowDao.saveAll(repelEscrows);
}
@Override
public RepelEscrow findByRepelEscrow(Integer repelEscrowID) {
Optional<RepelEscrow> repelEscrowOptional = repelEscrowDao.findById(repelEscrowID);
if (repelEscrowOptional.isPresent()){
RepelEscrow repelEscrow=repelEscrowOptional.get();
if (repelEscrow.getDeviceIds()!=null){
repelEscrow.setDeviceLibraries(JacksonUtil.readValue(repelEscrow.getDeviceIds(), new TypeReference<List<DeviceLibrary>>() {
}));
}
if (repelEscrow.getFileRets()!=null){
repelEscrow.setFileRetList(FilesUtil.stringFileToList(repelEscrow.getFileRets()));
}
return repelEscrowOptional.get();
}else {
throw new ApiException("[直属清退] 根据数据id查询数据详情失败 id:"+repelEscrowID);
}
}
@Override
public List<RepelEscrow> findAllBillId(Integer billId) {
List<RepelEscrow> repelEscrows=repelEscrowDao.findAllByRepelId(billId);
repelEscrows.forEach(
repelEscrow -> {
Units units = unitsCache.findById(repelEscrow.getUnitId());
repelEscrow.setUnitName(units.getName());
if (repelEscrow.getDeviceIds()!=null){
repelEscrow.setDeviceLibraries(JacksonUtil.readValue(repelEscrow.getDeviceIds(), new TypeReference<List<DeviceLibrary>>() {
}));
}
if (repelEscrow.getFileRets()!=null){
repelEscrow.setFileRetList(FilesUtil.stringFileToList(repelEscrow.getFileRets()));
}
});
return repelEscrows;
}
}
......@@ -10,6 +10,7 @@ import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.vo.ScriptSaveVo;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepel;
import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
import com.tykj.dev.device.sendback.entity.domain.RepelEscrow;
import com.tykj.dev.device.sendback.entity.vo.*;
import com.tykj.dev.device.sendback.service.*;
import com.tykj.dev.device.task.service.TaskService;
......@@ -58,6 +59,8 @@ public class RepelQueryServiceImpl implements RepelQueryService {
UnitsService unitsService;
@Autowired
RepelDeviceUnitService deviceUnitService;
@Autowired
RepelEscrowService repelEscrowService;
@Override
public RepelStatisticsVo findRepelTaskStatisticals(Integer taskId, Integer billId) {
......@@ -69,6 +72,15 @@ public class RepelQueryServiceImpl implements RepelQueryService {
public DeviceRepelDetail findDeviceRepelDetail(Integer taskId) {
TaskBto taskBto= taskService.get(taskId);
DeviceRepelDetail deviceRepelDetail= repelDetailService.findDeviceRepelDetail(taskBto.getBillId());
if (taskBto.getCustomInfo().equals("DirectlyUnder")){
List<DeviceLibrary> libraryList=new ArrayList<>();
repelEscrowService.findAllBillId(deviceRepelDetail.getRepelId()).forEach(
repelEscrow -> {
libraryList.addAll(repelEscrow.getDeviceLibraries());
}
);
deviceRepelDetail.setDeviceLibraryEntities(libraryList);
}
if (deviceRepelDetail.getScriptJson()!=null) {
deviceRepelDetail.setScripts(JacksonUtil.readValue(deviceRepelDetail.getScriptJson(), new TypeReference<List<ScriptSaveVo>>() {
}));
......@@ -373,12 +385,12 @@ public class RepelQueryServiceImpl implements RepelQueryService {
map.put(deviceLibrary.getOwnUnit(), librarieList);
}
} else {
allDirectUnderDevVo.setUnitName(deviceLibrary.getName());
allDirectUnderDevVo.setUnitName(deviceLibrary.getOwnUnit());
allDirectUnderDevVo.setNotAbnormal(true);
break;
}
} else {
allDirectUnderDevVo.setUnitName(deviceLibrary.getName());
allDirectUnderDevVo.setUnitName(deviceLibrary.getOwnUnit());
allDirectUnderDevVo.setNotAbnormal(true);
break;
}
......@@ -389,26 +401,17 @@ public class RepelQueryServiceImpl implements RepelQueryService {
@Override
public List<DirectlyUnderNavigation> directlyUnderUnitLeftNavigation(Integer taskId,Integer type) {
List<DirectlyUnderNavigation> list=new ArrayList<>();
public List<RepelEscrow> directlyUnderUnitLeftNavigation(Integer taskId,Integer type) {
DeviceRepelDetail deviceRepelDetail;
if (type==1){
TaskBto taskBto= taskService.get(taskId);
deviceRepelDetail=repelDetailService.findDeviceRepelDetailNoDev(taskBto.getBillId());
TaskBto taskBto = taskService.get(taskId);
deviceRepelDetail =repelDetailService.findDeviceRepelDetailNoDev(taskBto.getBillId());
}else {
deviceRepelDetail=repelDetailService.findDeviceRepelDetailNoDev(taskId);
}
DeviceRepel deviceRepel=deviceRepelService.findDeviceRepel(deviceRepelDetail.getRepelId());
unitsService.findAllByIdIn(StringUtils.stringToList(deviceRepel.getTaskScope())).forEach(
units -> {
if (units.getType()==2){
list.add(new DirectlyUnderNavigation(units.getUnitId(),units.getName(), UUID.randomUUID().toString()));
}
}
);
return list;
deviceRepelDetail =repelDetailService.findDeviceRepelDetailNoDev(taskId);
}
return repelEscrowService.findAllBillId(deviceRepelDetail.getRepelId());
}
......
package com.tykj.dev.device.sendback.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.tykj.dev.device.repair.subject.vo.BillVo;
import com.tykj.dev.device.sendback.entity.domain.SuspensionBill;
import com.tykj.dev.device.sendback.repository.SuspensionBillDao;
import com.tykj.dev.device.sendback.service.SuspensionBillService;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.JacksonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
/**
* @author zjm
* @version 1.0.0
* @ClassName SuspensionBillServiceImpl.java
* @Description TODO
* @createTime 2021年09月02日 13:35:00
*/
@Service
public class SuspensionBillServiceImpl implements SuspensionBillService {
@Autowired
SuspensionBillDao suspensionBillDao;
@Override
public SuspensionBill saveSuspensionBill(SuspensionBill suspensionBill) {
return suspensionBillDao.save(suspensionBill);
}
@Override
public SuspensionBill findByIdToSuspensionBill(Integer id) {
Optional<SuspensionBill> suspensionBillOptional = suspensionBillDao.findById(id);
if (suspensionBillOptional.isPresent()){
SuspensionBill suspensionBill=suspensionBillOptional.get();
suspensionBill.setBillVoList(JacksonUtil.readValue(suspensionBill.getBillVos(), new TypeReference<List<BillVo>>() {
}));
return suspensionBill;
}else {
throw new ApiException("[中止业务] 根据业务id查询业务详细没找到 id:"+id);
}
}
}
......@@ -1202,7 +1202,7 @@ public class TaskServiceImpl implements TaskService {
@Override
public List<Task> findByBillIdAndBusinessType(Integer billId, Integer businessType) {
List<Task> tasks = taskDao.findAllByBillIdAndBusinessType(billId, businessType);
return tasks.stream().filter(task -> task.getBillStatus().equals(StatusEnum.REVOKEALLOTTASK.id))
return tasks.stream().filter(task -> !task.getBillStatus().equals(StatusEnum.REVOKEALLOTTASK.id))
.collect(Collectors.toList());
}
......
......@@ -552,6 +552,9 @@ public class TrainJobController {
trainTheme.setTrainStatus(StatusEnum.TRAIN1006.id);
trainTheme.setGood(gradeEntryVo.getGood());
trainTheme.setPass(gradeEntryVo.getPass());
if (gradeEntryVo.getTrainPapersFileList()!=null && gradeEntryVo.getTrainPapersFileList().size()!=0){
trainTheme.setTrainPapersFiles(FilesUtil.stringFileToList(gradeEntryVo.getTrainPapersFileList()));
}
TaskLogBto taskLogBto = new TaskLogBto(taskBto.getId(), "申请发证", null);
taskLogService.addLog(taskLogBto);
return ResponseEntity.ok(trainThemeService.save(trainTheme));
......
package com.tykj.dev.device.user.base.ret;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zjm
* @version 1.0.0
* @ClassName SubordinateUnitsSwitch.java
* @Description TODO
* @createTime 2021年08月19日 14:30:00
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel(value = "从属人员单位列表对象", description = "从属人员单位列表对象")
public class SubordinateUnitsSwitch {
/**
* 单位名称
*/
private String unitName;
/**
* 用户账号名
*/
private String username;
}
......@@ -237,10 +237,10 @@ public class UserController {
return ResponseEntity.ok("ok");
}
@GetMapping("/switch/{unitId}")
@ApiOperation(value = "切换用户")
public ResponseEntity switchUser( @PathVariable Integer unitId){
userService.deleteById(unitId);
return ResponseEntity.ok("ok");
@GetMapping("/select/switch")
@ApiOperation(value = "查询切换用户列表")
public ResponseEntity switchUser( @ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
return ResponseEntity.ok(userService.findByIdSubordinateUnitsSwitchList(securityUser));
}
}
......@@ -9,16 +9,19 @@ package com.tykj.dev.device.user.subject.controller;
*/
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.user.subject.entity.SecurityUser;
import com.tykj.dev.device.user.subject.service.UserLogService;
import com.tykj.dev.misc.exception.ApiException;
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.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
/**
* 区域视图层
......@@ -43,4 +46,11 @@ public class UserLogController {
public ResponseEntity selectPage1(){
throw new ApiException(ResponseEntity.status(303).body("错误"));
}
@GetMapping("/test")
@ApiOperation(value = "查询用户履历", notes = "查询用户履历")
public ResponseEntity selectPage2(@ApiIgnore @AuthenticationPrincipal SecurityUser securityUser){
return ResponseEntity.ok(securityUser.getCurrentUserInfo());
}
}
......@@ -35,4 +35,6 @@ public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationE
User findByNameAndUnitsId(String name,Integer unitsId);
List<User> findBySubordinateId(Integer userID);
}
......@@ -129,6 +129,12 @@ public class User {
@ApiModelProperty(value = "用户职务", name = "position")
private Integer position;
/**
* 从属关系
*
*/
private Integer subordinateId;
/**
* 培训状态 0.已培训 1.已过期 2.未培训 3.快过期 5.不是专管员
*/
......@@ -157,7 +163,8 @@ public class User {
"1234",
"123@qq.com",
"123", 0, "360218199801052634", 0, 0, null, 0,0
, null
, null,
null
);
}
......
......@@ -34,4 +34,6 @@ public interface AreaService extends PublicService<Area> {
List<Integer> findIdQuerySubordinateIds(Integer areaId);
Area findByIdTosuperiorArea(Integer areaId);
}
......@@ -175,6 +175,12 @@ public interface UserService extends PublicService<User> {
void updateUserTrainStatus(List<Integer> userIds,Integer status);
/**
* 根据用户id查询可以切换的单位权限列表
* @param securityUser 当前登入用户对象
* @return 切换单位信息列表
*/
List<SubordinateUnitsSwitch> findByIdSubordinateUnitsSwitchList(SecurityUser securityUser);
List<User> findAllByUnitId(Integer unitId);
/**
......
......@@ -129,6 +129,13 @@ public class AreaServiceImpl implements AreaService {
return areaId(ids,areaId);
}
@Override
public Area findByIdTosuperiorArea(Integer areaId) {
Area area= findByid(areaId);
area= findByid(area.getFatherId());
return area;
}
private List<Integer> areaId(List<Integer> ids,Integer areaId){
List<Area> areas= areaDao.findAllByFatherId(areaId);
ids.add(areaId);
......
......@@ -11,9 +11,12 @@ import com.tykj.dev.device.user.subject.entity.User;
import com.tykj.dev.device.user.subject.service.AreaService;
import com.tykj.dev.device.user.subject.service.UnitsService;
import com.tykj.dev.device.user.subject.service.UserPublicService;
import com.tykj.dev.misc.exception.ApiException;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
......@@ -74,20 +77,28 @@ public class UserPublicServiceImpl implements UserPublicService {
@Override
public List<String> findAllUnitNameByAreaId(Integer areaId) {
List<Units> units = unitsDao.findByAreaId(areaId);
if (units!=null && units.size()!=0) {
List<Integer> areaIds = areaDao.findAllByFatherId(units.get(0).getAreaId()).stream().map(Area::getId).collect(Collectors.toList());
List<String> unitsNameList = unitsDao.findAll().stream().filter(units1 -> areaIds.contains(units1.getAreaId())).map(Units::getName).collect(Collectors.toList());
unitsNameList.addAll(units.stream().map(Units::getName).collect(Collectors.toList()));
return unitsNameList;
}else {
return new ArrayList<>();
}
}
@Override
public List<String> findAllUnitNameByType2() {
return unitsDao.findAll().stream().filter(units1 -> units1.getType()==2).map(Units::getName).collect(Collectors.toList());
return unitsDao.findAll().stream().filter(units1 -> units1.getType()==2 && units1.getEscrow()==1).map(Units::getName).collect(Collectors.toList());
}
@Override
public Integer findUnitIdByName(String unitName) {
return unitsDao.findByName(unitName).getUnitId();
Units units= unitsDao.findByName(unitName);
if (units==null){
throw new ApiException("根据单位名称查询单位对象未找到:"+unitName);
}
return units.getUnitId();
}
/**
......
......@@ -7,6 +7,7 @@ import com.tykj.dev.device.user.base.req.DropDownUserLocation;
import com.tykj.dev.device.user.base.req.NotIsUser;
import com.tykj.dev.device.user.base.req.UnitNameVo;
import com.tykj.dev.device.user.base.ret.*;
import com.tykj.dev.device.user.cache.UnitsCache;
import com.tykj.dev.device.user.cache.UserCache;
import com.tykj.dev.device.user.read.service.MessageService;
import com.tykj.dev.device.user.read.subject.bto.MessageBto;
......@@ -56,6 +57,9 @@ public class UserServiceImpl implements UserService {
@Autowired
AreaService areaService;
@Autowired
UnitsCache unitsCache;
@Autowired
UserPublicService userPublicService;
......@@ -581,6 +585,27 @@ public class UserServiceImpl implements UserService {
userDao.upDateUserIdsAndTrainStatus(userIds,status);
}
@Override
public List<SubordinateUnitsSwitch> findByIdSubordinateUnitsSwitchList(SecurityUser securityUser) {
List<SubordinateUnitsSwitch> subordinateUnitsSwitches=new ArrayList<>();
if (securityUser.getCurrentUserInfo().getSubordinateId()==null){
userDao.findBySubordinateId(securityUser.getCurrentUserInfo().getUserId()).forEach(
user1 -> subordinateUnitsSwitches.add(new SubordinateUnitsSwitch(unitsCache.findById(user1.getUnitsId()).getName(),user1.getUsername()))
);
subordinateUnitsSwitches.add(new SubordinateUnitsSwitch(securityUser.getCurrentUserInfo().getUnits().getName(),securityUser.getUsername()));
return subordinateUnitsSwitches;
}else {
userDao.findBySubordinateId(securityUser.getCurrentUserInfo().getSubordinateId()).forEach(
user1 -> subordinateUnitsSwitches.add(new SubordinateUnitsSwitch(unitsCache.findById(user1.getUnitsId()).getName(),user1.getUsername()))
);
User user1= userDao.findById(securityUser.getCurrentUserInfo().getSubordinateId()).get();
subordinateUnitsSwitches.add(new SubordinateUnitsSwitch(unitsCache.findById(user1.getUnitsId()).getName(),user1.getUsername()));
return subordinateUnitsSwitches;
}
}
@Override
public List<User> findAllByUnitId(Integer unitId) {
return userDao.findAllByUnitsId(unitId);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论