yxk-20260601-所务会台账及发起流程

This commit is contained in:
ye1023
2026-06-01 10:34:10 +08:00
parent fe005521e6
commit 8ab0c4efd8
3 changed files with 84 additions and 7 deletions
@@ -40,6 +40,7 @@ import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 党委会
@@ -53,6 +54,8 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
@Slf4j
public class BgPartymatterController extends JeecgController<BgPartymatter, IBgPartymatterService> {
private static final String DEFAULT_MEETING_TYPE = "party";
@Autowired
private IBgPartymatterService bgPartymatterService;
@@ -101,12 +104,13 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
*/
@AutoLog(value = "党委会-添加")
@Operation(summary="党委会-添加")
@RequiresPermissions("bgpartymatter:bg_partymatter:add")
@RequiresPermissions(value = {"bgpartymatter:bg_partymatter:add", "bgofficematter:bg_officematter:add"}, logical = Logical.OR)
@PostMapping(value = "/add")
public Result<String> add(@RequestBody BgPartymatter bgPartymatter) {
if (oConvertUtils.isEmpty(bgPartymatter.getDelFlag())) {
bgPartymatter.setDelFlag("0");
}
fillDefaultMeetingTypeForCreate(bgPartymatter);
fillGeneratedNumber(bgPartymatter);
bgPartymatterService.save(bgPartymatter);
return Result.OK("添加成功!");
@@ -119,9 +123,10 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
*/
@AutoLog(value = "党委会-编辑")
@Operation(summary="党委会-编辑")
@RequiresPermissions("bgpartymatter:bg_partymatter:edit")
@RequiresPermissions(value = {"bgpartymatter:bg_partymatter:edit", "bgofficematter:bg_officematter:edit"}, logical = Logical.OR)
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody BgPartymatter bgPartymatter) {
fillMeetingTypeForUpdate(bgPartymatter);
fillGeneratedNumber(bgPartymatter);
bgPartymatterService.updateById(bgPartymatter);
return Result.OK("编辑成功!");
@@ -142,12 +147,39 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
return Result.error("流程实例ID不能为空");
}
String varField = oConvertUtils.isEmpty(dto.getVarField()) ? "json_data" : dto.getVarField();
fillMeetingTypeForUpdate(dto.getFormData());
fillGeneratedNumber(dto.getFormData());
bgPartymatterService.updateById(dto.getFormData());
runtimeService.setVariable(dto.getProcessInstanceId(), varField, JSONObject.toJSONString(dto.getFormData()));
return Result.OK("保存成功");
}
/**
* 新增入口没有会议类型时默认归入党委会,兼容旧页面和直接接口调用。
*/
private void fillDefaultMeetingTypeForCreate(BgPartymatter bgPartymatter) {
if (bgPartymatter != null && oConvertUtils.isEmpty(bgPartymatter.getMeetingType())) {
bgPartymatter.setMeetingType(DEFAULT_MEETING_TYPE);
}
}
/**
* 部分字段更新不传 meetingType 时沿用数据库原值,避免所务会被默认值覆盖为党委会。
*/
private void fillMeetingTypeForUpdate(BgPartymatter bgPartymatter) {
if (bgPartymatter == null || oConvertUtils.isNotEmpty(bgPartymatter.getMeetingType())) {
return;
}
if (oConvertUtils.isNotEmpty(bgPartymatter.getId())) {
BgPartymatter oldData = bgPartymatterService.getById(bgPartymatter.getId());
if (oldData != null && oConvertUtils.isNotEmpty(oldData.getMeetingType())) {
bgPartymatter.setMeetingType(oldData.getMeetingType());
return;
}
}
bgPartymatter.setMeetingType(DEFAULT_MEETING_TYPE);
}
/**
* 根据会议时间和议题序号生成业务序号,规则:yyyyMMdd-议题序号。
* 前端会即时回显,后端保存前再次生成,保证接口调用和流程保存数据一致。
@@ -167,7 +199,7 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
*/
@AutoLog(value = "党委会-通过id删除")
@Operation(summary="党委会-通过id删除")
@RequiresPermissions("bgpartymatter:bg_partymatter:delete")
@RequiresPermissions(value = {"bgpartymatter:bg_partymatter:delete", "bgofficematter:bg_officematter:delete"}, logical = Logical.OR)
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
bgPartymatterService.delMain(id);
@@ -181,7 +213,7 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
*/
@AutoLog(value = "党委会-批量删除")
@Operation(summary="党委会-批量删除")
@RequiresPermissions("bgpartymatter:bg_partymatter:deleteBatch")
@RequiresPermissions(value = {"bgpartymatter:bg_partymatter:deleteBatch", "bgofficematter:bg_officematter:deleteBatch"}, logical = Logical.OR)
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.bgPartymatterService.delBatchMain(Arrays.asList(ids.split(",")));
@@ -192,17 +224,18 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
* 导出
* @return
*/
@RequiresPermissions("bgpartymatter:bg_partymatter:exportXls")
@RequiresPermissions(value = {"bgpartymatter:bg_partymatter:exportXls", "bgofficematter:bg_officematter:exportXls"}, logical = Logical.OR)
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, BgPartymatter bgPartymatter) {
return super.exportXls(request, bgPartymatter, BgPartymatter.class, "党委会");
String exportName = "office".equals(bgPartymatter.getMeetingType()) ? "所务会" : "党委会";
return super.exportXls(request, bgPartymatter, BgPartymatter.class, exportName);
}
/**
* 导入
* @return
*/
@RequiresPermissions("bgpartymatter:bg_partymatter:importExcel")
@RequiresPermissions(value = {"bgpartymatter:bg_partymatter:importExcel", "bgofficematter:bg_officematter:importExcel"}, logical = Logical.OR)
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, BgPartymatter.class);
@@ -57,6 +57,10 @@ public class BgPartymatter implements Serializable {
@Excel(name = "年份", width = 15)
@Schema(description = "年份")
private java.lang.String year;
/**会议类型*/
@Schema(description = "会议类型:party党委会,office所务会")
@TableField("meeting_type")
private java.lang.String meetingType;
/**密级*/
@Excel(name = "密级", width = 15)
@Dict(dicCode = "secret_level")