package com.zt.life.modules.itemCirculatOrder.service;
|
|
import cn.hutool.core.convert.Convert;
|
import com.zt.common.service.BaseService;
|
import com.zt.common.utils.UUIDUtil;
|
import com.zt.core.context.User;
|
import com.zt.core.context.UserContext;
|
import com.zt.life.export.dto.WordFile;
|
import com.zt.life.export.service.WordFileService;
|
import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
|
import com.zt.life.modules.configItemWarehouse.service.ConfigItemWarehouseService;
|
import com.zt.life.modules.configItemWarehouse.service.WarehouseCmAuditService;
|
import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService;
|
import com.zt.life.modules.configItemWarehouse.service.WarehouseQaAuditService;
|
import com.zt.life.modules.itemCirculatOrder.dao.ItemCirculatOrderDao;
|
import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto;
|
import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder;
|
import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
|
import com.zt.life.modules.mainPart.utils.GetShowDictList;
|
import com.zt.life.modules.mainPart.utils.GetFilesPath;
|
import com.zt.life.modules.project.model.*;
|
import com.zt.life.modules.project.service.ProjectService;
|
import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
|
import com.zt.life.sys.dto.OssDto;
|
import com.zt.life.sys.service.SysOssConfigService;
|
import com.zt.modules.coderule.service.SysCodeRuleService;
|
import com.zt.modules.oss.model.SysOss;
|
import com.zt.modules.oss.service.SysOssService;
|
import com.zt.modules.workflow.dto.FlowInfoDto;
|
import com.zt.modules.workflow.service.WorkflowService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.zt.common.db.query.QueryFilter;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.FileNotFoundException;
|
import java.io.UnsupportedEncodingException;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* item_circulat_order
|
*
|
* @author zt generator
|
* @since 1.0.0 2023-11-22
|
*/
|
@Service
|
public class ItemCirculatOrderService extends BaseService<ItemCirculatOrderDao, ItemCirculatOrder> {
|
@Autowired
|
private SysOssConfigService sysOssConfigService;
|
|
@Autowired
|
private SysOssService sysOssService;
|
|
@Autowired
|
private TestAgencyInfoService testAgencyInfoService;
|
|
@Autowired
|
private SysCodeRuleService sysCodeRuleService;
|
|
@Autowired
|
private ProjectService projectService;
|
|
@Autowired
|
private ItemCirculatOrderTechnicalService technicalService;
|
|
@Autowired
|
private WorkflowService workflowService;
|
|
@Autowired
|
private GetShowDictList getShowDictList;
|
|
@Autowired
|
private WordFileService wordFileService;
|
|
@Autowired
|
private GetFilesPath getFilesPath;
|
|
@Autowired
|
private ConfigItemWarehouseService configItemWarehouseService;
|
|
@Autowired
|
private WarehouseCmAuditService cmAuditService;
|
|
@Autowired
|
private WarehouseQaAuditService qaAuditService;
|
|
@Autowired
|
private WarehouseConfigItemService configItemService;
|
|
/**
|
* 分页查询
|
*
|
* @param queryFilter
|
* @return
|
*/
|
public List<ItemCirculatOrder> page(QueryFilter queryFilter) {
|
User user = UserContext.getUser();
|
Integer secretClass = user.getSecretClass();
|
Long deptId = user.getDeptId();
|
queryFilter.getQueryParams().put("secretClass",secretClass);
|
queryFilter.getQueryParams().put("deptId",deptId);
|
List<ItemCirculatOrder> list = baseDao.getList(queryFilter.getQueryParams());
|
if (list.size() > 0) {
|
workflowService.getRunFlow(list, "wplz");
|
}
|
return list;
|
}
|
|
/**
|
* yi
|
* 删除
|
*
|
* @param ids
|
*/
|
public void delete(Long[] ids) {
|
super.deleteLogic(ids);
|
}
|
|
public Long save(ItemCirculatOrderDto itemCirculatOrderDto) {
|
User user = UserContext.getUser();
|
String userName=user.getRealName();
|
String userNameId=user.getId().toString();
|
Long configItemWarehouseId = 0L;
|
Long circulatOrderId = itemCirculatOrderDto.getCirculatOrder().getId();
|
if (circulatOrderId != null)
|
baseDao.updateById(itemCirculatOrderDto.getCirculatOrder());
|
else {
|
Map<String, String> map = new HashMap<>();
|
map.put("funCode", "item_circulat_order");
|
map.put("projectId", itemCirculatOrderDto.getProjectId().toString());
|
itemCirculatOrderDto.getCirculatOrder().setProjectId(itemCirculatOrderDto.getProjectId());
|
itemCirculatOrderDto.getCirculatOrder().setCode(sysCodeRuleService.getNewCode(map));
|
baseDao.insert(itemCirculatOrderDto.getCirculatOrder());
|
circulatOrderId = itemCirculatOrderDto.getCirculatOrder().getId();
|
}
|
|
for (ItemCirculatOrderTechnical circulatOrderTechnical : itemCirculatOrderDto.getTechnicalList()) {
|
if (circulatOrderTechnical.getName() != null) {
|
circulatOrderTechnical.setCirculatOrderId(circulatOrderId);
|
if (circulatOrderTechnical.getId() != null) {
|
technicalService.update(circulatOrderTechnical);
|
} else {
|
circulatOrderTechnical.setCirculatOrderId(circulatOrderId);
|
technicalService.insert(circulatOrderTechnical);
|
}
|
sysOssConfigService.updateOss(circulatOrderTechnical.getId(), circulatOrderTechnical.getFiles());// 保存附件
|
}
|
}
|
|
if (itemCirculatOrderDto.getTestAgencyInfo().getId() == 10000) {
|
itemCirculatOrderDto.getTestAgencyInfo().setId(circulatOrderId);
|
testAgencyInfoService.insert(itemCirculatOrderDto.getTestAgencyInfo());
|
} else {
|
testAgencyInfoService.update(itemCirculatOrderDto.getTestAgencyInfo());
|
}
|
|
Long bizId = itemCirculatOrderDto.getCirculatOrder().getId();
|
FlowInfoDto flowInfoDto = itemCirculatOrderDto.getFlowInfoDto();
|
|
if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
|
if ("tj".equals(flowInfoDto.getSubmitType())) {
|
workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
|
} else {
|
if ("wplz_wprk".equals(flowInfoDto.getStepIdMark()) && "bl".equals(flowInfoDto.getSubmitType())) {
|
String Code = itemCirculatOrderDto.getCirculatOrder().getCode();
|
configItemWarehouseId = UUIDUtil.generateId();
|
ConfigItemWarehouse configItemWarehouse = new ConfigItemWarehouse();
|
configItemWarehouse.setId(configItemWarehouseId);
|
configItemWarehouse.setProjectId(itemCirculatOrderDto.getProjectId());
|
configItemWarehouse.setLibraryType("1");
|
Map<String, String> map = new HashMap<>();
|
map.put("funCode", "config_item_warehouse");
|
map.put("projectId", itemCirculatOrderDto.getProjectId().toString());
|
configItemWarehouse.setCode(sysCodeRuleService.getNewCode(map));
|
// insert
|
configItemWarehouseService.insert(configItemWarehouse);
|
Long WarehouseConfigItemId = 0L;
|
for (int i = 0; i < itemCirculatOrderDto.getTechnicalList().size(); i++) {
|
ItemCirculatOrderTechnical circulatOrderTechnical = itemCirculatOrderDto.getTechnicalList().get(i);
|
Long circulatOrderTechnicalId = circulatOrderTechnical.getId();
|
WarehouseConfigItemId = UUIDUtil.generateId();
|
|
WarehouseConfigItem warehouseConfigItem = new WarehouseConfigItem();
|
|
warehouseConfigItem.setId(WarehouseConfigItemId);
|
warehouseConfigItem.setProjectId(itemCirculatOrderDto.getProjectId());
|
warehouseConfigItem.setLibraryType("1");
|
warehouseConfigItem.setSrcId(circulatOrderTechnicalId);
|
warehouseConfigItem.setWarehouseId(configItemWarehouseId);
|
warehouseConfigItem.setNo(circulatOrderTechnical.getNo());
|
String itemName = circulatOrderTechnical.getName();
|
itemName = itemName.replace(Code, "");
|
warehouseConfigItem.setItemName(itemName);
|
warehouseConfigItem.setItemIdentify(circulatOrderTechnical.getName());
|
warehouseConfigItem.setVersion(circulatOrderTechnical.getIdentify());
|
warehouseConfigItem.setSecretClass(circulatOrderTechnical.getSecretClass());
|
// insert
|
configItemService.insert(warehouseConfigItem);
|
List<SysOss> sysOssList = sysOssService.getSysOssByBusiIdAnd(circulatOrderTechnicalId, "circulat_order");
|
for (SysOss sysOss : sysOssList) {
|
sysOss.setId(UUIDUtil.generateId());
|
sysOss.setBusiId(WarehouseConfigItemId);
|
sysOss.setBusiType("config_item_warehouse");
|
sysOss.setBusiTypeName("配置项入库");
|
sysOss.setBusiField("config_item_warehouse");
|
sysOss.setBusiFieldName("配置项入库");
|
sysOssService.insert(sysOss);
|
}
|
}
|
List<WarehouseCmAudit> cmList = configItemWarehouseService.itemCmList("warehouse_cm_audit");
|
for (WarehouseCmAudit cmAudit : cmList) {
|
cmAudit.setWarehouseId(configItemWarehouseId);
|
cmAuditService.insert(cmAudit);
|
}
|
List<WarehouseQaAudit> qaList = configItemWarehouseService.itemQaList("warehouse_qa_audit");
|
for (WarehouseQaAudit qaAudit : qaList) {
|
qaAudit.setWarehouseId(configItemWarehouseId);
|
qaAuditService.insert(qaAudit);
|
}
|
}
|
}
|
if ("wplz_wprk".equals(flowInfoDto.getStepIdMark())){
|
itemCirculatOrderDto.getCirculatOrder().setIssueSituation("1");
|
baseDao.updateById(itemCirculatOrderDto.getCirculatOrder());
|
}
|
workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark());
|
}
|
return configItemWarehouseId;
|
}
|
|
public ItemCirculatOrderDto getDto(Long projectId, Long circulatOrderId) {
|
ItemCirculatOrderDto data = new ItemCirculatOrderDto();
|
if (circulatOrderId != null) {
|
data.setId(circulatOrderId);
|
ItemCirculatOrder itemCirculatOrder = this.get(circulatOrderId);
|
data.setCirculatOrder(itemCirculatOrder);
|
if (projectId == null) {
|
projectId = itemCirculatOrder.getProjectId();
|
}
|
|
data.setTestAgencyInfo(testAgencyInfoService.get(circulatOrderId));
|
|
List<ItemCirculatOrderTechnical> technicalList = technicalService.getList(circulatOrderId);
|
data.setTechnicalList(technicalList);
|
|
} else {
|
ItemCirculatOrder itemCirculatOrder = new ItemCirculatOrder();
|
data.setCirculatOrder(itemCirculatOrder);
|
List<?> resultList = technicalService.itemList(projectId);
|
List<?> technicalList = resultList;
|
data.setTechnicalList((List<ItemCirculatOrderTechnical>) technicalList);
|
}
|
|
if (projectId != null) {
|
data.setProjectId(projectId);
|
Project project = projectService.get(projectId);
|
String type = project.getSoftwareType();
|
if (type == "3") {
|
type = "2";
|
} else {
|
type = "1";
|
}
|
project.setSoftwareType(type);
|
data.setProject(project);
|
}
|
if (data.getTestAgencyInfo() == null)
|
data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
|
if (circulatOrderId != null) {
|
for (ItemCirculatOrderTechnical technical : data.getTechnicalList()) {
|
Long technicalId = technical.getId();
|
OssDto ossDto = sysOssConfigService.getOssByBusiType(technicalId, "circulat_order");
|
if (ossDto != null) {
|
technical.setFiles(ossDto);
|
}
|
}
|
}
|
return data;
|
}
|
|
public void exportCirculatOrder(Long id, HttpServletRequest request, HttpServletResponse response) {
|
try {
|
ItemCirculatOrderDto dataObj = this.getDto(null, id);
|
|
String acceptorPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemAcceptorId()));
|
dataObj.getCirculatOrder().setItemAcceptor(acceptorPath);
|
String detectorPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getCalibratDetectorId()));
|
dataObj.getCirculatOrder().setCalibratDetector(detectorPath);
|
String issuerPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemIssuerId()));
|
dataObj.getCirculatOrder().setItemIssuer(issuerPath);
|
String depositPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getDepositorId()));
|
dataObj.getCirculatOrder().setDepositor(depositPath);
|
String detectAcceptorPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getDetectAcceptorId()));
|
dataObj.getCirculatOrder().setDetectAcceptor(detectAcceptorPath);
|
//通用字典列表字符串生成
|
String itemRequireStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getItemRequire(), "is_or_not", false);
|
dataObj.getCirculatOrder().setItemRequireStr(itemRequireStr);
|
|
String acceptSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getAcceptSituation(), "is_or_not", false);
|
dataObj.getCirculatOrder().setAcceptSituationStr(acceptSituationStr);
|
|
String detectSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDetectSituation(), "is_or_not", false);
|
dataObj.getCirculatOrder().setDetectSituationStr(detectSituationStr);
|
|
String issueSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getIssueSituation(), "is_or_not", false);
|
dataObj.getCirculatOrder().setIssueSituationStr(issueSituationStr);
|
|
String depositSituation = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDepositSituation(), "is_or_not", false);
|
dataObj.getCirculatOrder().setDepositSituation(depositSituation);
|
|
String detectAcceptSituation = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDetectAcceptSituation(), "is_or_not", false);
|
dataObj.getCirculatOrder().setDetectAcceptSituation(detectAcceptSituation);
|
|
for (ItemCirculatOrderTechnical technical : dataObj.getTechnicalList()) {
|
String value = technical.getSecretClass();
|
String secretClassStr = getShowDictList.getShowDictList(value, "secret_class", false);
|
technical.setSecretClass(secretClassStr);
|
}
|
|
|
WordFile wordFile = new WordFile();
|
wordFile.setModulePath("物品流转单.docx");
|
wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_物品流转单.docx");
|
wordFileService.exportWordFile(request, dataObj, wordFile, response);
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|