package com.vci.web.service.impl; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ZipUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.corba.common.PLException; import com.vci.corba.omd.atm.AttributeDef; import com.vci.corba.omd.btm.BizType; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTD; import com.vci.model.OsLinkTypeDO; import com.vci.omd.utils.ObjectTool; import com.vci.pagemodel.*; import com.vci.po.OsLinkTypePO; import com.vci.starter.poi.bo.ReadExcelOption; import com.vci.starter.poi.bo.WriteExcelData; import com.vci.starter.poi.bo.WriteExcelOption; import com.vci.starter.poi.constant.ExcelLangCodeConstant; import com.vci.starter.poi.util.ExcelUtil; import com.vci.starter.web.annotation.log.VciUnLog; import com.vci.starter.web.enumpck.VciFieldTypeEnum; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.util.*; import com.vci.web.service.*; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; /** * 查询模板服务 * @author yuxc * @date 2024-8-1 */ @Service public class OsQueryTemplateImpl implements OsQuereyTemplateServiceI { /** * 平台的调用工具类 */ @Autowired private PlatformClientUtil platformClientUtil; /** * 查询模板的列表 * @param btmName 类型 * @param linkFlag 是否链接类型 :true 链接类型 ,false 业务类型 * @return 查询模板的列表 */ @Override public BaseResult queryTemplateList(String btmName, Boolean linkFlag) throws PLException { QTD[] qtdArray = null; if(linkFlag){ qtdArray = platformClientUtil.getQTDService().getLinkTypeQTDs(btmName); }else { qtdArray = platformClientUtil.getQTDService().getBizTypeQTDs(btmName); } return BaseResult.dataList(Arrays.asList(qtdArray)); } /** * 查询模板 * @param qtd 查询模板实体类 * @return 保存结果 */ @Override public BaseResult saveTemplate(QTD qtd) throws PLException { //校验参数 checkName(qtd); //设置默认值 qtd.creator = WebUtil.getCurrentUserId(); qtd.createTime = System.currentTimeMillis(); boolean addFlag = false; //进行保存 addFlag = platformClientUtil.getQTDService().addQTD(qtd); if (addFlag) { return BaseResult.success("增加业务类型查询模板成功"); } else { throw new PLException("500", new String[]{"增加业务类型查询模板失败"}); } } /** * 修改查询模板 * @param qtd 查询模板实体类 * @return 保存结果 */ @Override public BaseResult updateTemplate(QTD qtd) throws PLException { //校验参数 if (qtd.name.equals("")) { throw new PLException("500", new String[]{"请输入模板定义名"}); } if (!qtd.name.matches("[a-z A-Z]*")) { throw new PLException("500", new String[]{"模板定义名只能为英文字母"}); } qtd.createTime = System.currentTimeMillis(); boolean updateFlag = false; //进行保存 updateFlag = platformClientUtil.getQTDService().modifyQTD(qtd); if (updateFlag) { return BaseResult.success("修改业务类型查询模板成功"); } else { throw new PLException("500", new String[]{"修改业务类型查询模板失败"}); } } /** * 删除查询模板 * @param name 查询模板名 * @return 保存结果 */ @Override public BaseResult deleteTemplate(String name) throws PLException { boolean flag = false; flag = platformClientUtil.getQTDService().deleteQTD(name); if (flag) { return BaseResult.success("删除查询模板成功"); } else { return BaseResult.fail("删除查询模板失败"); } } /** * 校验参数 * @param qtd * @return */ private void checkName(QTD qtd) throws PLException { if (qtd.name.equals("")) { throw new PLException("500", new String[]{"请输入模板定义名"}); } if (!qtd.name.matches("[a-z A-Z]*")) { throw new PLException("500", new String[]{"模板定义名只能为英文字母"}); } if (platformClientUtil.getQTDService().isExistsQTD(qtd.name.toLowerCase())) { throw new PLException("500", new String[]{"该模板定义名已经被使用, 请更换"}); } } }