package com.hxhq.business.service.impl;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.GyzjJcgj;
import com.hxhq.business.utils.JctUtil;
import com.hxhq.business.utils.lang.GyzjJcnrUtil;
import com.hxhq.common.core.exception.ServiceException;
import com.hxhq.common.core.utils.StringUtils;
import com.hxhq.system.api.domain.SysUser;
import org.springframework.stereotype.Service;
import com.hxhq.business.mapper.GyzjJcgjMapper;
import com.hxhq.business.service.IGyzjJcgjService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

/**
 * -稽查轨迹Service业务层处理
 *
 * @author hxhq
 * @date 2025-12-18
 */
@Service
public class GyzjJcgjServiceImpl extends ServiceImpl<GyzjJcgjMapper, GyzjJcgj> implements IGyzjJcgjService
{

    /**
     * 查询稽查轨迹列表
     * @param gyzjJcgj 麻给药
     * @return
     */
    @Override
    public List<GyzjJcgj> queryList(GyzjJcgj gyzjJcgj){
        QueryWrapper<GyzjJcgj> queryWrapper = Wrappers.query();
        if(gyzjJcgj.getGyzjId()==null||gyzjJcgj.getGyzjId().longValue()<0){
            throw new ServiceException("id不能为空");
        }
        queryWrapper.eq("gyzj_id",gyzjJcgj.getGyzjId());
        if(gyzjJcgj.getJcgjlx()!=null&&gyzjJcgj.getJcgjlx().intValue()>0){
            queryWrapper.eq("jcgjlx",gyzjJcgj.getJcgjlx());
        }
        if (StringUtils.isNoneBlank(gyzjJcgj.getJcmc())) {
            queryWrapper.and(p -> p.like("`jcmc`", gyzjJcgj.getJcmc())
                    .or().like("`jcnr`", gyzjJcgj.getJcmc()));
        }
        queryWrapper.orderByDesc("id");
        return this.list(queryWrapper);
    }

    /**
     * 新增稽查轨迹
     * @param gyzjId 麻精药id
     * @param jcgjlx 稽查轨迹类型:1:流程；3：编辑
     * @param jcmc 稽查名称
     * @param jcmcys 稽查名称颜色：1：蓝色；3：红色；5：绿色；7：橙色
     * @param jcnr 稽查内容
     * @param qmr 签名人
     * @param remark 备注
     */
    @Override
    public  void saveJcgj(Long  gyzjId, Integer jcgjlx, String jcmc, Integer jcmcys, Map<String, String> jcnr, SysUser qmr, String remark){
        GyzjJcgj gyzjJcgj = new GyzjJcgj();
        gyzjJcgj.setGyzjId(gyzjId);
        gyzjJcgj.setJcgjlx(jcgjlx);
        gyzjJcgj.setJcmc(jcmc);
        gyzjJcgj.setJcmcEn(GyzjJcnrUtil.getEn(jcmc));
        gyzjJcgj.setJcmcys(jcmcys);
        if(jcnr!=null){
            gyzjJcgj.setJcnr(JctUtil.formatStr(jcnr));
            gyzjJcgj.setJcnrEn(GyzjJcnrUtil.getJcnrEn(jcnr));
        }
        if(qmr!=null) {
            gyzjJcgj.setQmrId(qmr.getUserId());
            gyzjJcgj.setQmrMc(qmr.getNickName());
            gyzjJcgj.setQmrMcEn(qmr.getUserName());
        }
        gyzjJcgj.setRemark(remark);
        this.save(gyzjJcgj);
    }

    /**
     * 新增稽查轨迹
     * @param gyzjId 麻精药id
     * @param jcgjlx 稽查轨迹类型:1:流程；3：编辑
     * @param jcmc 稽查名称
     * @param jcmcys 稽查名称颜色：1：蓝色；3：红色；5：绿色；7：橙色
     * @param jcnr 稽查内容
     * @param qmr 签名人
     * @param remark 备注
     */
    @Override
    public  GyzjJcgj getJcgj(Long  gyzjId, Integer jcgjlx, String jcmc, Integer jcmcys, Map<String, String> jcnr, SysUser qmr, String remark){
        GyzjJcgj gyzjJcgj = new GyzjJcgj();
        gyzjJcgj.setGyzjId(gyzjId);
        gyzjJcgj.setJcgjlx(jcgjlx);
        gyzjJcgj.setJcmc(jcmc);
        gyzjJcgj.setJcmcEn(GyzjJcnrUtil.getEn(jcmc));
        gyzjJcgj.setJcmcys(jcmcys);
        if(jcnr!=null){
            gyzjJcgj.setJcnr(JctUtil.formatStr(jcnr));
            gyzjJcgj.setJcnrEn(GyzjJcnrUtil.getJcnrEn(jcnr));
        }
        if(qmr!=null) {
            gyzjJcgj.setQmrId(qmr.getUserId());
            gyzjJcgj.setQmrMc(qmr.getNickName());
            gyzjJcgj.setQmrMcEn(qmr.getUserName());
        }
        gyzjJcgj.setRemark(remark);
        return  gyzjJcgj;
    }

    /**
     * 新增稽查轨迹
     * @param gyzjId 麻精药id
     * @param jcgjlx 稽查轨迹类型:1:流程；3：编辑
     * @param jcmc 稽查名称
     * @param jcmcys 稽查名称颜色：1：蓝色；3：红色；5：绿色；7：橙色
     * @param jcnr 稽查内容
     * @param jcnrEn 稽查内容英文
     * @param qmr 签名人
     * @param remark 备注
     */
    @Override
    public  GyzjJcgj getJcgj(Long  gyzjId, Integer jcgjlx, String jcmc, Integer jcmcys, String jcnr,String jcnrEn, SysUser qmr, String remark){
        GyzjJcgj gyzjJcgj = new GyzjJcgj();
        gyzjJcgj.setGyzjId(gyzjId);
        gyzjJcgj.setJcgjlx(jcgjlx);
        gyzjJcgj.setJcmc(jcmc);
        gyzjJcgj.setJcmcEn(GyzjJcnrUtil.getEn(jcmc));
        gyzjJcgj.setJcmcys(jcmcys);
        gyzjJcgj.setJcnr(jcnr);
        gyzjJcgj.setJcnrEn(jcnrEn);
        if(qmr!=null) {
            gyzjJcgj.setQmrId(qmr.getUserId());
            gyzjJcgj.setQmrMc(qmr.getNickName());
            gyzjJcgj.setQmrMcEn(qmr.getUserName());
        }
        gyzjJcgj.setRemark(remark);
        return  gyzjJcgj;
    }

}
