package jnpf.dmsController; import cn.dev33.satoken.annotation.SaCheckLogin; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jnpf.base.ActionResult; import jnpf.base.Pagination; import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.dmsEntity.fenfa.form.DmsWenjianBupinghengForm; import jnpf.dmsEntity.fenfa.form.DmsWenjianDayinForm; import jnpf.dmsEntity.fenfa.form.DmsWenjianPiliangDayinForm; import jnpf.dmsEntity.fenfa.form.DmsWenjianQianshouFafangForm; import jnpf.dmsEntity.fenfa.form.DmsWenjianHuishouForm; import jnpf.dmsEntity.fenfa.form.DmsWenjianHuishouSaomaForm; import jnpf.dmsEntity.fenfa.form.DmsWenjianXiaohuiSaomaForm; import jnpf.dmsEntity.fenfa.vo.DmsWenjianDayinJiluVO; import jnpf.dmsEntity.fenfa.vo.DmsWenjianDayinRenwuVO; import jnpf.dmsEntity.fenfa.vo.DmsWenjianFenfaRenwuVO; import jnpf.dmsEntity.fenfa.vo.DmsWenjianJiaojieXiangqingVO; import jnpf.dmsEntity.fenfa.vo.DmsWenjianHuishouMingxiVO; import jnpf.dmsEntity.fenfa.vo.DmsWenjianHuishouResultVO; import jnpf.dmsEntity.fenfa.vo.DmsWenjianXiaohuiMingxiVO; import jnpf.dmsService.DmsWenjianFenfaService; import jnpf.exception.DataException; import jnpf.util.JsonUtil; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Tag(name = "DMS公共打印任务与文件分发接口") @RestController @SaCheckLogin @RequiredArgsConstructor @RequestMapping("/biz/wenjian") public class DmsWenjianFenfaController { private final DmsWenjianFenfaService service; @Operation(summary = "公共打印任务列表") @GetMapping("/dayin/renwu") public ActionResult> tasks( Pagination pagination, @RequestParam(name = "biz_status", required = false) String bizStatus) throws DataException { List list = service.tasks(pagination, bizStatus); PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class); return ActionResult.page(list, paginationVO); } @Operation(summary = "一次完整打印公共打印任务全部实体副本") @PostMapping("/dayin/renwu/{id}/dayin") public ActionResult> print( @PathVariable("id") String id, @Valid @RequestBody DmsWenjianDayinForm form) throws DataException { throw new DataException("此打印入口缺少客户端成功回传,请刷新并使用新版打印确认入口"); } @Operation(summary = "批量一次完整打印公共打印任务全部实体副本") @PostMapping("/dayin/renwu/piliang-dayin") public ActionResult> printRemaining( @Valid @RequestBody DmsWenjianPiliangDayinForm form) throws DataException { throw new DataException("此打印入口缺少客户端成功回传,请刷新并使用新版打印确认入口"); } @Operation(summary = "文件分发任务列表") @GetMapping("/fenfa/renwu") public ActionResult> distributionTasks( Pagination pagination, @RequestParam(name = "biz_status", required = false) String bizStatus) throws DataException { List list = service.distributionTasks(pagination, bizStatus); PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class); return ActionResult.page(list, paginationVO); } @Operation(summary = "文件发放台账") @GetMapping("/fenfa/fafang-taizhang") public ActionResult> issueLedger( Pagination pagination, @RequestParam(name = "fafang_status", required = false) String issueStatus) throws DataException { List list = service.issueLedger(pagination, issueStatus); PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class); return ActionResult.page(list, paginationVO); } @Operation(summary = "文件签收台账") @GetMapping("/fenfa/qianshou-taizhang") public ActionResult> receiptLedger( Pagination pagination, @RequestParam(name = "qianshou_status", required = false) String receiptStatus) throws DataException { List list = service.receiptLedger(pagination, receiptStatus); PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class); return ActionResult.page(list, paginationVO); } @Operation(summary = "文件签收发放表单详情") @GetMapping("/fenfa/dayin-jilu/{id}/jiaojie-xiangqing") public ActionResult handoverDetail( @PathVariable("id") String id) throws DataException { return ActionResult.success(service.handoverDetail(id)); } @Operation(summary = "根据签收人解析当前所属部门") @GetMapping("/fenfa/qianshou-ren/{userId}/bumen-id") public ActionResult signerDepartmentId( @PathVariable("userId") String userId) throws DataException { return ActionResult.success( "获取签收部门成功", service.signerDepartmentId(userId)); } @Operation(summary = "按打印记录完成单份实体副本现场签收发放") @PostMapping("/fenfa/dayin-jilu/{id}/qianshou-fafang") public ActionResult handoverByRecordId( @PathVariable("id") String id, @Valid @RequestBody DmsWenjianQianshouFafangForm form) throws DataException { service.handoverByRecordId(id, form); return ActionResult.success("签收/发放成功", "签收/发放成功"); } @Operation(summary = "按打印流水号完成单份实体副本现场签收发放") @PostMapping("/fenfa/dayin-jilu/liushuihao/{serialNumber}/qianshou-fafang") public ActionResult handoverBySerialNumber( @PathVariable("serialNumber") String serialNumber, @Valid @RequestBody DmsWenjianQianshouFafangForm form) throws DataException { service.handoverBySerialNumber(serialNumber, form); return ActionResult.success("签收/发放成功", "签收/发放成功"); } @Operation(summary = "登记打印记录不平衡") @PostMapping("/fenfa/dayin-jilu/{id}/bupingheng") public ActionResult registerImbalance( @PathVariable("id") String id, @Valid @RequestBody DmsWenjianBupinghengForm form) throws DataException { service.registerImbalance(id, form); return ActionResult.success("不平衡登记成功", "不平衡登记成功"); } @Operation(summary = "按打印流水号查询待回收实体副本") @PostMapping("/fenfa/huishou/saoma") public ActionResult recycleCandidate( @Valid @RequestBody DmsWenjianHuishouSaomaForm form) throws DataException { return ActionResult.success(service.recycleCandidate(form.getDayinLiushuihao())); } @Operation(summary = "批量回收已签收的实体副本") @PostMapping("/fenfa/huishou") public ActionResult recycle( @Valid @RequestBody DmsWenjianHuishouForm form) throws DataException { return ActionResult.success("回收成功", service.recycle(form)); } @Operation(summary = "按打印流水号查询待销毁实体副本") @PostMapping("/fenfa/xiaohui/saoma") public ActionResult destructionCandidate( @Valid @RequestBody DmsWenjianXiaohuiSaomaForm form) throws DataException { return ActionResult.success(service.destructionCandidate(form.getDayinLiushuihao())); } }