package com.docus.server.collect.dept.ws.impl;

import com.docus.core.util.json.JSON;
import com.docus.log.annotation.TrackGroup;
import com.docus.log.context.TrackHelper;
import com.docus.server.collect.IConverter;
import com.docus.server.collect.IWsResult;
import com.docus.server.enums.CollectTypeEnum;
import com.docus.server.collect.web.service.CollectService;
import com.docus.server.sys.common.pojo.dto.DeptDTO;
import com.docus.server.collect.web.process.VisitorProcessor;
import com.docus.server.collect.dept.ws.IDeptServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author wen yongbin
 * @date 2023年2月25日21:56:33
 * @see CollectTypeEnum 枚举
 * @see IConverter 通用转化器
 * @see IWsResult 通用返回结果
 * @see VisitorProcessor 通用处理器
 */
@Service
@Slf4j
public class DeptServerImpl implements IDeptServer {
    @Resource
    private CollectService collectService;

    @Override
    @TrackGroup(
        group = "WEBSERVICE_XML_DEPT", retryKey = "dept",
        beanNames = {"wsDeptConverter", "wsDeptResultImpl"},
        processor = VisitorProcessor.class)
    public String deptModify(String message) {
        log.info("新增/修改科室数据：{}", message);
        collectService.insertOrUpdateDept(JSON.fromJSON((String) TrackHelper.getValue("jsonStr"), DeptDTO.class));
        return null;
    }
}

