lige
2023-12-13 fd1f0a356eb828503bec075a471f8860b601cd0b
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -8,11 +8,15 @@
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.core.redis.RedisCache;
import com.ltkj.common.enums.DataSourceType;
import com.ltkj.common.utils.SecurityUtils;
import com.ltkj.common.utils.StringUtils;
import com.ltkj.framework.config.MatchUtils;
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.*;
import com.ltkj.hosp.vodomain.CsProVo;
import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo;
import com.ltkj.mall.mallOrderUtils.TjConstants;
@@ -31,6 +35,8 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save;
/**
 * @Author: 西安路泰科技有限公司/赵佳豪
@@ -70,6 +76,24 @@
    private ISysConfigService configService;
    @Resource
    private ISysDeptService deptService;
    @Resource
    private TestMapper testMapper;
    @Resource
    private TjvLtkjvtjpatService tjvLtkjvtjpatService;
    @Resource
    private LtkjMiddleDetailService middleDetailService;
    @Resource
    private LtkjMiddleHeadService headService;
    @Resource
    private LtkjExamJcbgdService ltkjExamJcbgdService;
    @Resource
    private LtkjExamJcsqdService ltkjExamJcsqdService;
    @Resource
    private LtkjHybgdService ltkjHybgdService;
    @Resource
    private LtkjHysqdService ltkjHysqdService;
    @GetMapping("/getOperationPermissionsByTjNum")
@@ -222,10 +246,9 @@
     */
    @GetMapping("/confirmOrder")
    @ApiOperation(value = "初审(并修改状态)接口")
//    @PreAuthorize("@ss.hasPermi('check:check:confirmOrder')")
    @Transactional
    public AjaxResult confirmOrder(@ApiParam(value = "tjNumber") @RequestParam String tjNumber,
                                   @ApiParam(value = "状态 0同意1拒绝 默认同意") @RequestParam(defaultValue = "0") Integer status,
                                   @ApiParam(value = "状态 0同意 1拒绝 默认同意") @RequestParam(defaultValue = "0") Integer status,
                                   @ApiParam(value = "驳回理由") @RequestParam(required = false) String remark) {
        int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
        if (num > 0) return AjaxResult.error("有延期项目暂不能审核!");
@@ -241,6 +264,7 @@
                tjOrder.setConfirmStatus(remark);
                if (status == 0) {
                    tjOrder.setStatus(TjConstants.TJ_CHECK);
                    asyncService.updateCheckType(tjNumber);
                } else {
                    tjOrder.setStatus(TjConstants.TJ_REFUSED);
                }
@@ -250,6 +274,8 @@
                    confirmLog.setTjNum(tjNumber);
                    confirmLog.setStatus(status);
                    confirmLogService.save(confirmLog);
                    asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 0, null, null, null));
                    asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 1, null, null, null));
                    return AjaxResult.success("操作成功");
                }
                return AjaxResult.error("操作失败");
@@ -261,16 +287,48 @@
    /**
     * 同步sql server数据到本地数据库数据接口
     */
    @GetMapping("/dataSynchronization")
    @ApiOperation(value = "同步sql server数据到本地数据库数据接口")
    public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
        List<LtkjHysqd> one = testMapper.getHysqdByTmh(tjNumber);
        if (one!=null){
            DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
            ltkjHysqdService.saveBatch(one);
            DynamicDataSourceContextHolder.clearDataSourceType();
            for (LtkjHysqd ltkjHysqd : one) {
                List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
                if (one1!=null){
                    DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
                    ltkjHybgdService.saveBatch(one1);
                    DynamicDataSourceContextHolder.clearDataSourceType();
                }
            }
        }
        List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
        if (one2!=null){
            DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
            ltkjExamJcsqdService.saveBatch(one2);
            DynamicDataSourceContextHolder.clearDataSourceType();
            for (LtkjExamJcsqd ltkjExamJcsqd : one2) {
                List<LtkjExamJcbgd> one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh());
                if (one3!=null){
                    DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
                    ltkjExamJcbgdService.saveBatch(one3);
                    DynamicDataSourceContextHolder.clearDataSourceType();
                }
            }
        }
        return AjaxResult.success("同步成功");
    }
    /**
     * 查询体检记录客户列表
     *
     * @param tjNumber
     * @param checkStatus
     * @param page
     * @param pageSize
     * @param compId
     * @param beginTime
     * @param endTime
     * @return
     */
    @GetMapping("/getList")
    @ApiOperation(value = "查询体检记录客户列表")//0待1已
