Commit b1107d40 authored by 付培阳's avatar 付培阳

联动单位合同接口

parent 1115be10
package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.module.common.api.entity.SourceFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* 维保合同
......@@ -15,7 +18,7 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="ContractDto", description="维保合同")
@ApiModel(value = "ContractDto", description = "维保合同")
public class ContractDto extends BaseDto {
private static final long serialVersionUID = 1L;
......@@ -71,4 +74,7 @@ public class ContractDto extends BaseDto {
@ApiModelProperty(value = "合同附件")
private String contractAttachment;
@ApiModelProperty(value = "附件")
private List<SourceFile> attachment;
}
package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.module.common.api.entity.SourceFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -7,6 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* 联动单位
......@@ -94,4 +96,7 @@ public class LinkageUnitDto extends BaseDto {
@ApiModelProperty(value = "单位_简要情况")
private String unitSituation;
@ApiModelProperty(value = "联动单位图片")
private List<SourceFile> image;
}
......@@ -15,8 +15,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.ContractDto;
......@@ -46,8 +44,8 @@ public class ContractController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增维保合同", notes = "新增维保合同")
public ResponseModel<ContractDto> save(@RequestBody ContractDto model) throws Exception {
model = contractServiceImpl.saveContractDto(RequestContext.getAgencyCode(), model);
public ResponseModel<ContractDto> save(@RequestBody ContractDto model) {
model = contractServiceImpl.saveModel(model);
return ResponseHelper.buildResponse(model);
}
......@@ -61,9 +59,9 @@ public class ContractController extends BaseController {
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "更新合同信息及附件", notes = "更新合同信息及附件")
public ResponseModel<ContractDto> updateBySequenceNbrContract(@RequestBody ContractDto model,
@PathVariable(value = "sequenceNbr") Long sequenceNbr) throws Exception {
@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(contractServiceImpl.updateAircraft(RequestContext.getAgencyCode(), model));
return ResponseHelper.buildResponse(contractServiceImpl.updateById(model));
}
/**
......@@ -81,6 +79,19 @@ public class ContractController extends BaseController {
}
/**
* 批量删除合同信息
*
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/delete_batch")
@ApiOperation(httpMethod = "DELETE", value = "批量删除合同信息", notes = "批量删除合同信息")
public ResponseModel<Boolean> batchDeleteBySequenceNbrList(@RequestParam(value = "sequenceNbrList") List<Long> sequenceNbrList) {
return ResponseHelper.buildResponse(contractServiceImpl.batchDelete(sequenceNbrList));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
......@@ -89,9 +100,8 @@ public class ContractController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "查询单个维保合同", notes = "查询单个维保合同")
public ResponseModel<ContractDto> selectOne(String agencyCode, @PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(contractServiceImpl.queryByAircraftSeq(RequestContext.getAgencyCode(),
sequenceNbr));
public ResponseModel<ContractDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(contractServiceImpl.queryOne(sequenceNbr));
}
/**
......
......@@ -17,8 +17,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
......@@ -82,6 +80,19 @@ public class LinkageUnitController extends BaseController {
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbrList 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/batch_delete")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除联动单位", notes = "根据sequenceNbr删除联动单位")
public ResponseModel<Boolean> batchDeleteBySequenceNbrList(@RequestParam(value = "sequenceNbrList") List<Long> sequenceNbrList) {
return ResponseHelper.buildResponse(linkageUnitServiceImpl.batchDelete(sequenceNbrList));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.module.common.api.dto.ContractDto;
import com.yeejoin.amos.boot.module.common.api.entity.Contract;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.entity.*;
import com.yeejoin.amos.boot.module.common.api.mapper.ContractMapper;
import com.yeejoin.amos.boot.module.common.api.service.IContractService;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.FileInfoModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.exception.BaseException;
......@@ -23,6 +27,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -33,6 +38,10 @@ import java.util.stream.Collectors;
*/
@Service
public class ContractServiceImpl extends BaseService<ContractDto, Contract, ContractMapper> implements IContractService {
@Autowired
SourceFileServiceImpl sourceFileServiceImpl;
/**
* 分页查询
*/
......@@ -190,5 +199,61 @@ public class ContractServiceImpl extends BaseService<ContractDto, Contract, Cont
}
return seqs;
}
/**
* 保存合同信息
*
* @param contractDto
* @return
*/
@Transactional
public ContractDto saveModel(ContractDto contractDto) {
// 保存合同基本信息
contractDto = this.createWithModel(contractDto);
// 保存附件信息
sourceFileServiceImpl.saveSourceFile(contractDto.getSequenceNbr(), contractDto.getAttachment());
return contractDto;
}
@Transactional
public ContractDto updateById(ContractDto contractDto) {
// 更新合同基本信息
updateWithModel(contractDto);
// 更新附件信息
sourceFileServiceImpl.saveSourceFile(contractDto.getSequenceNbr(), contractDto.getAttachment());
return contractDto;
}
/**
* 批量删除
*
* @param sequenceNbrList
* @return
*/
public Boolean batchDelete(List<Long> sequenceNbrList) {
// 删除基本信息
List<Contract> contractList = list(new LambdaQueryWrapper<Contract>().in(Contract::getSequenceNbr,
sequenceNbrList));
contractList.forEach(item -> item.setIsDelete(true));
boolean update = updateBatchById(contractList);
// 删除附件
sourceFileServiceImpl.getBaseMapper().delete(new LambdaQueryWrapper<SourceFile>().in(SourceFile::getSourceId,
sequenceNbrList));
return update;
}
/**
* 查询单个合同
*
* @param sequenceNbr
* @return
*/
public ContractDto queryOne(Long sequenceNbr) {
ContractDto contractDto = queryBySeq(sequenceNbr);
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(sequenceNbr);
contractDto.setAttachment(sourceFiles);
return contractDto;
}
}
......@@ -2,17 +2,21 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
import com.yeejoin.amos.boot.module.common.api.entity.SourceFile;
import com.yeejoin.amos.boot.module.common.api.mapper.DynamicFormInstanceMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.LinkageUnitMapper;
import com.yeejoin.amos.boot.module.common.api.service.ILinkageUnitService;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
......@@ -21,6 +25,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
......@@ -41,6 +46,8 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
LinkageUnitMapper linkageUnitMapper;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
SourceFileServiceImpl sourceFileServiceImpl;
public String getGroupCode() {
return "linkageUnit";
......@@ -69,6 +76,7 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
* @param linkageUnitDto 对象
* @return List<LinkageUnitDto>
*/
@Transactional
public LinkageUnitDto saveModel(LinkageUnitDto linkageUnitDto) {
//1.保存行数据
String groupCode = this.getGroupCode();
......@@ -78,35 +86,46 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
//2.保存基本信息
linkageUnitDto.setUnitCode(getUnitCodeStr());
LinkageUnitDto model = createWithModel(linkageUnitDto);
//3.保存照片信息
sourceFileServiceImpl.saveSourceFile(model.getSequenceNbr(), model.getImage());
//3.返回保存后的数据
return model;
}
@Override
public LinkageUnitDto queryOne(Long sequenceNbr) {
boolean isDelete = false;
String groupCode = getGroupCode();
List<DynamicFormColumn> columns =
dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
LinkageUnitDto linkageUnitDto = linkageUnitMapper.selectOne(isDelete, fieldCodes, groupCode, sequenceNbr);
LinkageUnitDto linkageUnitDto = linkageUnitMapper.selectOne(false, fieldCodes, groupCode, sequenceNbr);
List<SourceFile> sourceFiles = sourceFileServiceImpl.findBySourceId(linkageUnitDto.getSequenceNbr());
linkageUnitDto.setImage(sourceFiles);
return linkageUnitDto;
}
@Transactional
public Boolean deleteById(Long sequenceNbr) {
// 删除基本信息
LinkageUnit linkageUnit = getById(sequenceNbr);
linkageUnit.setIsDelete(true);
updateById(linkageUnit);
// 删除行
Long instanceId = linkageUnit.getInstanceId();
List<DynamicFormInstance> dynamicFormInstanceList =
dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
dynamicFormInstanceList.forEach(item -> item.setIsDelete(true));
boolean update = dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 删除照片
sourceFileServiceImpl.saveSourceFile(sequenceNbr, new ArrayList<>());
return update;
}
@Transactional
public LinkageUnitDto updateById(LinkageUnitDto linkageUnitDto) {
// 修改基本信息
updateWithModel(linkageUnitDto);
// 修改行信息
Long instanceId = linkageUnitDto.getInstanceId();
List<DynamicFormInstance> dynamicFormInstanceList =
dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
......@@ -114,6 +133,8 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
dynamicFormInstanceList.forEach(item -> item.setFieldValue(objectMap.get(item.getFieldCode()) != null ?
objectMap.get(item.getFieldCode()).toString() : item.getFieldValue()));
dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 修改照片信息
sourceFileServiceImpl.saveSourceFile(linkageUnitDto.getSequenceNbr(), linkageUnitDto.getImage());
return linkageUnitDto;
}
......@@ -144,4 +165,31 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
public Integer listLinkageUnitZhDtoCount(RequestData par) {
return linkageUnitMapper.listLinkageUnitZhDtoCount(par);
}
/**
* 批量删除
*
* @param sequenceNbrList
* @return
*/
public Boolean batchDelete(List<Long> sequenceNbrList) {
// 删除基本信息
List<LinkageUnit> linkageUnitList = list(new LambdaQueryWrapper<LinkageUnit>().in(LinkageUnit::getSequenceNbr,
sequenceNbrList));
List<Long> instanceIdList = Lists.newArrayList();
linkageUnitList.forEach(item -> {
instanceIdList.add(item.getInstanceId());
item.setIsDelete(true);
});
updateBatchById(linkageUnitList);
// 删除行信息
List<DynamicFormInstance> dynamicFormInstanceList =
dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().in(DynamicFormInstance::getInstanceId, instanceIdList));
dynamicFormInstanceList.forEach(item -> item.setIsDelete(true));
boolean update = dynamicFormInstanceService.updateBatchById(dynamicFormInstanceList);
// 删除照片
sourceFileServiceImpl.getBaseMapper().delete(new LambdaQueryWrapper<SourceFile>().in(SourceFile::getSourceId,
sequenceNbrList));
return update;
}
}
\ No newline at end of file
......@@ -52,7 +52,8 @@ public class SourceFileServiceImpl extends BaseService<SourceFileDto, SourceFile
* @Date 2020/12/18 14:12
*/
public List<SourceFile> findBySourceId(Long sourceId) {
List<SourceFile> sourceFiles = this.list(new LambdaQueryWrapper<SourceFile>().eq(SourceFile::getSourceId, sourceId));
List<SourceFile> sourceFiles = this.list(new LambdaQueryWrapper<SourceFile>().eq(SourceFile::getSourceId,
sourceId));
Optional.ofNullable(sourceFiles).orElseThrow(() -> new BadRequest("所属文件为空"));
return sourceFiles;
}
......@@ -65,10 +66,10 @@ public class SourceFileServiceImpl extends BaseService<SourceFileDto, SourceFile
*/
@Transactional(rollbackFor = Exception.class)
public List<SourceFile> saveSourceFile(Long sourceId, List<SourceFile> sourceFiles) {
this.baseMapper.delete(new LambdaQueryWrapper<SourceFile>().eq(SourceFile::getSourceId, sourceId));
if (CollectionUtils.isEmpty(sourceFiles)) {
return new ArrayList<>();
}
this.baseMapper.delete(new LambdaQueryWrapper<SourceFile>().eq(SourceFile::getSourceId, sourceId));
sourceFiles.forEach(s -> {
s.setSourceId(sourceId);
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment