hongchuangyanfa 1 year ago
parent
commit
e719c473e0

+ 0 - 1
blade-common/src/main/java/org/springblade/common/utils/AsyncConfigurer.java

@@ -32,7 +32,6 @@ public class AsyncConfigurer {
                 , new ThreadPoolExecutor.DiscardOldestPolicy(), "manager-thread-pool");
     }
 
-
     /**
      * 线程池配置
      *

+ 3 - 3
blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml

@@ -171,9 +171,9 @@
         CASE (select count(tcf.id) from u_tree_contract_first AS tcf where tcf.is_deleted = 0 and tcf.wbs_node_id = wtc.p_key_id) WHEN 0 THEN 'false' ELSE 'true' END AS isFirst,
 			 ( SELECT count(1) from m_wbs_tree_contract where id in(SELECT parent_id from m_wbs_tree_contract a where a.is_deleted=0 and a.type=2 and table_owner in(1,2,3)) and contract_id=wtc.contract_id and type =1 and is_deleted=0 and (FIND_IN_SET(wtc.id,ancestors) or wtc.p_key_id=p_key_id)
 				) as allCount,
-			 (SELECT count(1) from m_wbs_tree_contract a ,u_information_query b where a.p_key_id=b.wbs_id and FIND_IN_SET(wtc.id,a.ancestors)  and a.contract_id=wtc.contract_id and b.is_deleted=0 and a.is_deleted=0 and a.`status`=0 and b.classify=1) as savaCont,
-			 (SELECT count(1) from m_wbs_tree_contract a ,u_information_query b where a.p_key_id=b.wbs_id and FIND_IN_SET(wtc.id,a.ancestors)  and a.contract_id=wtc.contract_id and b.is_deleted=0 and a.is_deleted=0 and a.`status`=1 and b.classify=1) as submitCount,
-			 (SELECT count(1) from m_wbs_tree_contract a ,u_information_query b where a.p_key_id=b.wbs_id and FIND_IN_SET(wtc.id,a.ancestors)  and a.contract_id=wtc.contract_id and b.is_deleted=0 and a.is_deleted=0 and a.`status`=2 and b.classify=1) as appCount
+			 (SELECT count(1) from u_information_query b where b.wbs_id in(SELECT p_key_id from m_wbs_tree_contract a where (FIND_IN_SET(wtc.id,a.ancestors) or wtc.p_key_id=a.p_key_id) and a.is_deleted=0 and a.`status`='0' ) and b.is_deleted=0 and b.classify=1) as savaCont,
+			 (SELECT count(1) from u_information_query b where b.wbs_id in(SELECT p_key_id from m_wbs_tree_contract a where (FIND_IN_SET(wtc.id,a.ancestors) or wtc.p_key_id=a.p_key_id) and a.is_deleted=0 and a.`status`='1' ) and b.is_deleted=0 and b.classify=1) as submitCount,
+			 (SELECT count(1) from u_information_query b where b.wbs_id in(SELECT p_key_id from m_wbs_tree_contract a where (FIND_IN_SET(wtc.id,a.ancestors) or wtc.p_key_id=a.p_key_id) and a.is_deleted=0 and a.`status`='2' ) and b.is_deleted=0 and b.classify=1) as appCount
 				FROM
         m_wbs_tree_contract AS wtc
         LEFT JOIN u_contract_tree_drawings AS ctd ON ctd.is_deleted = 0 and ctd.process_id = wtc.p_key_id

+ 0 - 5
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -703,11 +703,6 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
         } else {
             //施工合同段
             rootTreeNode = this.queryContractTree(contractId, StringUtils.isNotEmpty(parentId) ? parentId : "0", 1);
-            /*rootTreeNode.stream().forEach(rtn->{
-                if (rtn.getSubmitCounts() > 0L && rtn.getColorStatus() <= 1 && rtn.getNotExsitChild() == false){
-                    rtn.setColorStatus(2);
-                }
-            });*/
         }
         return rootTreeNode;
     }

