Commit ec2c5f73 authored by wangyangyang's avatar wangyangyang
parents ceecfbd3 f3117657
......@@ -23,7 +23,7 @@ public class Constants {
/**
* app 内部名称
*/
public static final String APPLICATION_INNER_NAME="dcs-plan";
public static final String APPLICATION_INNER_NAME="inet-plan-contract";
/**
* minio桶名称
......
......@@ -69,7 +69,7 @@ public final class SignConstants {
/**
* 定义流程判断节点常量
*/
public final static List WfResultList = Arrays.asList("通过", "提交签审", "提交审阅", "提交", "提交提资审阅", "不需要总体室会签", "外协采购单位(过工程部)", "设计协同单位及其他");
public final static List WfResultList = Arrays.asList("通过", "同意", "提交签审", "提交审阅", "提交", "提交提资审阅", "不需要总体室会签", "外协采购单位(过工程部)", "设计协同单位及其他");
/**
* 定义总体室签审节点名称
*/
......
......@@ -87,14 +87,14 @@ public class ExtIEDPlanExcelVO {
*/
@ExcelProperty(value = {"IED计划","节点审核时间*"},index = 9)
@ColumnWidth(20)
private LocalDateTime auditTime;
private String auditTime;
/**
* 文件提交时间
*/
@ExcelProperty(value = {"IED计划","文件提交时间*"},index = 10)
@ColumnWidth(20)
private LocalDateTime fileSubmitTime;
private String fileSubmitTime;
/**
* 编写者
......
package com.yonde.dcs.plan.common.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author weihongda
* @Date 2024/10/10 21:44
* @Description: 供应商导出VO
*/
@Data
public class ExtSupplierVO implements Serializable {
/**
* 供方编号
*/
@ExcelProperty("供方编号")
private String supplierNumber;
/**
* 供方名称
*/
@ExcelProperty("供方名称")
private String name;
/**
* 统一社会信用引用代码
*/
@ExcelProperty("统一社会信用引用代码")
private String unifiedSocietyCode;
/**
* 供方类别
*/
@ExcelProperty("供方类别")
private String supplierType;
/**
* 供方地址
*/
@ExcelProperty("供方地址")
private String supplierAddress;
/**
* 注册时间
*/
@ExcelProperty("注册时间")
private LocalDateTime registrationTime;
/**
* 注册资金
*/
@ExcelProperty("注册资金")
private String registrationFund;
/**
* 名录有效期
*/
@ExcelProperty("名录有效期")
private LocalDateTime directoryValidity;
/**
* 资质内容
*/
@ExcelProperty("资质内容(承制资格证书)")
private String qscQualificationsContent;
/**
* 证书编号
*/
@ExcelProperty("证书编号")
private String qscCertificateNumber;
/**
* 证书有效期
*/
@ExcelProperty("证书有效期")
private LocalDateTime qscCertificateTime;
/**
* 资质内容
*/
@ExcelProperty("资质内容(质量体系证书)")
private String cqmQualificationsContent;
/**
* 证书编号
*/
@ExcelProperty("证书编号")
private String cqmCertificateNumber;
/**
* 证书有效期
*/
@ExcelProperty("证书有效期")
private LocalDateTime cqmCertificateTime;
/**
* 资质内容
*/
@ExcelProperty("资质内容(科研许可证)")
private String spQualificationsContent;
/**
* 证书编号
*/
@ExcelProperty("证书编号")
private String spCertificateNumber;
/**
* 证书有效期
*/
@ExcelProperty("证书有效期")
private LocalDateTime spCertificateTime;
/**
* 资质内容
*/
@ExcelProperty("资质内容(保密资质证书)")
private String cqcQualificationsContent;
/**
* 证书编号
*/
@ExcelProperty("证书编号")
private String cqcCertificateNumber;
/**
* 证书有效期
*/
@ExcelProperty("证书有效期")
private LocalDateTime cqcCertificateTime;
}
package com.yonde.dcs.plan.core.controller;
import com.yonde.dcs.document.common.entity.vo.DxDocumentVO;
import com.yonde.dcs.plan.common.vo.ExtSupplierManageVO;
import org.springframework.stereotype.Controller;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
......@@ -58,6 +59,13 @@ public class ExtPlanController<V extends ExtPlanVO, S extends ExtPlanService<V>>
return apiResult;
}
@ApiOperation("流程启动")
@PostMapping(value = "/startWorkflow")
public ApiResult insertPlan(@RequestParam("id") Long id) throws IOException {
return ApiResult.ok(extPlanService.startWorkflow(id),"启动计划成功");
}
/**
* 修改计划状态
*
......
......@@ -2,6 +2,7 @@ package com.yonde.dcs.plan.core.controller;
import com.yonde.dcs.plan.common.utils.EasyExcelUtils;
import com.yonde.dcs.plan.common.vo.ExtSupplierManageVO;
import com.yonde.dcs.plan.common.vo.ExtSupplierVO;
import com.yonde.dcs.plan.common.vo.SupplierEarlyWarningVO;
import com.yonde.dcs.plan.core.controller.shadow.ExtSupplierManageControllerShadow;
import com.yonde.dcs.plan.core.service.ExtSupplierManageService;
......@@ -47,7 +48,7 @@ public class ExtSupplierManageController<V extends ExtSupplierManageVO, S extend
@ApiOperation("导出供方预警列表")
@PostMapping(value = "/exportEarlyWarningData")
public void exportEarlyWarningData(@RequestParam(value = "fileName", defaultValue = "预警信息列表") String fileName, HttpServletResponse response,
public void exportEarlyWarningData(@RequestParam(value = "fileName", defaultValue = "供应商预警信息列表") String fileName, HttpServletResponse response,
@RequestParam(value = "warningDay", defaultValue = "30") int warningDay,
@RequestBody SearchQueryCondition searchQueryCondition) {
try {
......@@ -70,6 +71,19 @@ public class ExtSupplierManageController<V extends ExtSupplierManageVO, S extend
public ApiResult contextDisable(@RequestParam("id") Long id) {
return ApiResult.ok(extSupplierManageService.contextDisable(id), "操作完成");
}
@ApiOperation("导出供应商列表")
@PostMapping(value = "/exportSupplierData")
public void exportSupplierData(HttpServletResponse response,
@RequestParam(value = "fileName", defaultValue = "供应商信息列表") String fileName,
@RequestBody SearchQueryCondition searchQueryCondition) {
try {
List<ExtSupplierVO> list = extSupplierManageService.exportSupplierData(searchQueryCondition);
EasyExcelUtils.exportData(fileName, response, list, ExtSupplierVO.class);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
......@@ -75,13 +75,16 @@ public class ExpenditureContractUtils {
//写入签名数据
jsonObject.put("bz_photo", extExpenditureContractService.getSignImage(activities, SignConstants.SIGN_KEY_PREPARED));
jsonObject.put("bz_date", extExpenditureContractService.getEndDate(activities, SignConstants.SIGN_KEY_PREPARED));
jsonObject.put("bz_comments", extExpenditureContractService.getComments(activities, SignConstants.SIGN_KEY_PREPARED));
jsonObject.put("sh_photo", extExpenditureContractService.getSignImage(activities, SignConstants.SIGN_KEY_SH));
jsonObject.put("sh_date", extExpenditureContractService.getEndDate(activities, SignConstants.SIGN_KEY_SH));
//总体室审核
jsonObject.put("zts_photo", extExpenditureContractService.getSignImage(activities, SignConstants.SIGN_KEY_ZTSSH));
jsonObject.put("zts_date", extExpenditureContractService.getEndDate(activities, SignConstants.SIGN_KEY_ZTSSH));
jsonObject.put("zts_comments", extExpenditureContractService.getComments(activities, SignConstants.SIGN_KEY_PREPARED));
jsonObject.put("pz_photo", extExpenditureContractService.getSignImage(activities, SignConstants.SIGN_KEY_APPROVED));
jsonObject.put("pz_date", extExpenditureContractService.getEndDate(activities, SignConstants.SIGN_KEY_APPROVED));
jsonObject.put("pz_comments", extExpenditureContractService.getComments(activities, SignConstants.SIGN_KEY_PREPARED));
}
//模板名称
importWordService.getWordAllTable(jsonObject, path + file + ".docx", outFilePath + "outFile.docx");
......
......@@ -25,6 +25,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
......@@ -145,12 +146,26 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
if (!operationList.contains(extIEDPlanExcelVO.getOperation())) {
errorString.append("解析到数据第"+excelDataRow+"行文件编号为:" + extIEDPlanExcelVO.getFileNumber() + "的操作符无法识别!!");
errorList.add(errorString);
return;
}
//文件代号不能为空
if(StringUtils.isEmpty(extIEDPlanExcelVO.getFileCode())){
errorString.append("解析到数据第"+excelDataRow+"行文件编号为:" + extIEDPlanExcelVO.getFileNumber() + "的文件代号不能为空!!");
errorList.add(errorString);
return;
}
//管理系统编码不能为空
if(StringUtils.isEmpty(extIEDPlanExcelVO.getSystemNumber())){
errorString.append("解析到数据第"+excelDataRow+"行文件编号为:" + extIEDPlanExcelVO.getFileNumber() + "的管理信息系统编码不能为空!!");
errorList.add(errorString);
return;
}
//如果是新增,查看一下数据库中是不是已经存在
if (Constants.EXCEL_ADD.equals(extIEDPlanExcelVO.getOperation())) {
ExtIEDPlanVO extIEDPlanVO = getIEDPlanByFileNumber(extIEDPlanExcelVO.getFileNumber());
//文件编码、文件代号、管理系统编码只要有一个存在就不能新增。
ExtIEDPlanVO extIEDPlanVO = getIEDPlanByFileNumberAndFileCodeAndSystemNumber(extIEDPlanExcelVO.getFileNumber(),extIEDPlanExcelVO.getFileCode(),extIEDPlanExcelVO.getSystemNumber());
if (!ObjectUtils.isEmpty(extIEDPlanVO)) {
errorString.append("解析到数据第"+excelDataRow+"行,新增IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "已存在,不能重复添加!");
errorString.append("解析到数据第"+excelDataRow+"行,新增IED计划的文件编号、文件代号或者管理信息系统编码已存在,不能重复添加!");
errorList.add(errorString);
}
}else if (Constants.EXCEL_DELETE.equals(extIEDPlanExcelVO.getOperation())){
......@@ -189,8 +204,24 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
extIEDPlanVO.setSystemNumber(extIEDPlanExcelVO.getSystemNumber());
extIEDPlanVO.setDeviceNumber(extIEDPlanExcelVO.getDeviceNumber());
extIEDPlanVO.setPhase(extIEDPlanExcelVO.getPhase());
extIEDPlanVO.setAuditTime(extIEDPlanExcelVO.getAuditTime());
extIEDPlanVO.setFileSubmitTime(extIEDPlanExcelVO.getFileSubmitTime());
if(!ObjectUtils.isEmpty(extIEDPlanExcelVO.getAuditTime())){
try {
LocalDateTime auditTime = LocalDateTime.parse(extIEDPlanExcelVO.getAuditTime());
extIEDPlanVO.setAuditTime(auditTime);
}catch (Exception e){
throw new DxBusinessException("-1","审核时间格式不正确!");
}
}
if(!ObjectUtils.isEmpty(extIEDPlanExcelVO.getFileSubmitTime())){
try {
LocalDateTime submitTime = LocalDateTime.parse(extIEDPlanExcelVO.getFileSubmitTime());
extIEDPlanVO.setFileSubmitTime(submitTime);
}catch (Exception e){
throw new DxBusinessException("-1","文件提交时间格式不正确!");
}
}
extIEDPlanVO.setEditor(extIEDPlanExcelVO.getEditor());
extIEDPlanVO.setChecker(extIEDPlanExcelVO.getChecker());
extIEDPlanVO.setAuditor(extIEDPlanExcelVO.getAuditor());
......@@ -205,8 +236,49 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
}
public ExtIEDPlanVO getIEDPlanByFileNumber(String fileNumber) {
SearchItems iedPlanSearch = new SearchItems();
SearchItem fileNumberFilter = new SearchItem("fileNumber", SearchItem.Operator.EQ, fileNumber, (Object)null);
SearchItem projectIdFilter = new SearchItem("dxContextId", SearchItem.Operator.EQ, projectId, (Object)null);
iedPlanSearch.addItem(fileNumberFilter);
iedPlanSearch.addItem(projectIdFilter);
SearchQueryCondition searchQuery = SearchQueryCondition.builder().searchItems(iedPlanSearch).build();
//根据文件编号查询IED计划
// DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(SearchUtil.buildQuery("fileNumber", SearchItem.Operator.EQ, fileNumber));
DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(searchQuery);
if (!CollectionUtils.isEmpty(IEDPlanPage.getContent())) {
ExtIEDPlanVO extIEDPlanVOForDB = DxPageUtils.getFirst(IEDPlanPage);
return extIEDPlanVOForDB;
} else {
log.info("根据计划的文件编码:{},未查到相关计划", fileNumber);
}
return null;
}
/**
* 查询系统中文件编码、文件代号、管理系统编码是否存在,保证数据在数据库中是唯一。
* @param fileNumber
* @param fileCode
* @param systemNumber
* @return
*/
public ExtIEDPlanVO getIEDPlanByFileNumberAndFileCodeAndSystemNumber(String fileNumber,String fileCode,String systemNumber) {
SearchQueryCondition searchQuery = SearchQueryCondition.builder().
searchItems(SearchItems.builder().child(
SearchItems.builder()
.item(new SearchItem("fileNumber", SearchItem.Operator.EQ, fileNumber, (Object)null))
.item(new SearchItem("fileCode", SearchItem.Operator.EQ, fileCode, (Object)null))
.item(new SearchItem("systemNumber", SearchItem.Operator.EQ, systemNumber, (Object)null))
.operator(SearchItems.BooleanOperator.OR).build())
.item(new SearchItem("dxContextId", SearchItem.Operator.EQ, projectId, (Object)null)).operator(SearchItems.BooleanOperator.AND).build()
).build();
//根据文件编号查询IED计划
DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(SearchUtil.buildQuery("fileNumber", SearchItem.Operator.EQ, fileNumber));
// DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(SearchUtil.buildQuery("fileNumber", SearchItem.Operator.EQ, fileNumber));
DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(searchQuery);
if (!CollectionUtils.isEmpty(IEDPlanPage.getContent())) {
ExtIEDPlanVO extIEDPlanVOForDB = DxPageUtils.getFirst(IEDPlanPage);
return extIEDPlanVOForDB;
......
......@@ -12,6 +12,8 @@ import com.yonde.dcs.plan.core.service.ExtPuchasePlanAttributeService;
import com.yonde.dcs.plan.core.util.CommonUtils;
import com.yonde.dcs.plan.entity.po.ExtPuchasePlanAttribute;
import com.yonde.dex.basedata.data.search.SearchItem;
import com.yonde.dex.basedata.data.search.SearchItems;
import com.yonde.dex.basedata.data.search.SearchQueryCondition;
import com.yonde.dex.basedata.entity.data.DxPageImpl;
import com.yonde.dex.basedata.entity.data.OperatorType;
import com.yonde.dex.basedata.exception.DxBusinessException;
......@@ -183,8 +185,17 @@ public class PurchasePlanExcelReadListenner extends AnalysisEventListener<ExtPuc
* @return
*/
public ExtPuchasePlanAttributeVO getPurchasePlanByPlanCode(String planCode){
SearchItems purchasePlanSearch = new SearchItems();
SearchItem planCodeFilter = new SearchItem("planCode", SearchItem.Operator.EQ, planCode, (Object)null);
SearchItem projectIdFilter = new SearchItem("dxContextId", SearchItem.Operator.EQ, projectId, (Object)null);
purchasePlanSearch.addItem(planCodeFilter);
purchasePlanSearch.addItem(projectIdFilter);
SearchQueryCondition searchQuery = SearchQueryCondition.builder().searchItems(purchasePlanSearch).build();
//根据计划编码获取数据库中采购计划数据
DxPageImpl<ExtPuchasePlanAttributeVO> dxPuchasePlanPage = extPuchasePlanAttributeService.findRecursion(SearchUtil.buildQuery("planCode", SearchItem.Operator.EQ, planCode));
//DxPageImpl<ExtPuchasePlanAttributeVO> dxPuchasePlanPage = extPuchasePlanAttributeService.findRecursion(SearchUtil.buildQuery("planCode", SearchItem.Operator.EQ, planCode));
DxPageImpl<ExtPuchasePlanAttributeVO> dxPuchasePlanPage = extPuchasePlanAttributeService.findRecursion(searchQuery);
if (!CollectionUtils.isEmpty(dxPuchasePlanPage.getContent())) {
ExtPuchasePlanAttributeVO extPurPlanForDB = DxPageUtils.getFirst(dxPuchasePlanPage);
return extPurPlanForDB;
......
......@@ -45,4 +45,6 @@ public interface ExtExpenditureContractService<V extends ExtExpenditureContractV
String getEndDate(List<DxWfProcessTaskVO> dxWfProcessTaskVO, String activityName);
ExtExpenditureContractVO termination(Long id);
String getComments(List<DxWfProcessTaskVO> activities, String activityName);
}
......@@ -2,6 +2,7 @@ package com.yonde.dcs.plan.core.service;
import com.yonde.dcs.document.common.entity.vo.DxDocumentVO;
import com.yonde.dcs.plan.common.vo.ExtPlanVO;
import com.yonde.dcs.plan.common.vo.ExtSupplierManageVO;
import com.yonde.dcs.plan.core.service.shadow.ExtPlanServiceShadow;
import com.yonde.dex.basedata.entity.api.ApiResult;
import com.yonde.dex.user.common.vo.DxOrganizationVO;
......@@ -44,6 +45,8 @@ public interface ExtPlanService<V extends ExtPlanVO> extends ExtPlanServiceShado
ApiResult insertPlan(MultipartFile uploadFile, Long projectId);
ExtPlanVO startWorkflow(Long id);
/**
* 计划驱动编制任务
*
......
package com.yonde.dcs.plan.core.service;
import com.yonde.dcs.plan.common.vo.ExtSupplierManageVO;
import com.yonde.dcs.plan.common.vo.ExtSupplierVO;
import com.yonde.dcs.plan.common.vo.SupplierEarlyWarningVO;
import com.yonde.dcs.plan.core.service.shadow.ExtSupplierManageServiceShadow;
import com.yonde.dex.basedata.data.search.SearchQueryCondition;
......@@ -53,4 +54,11 @@ public interface ExtSupplierManageService<V extends ExtSupplierManageVO> extends
* @return
*/
ExtSupplierManageVO contextDisable(Long id);
/**
* 导出供应商数据
* @param searchQueryCondition
* @return
*/
List<ExtSupplierVO> exportSupplierData(SearchQueryCondition searchQueryCondition);
}
......@@ -109,17 +109,11 @@ public class ExtExpenditureContractServiceImpl<V extends ExtExpenditureContractV
try {
if (obj instanceof ExtExpenditureContractVO) {
ExtExpenditureContractVO expenditureContractVO = (ExtExpenditureContractVO) obj;
/*Class<?> clazz = Class.forName("com.yonde.dcs.plan.core.factory.ExpenditureContractUtils");
Method settingDataMethod = clazz.getMethod("settingData", ExtExpenditureContractVO.class, DxWfProcessInfoVO.class);
settingDataMethod.invoke(SpringUtil.getBean(classType), expenditureContractVO, wfProcessInfoVO);*/
expenditureContractUtils.settingDocData(expenditureContractVO, wfProcessInfoVO);
outFilePath = outFilePath + expenditureContractVO.getSubTypeName() + "\\" + expenditureContractVO.getNumber() + "\\";
sPath = sPath + expenditureContractVO.getSubTypeName() + "\\" + expenditureContractVO.getNumber();
} else if (obj instanceof ExtInComeContractVO) {
ExtInComeContractVO extInComeContractVO = (ExtInComeContractVO) obj;
/*Class<?> clazz = Class.forName("com.yonde.dcs.plan.core.factory.InComeContractUtils");
Method settingDataMethod = clazz.getMethod("settingData", ExtInComeContractVO.class, DxWfProcessInfoVO.class);
settingDataMethod.invoke(SpringUtil.getBean(classType), extInComeContractVO, wfProcessInfoVO);*/
inComeContractUtils.settingDocData(extInComeContractVO, wfProcessInfoVO);
outFilePath = outFilePath + extInComeContractVO.getSubTypeName() + "\\" + extInComeContractVO.getNumber() + "\\";
sPath = sPath + extInComeContractVO.getSubTypeName() + "\\" + extInComeContractVO.getNumber();
......@@ -145,7 +139,7 @@ public class ExtExpenditureContractServiceImpl<V extends ExtExpenditureContractV
//删除生成后的临时文件
FileUtils.deleteDirectory(sPath);
} catch (Exception e) {
log.error("签名----通过不同的合同类型生成不同word错误:{}" + e.getMessage());
log.error("签名----通过不同的合同类型生成不同word错误:", e);
}
}
......@@ -180,9 +174,9 @@ public class ExtExpenditureContractServiceImpl<V extends ExtExpenditureContractV
RepoFileVO field = fileManagerService.uploadFile(multipartFile, getBucketId());
if (field == null) {
log.error("文件上传失败!");
} else {
log.info("文件上传成功:" + field);
return;
}
log.info("文件上传成功:" + field);
//根据docId查询文件对象
RepoFileVO fileVO = fileManagerFeignService.findFileInfoById(field.getId());
//上传到DOC_PDF_FILE为了浏览(Constants.PDF_FILE)
......@@ -221,7 +215,8 @@ public class ExtExpenditureContractServiceImpl<V extends ExtExpenditureContractV
SearchQueryCondition query = SearchQueryCondition.builder()
.openProp(SearchQueryCondition.builder().name("creator").build())
.openProp(SearchQueryCondition.builder().name("modifier").build())
.openProp(SearchQueryCondition.builder().name("objFileLinks").openProp(SearchQueryCondition.builder().name("target").build()).build())
.openProp(SearchQueryCondition.builder().name("objFileLinks")
.openProp(SearchQueryCondition.builder().name("target").build()).build())
.searchItems(SearchItems.builder().item(new SearchItem("id", SearchItem.Operator.EQ,
id, null)).item(new SearchItem("latest", SearchItem.Operator.EQ,
true, null)).operator(SearchItems.BooleanOperator.AND).build()).build();
......@@ -273,6 +268,19 @@ public class ExtExpenditureContractServiceImpl<V extends ExtExpenditureContractV
return this.changeStatus(extExpenditureContractVO.getId(), Constants.TERMINATION, true);
}
@Override
public String getComments(List<DxWfProcessTaskVO> activities, String activityName) {
for (DxWfProcessTaskVO wf : activities) {
if (wf.getName().equals(activityName)) {
List<String> comments = wf.getComments();
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(comments)) {
return comments.get(0);
}
}
}
return " ";
}
/**
* 获取用户名称及用户id(4.1新)
*/
......
......@@ -43,6 +43,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -144,8 +145,12 @@ public class ExtIEDPlanServiceImpl<V extends ExtIEDPlanVO> implements ExtIEDPlan
extIEDPlanExcelVO.setSystemNumber(extIEDPlanVO.getSystemNumber());
extIEDPlanExcelVO.setDeviceNumber(extIEDPlanVO.getDeviceNumber());
extIEDPlanExcelVO.setPhase(extIEDPlanVO.getPhase());
extIEDPlanExcelVO.setAuditTime(extIEDPlanVO.getAuditTime());
extIEDPlanExcelVO.setFileSubmitTime(extIEDPlanVO.getFileSubmitTime());
if(!ObjectUtil.isEmpty(extIEDPlanVO.getAuditTime())){
extIEDPlanExcelVO.setAuditTime(extIEDPlanVO.getAuditTime().format(DateTimeFormatter.ISO_DATE));
}
if(!ObjectUtil.isEmpty(extIEDPlanVO.getFileSubmitTime())){
extIEDPlanExcelVO.setFileSubmitTime(extIEDPlanVO.getFileSubmitTime().format(DateTimeFormatter.ISO_DATE));
}
extIEDPlanExcelVO.setEditor(extIEDPlanVO.getEditor());
extIEDPlanExcelVO.setChecker(extIEDPlanVO.getChecker());
extIEDPlanExcelVO.setAuditor(extIEDPlanVO.getAuditor());
......@@ -207,11 +212,16 @@ public class ExtIEDPlanServiceImpl<V extends ExtIEDPlanVO> implements ExtIEDPlan
DxDocumentVO dxDocumentVOForDB = extDxDocumentServiceFeign.saveRecursion(dxDocumentVO);
//保存文档与IED计划的关系
ExtIEDPlanDocLinkVO extIEDPlanDocLinkVO = new ExtIEDPlanDocLinkVO();
extIEDPlanDocLinkVO.setTargetId(dxDocumentVOForDB.getVersionId());
extIEDPlanDocLinkVO.setTargetId(dxDocumentVOForDB.getId());
extIEDPlanDocLinkVO.setSourceId(extIEDPlanVO.getId());
extIEDPlanDocLinkVO.setOperator(OperatorType.ADD);
extIEDPlanDocLinkService.saveRecursion(extIEDPlanDocLinkVO);
//修改计划的实际开始时间
DxPageImpl<V> dxPage = this.findRecursion(SearchUtil.buildQuery("id", SearchItem.Operator.EQ, extIEDPlanVO.getId()));
ExtIEDPlanVO extIEDPlanForDB = dxPage.getContent().get(0);
extIEDPlanForDB.setOperator(OperatorType.MODIFY);
extIEDPlanForDB.setActualStartTime(LocalDateTime.now());
this.saveRecursion((V) extIEDPlanForDB);
return ApiResult.SUCCESS;
}
......
......@@ -36,6 +36,7 @@ import com.yonde.dex.user.common.vo.DxUserInfoVO;
import com.yonde.dex.user.feign.DxOrganizationFeign;
import com.yonde.dex.user.feign.DxUserInfoFeign;
import com.yonde.dex.version.plugin.core.deleteType.IterationDeleteVO;
import com.yonde.dex.wfc.feign.api.WfcProcessFeign;
import dm.jdbc.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.CellStyle;
......@@ -60,6 +61,7 @@ import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Properties;
/**
......@@ -100,6 +102,9 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
@Autowired
private DxUserInfoFeign<DxUserInfoVO> dxUserInfoFeign;
@Autowired
private WfcProcessFeign wfcProcessFeign;
/**
* 通过userId获取组织名
*
......@@ -174,6 +179,19 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
return apiResult;
}
@Override
public ExtPlanVO startWorkflow(Long id) {
ExtPlanVO extPlanVO = this.get(id);
if (extPlanVO == null) {
throw new DxBusinessException("500", "获取不到对象");
}
if (!extPlanVO.getState().equals("unopened")) {
throw new DxBusinessException("500", "该对象不是编制状态");
}
wfcProcessFeign.startProcessByKey("ExtPlanWF", extPlanVO);
return this.changeStatus(extPlanVO.getId(), "unfinished", true);
}
/**
* 导入计划(系统校验计划编号、计划名称、工期、计划开始时间、计划完成时间等必填项)
*
......@@ -308,6 +326,13 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
if (StringUtils.isEmpty(secretCodeKey)) {
buffer.append(String.format("第%s行密级格式不正确!", i + 1) + "</br>");
}
if (Objects.nonNull(excelVO.getSuperPlanCode())){
//校验父级编号
ExtPlanVO extPlanVO = this.searchByNumber(excelVO.getSuperPlanCode());
if (!ObjectUtils.isEmpty(extPlanVO)){
buffer.append(String.format("第%s行,父级编号不存在", i + 1) + "</br>");
}
}
return buffer;
}
......@@ -549,6 +574,12 @@ public class ExtPlanServiceImpl<V extends ExtPlanVO> implements ExtPlanService<V
private ExtPlanVO copyPlan(PlanExcelVO planExcelVO, OperatorType operatorType) {
ExtPlanVO extPlanVO = new ExtPlanVO();
BeanUtils.copyProperties(planExcelVO, extPlanVO);
if (Objects.nonNull(planExcelVO.getSuperPlanCode())) {
ExtPlanVO extPlanVO1 = this.searchByNumber(planExcelVO.getSuperPlanCode());
if (!ObjectUtils.isEmpty(extPlanVO1)) {
extPlanVO.setParentId(extPlanVO1.getId());
}
}
extPlanVO.setName(planExcelVO.getName());
extPlanVO.setNumber(planExcelVO.getNumber());
extPlanVO.setOperator(operatorType);
......
......@@ -2,10 +2,7 @@ package com.yonde.dcs.plan.core.service.impl;
import com.google.common.collect.Lists;
import com.yonde.dcs.plan.common.constants.Constants;
import com.yonde.dcs.plan.common.vo.ExtQualificationsVO;
import com.yonde.dcs.plan.common.vo.ExtSupplierManageLinkVO;
import com.yonde.dcs.plan.common.vo.ExtSupplierManageVO;
import com.yonde.dcs.plan.common.vo.SupplierEarlyWarningVO;
import com.yonde.dcs.plan.common.vo.*;
import com.yonde.dcs.plan.core.repository.ExtSupplierManageRepository;
import com.yonde.dcs.plan.core.service.ExtSupplierManageLinkService;
import com.yonde.dcs.plan.core.service.ExtSupplierManageService;
......@@ -19,6 +16,7 @@ import com.yonde.dex.dict.feign.DictDataFeignService;
import com.yonde.dex.dict.service.vo.DictDataVO;
import com.yonde.dex.wfc.feign.api.WfcProcessFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -165,6 +163,58 @@ public class ExtSupplierManageServiceImpl<V extends ExtSupplierManageVO> impleme
}
return this.changeStatus(extSupplierManageVO.getId(), Constants.CONTEXT_DISABLE, true);
}
@Override
public List<ExtSupplierVO> exportSupplierData(SearchQueryCondition searchQueryCondition) {
List<ExtSupplierVO> list = Lists.newArrayList();
Map<String, DictDataVO> supplierTypeMap = this.getDictDataVO(Constants.SUPPLIER_TYPE);
Map<String, DictDataVO> qualificationsContentMap = this.getDictDataVO(Constants.QUALIFICATIONS_CONTENT);
DxPageImpl<V> recursion = this.findRecursion(searchQueryCondition);
List<ExtSupplierManageVO> content = (List<ExtSupplierManageVO>) recursion.getContent();
if (CollectionUtils.isEmpty(content)) {
return list;
}
for (ExtSupplierManageVO extSupplierManageVO : content) {
ExtSupplierVO extSupplierVO = new ExtSupplierVO();
BeanUtils.copyProperties(extSupplierManageVO, extSupplierVO);
DictDataVO supplierType = supplierTypeMap.get(extSupplierManageVO.getSupplierType());
extSupplierVO.setSupplierType(supplierType.getDictValue());
for (ExtSupplierManageLinkVO extSupplierManageLink : extSupplierManageVO.getExtSupplierManageLinks()) {
ExtQualificationsVO target = extSupplierManageLink.getTarget();
String qualificationsContent = target.getQualificationsContent();
String certificateNumber = target.getCertificateNumber();
LocalDateTime certificateTime = target.getCertificateTime();
DictDataVO qualifications = qualificationsContentMap.get(qualificationsContent);
String dictValue = qualifications.getDictValue();
switch (qualificationsContent) {
case "qsc":
extSupplierVO.setQscQualificationsContent(dictValue);
extSupplierVO.setQscCertificateNumber(certificateNumber);
extSupplierVO.setQscCertificateTime(certificateTime);
break;
case "sp":
extSupplierVO.setSpQualificationsContent(dictValue);
extSupplierVO.setSpCertificateNumber(certificateNumber);
extSupplierVO.setSpCertificateTime(certificateTime);
break;
case "cqc":
extSupplierVO.setCqcQualificationsContent(dictValue);
extSupplierVO.setCqcCertificateNumber(certificateNumber);
extSupplierVO.setCqcCertificateTime(certificateTime);
break;
case "cqm":
extSupplierVO.setCqmQualificationsContent(dictValue);
extSupplierVO.setCqmCertificateNumber(certificateNumber);
extSupplierVO.setCqmCertificateTime(certificateTime);
break;
default:
break;
}
}
list.add(extSupplierVO);
}
return list;
}
}
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