diff --git a/research-admin/src/main/java/com/research/ResearchServletInitializer.java b/research-admin/src/main/java/com/research/ResearchServletInitializer.java index 2bc68a20..f53545a9 100644 --- a/research-admin/src/main/java/com/research/ResearchServletInitializer.java +++ b/research-admin/src/main/java/com/research/ResearchServletInitializer.java @@ -13,6 +13,6 @@ public class ResearchServletInitializer extends SpringBootServletInitializer @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { - return application.sources(researchApplication.class); + return application.sources(ResearchApplication.class); } } diff --git a/research-admin/src/main/java/com/research/researchApplication.java b/research-admin/src/main/java/com/research/researchApplication.java index 97ce61cd..59f1b1aa 100644 --- a/research-admin/src/main/java/com/research/researchApplication.java +++ b/research-admin/src/main/java/com/research/researchApplication.java @@ -12,13 +12,13 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; */ @MapperScan({"com.research.**.mapper", "com.research.**.dao"}) @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) -public class researchApplication +public class ResearchApplication { public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); - SpringApplication.run(researchApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + + SpringApplication.run(ResearchApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 科研共享平台启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + diff --git a/research-admin/src/main/java/com/research/web/controller/client/HomeController.java b/research-admin/src/main/java/com/research/web/controller/client/HomeController.java new file mode 100644 index 00000000..e7844860 --- /dev/null +++ b/research-admin/src/main/java/com/research/web/controller/client/HomeController.java @@ -0,0 +1,68 @@ +package com.research.web.controller.client; + +import com.research.common.core.domain.JsonResponse; +import com.research.system.domain.vo.HomeVo; +import com.research.system.service.HomeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author zzc + * @Package com.research.web.controller.client + * @Date 2025/8/21 13:57 + * @description: + */ +@RestController +@RequestMapping("/home") +@Api(tags = "首页统计") +@Slf4j +public class HomeController { + + @Resource + private HomeService homeService; + + @ApiOperation(value = "查询项目统计") + @RequestMapping(value = "/queryHomeInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryHomeInfo(){ + return JsonResponse.ok(homeService.queryHomeInfo()); + } + + @ApiOperation(value = "查询课题统计") + @RequestMapping(value = "/queryGroupList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryGroupList(){ + return JsonResponse.ok(homeService.queryGroupList()); + } + + @ApiOperation(value = "查询任务统计") + @RequestMapping(value = "/queryTaskList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryTaskList(){ + return JsonResponse.ok(homeService.queryTaskList()); + } + + @ApiOperation(value = "查询合作单位成员统计") + @RequestMapping(value = "/queryProjressMemberList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryProjressMemberList(){ + return JsonResponse.ok(homeService.queryProjressMemberList()); + } + + @ApiOperation(value = "查询科研成功统计") + @RequestMapping(value = "/queryAchievementList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryAchievementList(){ + return JsonResponse.ok(homeService.queryAchievementList()); + } + + @ApiOperation(value = "查询会议统计") + @RequestMapping(value = "/queryMeetingList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryMeetingList(){ + return JsonResponse.ok(homeService.queryMeetingList()); + } + + +} diff --git a/research-flowable/src/main/java/com/research/flowable/controller/FlowDefinitionController.java b/research-admin/src/main/java/com/research/web/controller/client/flow/FlowDefinitionController.java similarity index 99% rename from research-flowable/src/main/java/com/research/flowable/controller/FlowDefinitionController.java rename to research-admin/src/main/java/com/research/web/controller/client/flow/FlowDefinitionController.java index 0f9db509..9bbec3ea 100644 --- a/research-flowable/src/main/java/com/research/flowable/controller/FlowDefinitionController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/flow/FlowDefinitionController.java @@ -1,4 +1,4 @@ -package com.research.flowable.controller; +package com.research.web.controller.client.flow; import com.research.common.annotation.Log; import com.research.common.core.controller.BaseController; diff --git a/research-flowable/src/main/java/com/research/flowable/controller/FlowInstanceController.java b/research-admin/src/main/java/com/research/web/controller/client/flow/FlowInstanceController.java similarity index 98% rename from research-flowable/src/main/java/com/research/flowable/controller/FlowInstanceController.java rename to research-admin/src/main/java/com/research/web/controller/client/flow/FlowInstanceController.java index 1e8ba3fe..a389e510 100644 --- a/research-flowable/src/main/java/com/research/flowable/controller/FlowInstanceController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/flow/FlowInstanceController.java @@ -1,4 +1,4 @@ -package com.research.flowable.controller; +package com.research.web.controller.client.flow; import com.research.common.annotation.Log; diff --git a/research-flowable/src/main/java/com/research/flowable/controller/FlowTaskController.java b/research-admin/src/main/java/com/research/web/controller/client/flow/FlowTaskController.java similarity index 98% rename from research-flowable/src/main/java/com/research/flowable/controller/FlowTaskController.java rename to research-admin/src/main/java/com/research/web/controller/client/flow/FlowTaskController.java index 8cf2d677..ed3cabba 100644 --- a/research-flowable/src/main/java/com/research/flowable/controller/FlowTaskController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/flow/FlowTaskController.java @@ -1,9 +1,11 @@ -package com.research.flowable.controller; +package com.research.web.controller.client.flow; +import com.research.common.annotation.DataSource; import com.research.common.annotation.Log; import com.research.common.core.controller.BaseController; import com.research.common.core.domain.AjaxResult; import com.research.common.enums.BusinessType; +import com.research.common.enums.DataSourceType; import com.research.flowable.domain.dto.FlowTaskDto; import com.research.flowable.domain.vo.FlowQueryVo; import com.research.flowable.domain.vo.FlowTaskVo; diff --git a/research-flowable/src/main/java/com/research/flowable/controller/SysExpressionController.java b/research-admin/src/main/java/com/research/web/controller/client/flow/SysExpressionController.java similarity index 98% rename from research-flowable/src/main/java/com/research/flowable/controller/SysExpressionController.java rename to research-admin/src/main/java/com/research/web/controller/client/flow/SysExpressionController.java index 4535f0e5..8f019b53 100644 --- a/research-flowable/src/main/java/com/research/flowable/controller/SysExpressionController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/flow/SysExpressionController.java @@ -1,4 +1,4 @@ -package com.research.flowable.controller; +package com.research.web.controller.client.flow; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/research-flowable/src/main/java/com/research/flowable/controller/SysFormController.java b/research-admin/src/main/java/com/research/web/controller/client/flow/SysFormController.java similarity index 98% rename from research-flowable/src/main/java/com/research/flowable/controller/SysFormController.java rename to research-admin/src/main/java/com/research/web/controller/client/flow/SysFormController.java index ae154861..c5da6fdb 100644 --- a/research-flowable/src/main/java/com/research/flowable/controller/SysFormController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/flow/SysFormController.java @@ -1,4 +1,4 @@ -package com.research.flowable.controller; +package com.research.web.controller.client.flow; import java.util.List; diff --git a/research-flowable/src/main/java/com/research/flowable/controller/SysListenerController.java b/research-admin/src/main/java/com/research/web/controller/client/flow/SysListenerController.java similarity index 98% rename from research-flowable/src/main/java/com/research/flowable/controller/SysListenerController.java rename to research-admin/src/main/java/com/research/web/controller/client/flow/SysListenerController.java index 8f61e515..f1ac22c0 100644 --- a/research-flowable/src/main/java/com/research/flowable/controller/SysListenerController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/flow/SysListenerController.java @@ -1,4 +1,4 @@ -package com.research.flowable.controller; +package com.research.web.controller.client.flow; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/research-admin/src/main/java/com/research/web/controller/client/pro/ProgressController.java b/research-admin/src/main/java/com/research/web/controller/client/pro/ProgressController.java new file mode 100644 index 00000000..8c6f16f6 --- /dev/null +++ b/research-admin/src/main/java/com/research/web/controller/client/pro/ProgressController.java @@ -0,0 +1,64 @@ +package com.research.web.controller.client.pro; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.research.common.core.domain.BaseDto; +import com.research.common.core.domain.JsonResponse; +import com.research.system.domain.dto.CommonDto; +import com.research.system.domain.dto.ProProgressDto; +import com.research.system.domain.vo.ProProgressVo; +import com.research.system.service.ProgressService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author zzc + * @Package com.research.web.controller.client.pro + * @Date 2025/8/20 16:06 + * @description: + */ +@Slf4j +@Api(tags = "项目") +@RestController +@RequestMapping("/progress") +public class ProgressController { + + @Resource + private ProgressService progressService; + + @PostMapping("/query") + public JsonResponse> queryProgressList(@RequestBody @Validated BaseDto query){ + if (query.getPageNum() >0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(progressService.queryProgressList(query.getParam()))); + } + + @PostMapping("/queryProgressOrgList") + public JsonResponse> queryProgressOrgList(@RequestBody @Validated BaseDto query){ + if (query.getPageNum() >0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(progressService.queryProgressOrgList(query.getParam()))); + } + + @PostMapping("/add") + public JsonResponse addProgress(@RequestBody @Validated ProProgressDto.Add dto){ + return JsonResponse.ok(progressService.addProgress(dto)); + + } + + @PostMapping("/del") + public JsonResponse delProgress(@RequestBody @Validated CommonDto.DelDto dto){ + return JsonResponse.ok(progressService.delProgress(dto)); + } + +} diff --git a/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java b/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java index 650e98f8..1143d87d 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java @@ -1,15 +1,30 @@ package com.research.web.controller.client.project; +import com.alibaba.fastjson2.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.research.common.core.domain.AjaxResult; import com.research.common.core.domain.BaseDto; import com.research.common.core.domain.JsonResponse; +import com.research.common.core.domain.entity.SysUser; +import com.research.common.utils.SecurityUtils; +import com.research.flowable.service.IFlowDefinitionService; +import com.research.flowable.service.IFlowTaskService; import com.research.system.domain.dto.CommonDto; import com.research.system.domain.dto.GroupDto; +import com.research.system.domain.po.KtsKtGroupMember; +import com.research.system.domain.po.PrjProjInfo; +import com.research.system.domain.po.PrjProjOrg; import com.research.system.domain.vo.GroupVO; +import com.research.system.service.ClientPrjProjInfoService; +import com.research.system.service.ISysUserService; import com.research.system.service.KtsGroupService; import io.swagger.annotations.Api; +import liquibase.pro.packaged.J; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -17,7 +32,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author zzc @@ -29,10 +46,19 @@ import java.util.List; @Api(tags = "课题组") @RestController @RequestMapping("/group") +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class GroupController { @Resource private KtsGroupService ktsGroupService; + @Resource + private IFlowTaskService flowTaskService; + @Resource + private ClientPrjProjInfoService clientPrjProjInfoService; + @Resource + private ISysUserService sysUserService; + @Resource + private IFlowDefinitionService flowDefinitionService; @PostMapping("/query") public JsonResponse> queryGroupList(@RequestBody @Validated BaseDto query){ @@ -64,8 +90,9 @@ public class GroupController { return JsonResponse.ok(new PageInfo<>(ktsGroupService.queryMemberList(query.getParam()))); } @PostMapping("/member/add") - public JsonResponse addMember(@RequestBody @Validated GroupDto.AddMember dto){ - ktsGroupService.addMember(dto); + public JsonResponse addMember(@RequestBody @Validated GroupDto.AddMember dto) throws Exception { + KtsKtGroupMember ktsKtGroupMember = ktsGroupService.addMember(dto); +// aduit(ktsKtGroupMember.getId()); return JsonResponse.ok(); } @@ -74,4 +101,36 @@ public class GroupController { ktsGroupService.delMember(dto); return JsonResponse.ok(); } + + private void aduit(Long memberId) throws Exception { + + //1.流程初始化表单 + AjaxResult ajaxResult = flowTaskService.flowFormData("7505"); + if (!ajaxResult.isSuccess()) { + return; + } + Object data = ajaxResult.get("data"); + String formData = JSONObject.toJSONString(data); + + //查询审批人 合作单位负责人 + PrjProjOrg prjProjOrgByTenantId = clientPrjProjInfoService.getPrjProjOrgByTenantId(SecurityUtils.getTenantId()); + + if (prjProjOrgByTenantId == null) { + throw new Exception("未找到合作单位信息"); + } + String leader = prjProjOrgByTenantId.getOrgLeader(); + String leaderPhone = prjProjOrgByTenantId.getOrgLeaderPhone(); + //根据手机号获取用户 + SysUser sysUser = sysUserService.selectUserByUserName(leaderPhone); + if (sysUser == null) { + throw new Exception("未找到审核用户"); + } + //2.流程发起时获取下一节点 + Map variables = new HashMap<>(); + variables.put("approval", sysUser.getUserId()); + variables.put("formData", formData); + variables.put("memberId", memberId); + AjaxResult ajaxResult1 = flowDefinitionService.startProcessInstanceById("flow_eyb0ytij:2:7508", variables); + log.info("{}", ajaxResult1); + } } diff --git a/research-admin/src/main/java/com/research/web/controller/client/project/ProjDocumentController.java b/research-admin/src/main/java/com/research/web/controller/client/project/ProjDocumentController.java new file mode 100644 index 00000000..283daa1f --- /dev/null +++ b/research-admin/src/main/java/com/research/web/controller/client/project/ProjDocumentController.java @@ -0,0 +1,58 @@ +package com.research.web.controller.client.project; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.research.common.core.domain.BaseDto; +import com.research.common.core.domain.JsonResponse; +import com.research.system.domain.dto.CommonDto; +import com.research.system.domain.dto.DocumentDto; +import com.research.system.domain.vo.DocumentVo; +import com.research.system.service.ProjDocumentService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author zzc + * @Package com.research.web.controller.client.pro + * @Date 2025/8/25 14:22 + * @description: + */ +@Slf4j +@Api(tags = "项目文书") +@RestController +@RequestMapping("/document") +public class ProjDocumentController { + + @Resource + private ProjDocumentService projDocumentService; + + @PostMapping("/query") + public JsonResponse> query(@RequestBody @Validated BaseDto dto){ + if (dto.getPageNum() > 0) { + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(projDocumentService.query(dto.getParam()))); + } + + @PostMapping("/add") + public JsonResponse add(@RequestBody @Validated DocumentDto.Add dto){ + projDocumentService.add(dto); + return JsonResponse.ok(); + } + + @PostMapping("/del") + public JsonResponse del(@RequestBody @Validated CommonDto.DelDto dto){ + projDocumentService.del(dto); + return JsonResponse.ok(); + } + + +} diff --git a/research-admin/src/main/java/com/research/web/controller/client/shs/ResDeviceController.java b/research-admin/src/main/java/com/research/web/controller/client/shs/ResDeviceController.java index 5c41be02..befef0e6 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/shs/ResDeviceController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/shs/ResDeviceController.java @@ -45,14 +45,14 @@ public class ResDeviceController { } @ApiOperation(value = "新增") - @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "/addDevice", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse add(@ApiParam @Validated @RequestBody ShsResDeviceDto.Add dto) { shsResDeviceService.add(dto); return JsonResponse.ok(); } @ApiOperation(value = "删除") - @RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "/delDevice", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse del(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { shsResDeviceService.del(dto); return JsonResponse.ok(); diff --git a/research-admin/src/main/java/com/research/web/controller/client/shs/ResPlatformController.java b/research-admin/src/main/java/com/research/web/controller/client/shs/ResPlatformController.java index d8a160ef..96db5e7c 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/shs/ResPlatformController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/shs/ResPlatformController.java @@ -28,7 +28,7 @@ import javax.annotation.Resource; * @description: */ @RestController -@RequestMapping("/resPlatform") +@RequestMapping("/platform") @Api(tags = "平台相关") @Slf4j public class ResPlatformController { diff --git a/research-admin/src/main/java/com/research/web/controller/client/shs/ShsCkwxController.java b/research-admin/src/main/java/com/research/web/controller/client/shs/ShsCkwxController.java index a4cdf498..d795de46 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/shs/ShsCkwxController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/shs/ShsCkwxController.java @@ -1,5 +1,6 @@ package com.research.web.controller.client.shs; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.research.common.core.domain.BaseDto; import com.research.common.core.domain.JsonResponse; diff --git a/research-admin/src/main/java/com/research/web/controller/client/shs/ShsLibInfoController.java b/research-admin/src/main/java/com/research/web/controller/client/shs/ShsLibInfoController.java index 46e5bbb8..550b8b40 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/shs/ShsLibInfoController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/shs/ShsLibInfoController.java @@ -10,8 +10,11 @@ import com.research.system.domain.vo.ShsLibInfoVo; import com.research.system.service.ShsLibInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import liquibase.pro.packaged.J; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @@ -36,7 +39,7 @@ public class ShsLibInfoController { @ApiOperation(value = "查询实验室") @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryList(BaseDto query){ + public JsonResponse> queryList(@ApiParam @Validated @RequestBody BaseDto query){ if (query.getPageNum() > 0) { PageHelper.startPage(query.getPageNum(), query.getPageSize()); } @@ -45,14 +48,14 @@ public class ShsLibInfoController { @ApiOperation(value = "新增") @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse add(ShsLibInfoDto.Add dto){ + public JsonResponse add(@ApiParam @Validated @RequestBody ShsLibInfoDto.Add dto){ shsLibInfoService.add(dto); return JsonResponse.ok(); } @ApiOperation(value = "删除") @RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse del(CommonDto.DelDto dto){ + public JsonResponse del(@ApiParam @Validated @RequestBody CommonDto.DelDto dto){ shsLibInfoService.del(dto); return JsonResponse.ok(); } diff --git a/research-admin/src/main/java/com/research/web/controller/client/shs/ShsSyffCategoryController.java b/research-admin/src/main/java/com/research/web/controller/client/shs/ShsSyffCategoryController.java new file mode 100644 index 00000000..3afc2b29 --- /dev/null +++ b/research-admin/src/main/java/com/research/web/controller/client/shs/ShsSyffCategoryController.java @@ -0,0 +1,82 @@ +package com.research.web.controller.client.shs; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.research.common.core.domain.BaseDto; +import com.research.common.core.domain.JsonResponse; +import com.research.system.domain.dto.CommonDto; +import com.research.system.domain.dto.ShsSyffCategoryDto; +import com.research.system.domain.vo.ShsSyffCategoryVo; +import com.research.system.service.ShsSyffCategoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author zzc + * @Package com.research.web.controller.client.shs + * @Date 2025/8/18 17:30 + * @description: + */ +@RestController +@RequestMapping("/method") +@Api(tags = "实验方法") +@Slf4j +public class ShsSyffCategoryController { + + @Resource + private ShsSyffCategoryService shsSyffCategoryService; + + @ApiOperation(value = "查询") + @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> query(@ApiParam @Validated @RequestBody BaseDto query){ + if (query.getPageNum() > 0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(shsSyffCategoryService.query(query.getParam()))); + } + + @ApiOperation(value = "新增") + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse add(@ApiParam @Validated @RequestBody ShsSyffCategoryDto.Add add){ + return JsonResponse.ok(shsSyffCategoryService.add(add)); + } + + @ApiOperation(value = "删除") + @RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse del(@ApiParam @Validated @RequestBody CommonDto.DelDto dto){ + return JsonResponse.ok(shsSyffCategoryService.del(dto)); + } + + @ApiOperation(value = "分类查询") + @RequestMapping(value = "/classify/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryCategory(@ApiParam @Validated @RequestBody BaseDto query){ + if (query.getPageNum() > 0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(shsSyffCategoryService.queryCategory(query.getParam()))); + } + + @ApiOperation(value = "分类新增") + @RequestMapping(value = "/classify/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse addCategory(@ApiParam @Validated @RequestBody ShsSyffCategoryDto.CategoryAdd add){ + return JsonResponse.ok(shsSyffCategoryService.addCategory(add)); + } + + @ApiOperation(value = "分类删除") + @RequestMapping(value = "/classify/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse delCategory(@ApiParam @Validated @RequestBody CommonDto.DelDto dto){ + return JsonResponse.ok(shsSyffCategoryService.delCategory(dto)); + } + + +} diff --git a/research-admin/src/main/java/com/research/web/controller/client/task/TaskController.java b/research-admin/src/main/java/com/research/web/controller/client/task/TaskController.java new file mode 100644 index 00000000..c8cb21b1 --- /dev/null +++ b/research-admin/src/main/java/com/research/web/controller/client/task/TaskController.java @@ -0,0 +1,109 @@ +package com.research.web.controller.client.task; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.research.common.core.domain.BaseDto; +import com.research.common.core.domain.JsonResponse; +import com.research.system.domain.dto.CommonDto; +import com.research.system.domain.dto.TaskDto; +import com.research.system.domain.vo.TaskVo; +import com.research.system.service.TaskService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import liquibase.pro.packaged.J; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author zzc + * @Package com.research.web.controller.client + * @Date 2025/8/17 15:49 + * @description: + */ +@RestController +@RequestMapping("/task") +@Api(tags = "任务相关") +@Slf4j +public class TaskController { + + @Resource + private TaskService taskService; + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryList(@ApiParam @Validated @RequestBody BaseDto query) { + if (query.getPageNum() > 0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(taskService.queryList(query.getParam()))); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse add(@ApiParam @Validated @RequestBody TaskDto.AddTask dto) { + taskService.add(dto); + return JsonResponse.ok(); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse del(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { + taskService.del(dto); + return JsonResponse.ok(); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/queryExecutorList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryExecutorList(@ApiParam @Validated @RequestBody BaseDto query) { + if (query.getPageNum() > 0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(taskService.queryExecutorList(query.getParam()))); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/addExecutor", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse addExecutor(@ApiParam @Validated @RequestBody TaskDto.AddExecutor dto) { + taskService.addExecutor(dto); + return JsonResponse.ok(); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/delExecutor", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse delExecutor(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { + taskService.delExecutor(dto); + return JsonResponse.ok(); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/queryDeliverableList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryDeliverableList(@ApiParam @Validated @RequestBody BaseDto query) { + if (query.getPageNum() > 0) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + } + return JsonResponse.ok(new PageInfo<>(taskService.queryDeliverableList(query.getParam()))); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/addDeliverable", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse addDeliverable(@ApiParam @Validated @RequestBody TaskDto.AddDeliverable dto) { + taskService.addDeliverable(dto); + return JsonResponse.ok(); + } + + @ApiOperation(value = "查询实验室") + @RequestMapping(value = "/delDeliverable", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse delDeliverable(@ApiParam @Validated @RequestBody CommonDto.DelDto dto) { + taskService.delDeliverable(dto); + return JsonResponse.ok(); + } + +} diff --git a/research-admin/src/main/resources/application-dev.yml b/research-admin/src/main/resources/application-dev.yml index a2c0d37a..6330ab65 100644 --- a/research-admin/src/main/resources/application-dev.yml +++ b/research-admin/src/main/resources/application-dev.yml @@ -59,3 +59,6 @@ spring: wall: config: multi-statement-allow: true +server: + # 服务器的HTTP端口,默认为8080 + port: 8080 \ No newline at end of file diff --git a/research-admin/src/main/resources/application-prod.yml b/research-admin/src/main/resources/application-prod.yml new file mode 100644 index 00000000..53d9e841 --- /dev/null +++ b/research-admin/src/main/resources/application-prod.yml @@ -0,0 +1,64 @@ +# 数据源配置 +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + druid: + # 主库数据源 + master: + url: jdbc:mysql://127.0.0.1:3306/open_research?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true + username: root + password: Sxinf18aA! + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + enabled: false + url: + username: + password: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置连接超时时间 + connectTimeout: 30000 + # 配置网络超时时间 + socketTimeout: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: + enabled: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + # 控制台管理用户名和密码 + login-username: research + login-password: 123456 + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true +server: + # 服务器的HTTP端口,默认为8080 + port: 38081 \ No newline at end of file diff --git a/research-admin/src/main/resources/logback.xml b/research-admin/src/main/resources/logback.xml index 9a78bf70..8265c3f2 100644 --- a/research-admin/src/main/resources/logback.xml +++ b/research-admin/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/research-flowable/src/main/java/com/research/flowable/service/impl/FlowDefinitionServiceImpl.java b/research-flowable/src/main/java/com/research/flowable/service/impl/FlowDefinitionServiceImpl.java index df64efa3..f9484acb 100644 --- a/research-flowable/src/main/java/com/research/flowable/service/impl/FlowDefinitionServiceImpl.java +++ b/research-flowable/src/main/java/com/research/flowable/service/impl/FlowDefinitionServiceImpl.java @@ -199,7 +199,7 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl // 流程发起时 跳过发起人节点 ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables); - // 给第一步申请人节点设置任务执行人和意见 + // 给第一步申请人节点设置任务执行人和意见 x Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult(); if (Objects.nonNull(task)) { taskService.addComment(task.getId(), processInstance.getProcessInstanceId(), FlowComment.NORMAL.getType(), sysUser.getNickName() + "发起流程申请"); diff --git a/research-flowable/src/main/java/com/research/flowable/service/impl/FlowTaskServiceImpl.java b/research-flowable/src/main/java/com/research/flowable/service/impl/FlowTaskServiceImpl.java index 11f3d675..84f29330 100644 --- a/research-flowable/src/main/java/com/research/flowable/service/impl/FlowTaskServiceImpl.java +++ b/research-flowable/src/main/java/com/research/flowable/service/impl/FlowTaskServiceImpl.java @@ -25,6 +25,7 @@ import com.research.flowable.service.ISysFormService; import com.research.system.domain.SysForm; import com.research.system.service.ISysRoleService; import com.research.system.service.ISysUserService; +import com.research.system.service.KtsGroupService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; @@ -79,6 +80,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask private ISysDeployFormService sysInstanceFormService; @Resource private ISysFormService sysFormService; + @Resource + private KtsGroupService ktsGroupService; /** * 完成任务 @@ -93,13 +96,17 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask return AjaxResult.error("任务不存在"); } if (DelegationState.PENDING.equals(task.getDelegationState())) { + //审核未结束,继续审核 taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment()); taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables()); } else { + //审核结束,需要添加业务逻辑 taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getComment()); Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); taskService.setAssignee(taskVo.getTaskId(), userId.toString()); taskService.complete(taskVo.getTaskId(), taskVo.getVariables()); + + ktsGroupService.aduitMember(Long.parseLong(task.getAssignee()), Byte.valueOf("1")); } return AjaxResult.success(); } diff --git a/research-framework/src/main/java/com/research/framework/aspectj/AdminGlobalDataSourceAspect.java b/research-framework/src/main/java/com/research/framework/aspectj/AdminGlobalDataSourceAspect.java index d42ac756..13fca6af 100644 --- a/research-framework/src/main/java/com/research/framework/aspectj/AdminGlobalDataSourceAspect.java +++ b/research-framework/src/main/java/com/research/framework/aspectj/AdminGlobalDataSourceAspect.java @@ -1,5 +1,6 @@ package com.research.framework.aspectj; +import com.research.common.annotation.DataSource; import com.research.common.constant.UserConstants; import com.research.common.exception.base.BaseException; import com.research.common.utils.SecurityUtils; @@ -39,7 +40,8 @@ public class AdminGlobalDataSourceAspect { private static final String DATASOURCE_NOT_FOUND = "未找到数据源"; - @Pointcut("((execution(* com.research.web.controller..*.*(..))) && !@annotation(com.research.common.annotation.DataSource))") + @Pointcut("((execution(* com.research.web.controller..*.*(..))) && !@annotation(com.research.common.annotation.DataSource))") +// @Pointcut("((execution(* com.research.web.controller..*.*(..)) || execution(* com.research.flowable..*.*(..))) && !@annotation(com.research.common.annotation.DataSource))") public void dsPointCut() { } @@ -52,7 +54,7 @@ public class AdminGlobalDataSourceAspect { if (StringUtils.isNotEmpty(dataSourceKey)) { DataSourceManager.setDataSourceKey(dataSourceKey); } - }catch (Exception e){ + } catch (Exception e) { throw new BaseException(StringUtils.format("获取数据源错误:{}", e)); } @@ -80,9 +82,9 @@ public class AdminGlobalDataSourceAspect { //token为空 Long tenantId = null; String header = request.getHeader(UserConstants.DEPT); - if(StringUtils.isNotEmpty(header)){ + if (StringUtils.isNotEmpty(header)) { tenantId = Long.parseLong(header); - }else { + } else { if (StringUtils.isNotEmpty(request.getHeader(UserConstants.HEADER_KEY_TOKEN))) { tenantId = SecurityUtils.getTenantId(); } @@ -93,13 +95,13 @@ public class AdminGlobalDataSourceAspect { // return null; // } //根据组织ID查询数据源 - if(tenantId !=null) { + if (tenantId != null) { SrvDataSource dataSource = dmsLoginService.getDataSourceByTenantId(tenantId); if (dataSource == null) { throw new BaseException(DATASOURCE_NOT_FOUND); } return dataSource.getDataSourceKey(); } - return null; + return "MASTER"; } } diff --git a/research-generator/src/main/resources/mbg.xml b/research-generator/src/main/resources/mbg.xml index 9628473f..bb9127e1 100644 --- a/research-generator/src/main/resources/mbg.xml +++ b/research-generator/src/main/resources/mbg.xml @@ -75,13 +75,19 @@ + -
-
+ + + + + + +