+ 4 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -549,6 +549,10 @@ public class ExcelTabController extends BladeController {
                                 .attr("@blur", "getRegularExpression(" + regularExpression + ",'" + filedLength + "')")
                                 .attr("v-model", "formData." + attrInfo)
                                 .attr("maxlength", filedLength);
+                        if(element.html().indexOf("el-input") >= 0){
+                            String mousedown = "$event" + "," + "'" + attrInfo + "'";
+                            element.children().get(0).attr("@mousedown.left", "inputLeftClick("+mousedown+")");
+                        }
                     } else {
                         element.children().get(0).attr("placeholder", lastName)
                                 .attr("weighing", maxScore + "").attr("id", attrInfo).attr("keyName", attrInfo)

+ 5 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -257,10 +257,12 @@ public class TextdictInfoController extends BladeController {
 
         String vmode = "formData." + keyname;
         if (textdictInfo.getTextId().equals("input")) { // 文本框
-            element.empty().append("<el-input type='text' id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight' v-model=" + vmode + " placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%' > </el-input>");
+            element.empty().append("<el-input  @mousedown.left='inputLeftClick($event, '"+keyname+"')' type='text' id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight' v-model=" + vmode + " placeholder=" + placeholder + " keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%' > </el-input>");
+
         } else if (textdictInfo.getTextId().equals("textarea")) { // 文本域
             int rowspan = element.attr("ROWSPAN").equals("") ? 0 : Integer.parseInt(element.attr("ROWSPAN"));
-            element.empty().append("<el-input :rows=" + rowspan * 2 + " id=" + keyname + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  type='textarea' placeholder=" + placeholder + " v-model=" + vmode + "    keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'  > </el-input>");
+            element.empty().append("<el-input  :rows=" + rowspan * 2 + " id=" + keyname + " @mousedown.left='inputLeftClick($event, '"+keyname+"')' @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight'  type='textarea' placeholder=" + placeholder + " v-model=" + vmode + "    keyname=" + keyname + " weighing=" + weighing + "  @contextmenu.prevent.native='RightClick(" + parm + ")' trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + " style='width:100%;height:100%'  > </el-input>");
+
         } else if (textdictInfo.getTextId().equals("select")) { // 下拉框
             String selectText = " <el-select id=" + keyname + " v-model=" + vmode + " @keydown.shift.up='keyupShiftUp' @keydown.shift.down='keyupShiftDown' @keydown.shift.left='keyupShiftLeft' @keydown.shift.right='keyupShiftRight' keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">"; //v-model="+keyname+"
             List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
@@ -270,6 +272,7 @@ public class TextdictInfoController extends BladeController {
             }
             selectText += "</el-select>";
             element.empty().append(selectText);
+
         } else if (textdictInfo.getTextId().equals("radio")) { // 单选按钮
 
             String radioText = "<el-radio-group id=" + keyname + " @keyDowns='dateKeydown' v-model=" + vmode + " keyname=" + keyname + " weighing=" + weighing + " placeholder=" + placeholder + " trIndex=" + trindex + " tdIndex=" + tdindex + "  x1=" + x1 + " x2=" + x2 + " y1=" + y1 + " y2=" + y2 + ">";

+ 1 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -30,7 +30,6 @@ import com.mixsmart.utils.RegexUtils;
 import com.spire.xls.CellRange;
 import com.spire.xls.Workbook;
 import com.spire.xls.*;
-import com.spire.xls.core.spreadsheet.collections.XlsHeaderFooterShapeCollection;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -797,7 +796,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 //保存操作记录
                 this.operationLogClient.saveUserOperationLog(1, "资料填报", "工序填报页面", json);
                 // 更新redis
-                informationQueryClient.AsyncWbsTree(wbsTreeContract.getParentId() + "", wbsTreeContract.getParentId() + "", wbsTreeContract.getContractId(), "", "1");
+                informationQueryClient.AsyncWbsTree(wbsTreeContractByP.getParentId()+"",wbsTreeContractByP.getParentId()+"",wbsTreeContractByP.getContractId(),"","1");
             } catch (Exception e) {
                 e.printStackTrace();
                 return R.fail("操作失败");

+ 77 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -31,6 +31,7 @@ import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.utils.DiffListUtil;
 import org.springblade.manager.vo.*;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -50,6 +51,8 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
     private final ContractInfoMapper contractInfoMapper;
 
+    private final JdbcTemplate jdbcTemplate;
+
     @Override
     public List<WbsTreeContract> selectQueryCurrentNodeByAncestors(List<String> ids, String contractId) {
         return this.baseMapper.selectQueryCurrentNodeByAncestors(ids, contractId);
@@ -358,19 +361,68 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
     // 频率添加表单
     @Override
-    public boolean addTabInfoByRan(RangeInfo info,List<Object> moreData,String[] excLenght) throws FileNotFoundException {
+    public boolean addTabInfoByRan(RangeInfo info,List<Object> moreData,String[] excLenght){
         WbsTreeContract wbsInfo = this.baseMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, info.getPkId()));
 
+        String cols = Arrays.stream(excLenght).collect(Collectors.joining(StringPool.COMMA));
         //查询复制表有多少张
         List<WbsTreeContract> wbsTreeContractList = this.baseMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getId, wbsInfo.getId())
                 .eq(WbsTreeContract::getContractId, wbsInfo.getContractId())
                 .eq(WbsTreeContract::getParentId, wbsInfo.getParentId()));
-        List<WbsTreeContract> wbsTreeContractList2 = wbsTreeContractList.stream().filter(wbsTreeContract -> wbsTreeContract.getIsCopeTab() ==null || wbsTreeContract.getIsCopeTab()==3).sorted(Comparator.comparing(WbsTreeContract::getCreateTime).reversed()).collect(Collectors.toList());
+        List<WbsTreeContract> wbsTreeContractList2 = wbsTreeContractList.stream().filter(wbsTreeContract -> wbsTreeContract.getIsCopeTab() ==null || wbsTreeContract.getIsCopeTab()==3).sorted(Comparator.comparing(WbsTreeContract::getCreateTime)).collect(Collectors.toList());
+
+        int indexId = wbsTreeContractList2.indexOf(wbsInfo);
+
         // 判读需要添加几张表
         long tabGroupId = SnowFlakeUtil.getId();
         List<WbsTreeContract> addList = new ArrayList<>();
+        StringBuilder addSql = new StringBuilder();
+        //修改或新增数据
+        for(int i=indexId+1 ; i<wbsTreeContractList2.size();i++){
+             WbsTreeContract wbsTreeContract = wbsTreeContractList2.get(i);
+             List<Map<String, Object>> DataMap = jdbcTemplate.queryForList("select  * from " + wbsInfo.getInitTableName() + " where p_key_id=" + wbsTreeContract.getPKeyId());
+
+             int dataSize = 0;
+             if(moreData.size()>= excLenght.length){
+                 dataSize =excLenght.length;
+             }else{
+                 dataSize =moreData.size();
+                 if(dataSize<=0){
+                     break;
+                 }
+             }
+
+            if(DataMap!=null && DataMap.size()>=1){
+                String dataCol = "";
+                String updateSql = "update "+wbsInfo.getInitTableName()+" set "+info.getKey() +"=";
+                for(int j=0; j<dataSize;j++){
+                    if(j==dataSize-1){
+                        dataCol = dataCol + moreData.get(j) +"_^_"+excLenght[j];
+                    }else{
+                        dataCol = dataCol + moreData.get(j) +"_^_"+excLenght[j]+"☆";
+                    }
+                }
+                updateSql = updateSql + "'"+dataCol +"' where p_key_id=" + wbsTreeContract.getPKeyId() +" ;";
+                moreData = moreData.stream().skip(excLenght.length).map(com.mixsmart.utils.StringUtils::handleNull).collect(Collectors.toList());
+                addSql.append(updateSql);
+            }else{
+                long dataId = SnowFlakeUtil.getId();
+                String insertSql = "insert into "+wbsInfo.getInitTableName() +"(id,p_key_id,"+info.getKey()+") VALUES ("+dataId+","+ wbsTreeContract.getPKeyId()+",'";
+                String dataCol = "";
+                for(int j=0; j<dataSize;j++){
+                    if(j==dataSize-1){
+                        dataCol = dataCol + moreData.get(j) +"_^_"+excLenght[j];
+                    }else{
+                        dataCol = dataCol + moreData.get(j) +"_^_"+excLenght[j]+"☆";
+                    }
+                }
+                insertSql =insertSql+dataCol+"');";
+                moreData = moreData.stream().skip(excLenght.length).map(com.mixsmart.utils.StringUtils::handleNull).collect(Collectors.toList());
+                addSql.append(insertSql);
+            }
+        }
 
         //计算张数
         double tabCount = moreData.size() / Double.parseDouble(excLenght.length+"") ;
@@ -384,7 +436,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 wbsTreeContract.setPKeyId(newPkId);
                 wbsTreeContract.setCreateTime(new Date());
                 wbsTreeContract.setTabGroupId(tabGroupId);
-                String nodeName = wbsTreeContractList2.get(0).getNodeName();
+                String nodeName = wbsTreeContractList2.get(wbsTreeContractList2.size()-1).getNodeName();
 
                 if (nodeName.indexOf("_PL_") >= 0) {
                     String[] oldName = nodeName.split("_PL_");
@@ -406,10 +458,32 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 wbsTreeContract.setPdfUrl("");
                 wbsTreeContract.setIsCopeTab(3); // 代表频率
                 addList.add(wbsTreeContract);
+
+                int dataSize = 0;
+                if(moreData.size()>= excLenght.length){
+                    dataSize =excLenght.length;
+                }else{
+                    dataSize =moreData.size();
+                }
+                long dataId = SnowFlakeUtil.getId();
+                String insertSql = "insert into "+wbsInfo.getInitTableName() +"(id,p_key_id,"+info.getKey()+") VALUES ("+dataId+","+ wbsTreeContract.getPKeyId()+",'";
+                String dataCol = "";
+                for(int j=0; j<dataSize;j++){
+                    if(j==dataSize-1){
+                        dataCol = dataCol + moreData.get(j) +"_^_"+excLenght[j];
+                    }else{
+                        dataCol = dataCol + moreData.get(j) +"_^_"+excLenght[j]+"☆";
+                    }
+                }
+                insertSql =insertSql+dataCol+"');";
+                moreData = moreData.stream().skip(excLenght.length).map(com.mixsmart.utils.StringUtils::handleNull).collect(Collectors.toList());
+                addSql.append(insertSql);
             }
             // 插入数据
             this.baseMapper.insertBatchSomeColumn(addList);
         }
+
+        this.jdbcTemplate.execute(addSql.toString());
         for(WbsTreeContract wbsTreeCont:wbsTreeContractList2){
             UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
             updateWrapper.in("p_key_id", wbsTreeCont.getPKeyId() + "");