|
@@ -31,31 +31,23 @@ import org.jsoup.Jsoup;
|
|
|
import org.jsoup.nodes.Document;
|
|
|
import org.jsoup.nodes.Element;
|
|
|
import org.jsoup.select.Elements;
|
|
|
+import org.springblade.business.feign.ContractLogClient;
|
|
|
import org.springblade.business.feign.InformationQueryClient;
|
|
|
+import org.springblade.business.vo.SaveContractLogVO;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
import org.springblade.core.oss.model.BladeFile;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.node.ForestNodeMerger;
|
|
|
-import org.springblade.core.tool.utils.Func;
|
|
|
-import org.springblade.core.tool.utils.IoUtil;
|
|
|
-import org.springblade.core.tool.utils.ResourceUtil;
|
|
|
-import org.springblade.core.tool.utils.StringPool;
|
|
|
+import org.springblade.core.tool.utils.*;
|
|
|
import org.springblade.manager.bean.TableInfo;
|
|
|
import org.springblade.manager.dto.FormData;
|
|
|
-import org.springblade.manager.entity.ExcelTab;
|
|
|
-import org.springblade.manager.entity.Formula;
|
|
|
-import org.springblade.manager.entity.WbsTree;
|
|
|
-import org.springblade.manager.entity.WbsTreeContract;
|
|
|
+import org.springblade.manager.entity.*;
|
|
|
import org.springblade.manager.formula.KeyMapper;
|
|
|
import org.springblade.manager.formula.impl.TableElementConverter;
|
|
|
-import org.springblade.manager.service.IFormulaService;
|
|
|
-import org.springblade.manager.service.IWbsParamService;
|
|
|
-import org.springblade.manager.service.IWbsTreeContractService;
|
|
|
-import org.springblade.manager.service.IWbsTreeService;
|
|
|
+import org.springblade.manager.service.*;
|
|
|
import org.springblade.manager.vo.ExceTabTreVO;
|
|
|
import org.springblade.manager.vo.ExcelTabVO;
|
|
|
import org.springblade.manager.mapper.ExcelTabMapper;
|
|
|
-import org.springblade.manager.service.IExcelTabService;
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
import org.springblade.manager.vo.ExcelTabWbsTypeVO;
|
|
|
import org.springblade.manager.vo.WbsTreeVO;
|
|
@@ -89,6 +81,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
|
|
|
private final IWbsParamService wbsParamService;
|
|
|
|
|
|
+ private final IWbsTreePrivateService wbsTreePrivateService;
|
|
|
+
|
|
|
+ private final ContractLogClient contractLogClient;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<ExcelTabVO> selectExcelTabPage(IPage<ExcelTabVO> page, ExcelTabVO excelTab) {
|
|
|
return page.setRecords(baseMapper.selectExcelTabPage(page, excelTab));
|
|
@@ -170,6 +166,30 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
}
|
|
|
//huangjn 判断是否是首件
|
|
|
|
|
|
+ //huangjn 判断是否是日志
|
|
|
+ if(dataInfo2.containsKey("isTheLog")){
|
|
|
+ tableInfo.setIsTheLog(dataInfo2.getString("isTheLog"));
|
|
|
+ }
|
|
|
+ //huangjn 判断是否是日志
|
|
|
+
|
|
|
+ //huangjn 日志ID
|
|
|
+ if(dataInfo2.containsKey("theLogId")){
|
|
|
+ tableInfo.setTheLogId(dataInfo2.getString("theLogId"));
|
|
|
+ }
|
|
|
+ //huangjn 日志ID
|
|
|
+
|
|
|
+ //huangjn 日志勾选的工序
|
|
|
+ if(dataInfo2.containsKey("linkTabIds")){
|
|
|
+ tableInfo.setLinkTabIds(dataInfo2.getString("linkTabIds"));
|
|
|
+ }
|
|
|
+ //huangjn 日志勾选的工序
|
|
|
+
|
|
|
+ //huangjn 日志所选时间
|
|
|
+ if(dataInfo2.containsKey("recordTime")){
|
|
|
+ tableInfo.setRecordTime(dataInfo2.getString("recordTime"));
|
|
|
+ }
|
|
|
+ //huangjn 日志所选时间
|
|
|
+
|
|
|
dataInfo2.fluentRemove("contractId")
|
|
|
.fluentRemove("pkeyId")
|
|
|
.fluentRemove("p_key_id")
|
|
@@ -178,6 +198,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
.fluentRemove("pickerKey")
|
|
|
.fluentRemove("id")
|
|
|
.fluentRemove("isFirst")
|
|
|
+ .fluentRemove("isTheLog")
|
|
|
+ .fluentRemove("theLogId")
|
|
|
+ .fluentRemove("linkTabIds")
|
|
|
+ .fluentRemove("recordTime")
|
|
|
.fluentRemove("");
|
|
|
// 计算数据
|
|
|
LinkedHashMap<String,List<String>> dataMap =dataInfo2.keySet().stream().filter(e->e.contains("__")).collect(Collectors.groupingBy(e->e.split("__")[0], LinkedHashMap<String,List<String>>::new,Collectors.toList()));
|
|
@@ -247,55 +271,132 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 保存日志
|
|
|
+ */
|
|
|
+ private void saveOrUpdateTheLog(List<TableInfo> tableInfoList){
|
|
|
+ String businessId = tableInfoList.get(0).getTheLogId();
|
|
|
+ if(StringUtils.isEmpty(businessId)){
|
|
|
+ businessId = SnowFlakeUtil.getId().toString();
|
|
|
+ }
|
|
|
+ String linkTabIds = tableInfoList.get(0).getLinkTabIds();
|
|
|
+ String recordTime = tableInfoList.get(0).getRecordTime();
|
|
|
+ if(StringUtils.isEmpty(recordTime)){
|
|
|
+ //为空,默认今天
|
|
|
+ recordTime = DateUtil.format(new Date(), "yyyy-MM-dd");
|
|
|
+ }
|
|
|
+
|
|
|
+ for(TableInfo tableInfo : tableInfoList){
|
|
|
+ WbsTreePrivate wbsTreePrivate = this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, tableInfo.getPkeyId()));
|
|
|
+ if(wbsTreePrivate == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String tabName = wbsTreePrivate.getInitTableName();
|
|
|
+
|
|
|
+ if(StringUtils.isNotEmpty(businessId)){
|
|
|
+ //删除旧数据
|
|
|
+ String delSql = "delete from "+tabName+" where group_id = " + businessId;
|
|
|
+ this.jdbcTemplate.execute(delSql);
|
|
|
+ }
|
|
|
+
|
|
|
+ //拼接SQL
|
|
|
+ StringBuilder sql = new StringBuilder("INSERT INTO " + tabName ),
|
|
|
+ keySql = new StringBuilder("id, group_id"),
|
|
|
+ valSql = new StringBuilder("" + SnowFlakeUtil.getId() + ", " + businessId);
|
|
|
+ //参数
|
|
|
+ LinkedHashMap<String,String> dataMap2 = tableInfo.getDataMap();
|
|
|
+ for(String key : dataMap2.keySet()){
|
|
|
+ keySql.append(", ").append(key);
|
|
|
+ valSql.append(", '").append(dataMap2.get(key)).append("'");
|
|
|
+ }
|
|
|
+
|
|
|
+ sql.append("(").append(keySql).append(")").append(" values(").append(valSql).append(")");
|
|
|
+
|
|
|
+ //新增数据
|
|
|
+ try{
|
|
|
+ this.jdbcTemplate.execute(sql.toString());
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ //查询绑定的节点
|
|
|
+ WbsTreePrivate tableNode = this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, tableInfoList.get(0).getPkeyId()));
|
|
|
+ WbsTreePrivate parentNode = this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, tableNode.getProjectId()).eq(WbsTreePrivate::getId, tableNode.getParentId()));
|
|
|
+
|
|
|
+ //保存日志记录
|
|
|
+ this.contractLogClient.saveContractLog(new SaveContractLogVO(
|
|
|
+ Long.parseLong(businessId),
|
|
|
+ tableInfoList.get(0).getProjectId(),
|
|
|
+ tableInfoList.get(0).getContractId(),
|
|
|
+ parentNode.getPKeyId(),
|
|
|
+ parentNode.getMajorDataType(),
|
|
|
+ recordTime,
|
|
|
+ linkTabIds
|
|
|
+ ));
|
|
|
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public void saveOrUpdateInfo(List<TableInfo> tableInfoList) {
|
|
|
if(ListUtils.isNotEmpty(tableInfoList)){
|
|
|
- for(TableInfo tableInfo:tableInfoList){
|
|
|
- WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
- .eq(WbsTreeContract::getPKeyId, tableInfo.getPkeyId()));
|
|
|
- if(wbsTreeContract == null){
|
|
|
- continue;
|
|
|
- }
|
|
|
+ if(StringUtils.isNotEmpty(tableInfoList.get(0).getIsTheLog())){
|
|
|
+ //日志填报
|
|
|
+ this.saveOrUpdateTheLog(tableInfoList);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ //施工资料填报
|
|
|
+ for(TableInfo tableInfo:tableInfoList){
|
|
|
+ WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
+ .eq(WbsTreeContract::getPKeyId, tableInfo.getPkeyId()));
|
|
|
+ if(wbsTreeContract == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
- String tabName = wbsTreeContract.getInitTableName();
|
|
|
+ String tabName = wbsTreeContract.getInitTableName();
|
|
|
|
|
|
- // 判读修改还是 添加
|
|
|
- String delSql = "delete from "+tabName+" where p_key_id="+tableInfo.getPkeyId();
|
|
|
- jdbcTemplate.execute(delSql);
|
|
|
+ // 判读修改还是 添加
|
|
|
+ String delSql = "delete from "+tabName+" where p_key_id="+tableInfo.getPkeyId();
|
|
|
+ jdbcTemplate.execute(delSql);
|
|
|
|
|
|
- String sqlInfo="";
|
|
|
- LinkedHashMap<String,String> dataMap2 = tableInfo.getDataMap();
|
|
|
- sqlInfo = "INSERT INTO "+tabName+" ( ";
|
|
|
- String keyStr = "id,";
|
|
|
- String valStr = SnowFlakeUtil.getId() + ",";
|
|
|
- for (String keys : dataMap2.keySet()){
|
|
|
- keyStr += keys+",";
|
|
|
- valStr += "'"+dataMap2.get(keys)+"',";
|
|
|
+ String sqlInfo="";
|
|
|
+ LinkedHashMap<String,String> dataMap2 = tableInfo.getDataMap();
|
|
|
+ sqlInfo = "INSERT INTO "+tabName+" ( ";
|
|
|
+ String keyStr = "id,";
|
|
|
+ String valStr = SnowFlakeUtil.getId() + ",";
|
|
|
+ for (String keys : dataMap2.keySet()){
|
|
|
+ keyStr += keys+",";
|
|
|
+ valStr += "'"+dataMap2.get(keys)+"',";
|
|
|
+ }
|
|
|
+ keyStr=keyStr.substring(0,keyStr.lastIndexOf(","));
|
|
|
+ valStr=valStr.substring(0,valStr.lastIndexOf(","));
|
|
|
+ sqlInfo = sqlInfo + keyStr+") VALUES (" +valStr +")";
|
|
|
+
|
|
|
+ UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.in("p_key_id",tableInfo.getPkeyId());
|
|
|
+ updateWrapper.set("is_tab_pdf",2);
|
|
|
+ wbsTreeContractService.update(updateWrapper);
|
|
|
+
|
|
|
+ jdbcTemplate.execute(sqlInfo);
|
|
|
+ // pdf 预览添加
|
|
|
+ //this.getBussPdfInfo(Long.parseLong(tableInfo.getPkeyId()));
|
|
|
}
|
|
|
- keyStr=keyStr.substring(0,keyStr.lastIndexOf(","));
|
|
|
- valStr=valStr.substring(0,valStr.lastIndexOf(","));
|
|
|
- sqlInfo = sqlInfo + keyStr+") VALUES (" +valStr +")";
|
|
|
|
|
|
- WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
- .eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,tableInfo.getContractId()));
|
|
|
+ try{
|
|
|
+ //获取节点
|
|
|
+ WbsTreeContract wbsTreeContract = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, tableInfoList.get(0).getPkeyId()));
|
|
|
+
|
|
|
+ WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
+ .eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId, wbsTreeContract.getContractId()));
|
|
|
//处理文件提名
|
|
|
- String fileName = this.wbsParamService.createFileTitle(Func.isNotEmpty(wbsTreeContractByP.getOldId())? Long.valueOf(wbsTreeContractByP.getOldId()) :wbsTreeContractByP.getId(), Long.parseLong(wbsTreeContractByP.getContractId()));
|
|
|
+ String fileName = this.wbsParamService.createFileTitle(Func.isNotEmpty(wbsTreeContractByP.getOldId())? Long.valueOf(wbsTreeContractByP.getOldId()) :wbsTreeContractByP.getId(), Long.parseLong(wbsTreeContractByP.getContractId()));
|
|
|
fileName = StringUtils.isNotEmpty(fileName) ? fileName : "缺少文件提名配置";
|
|
|
|
|
|
//huangjn 保存成功后调用生成资料查询列表数据
|
|
|
- this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "业务ID(主要将来给首件使用)", fileName, Integer.parseInt(tableInfo.getClassify()), 2,"是否是首件(临时,暂时没用到)");
|
|
|
-
|
|
|
- UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
|
|
|
- updateWrapper.in("p_key_id",tableInfo.getPkeyId());
|
|
|
- updateWrapper.set("is_tab_pdf",2);
|
|
|
- wbsTreeContractService.update(updateWrapper);
|
|
|
-
|
|
|
- jdbcTemplate.execute(sqlInfo);
|
|
|
- // pdf 预览添加
|
|
|
- //this.getBussPdfInfo(Long.parseLong(tableInfo.getPkeyId()));
|
|
|
+ this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "业务ID(主要将来给首件使用)", fileName, Integer.parseInt(tableInfoList.get(0).getClassify()), 2,"是否是首件(临时,暂时没用到)");
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|