刘光辉
4 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
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<PageListVO<DmsWenjianDayinRenwuVO>> tasks(
            Pagination pagination,
            @RequestParam(name = "biz_status", required = false) String bizStatus)
            throws DataException {
        List<DmsWenjianDayinRenwuVO> 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<List<DmsWenjianDayinJiluVO>> print(
            @PathVariable("id") String id,
            @Valid @RequestBody DmsWenjianDayinForm form) throws DataException {
        throw new DataException("此打印入口缺少客户端成功回传,请刷新并使用新版打印确认入口");
    }
 
    @Operation(summary = "批量一次完整打印公共打印任务全部实体副本")
    @PostMapping("/dayin/renwu/piliang-dayin")
    public ActionResult<List<DmsWenjianDayinJiluVO>> printRemaining(
            @Valid @RequestBody DmsWenjianPiliangDayinForm form) throws DataException {
        throw new DataException("此打印入口缺少客户端成功回传,请刷新并使用新版打印确认入口");
    }
 
    @Operation(summary = "文件分发任务列表")
    @GetMapping("/fenfa/renwu")
    public ActionResult<PageListVO<DmsWenjianFenfaRenwuVO>> distributionTasks(
            Pagination pagination,
            @RequestParam(name = "biz_status", required = false) String bizStatus)
            throws DataException {
        List<DmsWenjianFenfaRenwuVO> 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<PageListVO<DmsWenjianFenfaRenwuVO>> issueLedger(
            Pagination pagination,
            @RequestParam(name = "fafang_status", required = false) String issueStatus)
            throws DataException {
        List<DmsWenjianFenfaRenwuVO> 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<PageListVO<DmsWenjianFenfaRenwuVO>> receiptLedger(
            Pagination pagination,
            @RequestParam(name = "qianshou_status", required = false) String receiptStatus)
            throws DataException {
        List<DmsWenjianFenfaRenwuVO> 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<DmsWenjianJiaojieXiangqingVO> handoverDetail(
            @PathVariable("id") String id) throws DataException {
        return ActionResult.success(service.handoverDetail(id));
    }
 
    @Operation(summary = "根据签收人解析当前所属部门")
    @GetMapping("/fenfa/qianshou-ren/{userId}/bumen-id")
    public ActionResult<String> signerDepartmentId(
            @PathVariable("userId") String userId) throws DataException {
        return ActionResult.success(
                "获取签收部门成功", service.signerDepartmentId(userId));
    }
 
    @Operation(summary = "按打印记录完成单份实体副本现场签收发放")
    @PostMapping("/fenfa/dayin-jilu/{id}/qianshou-fafang")
    public ActionResult<String> 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<String> 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<String> 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<DmsWenjianHuishouMingxiVO> recycleCandidate(
            @Valid @RequestBody DmsWenjianHuishouSaomaForm form) throws DataException {
        return ActionResult.success(service.recycleCandidate(form.getDayinLiushuihao()));
    }
 
    @Operation(summary = "批量回收已签收的实体副本")
    @PostMapping("/fenfa/huishou")
    public ActionResult<DmsWenjianHuishouResultVO> recycle(
            @Valid @RequestBody DmsWenjianHuishouForm form) throws DataException {
        return ActionResult.success("回收成功", service.recycle(form));
    }
 
    @Operation(summary = "按打印流水号查询待销毁实体副本")
    @PostMapping("/fenfa/xiaohui/saoma")
    public ActionResult<DmsWenjianXiaohuiMingxiVO> destructionCandidate(
            @Valid @RequestBody DmsWenjianXiaohuiSaomaForm form) throws DataException {
        return ActionResult.success(service.destructionCandidate(form.getDayinLiushuihao()));
    }
}