zjh
2024-09-27 9dedb6fab4c8bf0f17f453d43c2d259f2dbe1b89
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -31,11 +31,13 @@
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.BeanProperty;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.ltkj.common.annotation.RepeatSubmit;
import com.ltkj.common.core.domain.entity.SysDept;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.core.redis.RedisCache;
@@ -72,10 +74,7 @@
import com.ltkj.system.service.ISysConfigService;
import com.ltkj.system.service.ISysDeptService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.controller.his.HisApiGetMethodService;
import com.ltkj.web.controller.his.HisApiMethod;
import com.ltkj.web.controller.his.HisApiMethodService;
import com.ltkj.web.controller.his.HisMzJysqController;
import com.ltkj.web.controller.his.*;
import com.ltkj.web.controller.lis.LisApiMethod;
import com.ltkj.web.controller.pacs.PacsApiMethodService;
import io.swagger.annotations.Api;
@@ -100,6 +99,8 @@
import com.ltkj.common.utils.poi.ExcelUtil;
import com.ltkj.common.core.page.TableDataInfo;
import static com.ltkj.web.config.pdfutils.PDFBinaryUtil.getPDFBinary;
/**
 * 体检记录Controller
 *
@@ -107,8 +108,8 @@
 * @date 2022-11-21
 */
