package com.product.face.service; import cn.hutool.core.map.MapBuilder; import cn.hutool.core.map.MapUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import com.aspose.slides.p2cbca448.and; import com.google.common.collect.Lists; import com.product.admin.service.SystemFaceService; import com.product.common.lang.StringUtils; import com.product.core.cache.util.RedisUtil; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.service.support.AbstractBaseService; import com.product.face.config.ErrorCode; import com.product.face.config.FaceConst; import com.product.face.entity.FaceEntity; import com.product.face.entity.FaceListEntity; import com.product.face.entity.TableColumn; import com.product.face.util.FaceUtil; import com.product.util.BaseUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author cheng * @Date 2023/5/16 18:36 * @Desc 表单使用 */ @Service public class FaceApplyService extends AbstractBaseService { @Resource private SystemFaceService systemFaceService; @Resource private FaceCacheService faceCacheService; /** * 获取表单配置 * @param fse * @return */ public Object getFaceListConf(FieldSetEntity fse) { String faceUuid = fse.getString(FaceConst.FIELD_FACE_UUID); String faceNumber = fse.getString(FaceConst.FIELD_FACE_NUMBER); if (StringUtils.isEmpty(faceNumber) && StringUtils.isEmpty(faceUuid)) { throw new BaseException(ErrorCode.REQUEST_PARAM_ERROR); } if (!StringUtils.isEmpty(faceUuid) && StringUtils.isEmpty(faceNumber)) { return systemFaceService.getFaceFieldList(faceUuid); } FaceListEntity faceListCache = faceCacheService.getFaceListCache(faceNumber); if (faceListCache == null) { throw new BaseException(ErrorCode.GET_FACE_CONF_FAIL); } return faceListCache; } /** * 录入表单获取表单配置 * * @param fse * @return * @throws BaseException */ public String getFaceFormConfig(FieldSetEntity fse) throws BaseException { FaceEntity faceFormCache = faceCacheService.getFaceFormCache(fse.getString(FaceConst.FIELD_FACE_NUMBER)); if (faceFormCache == null) { throw new BaseException(ErrorCode.GET_FACE_CONF_FAIL); } return BaseUtil.success(faceFormCache.getData(), MapUtil.builder("drawingList", (Object) faceFormCache.getDrawingList()).map()); } public List getFaceReference(FieldSetEntity fse) throws BaseException { String faceNumber = fse.getString("face_number"); if (StringUtils.isEmpty(faceNumber)) { return null; } String[] faceNumberArr = faceNumber.split(","); StringBuilder sql = new StringBuilder(); sql.append(" select case when c.property_value like '%prompt' then a.property_value else concat('《',a.property_value,'》') end as property_value from product_sys_face_control_property a "); sql.append(" join product_sys_face_control_property b on a.group_uuid=b.group_uuid and a.uuid!=b.uuid "); sql.append(" join product_sys_face_control_property c on b.uuid=c.parent_uuid "); sql.append(" where a.property_name='advanceName' and a.master_uuid in (SELECT uuid from product_sys_face where face_type=2 and ").append(BaseUtil.buildQuestionMarkFilter("face_number", faceNumberArr.length, true)).append(") "); sql.append(" and b.property_name='__config__' and c.property_name='tag' GROUP BY 1 "); DataTableEntity dte = getBaseDao().listTable(sql.toString(), faceNumberArr); List list = Lists.newArrayList(); if (DataTableEntity.isEmpty(dte)) { return list; } for (int i = 0; i < dte.getRows(); i++) { FieldSetEntity fs = dte.getFieldSetEntity(i); list.add(fs.getString("property_value")); } return list; } }