From 4520ee3071cf1a7d7e3d2622d0f33e99b29c5a1b Mon Sep 17 00:00:00 2001 From: liangcheng <1546584672@qq.com> Date: Wed, 17 Sep 2025 17:29:56 +0800 Subject: [PATCH] =?UTF-8?q?feat=20no.3896941=20=E6=96=B0=E5=A2=9E=E8=80=83?= =?UTF-8?q?=E5=8B=A4=E6=97=A5=E6=8A=A5=E3=80=81=E6=9C=88=E6=8A=A5Eb?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E3=80=90=E8=80=83=E5=8B=A4=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E3=80=91=E6=8C=89=E9=92=AE=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chapanda/annotation/FormItem.java | 4 ++ .../controller/AttendSyncFormController.java | 28 +++++++++++ .../entity/dto/AttendSyncFormDTO.java | 48 +++++++++++++++++++ .../service/AttendSyncFormService.java | 15 ++++++ .../impl/AttendSyncFormServiceImpl.java | 17 +++++++ .../seconddev/chapanda/util/FormatUtil.java | 6 +++ 6 files changed, 118 insertions(+) create mode 100644 secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/controller/AttendSyncFormController.java create mode 100644 secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/entity/dto/AttendSyncFormDTO.java create mode 100644 secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/AttendSyncFormService.java create mode 100644 secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/impl/AttendSyncFormServiceImpl.java diff --git a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/annotation/FormItem.java b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/annotation/FormItem.java index 43861dc..fe3654c 100644 --- a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/annotation/FormItem.java +++ b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/annotation/FormItem.java @@ -51,4 +51,8 @@ public @interface FormItem { int precision() default 5; boolean needNumberSetting() default false; + + boolean browserShowCheckStrictly() default true; + + String datepickerType() default "day"; } diff --git a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/controller/AttendSyncFormController.java b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/controller/AttendSyncFormController.java new file mode 100644 index 0000000..4a429b8 --- /dev/null +++ b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/controller/AttendSyncFormController.java @@ -0,0 +1,28 @@ +package com.weaver.seconddev.chapanda.controller; + +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.component.form.WeaForm; +import com.weaver.seconddev.chapanda.service.AttendSyncFormService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/secondev/chapanda/attendSync") +@WeaPermission(publicPermission = true) +public class AttendSyncFormController { + + @Autowired + private AttendSyncFormService attendSyncFormService; + + @GetMapping("/getForm") + @ApiOperation("获取表单") + public WeaResult getFrom(@RequestParam(value = "id", required = false) Long id) { + return WeaResult.success(attendSyncFormService.getForm()); + } + +} \ No newline at end of file diff --git a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/entity/dto/AttendSyncFormDTO.java b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/entity/dto/AttendSyncFormDTO.java new file mode 100644 index 0000000..00ceac2 --- /dev/null +++ b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/entity/dto/AttendSyncFormDTO.java @@ -0,0 +1,48 @@ +package com.weaver.seconddev.chapanda.entity.dto; + +import com.weaver.common.component.form.item.WeaFormItemType; +import com.weaver.seconddev.chapanda.annotation.Form; +import com.weaver.seconddev.chapanda.annotation.FormItem; +import com.weaver.seconddev.chapanda.annotation.TableColumn; +import com.weaver.seconddev.chapanda.common.BaseDTO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AttendSyncFormDTO { + + @Form( + label = "考勤周期", + labelId = 0, + items = { + @FormItem(itemType = WeaFormItemType.DATEPICKER, required = true,datepickerType = "month") + }, + group = "baseInfo" + ) + private String attendMonth; + + @Form( + label = "人员", + labelId = 0, + items = { + @FormItem(browserModule = "attend/web",itemType = WeaFormItemType.BROWSER, browserType = "resource", required = true, browserMultiple = true) + } + ) + private BaseDTO resource; + + + @Form( + label = "部门范围", + labelId = 0, + items = { + @FormItem(browserModule = "attend/web", itemType = WeaFormItemType.BROWSER, browserType = "department", required = true, browserMultiple = true) + } + ) + private BaseDTO deptScope; + +} diff --git a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/AttendSyncFormService.java b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/AttendSyncFormService.java new file mode 100644 index 0000000..81189fa --- /dev/null +++ b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/AttendSyncFormService.java @@ -0,0 +1,15 @@ +package com.weaver.seconddev.chapanda.service; + +import com.weaver.common.component.form.WeaForm; +import com.weaver.common.component.search.WeaSearchCondition; +import com.weaver.common.component.table.WeaTable; +import com.weaver.common.component.table.page.Page; +import com.weaver.seconddev.chapanda.entity.dto.DemoListDTO; +import com.weaver.seconddev.chapanda.entity.dto.OrderTypeListDTO; +import com.weaver.seconddev.chapanda.entity.param.DemoQueryParam; +import com.weaver.seconddev.chapanda.entity.param.OrderTypeQueryParam; + +public interface AttendSyncFormService { + + WeaForm getForm(); +} diff --git a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/impl/AttendSyncFormServiceImpl.java b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/impl/AttendSyncFormServiceImpl.java new file mode 100644 index 0000000..981f927 --- /dev/null +++ b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/service/impl/AttendSyncFormServiceImpl.java @@ -0,0 +1,17 @@ +package com.weaver.seconddev.chapanda.service.impl; + +import com.weaver.common.component.form.WeaForm; +import com.weaver.seconddev.chapanda.entity.dto.AttendSyncFormDTO; +import com.weaver.seconddev.chapanda.service.AttendSyncFormService; +import com.weaver.seconddev.chapanda.util.FormatUtil; +import org.springframework.stereotype.Service; + +@Service +public class AttendSyncFormServiceImpl implements AttendSyncFormService { + + @Override + public WeaForm getForm() { + AttendSyncFormDTO attendSyncFormDTO = new AttendSyncFormDTO(); + return FormatUtil.getInstance().buildForm(AttendSyncFormDTO.class, attendSyncFormDTO); + } +} diff --git a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/util/FormatUtil.java b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/util/FormatUtil.java index 47f46e2..d3c63dc 100644 --- a/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/util/FormatUtil.java +++ b/secondev-chapanda-attend/src/main/java/com/weaver/seconddev/chapanda/util/FormatUtil.java @@ -258,6 +258,7 @@ public class FormatUtil { weaBrowserBean.setCompleteParams(ImmutableMap.of("publishStatus", "ALL")); weaBrowserBean.setRequestHeaderParams(ImmutableMap.of("ebBusinessid", "10000000000000000")); } + weaBrowserBean.setShowCheckStrictly(itemAnnotation.browserShowCheckStrictly()); weaFormItem.setBrowserBean(weaBrowserBean); break; case TYPESBROWSER: @@ -271,6 +272,11 @@ public class FormatUtil { weaFormItem.setShareBrowserBean(shareBrowserBean); weaFormItem.setOtherParams(ImmutableMap.of("showShareDetail", "true")); break; + case DATEPICKER: + Map otherParams = new HashMap<>(); + otherParams.put("type",itemAnnotation.datepickerType()); + weaFormItem.setOtherParams(otherParams); + break; case LOCALE: String tablefield = ""; MultiLanguage languageAnnotation = f.getAnnotation(MultiLanguage.class);