package com.rongwei.sfcommon.sys.service.impl;

import com.rongwe.scentity.domian.CheckItemContentDo;
import com.rongwe.scentity.domian.CheckTemplateItemsDo;
import com.rongwei.rwcommon.utils.StringUtils;
import com.rongwei.sfcommon.sys.dao.CheckTemplateItemsDao;
import com.rongwei.sfcommon.sys.service.CheckItemContentService;
import com.rongwei.sfcommon.sys.service.CheckTemplateItemsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import java.util.ArrayList;
import java.util.List;

@Service("checkTemplateItemsService")
public class CheckTemplateItemsServiceImpl extends ServiceImpl<CheckTemplateItemsDao, CheckTemplateItemsDo> implements CheckTemplateItemsService {

    @Autowired
    private CheckTemplateItemsDao checkTemplateItemsDao;
    @Autowired
    private CheckItemContentService checkItemContentService;

    @Override
    public List<CheckTemplateItemsDo> getItemByContentId(List<String> ids) {
        if (ids != null && !ids.isEmpty()) {
            String id = "";
            for (String idstr : ids) {
                if ("".equals(id)) {
                    id = "'" + idstr + "'";
                } else {
                    id = id + ",'" + idstr + "'";
                }
            }
            List<CheckTemplateItemsDo> list = checkTemplateItemsDao.getItemByContentId(id);
            return list;
        } else {
            return new ArrayList<>();
        }
    }

    @Override
    public void templateItemsDeleteResolve(List<String> ids) {
        String idsstr = "";
        for (String id : ids) {
            if ("".equals(idsstr)) {
                idsstr = "'" + id + "'";
            } else {
                idsstr = idsstr + ",'" + id + "'";
            }
        }
        checkTemplateItemsDao.templateItemsDeleteResolve(idsstr);
    }

    /**
     * 检查项修改同步修改最新模板中的检查项
     *
     * @param checkItemContent
     * @return
     */
    @Override
    public void updateTemplateContent(CheckItemContentDo checkItemContent) {
        if (StringUtils.isNotEmpty(checkItemContent.getId())) {
            CheckItemContentDo checkItemContentDo = checkItemContentService.getById(checkItemContent.getId());
            List<CheckTemplateItemsDo> checkTemplateItemss = checkTemplateItemsDao.getNewTemplateItems(checkItemContent.getId());
            checkTemplateItemss.forEach(v -> {
                v.setCheckposition(checkItemContentDo.getCheckposition());
                v.setCheckcontent(checkItemContentDo.getCheckcontent());
                v.setChecktype(checkItemContentDo.getChecktype());
                v.setCheckstandard(checkItemContentDo.getCheckstandard());
                v.setManagement(checkItemContentDo.getManagement());
                v.setFrequencyids(checkItemContentDo.getFrequencyids());
                v.setFrequency(checkItemContentDo.getFrequency());
                v.setFrequencyone(checkItemContentDo.getFrequencyone());
                v.setFrequencytwo(checkItemContentDo.getFrequencytwo());
                v.setFrequencythree(checkItemContentDo.getFrequencythree());
                v.setShift(checkItemContentDo.getShift());
                v.setShiftcount(checkItemContentDo.getShiftcount());
                v.setModifydate(null);
            });
            if (checkTemplateItemss != null && checkTemplateItemss.size() > 0) {
                this.updateBatchById(checkTemplateItemss);
            }
        }
    }
}
