陈昶聿
2 天以前 9a7b7c6558a3248284eabb751354a44962e97730
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.PreachFormEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.StringUtils;
@@ -36,14 +37,12 @@
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -58,6 +57,11 @@
@RestController
@RequestMapping("/smartor/serviceSubtask")
public class ServiceSubtaskController extends BaseController {
    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.setAutoGrowCollectionLimit(1024); // 或 2048、4096 等
    }
    @Autowired
    private IServiceSubtaskService serviceSubtaskService;
@@ -115,16 +119,6 @@
        // 直接从已有聚合结果推算total,避免去掉分页后再全量查一遍大表
        long total = 0L;
        try {
//                 * wzx: 未执行数量
//                    * ysf: 已随访数量
//                    * fssb: 发送失败数量
//                    * yfs: 已发送数量
//                    * dsf: 待随访数量
//            long wzx = map.get("wzx") != null ? ((Number) map.get("wzx")).longValue() : 0L;
//            long ysf = map.get("ysf") != null ? ((Number) map.get("ysf")).longValue() : 0L;
//            long dsf = map.get("dsf") != null ? ((Number) map.get("dsf")).longValue() : 0L;
//            long fssb = map.get("fssb") != null ? ((Number) map.get("fssb")).longValue() : 0L;
            total = map.get("total") != null ? ((Number) map.get("total")).longValue() : 0L;
        } catch (Exception e) {
@@ -181,7 +175,7 @@
                if (ObjectUtils.isNotEmpty(oldCondition) && isSameCondition(oldCondition, serviceSubtaskEntity)) {
                    redisFlag = true;
                    map = redisMap;
                    redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
                    redisCache.setCacheObject(userId + "patItemCount", map, 60, TimeUnit.MINUTES);
                }
            }
            if (!redisFlag) {
@@ -213,24 +207,31 @@
    //@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
    @Log(title = "单一任务(随访宣教)", businessType = BusinessType.EXPORT)
    @PostMapping("/patItemExport")
    public void patItemExport(HttpServletResponse response, @RequestBody ServiceSubtaskEntity serviceSubtaskVO) {
    public void patItemExport(HttpServletResponse response, ServiceSubtaskEntity serviceSubtaskVO) {
        LoginUser loginUser = getLoginUser();
        SysUser user = loginUser.getUser();
        serviceSubtaskVO.setOrgid(user.getOrgid());
        List<ServiceSubtaskRes> serviceSubtaskList = null;
        if (serviceSubtaskVO != null) {
            if (serviceSubtaskVO.getPageNum() != null && serviceSubtaskVO.getPageSize() != null)
                PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize());
            serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskVO);
        }
        List<ServiceSubtaskExprot> serviceSubtaskExprots = null;
        List<ServiceSubtaskExport> serviceSubtaskExports = null;
        if (!CollectionUtils.isEmpty(serviceSubtaskList)) {
            serviceSubtaskExprots = DtoConversionUtils.sourceToTarget(serviceSubtaskList, ServiceSubtaskExprot.class);
            for (ServiceSubtaskExprot serviceSubtaskExprot : serviceSubtaskExprots) {
                String pf = PreachFormEnum.getDescByCode(serviceSubtaskExprot.getPreachform());
                serviceSubtaskExprot.setPreachform(pf);
            serviceSubtaskExports = DtoConversionUtils.sourceToTarget(serviceSubtaskList, ServiceSubtaskExport.class);
            for (ServiceSubtaskExport serviceSubtaskExport : serviceSubtaskExports) {
                String pf = PreachFormEnum.getDescByCode(serviceSubtaskExport.getPreachform());
                serviceSubtaskExport.setPreachform(pf);
                //计算出院天数
                if (!Objects.isNull(serviceSubtaskExport.getEndtime())) {
                    Integer endDay = DateUtils.differentDaysByMillisecond(serviceSubtaskExport.getEndtime(), new Date());
                    serviceSubtaskExport.setEndDay(endDay);
                }
            }
        }
        ExcelUtil<ServiceSubtaskExprot> util = new ExcelUtil<ServiceSubtaskExprot>(ServiceSubtaskExprot.class);
        util.exportExcel(response, serviceSubtaskExprots, "患者随访信息表单");
        ExcelUtil<ServiceSubtaskExport> util = new ExcelUtil<ServiceSubtaskExport>(ServiceSubtaskExport.class);
        util.exportExcel(response, serviceSubtaskExports, "患者随访信息表单");
    }
@@ -436,6 +437,37 @@
    }
    /**
     * 新增或修改删除单一任务(临时接口)
     */
    @ApiOperation("新增或修改删除单一任务(临时接口)")
    //@PreAuthorize("@ss.hasPermi('system:task:add')")
    @Log(title = "单一任务(随访)", businessType = BusinessType.INSERT)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/insertOrUpdateTaskByTaskId")
    public AjaxResult insertOrUpdateTaskByTaskId(@RequestBody ServiceTaskVO ivrTaskVO) {
        //根据入参查询信息-用户关系
        ServiceSubtask serviceSubtask = new ServiceSubtask();
        if(ObjectUtils.isNotEmpty(ivrTaskVO.getTaskid())){
            serviceSubtask.setTaskid(ivrTaskVO.getTaskid());
            ServiceTaskVO ivrTaskVO1 = serviceSubtaskService.queryTaskByCondition(serviceSubtask);
            log.info("insertOrUpdateTaskByTaskId的入参为:{}", ivrTaskVO);
            LoginUser loginUser = getLoginUser();
            SysUser user = loginUser.getUser();
            ivrTaskVO.setCreateBy(user.getNickName());
            ivrTaskVO.setUpdateBy(user.getNickName());
            ivrTaskVO.setOrgid(user.getOrgid());
            ivrTaskVO.setPatTaskRelevances(ivrTaskVO1.getPatTaskRelevances());
            return success(serviceSubtaskService.insertOrUpdateTask(ivrTaskVO));
        }else {
            return error("insertOrUpdateTaskByTaskId taskid不可为空");
        }
    }
    /**
     * 电话回调任务(上海)
     */
    @ApiOperation("电话回调任务")