@@ -319,6 +377,7 @@
                            customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
                            customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
                            customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
                            customer.setTjCategory(tjOrder.getTjCategory());
                            if (tjOrder.getFirmId().equals("0")) {
                                customer.setTjCompName(null);
                            } else {
@@ -358,6 +417,7 @@
            customers = redisCache.getCacheMapValue("check", "ys");
        }
        if (customers != null && customers.size() > 0) {
//            asyncService.addRedis(customers);
            List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
            map.put("customers", customerLists);
            map.put("total", customers.size());
@@ -411,6 +471,7 @@
                            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
                            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
                            transitionService.remove(wqq);
                            asyncService.updateCheckType(tjNumber);
                            return AjaxResult.success("操作成功");
                        }
                        return AjaxResult.error("操作失败");
@@ -432,9 +493,17 @@
     */
    @GetMapping("/updateCheckType")
    @ApiOperation(value = "总检点击体检信息详情")
//    @PreAuthorize("@ss.hasPermi('check:check:updateCheckType')")
    public AjaxResult updateCheckType(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
        final long l = System.currentTimeMillis();
        if (redisCache.hasKey("updateCheckType" + tjNumber)) {
            List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber);
            return AjaxResult.success(cacheMapValue);
        }
        return getAjaxResult(tjNumber);
    }
    private AjaxResult getAjaxResult(String tjNumber) {
        asyncService.updateCheckType(tjNumber);
        List<Map<String, Object>> list = new ArrayList<>();
        TjOrder one = orderService.getOrderByTjNum(tjNumber);
@@ -458,7 +527,11 @@
                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                        final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
                        tjOrderDetail.setProject(byId);
                        if (null == byId) {
                            detailService.removeById(tjOrderDetail.getOrderDetailId());
                        } else {
                            tjOrderDetail.setProject(byId);
                        }
                        List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
                        if (list2.size() == 0) {
                            tjOrderDetail.setStandard(new TjStandard());
@@ -466,14 +539,20 @@
                            tjOrderDetail.setStandard(list2.get(0));
                        } else {
                            final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday()));
                            TjStandard tjStandard1=tjStandardService.getListBySexAndType(customer.getCusSex(),ageType, String.valueOf(tjOrderDetail.getProId()));
                            TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId()));
                            tjOrderDetail.setStandard(tjStandard1);
                        }
                    }
                    String summary = remark.getSummary();
                    if (null != summary) {
                          String[] split = summary.split(";");
                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(Arrays.asList(split)));
                        String[] split = summary.split(";");
//                        List<Long> longList = new ArrayList<>();
//                        for (String str : split) {
//                            if(!"".equals(str)){
//                                longList.add(Long.valueOf(str));
//                            }
//                        }
                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split));
                    } else {
                        parent.put("parentAdvice", null);
@@ -489,8 +568,6 @@
                }
//                }
            }
            final long l1 = System.currentTimeMillis();
            System.out.println("++++++++++++++++++++++++++++++++++++++++++==============="+(l1-l));
            return AjaxResult.success(list);
        }
        return AjaxResult.success("该客户没有体检项目数据!");
@@ -544,6 +621,7 @@
                customer.setTjTime(tjOrder.getCreateTime());
                customer.setFinishTime(tjOrder.getFinishTime());
                customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
                customer.setTjCategory(tjOrder.getTjCategory());
                if (tjOrder.getFirmId() == null) {
                    customer.setTjCompName("无");
                } else {