package com.hzya.frame.grpU8.nxproof.oeryszb.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.basedao.service.impl.BaseService;
import com.hzya.frame.grpU8.nxproof.glPzml.dao.ISenderGlPzmlDao;
import com.hzya.frame.grpU8.nxproof.oeryszb.dao.IOerYszbDao;
import com.hzya.frame.grpU8.nxproof.oeryszb.entity.OerYszbEntity;
import com.hzya.frame.grpU8.nxproof.oeryszb.service.IOerYszbService;
import com.hzya.frame.web.entity.BaseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.awt.*;

/**
 * @Author:hecan
 * @Description:
 * @params:
 * @return:
 * @Date: 2023/6/19 14:32
 */
@Service(value = "oerYszbService")
public class OerYszbServiceImpl extends BaseService<OerYszbEntity, String> implements IOerYszbService {

    private IOerYszbDao oerYszbDao;

    @Autowired
    public void setOerYszbDao(IOerYszbDao dao) {
        this.oerYszbDao = dao;
        this.dao = dao;
    }


    //预算指标新增
    @Override
    public Object saveOerYszb(JSONObject json) {
        JSONObject jsonObject = json.getJSONObject("jsonStr");
        if(!checkStr(jsonObject.getString("mlId"))){
            return BaseResult.getFailureMessageEntity("请传递mlid");
        }
        if(!checkStr(jsonObject.getString("gsdm"))){
            return BaseResult.getFailureMessageEntity("请传递公司代码");
        }
        if(!checkStr(jsonObject.getString("kjnd"))){
            return BaseResult.getFailureMessageEntity("请传递会计年度");
        }
        if(!checkStr(jsonObject.getString("zbId"))){
            return BaseResult.getFailureMessageEntity("请传递指标id");
        }
        if(!checkStr(jsonObject.getString("zbdm"))){
            return BaseResult.getFailureMessageEntity("请传递指标代码");
        }
        OerYszbEntity oerYszbEntity = jsonObject.toJavaObject(OerYszbEntity.class);
        try {
            logger.info("======开始保存预算指标=======");
            oerYszbEntity.setDataId("0");
            oerYszbEntity.setBnxId("0");
            OerYszbEntity save = oerYszbDao.saveOerYszbEntity(oerYszbEntity);
            JSONObject jsonObjectYszb=new JSONObject();
            jsonObjectYszb.put("status","200");
            jsonObjectYszb.put("yszb",save);
            logger.info("======预算指标保存完毕，返回值:{}=======",jsonObjectYszb.toJSONString());
            return jsonObjectYszb;
        }catch (Exception e){
            logger.info("根据mlid:{},会计年度:{},公司代码：{}，指标id：{}保存预算指标失败：{}",oerYszbEntity.getMlId(),oerYszbEntity.getKjnd(),oerYszbEntity.getGsdm(),oerYszbEntity.getZbId(),e.getMessage());
            return BaseResult.getFailureMessageEntity("预算指标保存失败");
        }

    }

    //预算指标修改
    @Override
    public Object updateOerYszb(JSONObject json) {
        JSONObject jsonObject = json.getJSONObject("jsonStr");
        if(!checkStr(jsonObject.getString("mlId"))){
            return BaseResult.getFailureMessageEntity("请传递mlid");
        }
        if(!checkStr(jsonObject.getString("gsdm"))){
            return BaseResult.getFailureMessageEntity("请传递公司代码");
        }
        if(!checkStr(jsonObject.getString("kjnd"))){
            return BaseResult.getFailureMessageEntity("请传递会计年度");
        }
        if(!checkStr(jsonObject.getString("zbId"))){
            return BaseResult.getFailureMessageEntity("请传递指标id");
        }
        OerYszbEntity oerYszbEntity = jsonObject.toJavaObject(OerYszbEntity.class);
        try {
            logger.info("======开始保存预算指标=======");
            Integer integer = oerYszbDao.updateOerYszbEntity(oerYszbEntity);
            JSONObject jsonObjectYszb=new JSONObject();
            jsonObjectYszb.put("status","200");
            jsonObjectYszb.put("yszb",integer);
            return jsonObjectYszb;
        }catch (Exception e){
            logger.info("根据mlid:{},会计年度:{},公司代码：{}，指标id：{},序号:{}更新预算指标失败：{}",oerYszbEntity.getMlId(),oerYszbEntity.getKjnd(),oerYszbEntity.getGsdm(),oerYszbEntity.getZbId(),oerYszbEntity.getXh(),e.getMessage());
            return BaseResult.getFailureMessageEntity("预算指标更新失败");
        }

    }

    //预算指标删除
    @Override
    public Object deleteOerYszb(JSONObject json) {
        JSONObject jsonObject = json.getJSONObject("jsonStr");
        if(!checkStr(jsonObject.getString("mlId"))){
            return BaseResult.getFailureMessageEntity("请传递mlid");
        }
        if(!checkStr(jsonObject.getString("gsdm"))){
            return BaseResult.getFailureMessageEntity("请传递公司代码");
        }
        if(!checkStr(jsonObject.getString("kjnd"))){
            return BaseResult.getFailureMessageEntity("请传递会计年度");
        }
        if(!checkStr(jsonObject.getString("zbId"))){
            return BaseResult.getFailureMessageEntity("请传递指标id");
        }
        OerYszbEntity oerYszbEntity = jsonObject.toJavaObject(OerYszbEntity.class);
        try {
            logger.info("======开始保存预算指标=======");
            Integer integer = oerYszbDao.deleteOerYszbEntity(oerYszbEntity);
            JSONObject jsonObjectYszb=new JSONObject();
            jsonObjectYszb.put("status","200");
            jsonObjectYszb.put("yszb",integer);
            return jsonObjectYszb;
        }catch (Exception e){
            logger.info("根据mlid:{},会计年度:{},公司代码：{}，指标id：{},序号:{}删除预算指标失败：{}",oerYszbEntity.getMlId(),oerYszbEntity.getKjnd(),oerYszbEntity.getGsdm(),oerYszbEntity.getZbId(),oerYszbEntity.getXh(),e.getMessage());
            return BaseResult.getFailureMessageEntity("预算指标删除失败");
        }
    }
}
