6c
2025-10-11 eaa5216743b873e7c8ac37ad952776401a951f82
src/main/java/com/product/mobile/core/service/FaceMobileService.java
@@ -17,6 +17,8 @@
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.core.service.support.AbstractBaseService;
import com.product.face.entity.FaceListEntity;
import com.product.face.service.FaceApplyService;
import com.product.face.util.FaceUtil;
import com.product.mobile.core.config.MobileCoreCode;
import com.product.mobile.core.entity.FaceFieldEntity;
@@ -28,6 +30,7 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Author cheng
@@ -42,6 +45,8 @@
   @Autowired
   public BaseDao baseDao;
   @Autowired
   private FaceApplyService faceApplyService;
   ///获取表单总入口
   /**
@@ -49,9 +54,9 @@
    * @param fse传入表名,或 表UUID
    * @return
    */
   public List<FaceFieldEntity> getFaceConfig(FieldSetEntity fse) {
   public Object getFaceConfig(FieldSetEntity fse) {
      String tableUuid = fse.getString("table_uuid");
        String tableUuid = fse.getString("table_uuid");
      if (tableUuid == null && StringUtils.isNotEmpty(fse.getString("uuid"))
            && StringUtils.isEmpty(fse.getString("table_name"))) {
         //通过业务表信息查表单信息
@@ -80,10 +85,32 @@
         }
      }
      List<FaceFieldEntity> ls = getFaceFieldByTable(fse);
      Object o = getFaceFieldByTable(fse);
      if (o instanceof FaceListEntity) {
            FaceListEntity faceListEntity = (FaceListEntity) o;
            List<FaceListEntity.FaceField> faceFieldList = faceListEntity.getFaceFields();
            List<JSONObject> objList = faceFieldList.stream().map(faceField -> {
                JSONObject obj = JSONObject.parseObject(com.alibaba.fastjson.JSONObject.toJSONString(faceField));
                obj.put("name", obj.getString("columnName"));
                obj.put("field", obj.getString("fieldName"));
                return obj;
            }).collect(Collectors.toList());
         return objList;
      }
      List<FaceFieldEntity> ls = (List<FaceFieldEntity>) o;
      if (ls == null) ls = new ArrayList<FaceFieldEntity>();
      addproperty(tableUuid, fse.getString("table_name"), ls);
      //所有表单uuid自动添加,并为hidden
        // 移动端若是没有配置表单信息,那么就最多显示10个字段,且需要剔除到部分字段
        String clientType = fse.getString("client_type");
        if ("app".equals(clientType)) {
            List<String> exceptList = Arrays.asList("uuid", "org_level_uuid", "created_by", "created_utc_datetime");
            ls = ls.stream().filter(obj -> !exceptList.contains(obj.getField())).collect(Collectors.toList());
            if (ls.size() > 10) {
                ls = ls.subList(0, 10);
            }
        }
      return ls;
   }
@@ -182,6 +209,8 @@
         FaceFieldEntity uuid = new FaceFieldEntity();
         FieldSetEntity f = dte.getFieldSetEntity(j);
         if ("pk".equals(f.getString("field_type"))
//               || "created_by".equals(f.getString("field_name"))
//               || "created_utc_datetime".equals(f.getString("field_name"))
               || "updated_by".equals(f.getString("field_name"))
               || "updated_utc_datetime".equals(f.getString("field_name"))
               || "flowsign".equals(f.getString("field_type"))
@@ -196,6 +225,12 @@
            uuid.setMultiple("1");
         } else {
            uuid.setMultiple("0");
         }
         if ("userids".equals(f.getString("field_type")) || "userid".equals(f.getString("field_type"))) {
            uuid.setOrganizationType("5");
         } else if ("orgUuids".equals(f.getString("field_type")) || "orgUuid".equals(f.getString("field_type"))) {
            uuid.setOrganizationType("2");
         }
         uuid.setComponentType("");
@@ -221,7 +256,7 @@
      }
   }
   public List<FaceFieldEntity> getFaceFieldByTable(FieldSetEntity fse) {
   public Object getFaceFieldByTable(FieldSetEntity fse) {
      String tableUuid = fse.getString("table_uuid");
      String tableName = fse.getString("table_name");
      if (StringUtils.isEmpty(tableUuid) && !StringUtils.isEmpty(tableName)) {
@@ -233,8 +268,20 @@
      if (StringUtils.isEmpty(tableUuid)) {
         throw new BaseException(MobileCoreCode.SYSTEM_FORM_COUNT);
      }
      FieldSetEntity faceFse = getBaseDao().getFieldSetByFilter("product_sys_face", "table_uuid=? and face_type=2", new Object[]{tableUuid}, true);
      String faceType = BaseUtil.ifNull(fse.getString("face_type"), "2");
        String faceNumber = fse.getString("face_number");
        String filter = "table_uuid=? and face_type=? AND LENGTH(IFNULL(face_number,''))>0";
        Object[] paramArr = new Object[]{tableUuid, faceType};
        if (!StringUtils.isEmpty(faceNumber)) {
            filter = "face_number=?";
            paramArr = new Object[]{faceNumber};
        }
      FieldSetEntity faceFse = getBaseDao().getFieldSetByFilter("product_sys_face", filter, paramArr, true);
      faceFse.setTableName(tableName);
      if ("1".equals(faceType) && !FieldSetEntity.isEmpty(faceFse)) {
         //列表
         return faceApplyService.getFaceListConf(faceFse);
      }
      return getFaceField(faceFse);
   }