Sfoglia il codice sorgente

自定义表单相关

zhouyy 2 mesi fa
parent
commit
d33d5c4355

+ 15 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TableColumnController.java

@@ -20,6 +20,20 @@ public class TableColumnController {
     @Resource
     private CusTableColumnService cusTableColumnService;
 
+    @PostMapping("/getFormJsonByFormId")
+    public HttpRespMsg getFormJsonByFormId(@RequestParam("formId") Integer formId,HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getFormJsonByFormId(formId,request);
+        return msg;
+    }
+
+    @PostMapping("/getResByFormJson")
+    public HttpRespMsg getResByFormJson(@RequestParam("formJson") String formJson,HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getResByFormJson(formJson,request);
+        return msg;
+    }
+
     /**获取所有文件夹*/
     @PostMapping("/getAllStoresTree")
     public HttpRespMsg getAllStoresTree(HttpServletRequest request){
@@ -113,4 +127,5 @@ public class TableColumnController {
         msg = cusTableColumnService.getRelateBusTableByFromTable(tableName,request);
         return msg;
     }
+
 }

+ 3 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusReportStore.java

@@ -79,4 +79,7 @@ public class BusReportStore extends Model<BusReportStore> {
 
     @TableField(exist = false)
     private List<BusReportStore> childStoreList = new ArrayList<>();
+
+    @TableField(exist = false)
+    private String formSql;
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusinessOpportunity.java

@@ -74,7 +74,7 @@ public class BusinessOpportunity extends Model<BusinessOpportunity> {
      * 商机金额
      */
     @TableField("amount_of_money")
-    private String amountOfMoney;
+    private BigDecimal amountOfMoney;
 
     /**
      * 预计成交日期

+ 5 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/CusReportForm.java

@@ -53,12 +53,15 @@ public class CusReportForm extends Model<CusReportForm> {
     @TableField("form_json")
     private String formJson;
 
+    @TableField("form_field_head")
+    private String formFieldHead;
+
     @TableField(exist = false)
-    private List<Integer> departmentIds;
+    private String departmentIds;
 
 
     @TableField(exist = false)
-    private List<String> userIds;
+    private String userIds;
 
     @TableField(exist = false)
     private List<ReportFormAccess> deptAccessList;

+ 1 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/provider/CusTableColumnProvider.java

@@ -8,6 +8,7 @@ public class CusTableColumnProvider {
                 .append("'")
                 .append(tableName).append("'")
                 .append(" AND COLUMN_NAME not like '%_id%' AND COLUMN_NAME not like '%id%' ")
+                .append(" AND COLUMN_NAME not like '%seq%'")
         ;
         return stringBuilder.toString();
     }

+ 4 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CusTableColumnService.java

@@ -33,4 +33,8 @@ public interface CusTableColumnService extends IService<CusTableColumn> {
     HttpRespMsg moveFormStore(Integer formId,Integer targetStoreId, HttpServletRequest request);
 
     HttpRespMsg getAllStoresTree(HttpServletRequest request);
+
+    HttpRespMsg getResByFormJson(String formJson, HttpServletRequest request);
+
+    HttpRespMsg getFormJsonByFormId(Integer formId, HttpServletRequest request);
 }

+ 122 - 15
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CusTableColumnServiceImpl.java

@@ -125,7 +125,7 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
     public HttpRespMsg getRelateBusTableByFromTable(String tableName, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         List<BusObjRelation> relationList = busObjRelationMapper.selectList(new LambdaQueryWrapper<BusObjRelation>()
-                .select(BusObjRelation::getToTbl, BusObjRelation::getFromColBusName)
+//                .select(BusObjRelation::getToTbl, BusObjRelation::getFromColBusName)
                 .eq(BusObjRelation::getFromTbl, tableName)
         );
         msg.setData(relationList);
@@ -231,7 +231,7 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
             cusReportForm.setExecuteSql(s);
             if(null == cusReportForm.getId()){
 
-                Company company = companyMapper.selectById(user.getId());
+                Company company = companyMapper.selectById(user.getCompanyId());
                 if(1 == company.getVersionControl()){
                     Integer count = busReportStoreMapper.selectCount(new LambdaQueryWrapper<BusReportStore>()
                             .eq(BusReportStore::getCompanyId, user.getCompanyId())
@@ -242,6 +242,10 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
                     }
                 }
 
+                cusReportForm.setCreateBy(user.getId());
+                cusReportForm.setCompanyId(user.getCompanyId());
+                cusReportFormMapper.insert(cusReportForm);
+
                 BusReportStore lastStore = busReportStoreMapper.selectOne(new LambdaQueryWrapper<BusReportStore>()
                         .eq(BusReportStore::getCompanyId, user.getCompanyId())
                         .eq(BusReportStore::getParentStoreId, cusReportForm.getParentStoreId())
@@ -249,6 +253,7 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
                         .last(" limit 1")
                 );
                 BusReportStore busReportStore = new BusReportStore();
+                busReportStore.setRelateFormId(cusReportForm.getId());
                 busReportStore.setStoreName(cusReportForm.getReportFormName());
                 busReportStore.setCreateBy(user.getId());
                 busReportStore.setStoreType(2);
@@ -262,27 +267,46 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
                 }
                 busReportStoreMapper.insert(busReportStore);
 
-                cusReportForm.setCreateBy(user.getId());
-                cusReportForm.setCompanyId(user.getCompanyId());
-                cusReportFormMapper.insert(cusReportForm);
-
                 List<ReportFormAccess> toAddList = new ArrayList<>();
 //            List<ReportFormAccess> deptAccessList = cusReportForm.getDeptAccessList();
-                List<Integer> departmentIds = cusReportForm.getDepartmentIds();
-                if(CollectionUtils.isNotEmpty(departmentIds)){
-                    for (Integer deptId: departmentIds) {
+                if(StringUtils.isNotBlank(cusReportForm.getDepartmentIds())){
+                    String[] departmentIds = cusReportForm.getDepartmentIds().split(",");
+                    for (String deptId: departmentIds) {
                         ReportFormAccess reportFormAccess = new ReportFormAccess();
                         reportFormAccess.setRelateFormId(cusReportForm.getId());
                         reportFormAccess.setCompanyId(user.getCompanyId());
                         reportFormAccess.setAccessType(2);
-                        reportFormAccess.setDepartmentId(deptId);
+                        reportFormAccess.setDepartmentId(Integer.parseInt(deptId));
                         toAddList.add(reportFormAccess);
                     }
                 }
 
+//                List<Integer> departmentIds = cusReportForm.getDepartmentIds();
+//                if(CollectionUtils.isNotEmpty(departmentIds)){
+//                    for (Integer deptId: departmentIds) {
+//                        ReportFormAccess reportFormAccess = new ReportFormAccess();
+//                        reportFormAccess.setRelateFormId(cusReportForm.getId());
+//                        reportFormAccess.setCompanyId(user.getCompanyId());
+//                        reportFormAccess.setAccessType(2);
+//                        reportFormAccess.setDepartmentId(deptId);
+//                        toAddList.add(reportFormAccess);
+//                    }
+//                }
+
 //            List<ReportFormAccess> userAccessList = cusReportForm.getUserAccessList();
-                List<String> userIds = cusReportForm.getUserIds();
-                if(CollectionUtils.isNotEmpty(userIds)){
+//                List<String> userIds = cusReportForm.getUserIds();
+//                if(CollectionUtils.isNotEmpty(userIds)){
+//                    for (String userId: userIds) {
+//                        ReportFormAccess reportFormAccess = new ReportFormAccess();
+//                        reportFormAccess.setRelateFormId(cusReportForm.getId());
+//                        reportFormAccess.setCompanyId(user.getCompanyId());
+//                        reportFormAccess.setAccessType(1);
+//                        reportFormAccess.setUserId(userId);
+//                        toAddList.add(reportFormAccess);
+//                    }
+//                }
+                if(StringUtils.isNotBlank(cusReportForm.getUserIds())){
+                    String[] userIds = cusReportForm.getUserIds().split(",");
                     for (String userId: userIds) {
                         ReportFormAccess reportFormAccess = new ReportFormAccess();
                         reportFormAccess.setRelateFormId(cusReportForm.getId());
@@ -292,7 +316,29 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
                         toAddList.add(reportFormAccess);
                     }
                 }
-                reportFormAccessMapper.batchInsert(toAddList);
+//                List<List<ReportFormAccess>> all = new ArrayList<>();
+//                if (toAddList.size() > 500) {
+//                    int i = 0;
+//                    while (i < toAddList.size()) {
+//                        List<ReportFormAccess> subList;
+//                        if (i + 500 > toAddList.size()) {
+//                            subList = toAddList.subList(i, toAddList.size());
+//                        } else {
+//                            subList = toAddList.subList(i, i + 500);
+//                        }
+//                        i = i + 500;
+//                        all.add(subList);
+//                    }
+//                    for (List<ReportFormAccess> reportFormAccesses : all) {
+//                        reportFormAccessMapper.batchInsert(reportFormAccesses);
+//                    }
+//                } else {
+//                    reportFormAccessMapper.batchInsert(toAddList);
+//                }
+                for (ReportFormAccess reportFormAccess : toAddList) {
+                    reportFormAccessMapper.insert(reportFormAccess);
+                }
+//                reportFormAccessMapper.batchInsert(toAddList);
 
             }else{
                 BusReportStore busReportStore = busReportStoreMapper.selectOne(new LambdaQueryWrapper<BusReportStore>()
@@ -300,6 +346,7 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
                 );
                 if(null != busReportStore){
                     busReportStore.setStoreName(cusReportForm.getReportFormName());
+                    busReportStore.setRelateFormId(cusReportForm.getId());
                     busReportStore.setUpdateBy(user.getId());
                     busReportStore.setUpdateTime(new Date());
                     busReportStore.setParentStoreId(cusReportForm.getParentStoreId());
@@ -331,7 +378,31 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
                     reportFormAccessMapper.delete(new LambdaQueryWrapper<ReportFormAccess>()
                             .eq(ReportFormAccess::getRelateFormId, cusReportForm.getId())
                     );
-                    reportFormAccessMapper.batchInsert(toAddList);
+
+//                    List<List<ReportFormAccess>> all = new ArrayList<>();
+//                    if (toAddList.size() > 500) {
+//                        int i = 0;
+//                        while (i < toAddList.size()) {
+//                            List<ReportFormAccess> subList;
+//                            if (i + 500 > toAddList.size()) {
+//                                subList = toAddList.subList(i, toAddList.size());
+//                            } else {
+//                                subList = toAddList.subList(i, i + 500);
+//                            }
+//                            i = i + 500;
+//                            all.add(subList);
+//                        }
+//                        for (List<ReportFormAccess> reportFormAccesses : all) {
+//                            reportFormAccessMapper.batchInsert(reportFormAccesses);
+//                        }
+//                    } else {
+//                        reportFormAccessMapper.batchInsert(toAddList);
+//                    }
+
+                    for (ReportFormAccess reportFormAccess : toAddList) {
+                        reportFormAccessMapper.insert(reportFormAccess);
+                    }
+//                    reportFormAccessMapper.batchInsert(toAddList);
 
                 }else{
                     msg.setError("未找到对应报表");
@@ -444,12 +515,48 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
         User user = userMapper.selectById(request.getHeader("token"));
         List<BusReportStore> busReportStores = busReportStoreMapper.selectList(new LambdaQueryWrapper<BusReportStore>()
                 .eq(BusReportStore::getCompanyId, user.getCompanyId())
+                .ne(BusReportStore::getStoreType,2)
         );
         List<BusReportStore> listTree = this.listToTree(busReportStores);
         msg.setData(listTree);
         return msg;
     }
 
+    @Override
+    public HttpRespMsg getResByFormJson(String formJson, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<Map<String,Object>> columnList = new ArrayList<>();
+        Matcher deleteMatcher = DELETE_SGIN_PATTERN.matcher(formJson);
+        Matcher updateMatcher = UPDATE_SIGN_PATTERN.matcher(formJson);
+        Matcher insertMatcher = INSERT_SIGN_PATTERN.matcher(formJson);
+        if (deleteMatcher.find() || updateMatcher.find() || insertMatcher.find()) {
+            msg.setError("包含非法字符,无法执行");
+            return msg;
+        }
+        try (Connection connection = dataSource.getConnection()) {
+            PreparedStatement preparedStatement = connection.prepareStatement(formJson);
+            ResultSet resultSet = preparedStatement.executeQuery();
+            columnList = this.convertList(resultSet);
+        }catch (SQLException e) {
+            e.printStackTrace();
+            msg.setError("SQL语句有误,请联系管理员");
+            return msg;
+        }
+        msg.setData(columnList);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getFormJsonByFormId(Integer formId, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        CusReportForm cusReportForm = cusReportFormMapper.selectById(formId);
+//        Map<String,Object> map = new HashMap<>();
+//        map.put("formJson",cusReportForm.getFormJson());
+//        map.put("formFieldHead",cusReportForm.getFormFieldHead());
+        msg.setData(cusReportForm.getFormJson());
+        return msg;
+    }
+
     private List<BusReportStore> listToTree(List<BusReportStore> treeNodeList){
         if(null == treeNodeList){
             return null;
@@ -481,7 +588,7 @@ public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper,
             while (rs.next()) {
                 Map<String, Object> rowData = new HashMap<String, Object>();
                 for (int i = 1; i <= columnCount; i++) {
-                    rowData.put(md.getColumnName(i), rs.getObject(i));
+                    rowData.put(md.getTableName(i)+"_"+md.getColumnName(i), rs.getObject(i));
                 }
                 list.add(rowData);
             }

+ 4 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/SalesOrderServiceImpl.java

@@ -1189,7 +1189,8 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         int contactsCount = contactsService.count(contactsLambdaQueryWrapper);
         int businessOpportunityCount = businessOpportunityService.count(businessOpportunityLambdaQueryWrapper);
         List<BusinessOpportunity> businessOpportunityList = businessOpportunityService.list(businessOpportunityLambdaQueryWrapper);
-        double businessOpportunityPrice = businessOpportunityList.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b ->Double.valueOf(b.getAmountOfMoney())).sum();
+//        double businessOpportunityPrice = businessOpportunityList.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b ->Double.valueOf(b.getAmountOfMoney())).sum();
+        double businessOpportunityPrice = businessOpportunityList.stream().filter(b->null != b.getAmountOfMoney()).mapToDouble(b ->b.getAmountOfMoney().doubleValue()).sum();
         Integer salesOrderCount = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper);
         List<SalesOrder> salesOrders = salesOrderMapper.selectList(salesOrderLambdaQueryWrapper);
         double salesOrdersPrice = salesOrders.stream().filter(i->i.getPrice()!=null).mapToDouble(s -> s.getPrice().doubleValue()).sum();
@@ -1204,7 +1205,8 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         int contactsCount1 = contactsService.count(contactsLambdaQueryWrapper1);
         int businessOpportunityCount1 = businessOpportunityService.count(businessOpportunityLambdaQueryWrapper1);
         List<BusinessOpportunity> businessOpportunityList1 = businessOpportunityService.list(businessOpportunityLambdaQueryWrapper1);
-        double businessOpportunityPrice1 = businessOpportunityList1.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b -> Double.valueOf(b.getAmountOfMoney())).sum();
+//        double businessOpportunityPrice1 = businessOpportunityList1.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b -> Double.valueOf(b.getAmountOfMoney())).sum();
+        double businessOpportunityPrice1 = businessOpportunityList1.stream().filter(b->null != b.getAmountOfMoney()).mapToDouble(b -> b.getAmountOfMoney().doubleValue()).sum();
         Integer salesOrderCount1 = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper1);
         List<SalesOrder> salesOrders1 = salesOrderMapper.selectList(salesOrderLambdaQueryWrapper1);
         double salesOrdersPrice1 = salesOrders1.stream().filter(s->s.getPrice()!=null).mapToDouble(s ->s.getPrice().doubleValue()).sum();

+ 2 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -305,7 +304,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 //获取当前角色的权限菜单
                 setUserRoleMenu(userVO);
                 //获取supersonicToken
-                if(superSonicConfig.getSupersonicUse()){
+                /*if(superSonicConfig.getSupersonicUse()){
                     String superSonicToken = getSuperSonicToken();
                     if(org.apache.commons.lang3.StringUtils.isBlank(superSonicToken)){
                         httpRespMsg.setError(MessageUtils.message("user.supersonicLogin"));
@@ -328,7 +327,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                         }
 
                     }
-                }
+                }*/
                 httpRespMsg.data = userVO;
             }else {
                 httpRespMsg.setError(MessageUtils.message("user.pwdError"));

+ 5 - 4
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusReportStoreMapper.xml

@@ -6,7 +6,8 @@
     <select id="getPrivilegedFormStore" resultType="com.management.platform.entity.BusReportStore">
         select  brs.id,brs.store_type,brs.store_name,brs.parent_store_id,brs.create_by,brs.create_time
              ,brs.update_by,brs.update_time,brs.description
-             ,brs.order_item,brs.relate_form_id,brs.company_id,u1.name as createName,u2.name as updateName
+             ,brs.order_item,brs.relate_form_id,brs.company_id,'' as formSql
+             ,u1.name as createName,u2.name as updateName
         from bus_report_store brs
         left join user u1 on brs.create_by = u1.id
         left join user u2 on brs.update_by = u2.id
@@ -15,14 +16,14 @@
         select tmp.*,u1.name as createName,u2.name as updateName from (
                         select  brs.id,brs.store_type,brs.store_name,brs.parent_store_id,brs.create_by,brs.create_time
                              ,brs.update_by,brs.update_time,brs.description
-                             ,brs.order_item,brs.relate_form_id,brs.company_id
+                             ,brs.order_item,brs.relate_form_id,brs.company_id,crf.execute_sql as formSql
                         from bus_report_store brs
                                  left join cus_report_form crf on brs.relate_form_id = crf.id
                         where store_type = 2 and brs.company_id = #{queryBO.companyId} and brs.parent_store_id = #{queryBO.parentStoreId}
                           and (
                             crf.privilege = 1 or (crf.privilege = 2 and
                                                   exists(
-                                                      select 1 from report_from_access rfa where brs.relate_form_id = rfa.relate_form_id
+                                                      select 1 from report_form_access rfa where brs.relate_form_id = rfa.relate_form_id
                                                        and (rfa.user_id = #{queryBO.userId} or rfa.department_id = #{queryBO.departmentId} )
                                                   )
                                 )
@@ -30,6 +31,6 @@
                     )tmp
                         left join user u1 on tmp.create_by = u1.id
                         left join user u2 on tmp.update_by = u2.id
-        order by order_item
+        order by store_type asc,order_item asc
     </select>
 </mapper>

+ 3 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/ReportFormAccessMapper.xml

@@ -3,7 +3,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.management.platform.mapper.ReportFormAccessMapper">
     <insert id="batchInsert">
-        insert into report_from_access (relate_form_id, access_type, user_id, department_id, company_id) VALUES
+        insert into report_form_access (relate_form_id, access_type, user_id, department_id, company_id) VALUES
         <foreach collection="toAddList" item="toAddItem" separator=",">
             (#{toAddItem.relateFormId},#{toAddItem.accessType},#{toAddItem.userId}
             ,#{toAddItem.departmentId},#{toAddItem.companyId})
@@ -14,7 +14,7 @@
         select rfa.id,rfa.company_id,rfa.user_id
              ,rfa.department_id,rfa.relate_form_id,rfa.access_type
              ,u.name as finalName
-        from report_from_access rfa
+        from report_form_access rfa
                  left join user u on rfa.user_id = u.id
         where rfa.company_id = #{companyId} and rfa.access_type = 1
           and rfa.relate_form_id in
@@ -25,7 +25,7 @@
         select rfa.id,rfa.company_id,rfa.user_id
              ,rfa.department_id,rfa.relate_form_id,rfa.access_type
              ,d.department_name  as finalName
-        from report_from_access rfa
+        from report_form_access rfa
                  left join department d on rfa.department_id = d.department_id
         where rfa.company_id = #{companyId}  and rfa.access_type = 2
           and rfa.relate_form_id in