From 372c8258446e419d4e44f683efb5390564a22d93 Mon Sep 17 00:00:00 2001 From: zt Date: Thu, 9 Oct 2025 18:32:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=80=83=E5=8B=A4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/BusMrpBaseAppController.java | 160 +++++++++++++ .../app/BusPurchaseDocAppController.java | 214 ++++++++++++++++++ .../impl/SubConstructionUserServiceImpl.java | 7 +- ...usBillofquantitiesVersionsServiceImpl.java | 3 + .../controller/BusAttendanceController.java | 11 +- .../app/BusAttendanceAppController.java | 5 +- .../enums/BusAttendanceClockStatusEnum.java | 6 + .../service/IBusAttendanceService.java | 14 +- .../impl/BusAttendanceServiceImpl.java | 74 +++++- .../controller/app/FlowAppController.java | 22 +- .../listener/WorkflowGlobalListener.java | 2 +- 11 files changed, 498 insertions(+), 20 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusMrpBaseAppController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusMrpBaseAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusMrpBaseAppController.java new file mode 100644 index 00000000..59bc1be5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusMrpBaseAppController.java @@ -0,0 +1,160 @@ +package org.dromara.cailiaoshebei.controller.app; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseBo; +import org.dromara.cailiaoshebei.domain.dto.BusMrpDto; +import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto; +import org.dromara.cailiaoshebei.domain.vo.BusMrpBaseVo; +import org.dromara.cailiaoshebei.domain.vo.BusMrpVo; +import org.dromara.cailiaoshebei.service.IBusMrpBaseService; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.design.domain.BusBillofquantities; +import org.dromara.design.domain.BusBillofquantitiesVersions; +import org.dromara.design.domain.bo.CoryObtainTheListReq; +import org.dromara.design.domain.bo.ObtainAllVersionNumbersReq; +import org.dromara.design.domain.vo.BusBillofquantitiesVo; +import org.dromara.design.domain.vo.ObtainTheListRes; +import org.dromara.design.service.IBusBillofquantitiesService; +import org.dromara.design.service.IBusBillofquantitiesVersionsService; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * app物资-批次需求计划基础信息 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/app/cailiaoshebei/mrpBase") +public class BusMrpBaseAppController extends BaseController { + + private final IBusMrpBaseService busMrpBaseService; + + private final IBusBillofquantitiesVersionsService busBillofquantitiesVersionsService; + + private final IBusBillofquantitiesService busBillofquantitiesService; + + /** + * 查询物资-批次需求计划基础信息列表 + */ + @GetMapping("/list") + public TableDataInfo list(BusMrpBaseBo bo, PageQuery pageQuery) { + return busMrpBaseService.queryPageList(bo, pageQuery); + } + + + /** + * 获取物资-批次需求计划基础信息详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busMrpBaseService.queryById(id)); + } + + + /** + * 删除物资-批次需求计划基础信息 + * + * @param ids 主键串 + */ + @Log(title = "物资-批次需求计划基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busMrpBaseService.deleteWithValidByIds(List.of(ids), true)); + } + + /** + * 批量新增或修改 + */ + @RepeatSubmit() + @PostMapping("/batch") + public R batchAddOrUpdate(@RequestBody BusMrpDto dto) { + return toAjax(busMrpBaseService.batchAddOrUpdate(dto)); + } + + /** + * 获取剩余量 + */ + @GetMapping("/remaining") + public R> remaining(Long projectId, String suppliespriceName,String specification,Long mrpBaseId) { + return R.ok(busMrpBaseService.remaining(projectId,suppliespriceName,specification,mrpBaseId)); + } + + + /** + * 获取所有大类 + */ + @GetMapping("/obtainAllClassification") + public R> obtainAllClassification(ObtainAllVersionNumbersReq bo) { + return R.ok(busBillofquantitiesVersionsService.obtainAllClassification(bo)); + } + + + /** + * 获取工程量清单列表 + */ + @GetMapping("/coryEngineeringList") + public R> obtainTheList(CoryObtainTheListReq req) { + List busBillofquantities = busBillofquantitiesService.getBaseMapper() + .selectList(new LambdaQueryWrapper() + .eq(BusBillofquantities::getProjectId, req.getProjectId()) + .eq(BusBillofquantities::getName, req.getSid())); + List sids = new ArrayList<>(); + busBillofquantities.forEach(busBillofquantities1 -> { + sids.add(busBillofquantities1.getSid()); + }); + return R.ok(busBillofquantitiesService + .getBaseMapper() + .selectList(new LambdaQueryWrapper() + .eq(BusBillofquantities::getProjectId, req.getProjectId()) + .in(BusBillofquantities::getPid, sids))); + } + + private List buildTree(String parentId, Map> parentMap) { + // 获取当前父节点的所有直接子节点 + List children = parentMap.getOrDefault(parentId, Collections.emptyList()); + if (children.isEmpty()) { + return Collections.emptyList(); + } + + // 为每个子节点递归设置其下一级子节点 + for (ObtainTheListRes child : children) { + // 递归查询当前子节点的子节点,设置为它的子树 + List subChildren = buildTree(child.getSid(), parentMap); + // 注意:需要在Vo中添加子节点列表字段,用于存储子树 + child.setChildren(subChildren); + } + + return children; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java new file mode 100644 index 00000000..24ca7da1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/app/BusPurchaseDocAppController.java @@ -0,0 +1,214 @@ +package org.dromara.cailiaoshebei.controller.app; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanBo; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseDocBo; +import org.dromara.cailiaoshebei.domain.bo.FeedbackDto; +import org.dromara.cailiaoshebei.domain.vo.BusMaterialbatchdemandplanVo; +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseDocVo; +import org.dromara.cailiaoshebei.service.IBusMaterialbatchdemandplanService; +import org.dromara.cailiaoshebei.service.IBusPlanDocAssociationService; +import org.dromara.cailiaoshebei.service.IBusPurchaseDocService; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.design.service.IBusBillofquantitiesService; +import org.dromara.design.service.IBusBillofquantitiesVersionsService; +import org.dromara.tender.domain.bo.TenderSupplierInputBo; +import org.dromara.tender.domain.vo.TenderSupplierInputVo; +import org.dromara.tender.service.ITenderSupplierInputService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * app物资-采购联系单 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/app/cailiaoshebei/purchaseDoc") +public class BusPurchaseDocAppController extends BaseController { + + private final IBusPurchaseDocService busPurchaseDocService; + + private final IBusMaterialbatchdemandplanService materialbatchdemandplanService; + + private final IBusPlanDocAssociationService planDocAssociationService; + + private final IBusBillofquantitiesVersionsService busBillofquantitiesVersionsService; + + private final IBusBillofquantitiesService busBillofquantitiesService; + + private final ITenderSupplierInputService tenderSupplierInputService; + + + /** + * 查询物资-采购联系单列表 + */ + @GetMapping("/list") + public TableDataInfo list(BusPurchaseDocBo bo, PageQuery pageQuery) { + return busPurchaseDocService.queryPageList(bo, pageQuery); + } + + /** + * 查询供应商入库列表 + */ + @GetMapping("/supList") + public TableDataInfo list(TenderSupplierInputBo bo, PageQuery pageQuery) { + return tenderSupplierInputService.queryPageList(bo, pageQuery); + } + + /** + * 查询物资-批次需求计划列表 + */ + @GetMapping("/planList") + public TableDataInfo list(BusMaterialbatchdemandplanBo bo, PageQuery pageQuery) { + return materialbatchdemandplanService.queryPageList(bo, pageQuery); + } + + + /** + * 获取物资-采购联系单详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busPurchaseDocService.queryById(id)); + } + + /** + * 获取物资-采购联系单详细PDF + * + * @param id 主键 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:pdf") + @GetMapping("/pdf/{id}") + public R getPic(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok("操作成功", busPurchaseDocService.queryPicBase64ById(id)); + } + + /** + * 新增物资-采购联系单 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:add") + @Log(title = "物资-采购联系单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusPurchaseDocBo bo) { + return toAjax(busPurchaseDocService.insertByBo(bo)); + } + + /** + * 修改物资-采购联系单 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:edit") + @Log(title = "物资-采购联系单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusPurchaseDocBo bo) { + return toAjax(busPurchaseDocService.updateByBo(bo)); + } + + /** + * 删除物资-采购联系单 + * + * @param ids 主键串 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:remove") + @Log(title = "物资-采购联系单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busPurchaseDocService.deleteWithValidByIds(List.of(ids), true)); + } + + + /** + * 查询采购单关联的计划 + */ + @GetMapping("/planList/{id}") + public R> list(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + List list = planDocAssociationService.list(Wrappers.lambdaQuery(BusPlanDocAssociation.class) + .eq(BusPlanDocAssociation::getDocId, id)); + if (CollectionUtil.isEmpty(list)) { + return R.ok(new ArrayList<>()); + } + Map collect = list.stream() + .filter(Objects::nonNull) // 过滤空对象 + .collect(Collectors.toMap( + BusPlanDocAssociation::getPlanId, + BusPlanDocAssociation::getDemandQuantity, + (existing, replacement) -> existing // 保留第一个遇到的重复键 + )); + BusMaterialbatchdemandplanBo bo = new BusMaterialbatchdemandplanBo(); + bo.setIds(new ArrayList<>(collect.keySet())); + List busMaterialbatchdemandplanVos = materialbatchdemandplanService.queryList(bo); + for (BusMaterialbatchdemandplanVo busMaterialbatchdemandplanVo : busMaterialbatchdemandplanVos) { + busMaterialbatchdemandplanVo.setDemandQuantity(collect.get(busMaterialbatchdemandplanVo.getId())); + } + return R.ok(busMaterialbatchdemandplanVos); + } + + + + /** + * 修改回单 + */ + @Log(title = "物资-采购联系单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/updateFeedback") + public R edit(@Validated(EditGroup.class) @RequestBody FeedbackDto bo) { + return toAjax(busPurchaseDocService.updateFeedback(bo)); + } + +// +// /** +// * 获取工程量清单列表 +// */ +// @SaCheckPermission("cailiaoshebei:purchaseDoc:add") +// @GetMapping("/engineeringList") +// public R> obtainTheList(Long projectId) { +// BusBillofquantitiesVersions one = busBillofquantitiesVersionsService.getOne(Wrappers.lambdaQuery() +// .eq(BusBillofquantitiesVersions::getWorkOrderType, "3") //物资工程量清单 +// .eq(BusBillofquantitiesVersions::getProjectId, projectId) +// .eq(BusBillofquantitiesVersions::getStatus, BusinessStatusEnum.FINISH.getStatus()) +// .last("limit 1") +// ); +// if (one == null) { +// throw new ServiceException("请先完成物资工程量清单"); +// } +// List list = busBillofquantitiesService.list(Wrappers.lambdaQuery() +// .eq(BusBillofquantities::getVersions, one.getVersions()) +// ); +// +// return R.ok(list); +// } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java index d07ad2b8..18e81148 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java @@ -76,6 +76,8 @@ import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; +import static org.dromara.project.domain.enums.BusAttendanceClockStatusEnum.ATTENDANCE_LIST; + /** * 施工人员Service业务层处理 * @@ -1194,8 +1196,11 @@ public class SubConstructionUserServiceImpl extends ServiceImpl result = baseMapper.selectVoList(lqw); + if (CollUtil.isEmpty(result)) { + return Collections.emptyList(); + } List versionss = new ArrayList<>(); result.forEach(v -> versionss.add(v.getVersions())); List busBillofquantities = busBillofquantitiesService.getBaseMapper().selectList(new LambdaQueryWrapper() diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java index b9dd35ab..1d5c68dd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusAttendanceController.java @@ -114,11 +114,20 @@ public class BusAttendanceController extends BaseController { return toAjax(busAttendanceService.deleteWithValidByIds(List.of(ids), true)); } - + /** + * 查询项目施工人员前14天考勤状况 + */ @GetMapping("/list/clockDate/twoWeek") public R> getClockDateForTwoWeekList(Long projectId) { return R.ok(busAttendanceService.getClockDateForTwoWeekList(projectId)); } + /** + * 查询项目施工人员当天考勤状况 + */ + @GetMapping("/list/clockDate/today") + public R getTodayAttendanceData(Long projectId) { + return R.ok(busAttendanceService.getTodayAttendanceData(projectId)); + } @PostMapping("/exportList") public void exportList(AttendanceExportDto dto, HttpServletResponse response) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java index 4bf0679c..c4b0ded5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java @@ -1,6 +1,7 @@ package org.dromara.project.controller.app; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jakarta.annotation.Resource; import jakarta.validation.constraints.NotNull; @@ -128,8 +129,8 @@ public class BusAttendanceAppController extends BaseController { * 获取用户打卡异常记录 */ @GetMapping("/getAbnormalAttendance/{projectId}") - public R> getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId){ - return R.ok(attendanceService.getAbnormalAttendance(projectId)); + public TableDataInfo getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId, PageQuery pageQuery){ + return attendanceService.getAbnormalAttendance(projectId,pageQuery); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/enums/BusAttendanceClockStatusEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/enums/BusAttendanceClockStatusEnum.java index efdbf765..354d8eaa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/enums/BusAttendanceClockStatusEnum.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/enums/BusAttendanceClockStatusEnum.java @@ -2,6 +2,8 @@ package org.dromara.project.domain.enums; import lombok.Getter; +import java.util.List; + /** * @author lilemy * @date 2025/4/7 11:31 @@ -9,6 +11,8 @@ import lombok.Getter; @Getter public enum BusAttendanceClockStatusEnum { + + NORMAL("正常", "1"), LATE("迟到", "2"), LEAVEEARLY("早退", "3"), @@ -24,5 +28,7 @@ public enum BusAttendanceClockStatusEnum { this.text = text; this.value = value; } + //算出勤状态 + public static final List ATTENDANCE_LIST = List.of(NORMAL.value, LATE.value, LEAVEEARLY.value, REISSUE.value); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java index f045b7fb..b537a24b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceService.java @@ -1,8 +1,8 @@ package org.dromara.project.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; -import org.dromara.common.core.domain.R; import org.dromara.project.domain.dto.attendance.*; import org.dromara.project.domain.vo.BusAttendanceVo; import org.dromara.project.domain.bo.BusAttendanceBo; @@ -13,12 +13,9 @@ import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.project.domain.vo.BusMonthAttendanceVo; import org.dromara.project.domain.vo.attendance.*; -import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; -import java.time.LocalDate; import java.util.Collection; import java.util.List; @@ -132,9 +129,9 @@ public interface IBusAttendanceService extends IService{ List getMonthAttendance(Long projectId, String month); /** - * 获取用户指定月份的打卡记录 + * 获取用户打卡异常记录 */ - List getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId); + TableDataInfo getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId, PageQuery pageQuery); /** * 统计指定日期的打卡人员 @@ -167,6 +164,11 @@ public interface IBusAttendanceService extends IService{ */ List getClockDateForTwoWeekList(Long projectId); + /** + * 获取项目当天的考勤数据 + */ + BusAttendanceClockDateForTwoWeekVo getTodayAttendanceData(Long projectId); + /** * 获取导出的考勤数据 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java index cbff7503..f1330e18 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -14,7 +15,6 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -64,6 +64,8 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; +import static org.dromara.project.domain.enums.BusAttendanceClockStatusEnum.ATTENDANCE_LIST; + /** * 考勤Service业务层处理 * @@ -707,7 +709,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl getAbnormalAttendance(Long projectId) { + public TableDataInfo getAbnormalAttendance(Long projectId, PageQuery pageQuery) { List abnormalList = Arrays.asList(BusAttendanceClockStatusEnum.LATE.getValue(), BusAttendanceClockStatusEnum.LEAVEEARLY.getValue(), @@ -722,16 +724,16 @@ public class BusAttendanceServiceImpl extends ServiceImpl "1".equals(relevancy.getUserType())); - List busAttendanceVos = baseMapper.selectVoList(Wrappers.lambdaQuery(BusAttendance.class) + IPage busAttendanceVoIPage = baseMapper.selectVoPage(pageQuery.build(), Wrappers.lambdaQuery(BusAttendance.class) .eq(BusAttendance::getUserId, userId) .eq(b, BusAttendance::getProjectId, projectId) .in(BusAttendance::getClockStatus, abnormalList) ); //转换星期几 - for (BusAttendanceVo busAttendanceVo : busAttendanceVos) { + for (BusAttendanceVo busAttendanceVo : busAttendanceVoIPage.getRecords()) { busAttendanceVo.setWeek(busAttendanceVo.getClockDate().getDayOfWeek().getValue()); } - return busAttendanceVos; + return TableDataInfo.build(busAttendanceVoIPage); } /** @@ -1183,7 +1185,6 @@ public class BusAttendanceServiceImpl extends ServiceImpl result = new ArrayList<>(); - List validStatusList = Arrays.asList("1", "2", "3", "5"); LocalDate currentDate = startDate; while (!currentDate.isAfter(now)) { @@ -1196,7 +1197,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl= 2) { @@ -1228,6 +1229,65 @@ public class BusAttendanceServiceImpl extends ServiceImpl excludeUserIds = constructionUserService.list(Wrappers.lambdaQuery() + .ne(SubConstructionUser::getUserRole, "0") + ).stream().map(SubConstructionUser::getSysUserId).toList(); + + List allUserIds = constructionUserService.list(Wrappers.lambdaQuery() + .eq(SubConstructionUser::getUserRole, "0") + .eq(SubConstructionUser::getProjectId,projectId) + ).stream().map(SubConstructionUser::getSysUserId).toList(); + + + List list = list(Wrappers.lambdaQuery() + .eq(BusAttendance::getProjectId, projectId) + .notIn(CollectionUtil.isNotEmpty(excludeUserIds),BusAttendance::getUserId, excludeUserIds) + .eq(BusAttendance::getClockDate, now) + .orderByAsc(BusAttendance::getClockDate) + ); + + Map> collect = list.stream().collect(Collectors.groupingBy(BusAttendance::getUserId)); + + int full = 0, half = 0, absent = 0; + + for (Map.Entry> userEntry : collect.entrySet()) { + List records = userEntry.getValue(); + + long validCount = records.stream() + .map(BusAttendance::getClockStatus) + .filter(ATTENDANCE_LIST::contains) + .count(); + + if (validCount >= 2) { + full++; + } else if (validCount == 1) { + half++; + } else { + absent++; + } + } + + BusAttendanceClockDateForTwoWeekVo vo = new BusAttendanceClockDateForTwoWeekVo(); + vo.setClockDate(now); + vo.setAttendance(full); + vo.setHalfAttendance(half); + vo.setAbsenteeism(absent); + //计算考勤率 + vo.setAllUserNum(allUserIds.size()); + vo.setClockNum(full+half); + vo.setAttendanceRate(BigDecimalUtil.toPercentage(new BigDecimal(full+half), + new BigDecimal(allUserIds.size()))); + + return vo; + } + @Override public void getExportList(AttendanceExportDto dto, HttpServletResponse response) { try (OutputStream outputStream = response.getOutputStream()) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java index 170930c8..06676361 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/app/FlowAppController.java @@ -25,6 +25,8 @@ import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; +import static org.dromara.workflow.listener.WorkflowGlobalListener.getType; + @ConditionalOnEnable @Validated @RequiredArgsConstructor @@ -48,7 +50,8 @@ public class FlowAppController { } List list= (List) stringObjectMap.get("list"); - Map map = list.stream().collect(Collectors.toMap(FlowHisTaskVo::getNodeCode, vo -> vo)); + Map map = list.stream().filter(vo -> !"copy".equals(vo.getFlowStatus())) + .collect(Collectors.toMap(FlowHisTaskVo::getNodeCode, vo -> vo)); Long instanceId = (Long) stringObjectMap.get("instanceId"); @@ -86,9 +89,24 @@ public class FlowAppController { appVo.setFlowStatus(BusinessStatusEnum.WAITING.getStatus()); if(nodeJson.getNodeType()==1){ String permissionFlag = nodeJson.getPermissionFlag(); + if(StrUtil.isNotBlank(permissionFlag)){ + permissionFlag = permissionFlag.replace("@@", ","); + } List userDTOS = flwTaskAssigneeService.fetchUsersByStorageIds(permissionFlag, projectId); String auditName = userDTOS.stream().map(UserDTO::getNickName).collect(Collectors.joining(",")); - appVo.setAuditName(auditName); + String type = getType(permissionFlag); + if(type != null){ + try { + String flowCode = defJson.getFlowCode(); + List longs = userService.selectUserByProfession(flowCode.split("_")[1], businessId, type,projectId); + String s = userService.selectNicknameByIds(longs.stream().map(String::valueOf).collect(Collectors.joining(","))); + appVo.setAuditName(s); + }catch (Exception e) { + appVo.setAuditName(auditName); + } + }else { + appVo.setAuditName(auditName); + } } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index 7aa19ce1..3b51f1ed 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -187,7 +187,7 @@ public class WorkflowGlobalListener implements GlobalListener { } - public String getType(String permissionFlag){ + public static String getType(String permissionFlag){ // 1961314792461586433 校审员(系统) // 1961315028017893378 审核员(系统) // 1961315147199041537 审定员(系统) From 502cc55143b5cfaae29b3362c635e2f2204a0725 Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Fri, 10 Oct 2025 10:08:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug=EF=BC=8C=E5=BB=BA?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-prod.yml | 2 +- .../test/java/org/dromara/test/DemoTest.java | 47 ++ .../impl/SubContractorServiceImpl.java | 12 +- xinnengyuan/script/sql/tbgl.sql | 411 ++++++++++++++++++ xinnengyuan/script/sql/xzd.sql | 72 ++- 5 files changed, 516 insertions(+), 28 deletions(-) create mode 100644 xinnengyuan/script/sql/tbgl.sql diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml index 1623c947..e4093e1a 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml @@ -300,7 +300,7 @@ dxf2GeoJson: file-name: main.exe ys7: app-key: 3acf9f1a43dc4209841e0893003db0a2 - app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36 + app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e # 斯巴达算法 sparta: url: http://119.3.204.120:8040 diff --git a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java index 42970f35..1acb1851 100644 --- a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java +++ b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java @@ -18,6 +18,7 @@ import org.dromara.contractor.service.ISubConstructionUserService; import org.dromara.contractor.service.ISubUserSalaryDetailService; import org.dromara.design.service.IDesTechnicalStandardService; import org.dromara.facility.domain.FacMatrix; +import org.dromara.facility.domain.FacPhotovoltaicPanel; import org.dromara.facility.service.IFacMatrixService; import org.dromara.facility.service.IFacPhotovoltaicPanelPartsService; import org.dromara.facility.service.IFacPhotovoltaicPanelService; @@ -101,6 +102,52 @@ public class DemoTest { @Resource private IOutConstructionValueService constructionValueService; + @Test + void syncTest() { + List projects = projectService.lambdaQuery() + .eq(BusProject::getPId, 1968506669544656898L) + .list(); + Set projectIds = projects.stream().map(BusProject::getId).collect(Collectors.toSet()); + List zujian = photovoltaicPanelService.lambdaQuery() + .eq(FacPhotovoltaicPanel::getProgressCategoryName, "组件安装") + .in(FacPhotovoltaicPanel::getProjectId, projectIds) + .list(); + Map> zujianMap = zujian.stream() + .collect(Collectors.groupingBy(FacPhotovoltaicPanel::getMatrixId)); + List zhijia = progressCategoryService.lambdaQuery() + .eq(PgsProgressCategory::getName, "支架安装") + .in(PgsProgressCategory::getProjectId, projectIds) + .list(); + Map> zhijiaMap = zhijia.stream() + .collect(Collectors.groupingBy(PgsProgressCategory::getMatrixId)); + List newP = new ArrayList<>(); + for (Map.Entry> entry : zujianMap.entrySet()) { + Long key = entry.getKey(); + List panels = entry.getValue(); + List list = zhijiaMap.getOrDefault(key, new ArrayList<>()); + if (CollUtil.isEmpty(list)) { + continue; + } + PgsProgressCategory zhi = list.getFirst(); + List panelList = panels.stream().map(panel -> { + FacPhotovoltaicPanel p = new FacPhotovoltaicPanel(); + p.setProjectId(panel.getProjectId()); + p.setMatrixId(panel.getMatrixId()); + p.setName(panel.getName()); + p.setPositions(panel.getPositions()); + p.setProgressCategoryId(zhi.getId()); + p.setProgressCategoryName(zhi.getName()); + p.setRemark(panel.getRemark()); + p.setCreateDept(panel.getCreateDept()); + p.setCreateBy(panel.getCreateBy()); + p.setUpdateBy(panel.getUpdateBy()); + return p; + }).toList(); + newP.addAll(panelList); + } + photovoltaicPanelService.saveBatch(newP); + } + @Test void testConstructionValue() { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java index 3cc821d2..ac191171 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java @@ -14,7 +14,6 @@ import org.dromara.common.core.utils.ObjectUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.contractor.domain.SubConstructionUser; import org.dromara.contractor.domain.SubContractor; import org.dromara.contractor.domain.dto.contractor.SubContractorCreateReq; @@ -119,7 +118,10 @@ public class SubContractorServiceImpl extends ServiceImpl 0) { throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST); } @@ -160,7 +162,11 @@ public class SubContractorServiceImpl extends ServiceImpl 0) { throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST); } diff --git a/xinnengyuan/script/sql/tbgl.sql b/xinnengyuan/script/sql/tbgl.sql new file mode 100644 index 00000000..9468a6f0 --- /dev/null +++ b/xinnengyuan/script/sql/tbgl.sql @@ -0,0 +1,411 @@ + + + +drop table if exists xzd_project_risk_assessment; +CREATE TABLE `xzd_project_risk_assessment` +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `document_number` VARCHAR(64) NOT NULL COMMENT '单据编号', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `project_business_owner` VARCHAR(255) NOT NULL COMMENT '项目业主', + `joint_body_members` VARCHAR(500) NULL COMMENT '联合体成员方', + `estimated_contract_amount` DECIMAL(20, 4) default 0.0000 NOT NULL COMMENT '预计合同额(万元)', + `unit_price_index` VARCHAR(255) NULL COMMENT '单价指标', + `engineering_risk` VARCHAR(16) NULL COMMENT '工期风险', + `technical_risk` VARCHAR(16) NULL COMMENT '技术风险', + `economic_risk` VARCHAR(16) NULL COMMENT '经济风险', + `contract_risk` VARCHAR(16) NULL COMMENT '合同风险', + `personnel_risk` VARCHAR(16) NULL COMMENT '人员风险', + `construction_risk` VARCHAR(16) NULL COMMENT '施工风险', + `management_risk` VARCHAR(16) NULL COMMENT '管理风险', + `subcontract_risk` VARCHAR(16) NULL COMMENT '分包风险', + `other_risks` TEXT null COMMENT '其他风险', + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT ='项目风险评估签审意见'; + +drop table if exists xzd_bid_pre_project; + +CREATE TABLE xzd_bid_pre_project +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `project_number` VARCHAR(64) NOT NULL COMMENT '项目编码', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `country` VARCHAR(100) NOT NULL COMMENT '国家', + `province` VARCHAR(100) NOT NULL COMMENT '省', + `city` VARCHAR(100) NOT NULL COMMENT '城市', + `district` VARCHAR(100) NOT NULL COMMENT '区县', + `project_location` VARCHAR(255) null COMMENT '工程地点', + `capital_source` VARCHAR(255) null COMMENT '资金来源', + `contracting_method` VARCHAR(16) null COMMENT '承包方式', + `operation_mode` VARCHAR(16) null COMMENT '经营模式', + `project_type_id` BIGINT NOT NULL COMMENT '项目类型', + `bidding_method` VARCHAR(100) null COMMENT '招标方式', + `liaison_method` VARCHAR(100) null COMMENT '联系方法', + `investment_unit` VARCHAR(255) null COMMENT '投资单位', + `project_cost` DECIMAL(20, 2) DEFAULT 0.0000 not null COMMENT '工程造价(万元)', + `information_cost` DECIMAL(20, 2) DEFAULT 0.0000 not null COMMENT '资料费', + -- 公共字段 + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT ='标前立项'; + +drop table if exists xzd_bqlx_project_info; + +CREATE TABLE xzd_bqlx_project_info +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `bid_pre_project_id` BIGINT NOT NULL COMMENT '关联标前立项ID', + `expected_start_date` DATE COMMENT '预计开工日期', + `qualification_requirement` VARCHAR(512) COMMENT '资质要求', + `bid_start_date` DATE COMMENT '报名开始时间', + `bid_end_date` DATE NOT NULL COMMENT '报名截止时间', + `submission_deadline` DATE COMMENT '投标截止时间', + `design_description` VARCHAR(512) COMMENT '设计情况', + `project_status` TEXT COMMENT '工程概况', + `bidding_announcement_address` VARCHAR(512) COMMENT '招标公告地址', + `quality_requirement` VARCHAR(255) COMMENT '质量要求', + `duration_days` DECIMAL(10, 1) default 0.0 COMMENT '工期要求(天)', + `lowest_qualification_requirement` VARCHAR(512) COMMENT '最低资质要求', + `project_manager_requirement` VARCHAR(512) COMMENT '项目经理要求', + `performance_requirement` VARCHAR(512) COMMENT '业绩要求', + `start_date` DATE COMMENT '开标时间', + `evaluation_method` VARCHAR(128) COMMENT '评标方式', + `bidding_deposit_form` VARCHAR(255) COMMENT '投标保证金形式', + `bidding_deposit` DECIMAL(20, 4) default 0.0000 COMMENT '投标保证金', + `construction_unit` VARCHAR(255) COMMENT '建设单位', + `construction_person` VARCHAR(100) COMMENT '建设单位联系人', + `construction_method` VARCHAR(100) COMMENT '建设单位联系方式', + `bidding_unit` VARCHAR(255) COMMENT '招标单位', + `bidding_person` VARCHAR(100) COMMENT '招标单位联系人', + `bidding_method` VARCHAR(100) COMMENT '招标单位联系方式', + `cost_price` DECIMAL(20, 4) default 0.0000 COMMENT '成本价', + `bidding_price_control` DECIMAL(20, 4) default 0.0000 COMMENT '招标控制价', + `project_number` VARCHAR(64) NOT NULL COMMENT '项目编码', + `default_finance` varchar(255) NULL COMMENT '默认财务组织', + `involve_finance` varchar(255) NULL COMMENT '涉及财务组织', + -- 公共字段 + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT ='标前立项-项目信息'; + +drop table if exists xzd_project_type; + +CREATE TABLE xzd_project_type +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `parent_id` BIGINT DEFAULT 0 NOT NULL COMMENT '父节点ID', + `type_name` VARCHAR(100) NOT NULL COMMENT '项目类型名称', + `sort_order` INT DEFAULT 0 COMMENT '排序', + `remark` VARCHAR(255) COMMENT '备注', + -- 公共字段 + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT ='项目类型'; + +drop table if exists xzd_bidding_file_estimate; + +CREATE TABLE xzd_bidding_file_estimate +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', + `document_date` DATE NOT NULL COMMENT '单据日期', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `title` VARCHAR(255) COMMENT '标题', + `project_location` VARCHAR(255) COMMENT '工程地点', + `bidding_unit` VARCHAR(255) COMMENT '招标单位', + `bidding_method` VARCHAR(16) COMMENT '招标方式', + `contracting_method` VARCHAR(16) COMMENT '承包方式', + `start_date` DATE COMMENT '开标时间', + `project_overview` TEXT COMMENT '工程概况', + `bidding_date` DATE COMMENT '投标时间', + `bidding_address` VARCHAR(255) COMMENT '投标地址', + `bidding_control_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '招标控制价', + `evaluation_method` VARCHAR(100) COMMENT '评标方法', + `bidding_scope` VARCHAR(255) COMMENT '招标范围', + + `project_manager_requirement` varchar(1024) COMMENT '项目经理要求', + + -- 公共字段 + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' + +) COMMENT ='招标文件审估'; + + +drop table if exists xzd_bidding_agency_fee_payment; + +CREATE TABLE xzd_bidding_agency_fee_payment +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', + `document_date` DATE NOT NULL COMMENT '单据日期', + `title` VARCHAR(255) COMMENT '标题', + + `project_name` VARCHAR(255) NOT NULL COMMENT '项目', + `project_location` VARCHAR(512) COMMENT '工程地点', + `contact_person` VARCHAR(100) COMMENT '联系人', + `contact_method` VARCHAR(100) COMMENT '联系方式', + `bidding_date` DATE COMMENT '投标时间', + + `agency_name` VARCHAR(255) NOT NULL COMMENT '代理机构名称', + + + `application_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '申请金额', + `payment_method` VARCHAR(16) NOT NULL COMMENT '支付方式', + `receiving_bank` VARCHAR(255) COMMENT '收款银行', + `receiving_account` VARCHAR(100) COMMENT '收款', + `reason` varchar(1024) COMMENT '事由', + + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' + +) COMMENT ='招标代理服务费支付申请'; + +drop table if exists xzd_bid_deposit_payment; + +CREATE TABLE `xzd_bid_deposit_payment` +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', + `document_date` DATE NOT NULL COMMENT '单据日期', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价(万元)', + `business_mode` VARCHAR(100) DEFAULT NULL COMMENT '经营模式', + `deposit_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '保证金金额', + `deposit_amount_capital` VARCHAR(512) NOT NULL COMMENT '保证金金额大写', + `remittance_method` VARCHAR(128) DEFAULT NULL COMMENT '汇款方式', + `payment_deadline` DATETIME DEFAULT NULL COMMENT '支付截止时间', + `receiving_unit` VARCHAR(255) DEFAULT NULL COMMENT '收款单位', + `receiving_account_name` VARCHAR(255) DEFAULT NULL COMMENT '收款账户名称', + `receiving_bank` VARCHAR(255) DEFAULT NULL COMMENT '收款账户银行', + `receiving_bank_account` VARCHAR(100) DEFAULT NULL COMMENT '收款银行账号', + `request_recovery_days` INT DEFAULT '0' COMMENT '招标结束后要求工作日收回', + `deposit_type` VARCHAR(16) NOT NULL COMMENT '保证金类型', + `receipt_requirement` VARCHAR(16) DEFAULT NULL COMMENT '回单要求', + `is_mail` TINYINT(1) DEFAULT '0' COMMENT '是否邮寄(0否 1是)', + `deposit_ratio` DECIMAL(5, 2) default 0.00 COMMENT '保证金比例', + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT = '投标保证金缴纳'; + +drop table if exists xzd_bid_deposit_recovery; + +CREATE TABLE `xzd_bid_deposit_recovery` +( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + `document_code` VARCHAR(50) NOT NULL COMMENT '单据编码', + `document_date` DATE NOT NULL COMMENT '单据日期', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `project_type` BIGINT DEFAULT NULL COMMENT '项目类型', + `business_mode` VARCHAR(255) DEFAULT NULL COMMENT '经营模式', + `project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价', + `recovery_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '收回金额', + `recovery_amount_capital` VARCHAR(255) NOT NULL COMMENT '收回金额大写', + `data_fee` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '资料费', + `data_fee_capital` VARCHAR(255) DEFAULT NULL COMMENT '资料费大写', + `refund_amount` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '退款金额', + `recovery_date` DATE DEFAULT NULL COMMENT '收回日期', + `deposit_status` VARCHAR(50) DEFAULT NULL COMMENT '保证金状态', + `deposit_amount` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '保证金金额', + `deposit_amount_capital` VARCHAR(100) DEFAULT NULL COMMENT '保证金金额大写', + `deposit_remittance_method` VARCHAR(255) DEFAULT NULL COMMENT '保证金汇款方式', + `payment_deadline` DATETIME DEFAULT NULL COMMENT '支付截止时间', + `receiving_unit` VARCHAR(255) DEFAULT NULL COMMENT '收款单位', + `deposit_receiving_account_name` VARCHAR(255) DEFAULT NULL COMMENT '保证金收款账户名称', + `receiving_bank` VARCHAR(255) DEFAULT NULL COMMENT '收款账户银行', + `receiving_bank_account` VARCHAR(255) DEFAULT NULL COMMENT '收款账户账号', + `applicant` VARCHAR(100) DEFAULT NULL COMMENT '申请人', + `application_unit` VARCHAR(255) DEFAULT NULL COMMENT '申请单位', + `application_date` DATE DEFAULT NULL COMMENT '申请日期', + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT = '投标保证金收回'; + +drop table if exists xzd_bidding_document; + +CREATE TABLE `xzd_bidding_document` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `document_number` VARCHAR(50) NOT NULL COMMENT '单据编号', + `title` VARCHAR(255) DEFAULT NULL COMMENT '标题', + `bidding_time` DATETIME NOT NULL COMMENT '投标时间', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `project_type` BIGINT DEFAULT NULL COMMENT '项目类型ID', + `bid_unit` VARCHAR(255) DEFAULT NULL COMMENT '投标单位', + `document_date` DATE NOT NULL COMMENT '单据日期', + `project_manager` VARCHAR(100) DEFAULT NULL COMMENT '项目经理', + `project_overview` TEXT DEFAULT NULL COMMENT '工程概况', + `organization` VARCHAR(255) DEFAULT NULL COMMENT '组织', + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) +) COMMENT ='投标文件'; + +drop table if exists xzd_tbwj_business_bid; + +CREATE TABLE `xzd_tbwj_business_bid` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', + `bid_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '标底价', + `discount_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '折扣率', + `ceiling_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最高限价', + `cost_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '成本价', + `total_bid_price` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '投标报价', + `fee_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '毛利率', + `bid_tax_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '投标税率', + `petty_cash` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '备用金', + `compilation_dept` VARCHAR(512) NULL COMMENT '编制部门', + `estimated_profit` VARCHAR(512) NULL COMMENT '报价说明', + PRIMARY KEY (`id`), + INDEX `idx_bidding_document_id` (`bidding_document_id`) +) COMMENT ='投标文件-商务标'; + +drop table if exists xzd_tbwj_technical_bid; + +CREATE TABLE `xzd_tbwj_technical_bid` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', + `quality_requirements` TEXT DEFAULT NULL COMMENT '质量要求', + `technical_requirements` TEXT DEFAULT NULL COMMENT '技术要求', + `compilation_dept` VARCHAR(255) DEFAULT NULL COMMENT '编制部门', + `compilation_explain` VARCHAR(255) DEFAULT NULL COMMENT '编制说明', + PRIMARY KEY (`id`), + INDEX `idx_bidding_document_id` (`bidding_document_id`) +) COMMENT ='投标文件-技术标'; + +drop table if exists xzd_tbwj_qualification_requirements; +CREATE TABLE `xzd_tbwj_qualification_requirements` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', + `qualification_requirement` VARCHAR(512) NOT NULL COMMENT '资审要求', + `compilation_points` TEXT DEFAULT NULL COMMENT '编制要点', + `provide_time` DATETIME NOT NULL COMMENT '提供时间', + `remark` TEXT null COMMENT '备注', + PRIMARY KEY (`id`), + INDEX `idx_bidding_document_id` (`bidding_document_id`) +) COMMENT ='投标文件-资审要求'; + +drop table if exists xzd_tbwj_business_bid_requirements; +CREATE TABLE `xzd_tbwj_business_bid_requirements` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', + `business_bid_requirement` VARCHAR(512) NOT NULL COMMENT '商务标要求', + `compilation_points` TEXT DEFAULT NULL COMMENT '编制要点', + `provide_time` DATETIME NOT NULL COMMENT '提供时间', + `remark` TEXT null COMMENT '备注', + PRIMARY KEY (`id`), + INDEX `idx_bidding_document_id` (`bidding_document_id`) +) COMMENT ='投标文件-商务标要求'; + +drop table if exists xzd_tbwj_technical_bid_requirements; +CREATE TABLE `xzd_tbwj_technical_bid_requirements` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID', + `technical_bid_requirement` VARCHAR(512) NOT NULL COMMENT '技术标要求', + `compilation_points` TEXT DEFAULT NULL COMMENT '编制要点', + `provide_time` DATETIME NOT NULL COMMENT '提供时间', + `remark` TEXT null COMMENT '备注', + PRIMARY KEY (`id`), + INDEX `idx_bidding_document_id` (`bidding_document_id`) +) COMMENT ='投标文件-技术标要求'; + +drop table if exists xzd_post_bid_analysis; +CREATE TABLE `xzd_post_bid_analysis` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `project_code` VARCHAR(100) NOT NULL COMMENT '项目编码', + `project_name` VARCHAR(255) NOT NULL COMMENT '项目名称', + `project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价(万元)', + `project_type` BIGINT DEFAULT NULL COMMENT '项目类型ID', + `project_address` VARCHAR(255) DEFAULT NULL COMMENT '项目地址', + `project_overview` TEXT DEFAULT NULL COMMENT '工程概况', + `construction_unit` VARCHAR(255) DEFAULT NULL COMMENT '建设单位', + `bid_opening_date` DATE DEFAULT NULL COMMENT '开标日期', + `business_model` VARCHAR(100) DEFAULT NULL COMMENT '经营模式', + `control_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '招标控制价(万元)', + `final_quote` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最终报价(万元)', + `bidding_result` VARCHAR(16) NOT NULL COMMENT '投标结果', + `bid_record_link` VARCHAR(500) DEFAULT NULL COMMENT '开标记录链接', + `analysis_summary` TEXT DEFAULT NULL COMMENT '投标分析与总结', + `final_quote_yuan` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最终报价(元)', + `final_quote_chinese` VARCHAR(255) DEFAULT NULL COMMENT '最终报价(大写)', + `file_id` varchar(1024) NULL COMMENT '文件ID', + `remark` TEXT null COMMENT '备注', + `audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态', + `create_by` bigint NULL COMMENT '创建者', + `update_by` bigint NULL COMMENT '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) +) COMMENT ='标后分析'; + +drop table if exists xzd_bidding_unit_ranking; +CREATE TABLE `xzd_bidding_unit_ranking` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `bid_analysis_id` BIGINT NOT NULL COMMENT '标后分析ID', + `bidding_unit_name` VARCHAR(255) DEFAULT NULL COMMENT '参与投标单位', + `bid_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '投标报价(万元)', + `ranking` INT NOT NULL COMMENT '排名', + `remark` TEXT null COMMENT '备注', + PRIMARY KEY (`id`), + INDEX `idx_bid_analysis_id` (`bid_analysis_id`) +) COMMENT ='标后分析-投标单位排名'; diff --git a/xinnengyuan/script/sql/xzd.sql b/xinnengyuan/script/sql/xzd.sql index 377e9fd6..27a9741c 100644 --- a/xinnengyuan/script/sql/xzd.sql +++ b/xinnengyuan/script/sql/xzd.sql @@ -380,42 +380,66 @@ create table ctr_subcontract_seal ) comment ='分包合同-印章信息'; -- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692582274809858, '主要信息', '1970690857740615681', '1', 'subcontractMain', 'ctr/subcontractMain/index', 1, 0, 'C', '0', '0', 'ctr:subcontractMain:list', '#', 103, 1, sysdate(), null, null, '主要信息菜单'); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692582274809858, '主要信息', '1970690857740615681', '1', 'subcontractMain', 'ctr/subcontractMain/index', 1, + 0, 'C', '0', '0', 'ctr:subcontractMain:list', '#', 103, 1, sysdate(), null, null, '主要信息菜单'); -- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692582274809859, '主要信息查询', 1970692582274809858, '1', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractMain:query', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692582274809859, '主要信息查询', 1970692582274809858, '1', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractMain:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692582274809860, '主要信息新增', 1970692582274809858, '2', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractMain:add', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692582274809860, '主要信息新增', 1970692582274809858, '2', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractMain:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692582274809861, '主要信息修改', 1970692582274809858, '3', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractMain:edit', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692582274809861, '主要信息修改', 1970692582274809858, '3', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractMain:edit', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692582274809862, '主要信息删除', 1970692582274809858, '4', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractMain:remove', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692582274809862, '主要信息删除', 1970692582274809858, '4', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractMain:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692582274809863, '主要信息导出', 1970692582274809858, '5', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractMain:export', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692582274809863, '主要信息导出', 1970692582274809858, '5', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractMain:export', '#', 103, 1, sysdate(), null, null, ''); -- 菜单 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692923594686465, '印章信息', '1970692582274809858', '1', 'subcontractSeal', 'ctr/subcontractSeal/index', 1, 0, 'C', '0', '0', 'ctr:subcontractSeal:list', '#', 103, 1, sysdate(), null, null, '印章信息菜单'); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692923594686465, '印章信息', '1970692582274809858', '1', 'subcontractSeal', 'ctr/subcontractSeal/index', 1, + 0, 'C', '0', '0', 'ctr:subcontractSeal:list', '#', 103, 1, sysdate(), null, null, '印章信息菜单'); -- 按钮 SQL -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692923594686466, '印章信息查询', 1970692923594686465, '1', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractSeal:query', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692923594686466, '印章信息查询', 1970692923594686465, '1', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractSeal:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692923594686467, '印章信息新增', 1970692923594686465, '2', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractSeal:add', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692923594686467, '印章信息新增', 1970692923594686465, '2', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractSeal:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692923594686468, '印章信息修改', 1970692923594686465, '3', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractSeal:edit', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692923594686468, '印章信息修改', 1970692923594686465, '3', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractSeal:edit', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692923594686469, '印章信息删除', 1970692923594686465, '4', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractSeal:remove', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692923594686469, '印章信息删除', 1970692923594686465, '4', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractSeal:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) -values(1970692923594686470, '印章信息导出', 1970692923594686465, '5', '#', '', 1, 0, 'F', '0', '0', 'ctr:subcontractSeal:export', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, + status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values (1970692923594686470, '印章信息导出', 1970692923594686465, '5', '#', '', 1, 0, 'F', '0', '0', + 'ctr:subcontractSeal:export', '#', 103, 1, sysdate(), null, null, '');