@RestController
@RequestMapping ("/hosp/order")
@Api (tags = "PC端 ----体检记录接口")
@RequestMapping("/hosp/order")
@Api(tags = "PC端 ----体检记录接口")
@Slf4j
public class TjOrderController extends BaseController {
    @Resource
@@ -133,7 +134,7 @@
    private ITbTransitionService transitionService;
    @Resource
    private ISysConfigService configService;
    @Value ("${path.filePath}")
    @Value("${path.filePath}")
    private String value;
    @Resource
    private ITjOrderRemarkService remarkService;
@@ -141,61 +142,44 @@
    private TjAsyncService asyncService;
    @Resource
    private ISysUserService userService;
    @Resource
    private RedisCache redisCache;
    @Autowired
    private ITjReportPrintService tjReportPrintService;
    @Resource
    private ITjPrintOrderService printOrderService;
    @Resource
    private IJimuOnlineReportService reportService;
    @Resource
    private ITjSurveyRecordService surveyRecordService;
    @Autowired
    private IMallOrderService mallOrderService;
    @Autowired
    private IMallCheckLogService mallCheckLogService;
    @Resource
    private ITjDwDeptService dwDeptService;
    @Resource
    private ITjDwGroupingService dwGroupingService;
    @Resource
    private ITjOrderDetailRulesService orderDetailRulesService;
    @Resource
    private ITjRulesService rulesService;
    @Autowired
    private ITjAskMedicalHistoryService tjAskMedicalHistoryService;
    @Autowired
    private ITjReportGetAddressService tjReportGetAddressService;
    @Resource
    private TestMapper testMapper;
    @Resource
    private LtkjMiddleDetailService middleDetailService;
    @Resource
    private LtkjMiddleHeadService headService;
    @Resource
    private TjvLtkjvtjpatService tjvLtkjvtjpatService;
    @Autowired
    private ThreadPoolConfig threadPoolConfig;
    @Autowired
    private HisApiMethod hisApiMethod;
    @Autowired
    private HisMzJysqController hisMzJysqController;
    @Autowired
    private HisApiGetMethodService hisApiGetMethodService;
    @Autowired
@@ -204,6 +188,8 @@
    private HisApiMethodService controller;
    @Autowired
    private TjProBlService blService;
    @Resource
    private ITjReportTemplateService reportTemplateService;
    @Autowired
    private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
    @Autowired
@@ -212,9 +198,16 @@
    private ITbTransitionService tbTransitionService;
    @Autowired
    private LisApiMethod lisApiMethod;
    @Autowired
    private TjCfService cfService;
    @Autowired
    private TjReportController reportController;
    @Resource
    private ITjReportService tjReportService;
    @Autowired
    private HisPDFUtil hisPDFUtil;
    @Value("${path.reportServer}")
    private String urlValue;
    //将方法返回值解析成json格式
    public JSONObject getJSONObject(String builder) {
@@ -231,8 +224,8 @@
     * 查询体检记录列表
     */
//    @PreAuthorize("@ss.hasPermi('hosp:order:list')")
    @GetMapping ("/list")
    @ApiOperation (value = "查询体检记录列表(默认)")
    @GetMapping("/list")
    @ApiOperation(value = "查询体检记录列表(默认)")
    public TableDataInfo list(TjOrder tjOrder) {
        startPage();
        startOrderBy();
@@ -265,16 +258,16 @@
    }
    @GetMapping ("/getWenJuanList")
    @ApiOperation (value = "查询体检记录列表")
    public AjaxResult getWenJuanList(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer pageNum,
                                     @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                     @ApiParam (value = "体检号") @RequestParam (required = false) String tjNum,
                                     @ApiParam (value = "姓名") @RequestParam (required = false) String name,
                                     @ApiParam (value = "登记开始时间") @RequestParam (required = false) Date djbeginTime,
                                     @ApiParam (value = "登记结束时间") @RequestParam (required = false) Date djendTime,
                                     @ApiParam (value = "报告开始时间") @RequestParam (required = false) Date bgbeginTime,
                                     @ApiParam (value = "报告结束时间") @RequestParam (required = false) Date bgendTime) {
    @GetMapping("/getWenJuanList")
    @ApiOperation(value = "查询体检记录列表")
    public AjaxResult getWenJuanList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                     @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                     @ApiParam(value = "体检号") @RequestParam(required = false) String tjNum,
                                     @ApiParam(value = "姓名") @RequestParam(required = false) String name,
                                     @ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
                                     @ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
                                     @ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
                                     @ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
        Map<String, Object> map = new HashMap<>();
        if (null != name) {
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
@@ -394,17 +387,17 @@
    }
    @GetMapping ("/getOrderList")
    @ApiOperation (value = "查询体检记录列表")
    public AjaxResult getOrderList(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer pageNum,
                                   @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                   @ApiParam (value = "体检号)") @RequestParam (required = false) String tjNum,
                                   @ApiParam (value = "姓名)") @RequestParam (required = false) String name,
                                   @ApiParam (value = "项目名)") @RequestParam (required = false) String xmmc,
                                   @ApiParam (value = "登记开始时间") @RequestParam (required = false) Date djbeginTime,
                                   @ApiParam (value = "登记结束时间") @RequestParam (required = false) Date djendTime,
                                   @ApiParam (value = "报告开始时间") @RequestParam (required = false) Date bgbeginTime,
                                   @ApiParam (value = "报告结束时间") @RequestParam (required = false) Date bgendTime) {
    @GetMapping("/getOrderList")
    @ApiOperation(value = "查询体检记录列表")
    public AjaxResult getOrderList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                   @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                   @ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
                                   @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                   @ApiParam(value = "项目名)") @RequestParam(required = false) String xmmc,
                                   @ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
                                   @ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
                                   @ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
                                   @ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
        Map<String, Object> map = new HashMap<>();
        if (null != name) {
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
@@ -504,8 +497,7 @@
                if (null != order.getPacId()) {
                    if (null != tjPackageService.getById(order.getPacId())) {
                        order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
                    }else
                    if (null != dwDeptService.getById(order.getPacId())) {
                    } else if (null != dwDeptService.getById(order.getPacId())) {
                        order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
                    }
                }
@@ -517,14 +509,14 @@
    }
    @GetMapping ("/getOrderListOO")
    @ApiOperation (value = "体检报告页面——体检记录列表")
    public AjaxResult getOrderListOO(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer pageNum,
                                     @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                     @ApiParam (value = "体检号)") @RequestParam (required = false) String tjNum,
                                     @ApiParam (value = "姓名)") @RequestParam (required = false) String name,
                                     @ApiParam (value = "报告开始时间") @RequestParam (required = false) Date bgbeginTime,
                                     @ApiParam (value = "报告结束时间") @RequestParam (required = false) Date bgendTime) {
    @GetMapping("/getOrderListOO")
    @ApiOperation(value = "体检报告页面——体检记录列表")
    public AjaxResult getOrderListOO(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                     @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                     @ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
                                     @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                     @ApiParam(value = "报告开始时间") @RequestParam(required = false) String djbeginTime,
                                     @ApiParam(value = "报告结束时间") @RequestParam(required = false) String djendTime) {
        Map<String, Object> map = new HashMap<>();
        if (null != name) {
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
@@ -593,13 +585,13 @@
        LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
        wq.isNotNull(TjOrder::getReportTime);
        wq.eq(TjOrder::getHeshouStatus, 1);  //核收状态为1才能打印
        if (null != bgbeginTime && null != bgendTime) {
            wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
        if (null != djbeginTime && null != djendTime) {
            wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(DateUtil.parseDate(djbeginTime)), DateUtil.endOfDay(DateUtil.parseDate(djendTime)));
        }
        if (null != tjNum) {
            wq.eq(TjOrder::getTjNumber, tjNum);
        }
        wq.orderByDesc(TjOrder::getReportTime);
        wq.orderByDesc(TjOrder::getCreateTime);
        Page<TjOrder> page2 = tjOrderService.page(page1, wq);
        List<TjOrder> list = page2.getRecords();
        if (list != null) {
@@ -646,15 +638,15 @@
    }
    @GetMapping ("/getPrintOrderList")
    @ApiOperation (value = "体检发票打印接口")
    public AjaxResult getPrintOrderList(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer pageNum,
                                        @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                        @ApiParam (value = "体检号)") @RequestParam (required = false) String tjNum,
                                        @ApiParam (value = "已打印未打印0未打印1已打印)") @RequestParam (required = false) Integer type,
                                        @ApiParam (value = "姓名") @RequestParam (required = false) String name,
                                        @ApiParam (value = "报告开始时间") @RequestParam (required = false) Date bgbeginTime,
                                        @ApiParam (value = "报告结束时间") @RequestParam (required = false) Date bgendTime) {
    @GetMapping("/getPrintOrderList")
    @ApiOperation(value = "体检发票打印接口")
    public AjaxResult getPrintOrderList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                        @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                        @ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
                                        @ApiParam(value = "已打印未打印0未打印1已打印)") @RequestParam(required = false) Integer type,
                                        @ApiParam(value = "姓名") @RequestParam(required = false) String name,
                                        @ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
                                        @ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
        Map<String, Object> map = new HashMap<>();
        List<TjOrder> collect = null;
        if (null != name) {
@@ -845,9 +837,9 @@
     * 导出体检记录列表
     */
//    @PreAuthorize("@ss.hasPermi('hosp:order:export')")
    @Log (title = "体检记录", businessType = BusinessType.EXPORT)
    @PostMapping ("/export")
    @ApiOperation (value = "导出体检记录列表")
    @Log(title = "体检记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ApiOperation(value = "导出体检记录列表")
    public void export(HttpServletResponse response, TjOrder tjOrder) {
        //List<TjOrder> list = tjOrderService.selectTjOrderList(tjOrder);
        List<TjOrder> list = tjOrderService.selectExportOrderList(tjOrder);
@@ -859,15 +851,15 @@
     * 获取体检记录详细信息
     */
//    @PreAuthorize("@ss.hasPermi('hosp:order:query')")
    @GetMapping (value = "/{orderId}")
    @ApiOperation (value = "获取体检记录详细信息")
    public AjaxResult getInfo(@PathVariable ("orderId") Long orderId) {
    @GetMapping(value = "/{orderId}")
    @ApiOperation(value = "获取体检记录详细信息")
    public AjaxResult getInfo(@PathVariable("orderId") Long orderId) {
        return success(tjOrderService.selectTjOrderByOrderId(orderId));
    }
    @GetMapping ("/getIsRequired")
    @ApiOperation (value = "根据参数配置获取是否必填项(身份证、性别、电话、照片、是否直接下单)")
    @GetMapping("/getIsRequired")
    @ApiOperation(value = "根据参数配置获取是否必填项(身份证、性别、电话、照片、是否直接下单)")
    public AjaxResult getIsRequired() {
        Map<String, String> res = new HashMap<>();
        res.put("has_idcard", configService.selectConfigByKey("has_idcard"));
@@ -883,7 +875,7 @@
     * 体检签到登记接口
     */
    @PostMapping
    @ApiOperation (value = "体检签到登记接口")
    @ApiOperation(value = "体检签到登记接口")
    @Transactional  //(切换数据库出错,所以注释)
    public AjaxResult addOrderAndDetail(@RequestBody TjOrder tjOrder) throws Exception {
        Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
@@ -919,7 +911,7 @@
//            if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) {
//                return AjaxResult.error("未到预约时间");
//            }
            if (DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(),tjReservation.getYxts())).before(new Date())) {
            if (DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(), tjReservation.getYxts())).before(new Date())) {
                tjReservation.setIsExpire(1);
                tjReservationService.updateById(tjReservation);
                return AjaxResult.error("对不起您的预约已超时请重新预约");
@@ -975,7 +967,7 @@
//            tjFlowingWater.setPayStasus(1L);
        }
//        else {
            tjFlowingWater.setPayStasus(0L);
        tjFlowingWater.setPayStasus(0L);
//        }
        if (tjOrderService.save(tjOrder)) {
@@ -1057,18 +1049,18 @@
            /*调用his接口*/
            String config = configService.selectConfigByKey("sfkqdyhis");
            if (null != config && config.equals("Y")) {
                AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer,tjOrder);
                AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
                if (!result.get("code").toString().equals("200")) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    Object jzh = result.get("jzh");
                    if(null !=jzh && null !=jzh.toString()){
                    if (null != jzh && null != jzh.toString()) {
                        hisApiMethod.ZfHisApiMethod(jzh.toString());
                    }
                    log.info("该登记人挂号失败, 就诊号为: "+tjOrder.getCardId());
                    log.info("该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
                    return AjaxResult.error("挂号失败!" + result.get("msg").toString());
                }
                log.info("该登记人的his就诊号是: "+tjOrder.getCardId());
                log.info("该登记人的his就诊号是: " + tjOrder.getCardId());
                //团体
                if ("1".equals(tjOrder.getTjType())) {
                    asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
@@ -1117,8 +1109,8 @@
    }
    @PostMapping ("/addPlOrderAndDetail")
    @ApiOperation (value = "体检批量签到登记接口")
    @PostMapping("/addPlOrderAndDetail")
    @ApiOperation(value = "体检批量签到登记接口")
    @Transactional  //(切换数据库出错,所以注释)
    public AjaxResult addPlOrderAndDetail(@RequestBody QianDaoDto daoDto, HttpServletResponse response) {
        SysUser sysUser = UserHoder.getLoginUser().getUser();
@@ -1516,9 +1508,9 @@
     * 修改体检记录
     */
//    @PreAuthorize("@ss.hasPermi('hosp:order:edit')")
    @Log (title = "体检记录", businessType = BusinessType.UPDATE)
    @Log(title = "体检记录", businessType = BusinessType.UPDATE)
    @PutMapping
    @ApiOperation (value = "修改体检记录")
    @ApiOperation(value = "修改体检记录")
    public AjaxResult edit(@RequestBody TjOrder tjOrder) {
        return toAjax(tjOrderService.updateTjOrder(tjOrder));
    }
@@ -1527,16 +1519,16 @@
     * 删除体检记录
     */
//    @PreAuthorize("@ss.hasPermi('hosp:order:remove')")
    @Log (title = "体检记录", businessType = BusinessType.DELETE)
    @DeleteMapping ("/{orderIds}")
    @ApiOperation (value = "删除体检记录")
    @Log(title = "体检记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{orderIds}")
    @ApiOperation(value = "删除体检记录")
    public AjaxResult remove(@PathVariable Long[] orderIds) {
        return toAjax(tjOrderService.deleteTjOrderByOrderIds(orderIds));
    }
    @GetMapping ("/getOrderDetailByTjNumber")
    @ApiOperation (value = "根据体检号获取体检详情")
    public AjaxResult getOrderDetailByTjNumber(@RequestParam @ApiParam (value = "体检号") String tjNumber) {
    @GetMapping("/getOrderDetailByTjNumber")
    @ApiOperation(value = "根据体检号获取体检详情")
    public AjaxResult getOrderDetailByTjNumber(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
        LambdaQueryWrapper<TjOrder> wq0 = new LambdaQueryWrapper<>();
        wq0.eq(TjOrder::getTjNumber, tjNumber);
        TjOrder tjOrder = tjOrderService.getOne(wq0);
@@ -1556,8 +1548,8 @@
        return AjaxResult.success("暂无数据");
    }
    @PostMapping ("/addtTransition")
    @ApiOperation (value = "添加过渡表数据")
    @PostMapping("/addtTransition")
    @ApiOperation(value = "添加过渡表数据")
    @Transactional
    public AjaxResult addtTransition(@RequestBody Map<String, Object> map) {
        Object packId = map.get("pacId");
@@ -1612,9 +1604,9 @@
    }
    @GetMapping ("/getTransitionList")
    @ApiOperation (value = "查询过渡表数据")
    public AjaxResult getTransitionList(@RequestParam @ApiParam (value = "客户id") String cusId) {
    @GetMapping("/getTransitionList")
    @ApiOperation(value = "查询过渡表数据")
    public AjaxResult getTransitionList(@RequestParam @ApiParam(value = "客户id") String cusId) {
        if (redisCache.hasKey(cusId + "cusId")) {
            List<Map<String, Object>> list = redisCache.getCacheMapValue(cusId + "cusId", cusId);
            return AjaxResult.success(list);
@@ -1629,16 +1621,16 @@
    }
    @GetMapping ("/getQianLiList")
    @ApiOperation (value = "查询体检记录列表")
    public AjaxResult getQianLiList(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer pageNum,
                                    @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                    @ApiParam (value = "体检号") @RequestParam (required = false) String tjNum,
                                    @ApiParam (value = "姓名") @RequestParam (required = false) String name,
                                    @ApiParam (value = "登记开始时间") @RequestParam (required = false) Date djbeginTime,
                                    @ApiParam (value = "登记结束时间") @RequestParam (required = false) Date djendTime,
                                    @ApiParam (value = "报告开始时间") @RequestParam (required = false) Date bgbeginTime,
                                    @ApiParam (value = "报告结束时间") @RequestParam (required = false) Date bgendTime) {
    @GetMapping("/getQianLiList")
    @ApiOperation(value = "查询体检记录列表")
    public AjaxResult getQianLiList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                    @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                    @ApiParam(value = "体检号") @RequestParam(required = false) String tjNum,
                                    @ApiParam(value = "姓名") @RequestParam(required = false) String name,
                                    @ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
                                    @ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
                                    @ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
                                    @ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
        Map<String, Object> map = new HashMap<>();
        if (null != name) {
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
@@ -1747,9 +1739,9 @@
    /**
     * 签离弃检确认返回数据
     */
    @GetMapping ("/abandon")
    @ApiOperation (value = "签离弃检确认返回数据")
    public AjaxResult abandon(@RequestParam @ApiParam (value = "体检号") String tjNumber) {
    @GetMapping("/abandon")
    @ApiOperation(value = "签离弃检确认返回数据")
    public AjaxResult abandon(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
        LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
        wq.eq(TjOrderRemark::getTjNumber, tjNumber);
        List<TjOrderRemark> remarkList = remarkService.list(wq);
@@ -1774,8 +1766,8 @@
     *
     * @ApiParam(value = "体检号") String tjNumber
     */
    @PostMapping ("/tjGoOut")
    @ApiOperation (value = "体检签离")
    @PostMapping("/tjGoOut")
    @ApiOperation(value = "体检签离")
    @Transactional
    public AjaxResult tjGoOut(@RequestBody Map<String, Object> map) {
        Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
@@ -1850,10 +1842,10 @@
    /**
     * 签离
     */
    @GetMapping ("/goOut")
    @ApiOperation (value = "签离")
    @GetMapping("/goOut")
    @ApiOperation(value = "签离")
    @Transactional
    public AjaxResult goOut(@RequestParam @ApiParam (value = "体检号") String tjNumber) {
    public AjaxResult goOut(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
        return getAjaxResult(tjNumber);
    }
@@ -1861,9 +1853,9 @@
    /**
     * 核销订单接口
     */
    @GetMapping ("/orderShip")
    @ApiOperation (value = "PC端手动核销订单接口")
    public AjaxResult orderShip(@RequestParam @ApiParam (value = "体检号") String tjNum) {
    @GetMapping("/orderShip")
    @ApiOperation(value = "PC端手动核销订单接口")
    public AjaxResult orderShip(@RequestParam @ApiParam(value = "体检号") String tjNum) {
        if (tjNum == null) {
            return AjaxResult.error();
        }
@@ -2030,15 +2022,15 @@
    }
    @GetMapping ("/tuanTiListById")
    @ApiOperation (value = "查询团体体检状态")
    public AjaxResult tuanTiListById(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer pageNum,
                                     @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                     @ApiParam (value = "单位") @RequestParam String firmId,
                                     @ApiParam (value = "部门") @RequestParam (required = false) String dwDeptId,
                                     @ApiParam (value = "分组") @RequestParam (required = false) String groupId,
                                     @ApiParam (value = "登记开始时间") @RequestParam Date beginTime,
                                     @ApiParam (value = "登记结束时间") @RequestParam Date endTime) {
    @GetMapping("/tuanTiListById")
    @ApiOperation(value = "查询团体体检状态")
    public AjaxResult tuanTiListById(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                     @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                     @ApiParam(value = "单位") @RequestParam String firmId,
                                     @ApiParam(value = "部门") @RequestParam(required = false) String dwDeptId,
                                     @ApiParam(value = "分组") @RequestParam(required = false) String groupId,
                                     @ApiParam(value = "登记开始时间") @RequestParam Date beginTime,
                                     @ApiParam(value = "登记结束时间") @RequestParam Date endTime) {
        Map<String, Object> map = new HashMap<>();
        int a = 0;
        int b = 0;
@@ -2103,11 +2095,11 @@
    }
    @GetMapping ("/tuanTiBingById")
    @ApiOperation (value = "查询团体体检病种详细信息")
    public AjaxResult tuanTiBingById(@ApiParam (value = "单位") @RequestParam String firmId,
                                     @ApiParam (value = "部门") @RequestParam String firmDeptId,
                                     @ApiParam (value = "病种") @RequestParam (required = false) String bingZhong) {
    @GetMapping("/tuanTiBingById")
    @ApiOperation(value = "查询团体体检病种详细信息")
    public AjaxResult tuanTiBingById(@ApiParam(value = "单位") @RequestParam String firmId,
                                     @ApiParam(value = "部门") @RequestParam String firmDeptId,
                                     @ApiParam(value = "病种") @RequestParam(required = false) String bingZhong) {
        List<TjOrderDetailRules> res1 = new ArrayList<>();
        List<BingZhongVO> res = new ArrayList<>();
@@ -2166,8 +2158,8 @@
    }
    @PostMapping ("/tuanTiBingChart")
    @ApiOperation (value = "查询团体体检病种统计图")
    @PostMapping("/tuanTiBingChart")
    @ApiOperation(value = "查询团体体检病种统计图")
    public AjaxResult tuanTiBingChart(@RequestBody BingZhongVO bingZhongVO) {
        List<TjOrderDetailRules> res1 = new ArrayList<>();
@@ -2206,18 +2198,18 @@
    }
    @PostMapping ("/deletedTbTransitionByCusId")
    @ApiOperation (value = "根据身份证号删除临时表数据")
    public AjaxResult deletedTbTransitionByCusId(@RequestParam @ApiParam (value = "身份证号") String cusId) {
    @PostMapping("/deletedTbTransitionByCusId")
    @ApiOperation(value = "根据身份证号删除临时表数据")
    public AjaxResult deletedTbTransitionByCusId(@RequestParam @ApiParam(value = "身份证号") String cusId) {
        LambdaQueryWrapper<TbTransition> wq = new LambdaQueryWrapper<>();
        wq.between(TbTransition::getCreateTime, transitionService.getTbTransitionCreateTimeByCusId(cusId), new Date());
        wq.eq(TbTransition::getCusId, cusId);
        return AjaxResult.success(transitionService.remove(wq));
    }
    @GetMapping ("/getTransitionInfo")
    @ApiOperation (value = "根据体检号获取汇总和明细的数据")
    public AjaxResult getTransitionInfo(@RequestParam ("tjNumber") String tjNumber) {
    @GetMapping("/getTransitionInfo")
    @ApiOperation(value = "根据体检号获取汇总和明细的数据")
    public AjaxResult getTransitionInfo(@RequestParam("tjNumber") String tjNumber) {
        QueryWrapper<TbTransition> wrapper = new QueryWrapper<>();
        wrapper.select("parent_pro_id", "parent_pro_name", "sum(ord_price) as ord_price")
                .eq("tj_num", tjNumber)
@@ -2278,12 +2270,12 @@
        tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
        if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
            tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(),
                    String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()),tjOrder.getCardId(),String.valueOf(tjFlowingWater.getTjSerialNumber()));
                    String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
        } else {
            tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()),tjOrder.getCardId());
            tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
        }
        tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(),String.valueOf(sysUser.getUserId()),tjOrder.getCardId());
        tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
        //添加remark表数据
        if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
@@ -2312,25 +2304,108 @@
    }
    @PostMapping ("/heXiaoByIds/{orderIds}")
    @ApiOperation (value = "核收报告——————总检审核通过后可以核销,核收后才能打印")
    @PostMapping("/heXiaoByIds/{orderIds}")
    @ApiOperation(value = "核收报告——————总检审核通过后可以核销,核收后才能打印")
    @Transactional
    @RepeatSubmit
    public AjaxResult heXiaoByIds(@PathVariable String[] orderIds) {
        Date date = new Date();
        for (String orderId : orderIds) {
            final TjOrder byId = tjOrderService.getById(orderId);
            byId.setHeshouStatus(1);
            byId.setHeshouDoctor(UserHoder.getLoginUser().getUserId());
            byId.setHeshouTime(new DateTime());
            final boolean b = tjOrderService.updateById(byId);
            if (!b) {
                return AjaxResult.error("核收失败");
            TjOrder byId = tjOrderService.getById(orderId);
            if (null != byId) {
                if (byId.getReportTime() == null) {
                    LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
                    tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
                    tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
                    TjReportTemplate reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper);
                    if ("报表".equals(reportTemplate.getPrint())) {
                        TjReport tjReport = new TjReport();
                        tjReport.setTjNumber(String.valueOf(byId.getTjNumber()));
                        tjReport.setPath(reportTemplate.getUrl() + "?tjNum=" + byId.getTjNumber());
                        tjReport.setType("体检报告");
                        tjReport.setPrint("报表");
                        tjReportService.save(tjReport);
                        //修改order表中的打印报告时间为当前时间
                        LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
                        updateWrapper.eq(TjOrder::getTjNumber, byId.getTjNumber());
                        updateWrapper.set(TjOrder::getReportTime, new Date());
                        updateWrapper.set(TjOrder::getPrintLastTime, new Date());
                        updateWrapper.set(TjOrder::getDownloadLastTime, new Date());
                        updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
                        tjOrderService.update(updateWrapper);
                    }
                    String hisRegistrationId = byId.getCardId();
                    Date createTime = byId.getCreateTime();
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    String ksrq = dateFormat.format(createTime);
                    String jsrq = dateFormat.format(date);
                    HashMap<String, Object> params = new HashMap<>();
                    params.put("his_registration_id", hisRegistrationId);
                    params.put("ksbm", "");
                    params.put("pationid", "");
                    params.put("ksrq", ksrq);
                    params.put("jsrq", jsrq);
                    params.put("pagecount", 100);
                    params.put("page", 1);
                    LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
                    wq1.eq(TjCustomer::getCusId, byId.getUserId());
                    TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
                    try {
                        shengchengbgmoban(byId.getTjNumber(), byId, tjCustomer, reportTemplate);
                        byId.setStatus(TjConstants.TJ_END);
                        byId.setReportTime(date);
                        byId.setPrintLastTime(date);
                        byId.setDownloadLastTime(date);
                    } catch (Exception e) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        e.printStackTrace();
                        // 调用撤销
                        logger.error("生成报告异常");
                        return AjaxResult.error("生成报告异常,核收失败");
                    }
                }
                byId.setHeshouStatus(1);
                byId.setHeshouDoctor(UserHoder.getLoginUser().getUserId());
                byId.setHeshouTime(date);
                final boolean b = tjOrderService.updateById(byId);
                if (!b) {
                    return AjaxResult.error("核收失败");
                }
            }
        }
        return AjaxResult.success("核收成功");
    }
    @GetMapping ("/getHistryTjOrderByCusIdCard")
    @ApiOperation (value = "根据身份证号查看历史体检记录")
    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) throws Exception {
        AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
        if (!ajaxResult.get("code").toString().equals("200")) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        } else {
            Long userId = tjCustomer.getCusId();
            String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_报告.pdf";
            TjReport tjReport = new TjReport();
            tjReport.setTjNumber(String.valueOf(tjNumber));
            tjReport.setPath(urlValue + outputFileName1);
            String outputPath1 = value + "\\";
            String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
            tjReport.setReport(pdfBinary);
            tjReport.setType("体检报告");
            tjReport.setPrint("pdf");
            tjReportService.save(tjReport);
//            Date date = new Date();
//            tjOrder.setStatus(TjConstants.TJ_END);
//            tjOrder.setReportTime(date);
//            tjOrder.setPrintLastTime(date);
//            tjOrder.setDownloadLastTime(date);
//            tjOrderService.updateById(tjOrder);
        }
        return ajaxResult;
    }
    @GetMapping("/getHistryTjOrderByCusIdCard")
    @ApiOperation(value = "根据身份证号查看历史体检记录")
    @Transactional
    public AjaxResult getHistryTjOrderByCusIdCard(@RequestParam String cusIdCard) {
        TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusIdCard);
@@ -2350,8 +2425,8 @@
    }
    @GetMapping ("/getHistryTjOrderProByCusIdCard")
    @ApiOperation (value = "根据身份证号查看历史体检项目记录")
    @GetMapping("/getHistryTjOrderProByCusIdCard")
    @ApiOperation(value = "根据身份证号查看历史体检项目记录")
    @Transactional
    public AjaxResult getHistryTjOrderProByCusIdCard(@RequestParam String cusIdCard) {
        TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusIdCard);
@@ -2410,8 +2485,8 @@
    }
    @GetMapping ("/getHistryTjOrderByCusId")
    @ApiOperation (value = "根据客户id查看历史体检记录")
    @GetMapping("/getHistryTjOrderByCusId")
    @ApiOperation(value = "根据客户id查看历史体检记录")
    @Transactional
    public AjaxResult getHistryTjOrderByCusId(@RequestParam String cusId) {
        TjCustomer tjCustomer = tjCustomerService.getById(cusId);
@@ -2445,10 +2520,10 @@
    }
    @GetMapping ("/revokeTjOrderByTjNum")
    @ApiOperation (value = "根据客户体检号撤销体检记录")
    @GetMapping("/revokeTjOrderByTjNum")
    @ApiOperation(value = "根据客户体检号撤销体检记录")
    @Transactional
    public AjaxResult revokeTjOrderByTjNum(@RequestParam @ApiParam (value = "体检号") String tjNum) {
    public AjaxResult revokeTjOrderByTjNum(@RequestParam @ApiParam(value = "体检号") String tjNum) {
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        if (null != order) {
@@ -2499,14 +2574,14 @@
    }
    @GetMapping ("/getCusTomterListByCompId")
    @ApiOperation (value = "获取单位id体检人信息接口")
    public AjaxResult getCusTomterListByCompId(@RequestParam (required = false) @ApiParam (value = "单位id") String compId,
                                               @RequestParam (required = false) @ApiParam (value = "名字") String name,
                                               @RequestParam (required = false) @ApiParam (value = "部门id") String deptId,
                                               @RequestParam (required = false) @ApiParam (value = "预约时间") Date reservationTime,
                                               @RequestParam (defaultValue = "1") Integer page,
                                               @RequestParam (defaultValue = "10") Integer pageSize) {
    @GetMapping("/getCusTomterListByCompId")
    @ApiOperation(value = "获取单位id体检人信息接口")
    public AjaxResult getCusTomterListByCompId(@RequestParam(required = false) @ApiParam(value = "单位id") String compId,
                                               @RequestParam(required = false) @ApiParam(value = "名字") String name,
                                               @RequestParam(required = false) @ApiParam(value = "部门id") String deptId,
                                               @RequestParam(required = false) @ApiParam(value = "预约时间") Date reservationTime,
                                               @RequestParam(defaultValue = "1") Integer page,
                                               @RequestParam(defaultValue = "10") Integer pageSize) {
        Page<TjReservation> pages = new Page<>(page, pageSize);
        LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
        if (null != compId) wq.eq(TjReservation::getCompanyId, compId);
@@ -2532,10 +2607,10 @@
    }
    @PostMapping ("/plRevokeTjOrderByTjNum")
    @ApiOperation (value = "根据客户体检号批量撤销体检记录")
    @PostMapping("/plRevokeTjOrderByTjNum")
    @ApiOperation(value = "根据客户体检号批量撤销体检记录")
    @Transactional
    public AjaxResult plRevokeTjOrderByTjNum(@RequestBody @ApiParam (value = "预约主键id集合") List<String> reservationIds) {
    public AjaxResult plRevokeTjOrderByTjNum(@RequestBody @ApiParam(value = "预约主键id集合") List<String> reservationIds) {
        if (null != reservationIds && reservationIds.size() > 0) {
            LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
            wq1.in(TjOrder::getReservationId, reservationIds);
@@ -2569,8 +2644,8 @@
        return AjaxResult.error("请选择要撤销的人员!");
    }
    @PostMapping ("makeTjPDF")
    @ApiOperation (value = "批量生成PDF")
    @PostMapping("makeTjPDF")
    @ApiOperation(value = "批量生成PDF")
    public AjaxResult makeTjPDF(@RequestBody List<String> reservations) {
        QueryWrapper<TjOrder> queryWrapper = new QueryWrapper<>();
        queryWrapper.in("reservation_id", reservations);
@@ -2612,11 +2687,11 @@
    }
    @GetMapping ("/delTbBycusCardIdAndProId")
    @ApiOperation (value = "根据客户身份证号和项目父项id删除临时表数据")
    @GetMapping("/delTbBycusCardIdAndProId")
    @ApiOperation(value = "根据客户身份证号和项目父项id删除临时表数据")
    @Transactional
    public AjaxResult delTbBycusCardIdAndProId(@RequestParam @ApiParam (value = "身份证号") String cusCardId,
                                               @RequestParam @ApiParam (value = "父项id") String proId) {
    public AjaxResult delTbBycusCardIdAndProId(@RequestParam @ApiParam(value = "身份证号") String cusCardId,
                                               @RequestParam @ApiParam(value = "父项id") String proId) {
        if (transitionService.delTbBycusCardIdAndProId(cusCardId, proId)) {
            return AjaxResult.success();
@@ -2625,10 +2700,10 @@
    }
    @GetMapping ("/revokeTjOrderByTjCardId")
    @ApiOperation (value = "根据就诊号撤销申请记录")
    @GetMapping("/revokeTjOrderByTjCardId")
    @ApiOperation(value = "根据就诊号撤销申请记录")
    @Transactional
    public AjaxResult revokeTjOrderByTjCardId(@RequestParam @ApiParam (value = "就诊号") String cardId) {
    public AjaxResult revokeTjOrderByTjCardId(@RequestParam @ApiParam(value = "就诊号") String cardId) {
        TjOrder order = new TjOrder();
        order.setCardId(cardId);
@@ -2663,10 +2738,10 @@
    }
    @GetMapping ("/revokeTjOrderByTjh")
    @ApiOperation (value = "根据就体检号删除记录")
    @GetMapping("/revokeTjOrderByTjh")
    @ApiOperation(value = "根据就体检号删除记录")
    @Transactional
    public AjaxResult revokeTjOrderByTjh(@RequestParam @ApiParam (value = "体检号") String tjNum) {
    public AjaxResult revokeTjOrderByTjh(@RequestParam @ApiParam(value = "体检号") String tjNum) {
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        if (null != order) {
@@ -2684,10 +2759,10 @@
    }
    @GetMapping ("/getBlproByTjh")
    @ApiOperation (value = "根据体检号获取补录项目记录")
    @GetMapping("/getBlproByTjh")
    @ApiOperation(value = "根据体检号获取补录项目记录")
    @Transactional
    public AjaxResult getBlproByTjh(@RequestParam @ApiParam (value = "体检号") String tjNum) {
    public AjaxResult getBlproByTjh(@RequestParam @ApiParam(value = "体检号") String tjNum) {
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        if (null != order) {
@@ -2718,8 +2793,8 @@
    }
    @PostMapping ("/revokeBlProByBldhAndTjh")
    @ApiOperation (value = "根据补录单号和体检号删除记录")
    @PostMapping("/revokeBlProByBldhAndTjh")
    @ApiOperation(value = "根据补录单号和体检号删除记录")
    @Transactional
    public AjaxResult revokeBlProByBldhAndTjh(@RequestBody TjProBlDto dto) {
@@ -2750,7 +2825,7 @@
                }
                boolean b = hisApiMethod.ZfBlXm(dto.getBldhs(), order);
                if(!b){
                if (!b) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("撤销失败,调用作废出现失败");
                }
@@ -2768,8 +2843,8 @@
    }
    @PostMapping ("/addYaoPinShenQing")
    @ApiOperation (value = "药品信息申请")
    @PostMapping("/addYaoPinShenQing")
    @ApiOperation(value = "药品信息申请")
    @Transactional
    public AjaxResult addYaoPinShenQing(@RequestBody OutpinmedicapplyDto dto) {
        AjaxResult result = controller.Outpinmedicapply(dto);