package com.srs.web.controller.comprehensive;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

import com.srs.comprehensive.domain.SrsKnrdApply;
import com.srs.comprehensive.domain.SrsKnrdApprovalRecord;
import com.srs.comprehensive.domain.Vo.CphSearch;
import com.srs.comprehensive.service.ISrsKnrdApprovalRecordService;
import com.srs.system.service.ISysPostService;
import com.srs.web.controller.common.RoleBool;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.srs.common.core.controller.BaseController;
import com.srs.common.core.domain.AjaxResult;
import com.srs.common.utils.poi.ExcelUtil;
import com.srs.common.enums.BusinessType;
import com.srs.common.annotation.Log;
import com.srs.common.core.page.TableDataInfo;


/**
 * 困难审核Controller
 * 
 * @author srs
 * @date 2024-03-19
 */
@RestController
@RequestMapping("/knrApproval/srsKnrdapprovalrecord")
public class SrsKnrdApprovalRecordController extends BaseController
{
    @Autowired
    private ISrsKnrdApprovalRecordService srsKnrdApprovalRecordService;

    @Autowired
    ISysPostService _postService;


    @GetMapping("/listJwc")
    @ApiOperation("查询学工下的学生申请的列表")
    public TableDataInfo listJwc(CphSearch param){
        boolean hasRole = RoleBool.isJwc(getUserId(),_postService);
        if(hasRole){
            startPage();
            if (param.getStep()==null) {
                param.setStep("4");
            }
            List<SrsKnrdApply> list = srsKnrdApprovalRecordService.listView(param);
            return getDataTable(list);
        }else{
            List<String> list = new ArrayList<>();
            return getDataTable(list);
        }
    }



    @GetMapping("/listXw")
    @ApiOperation("查询学务下的学生申请的列表")
    public TableDataInfo listXw(CphSearch param){
        boolean hasRole = RoleBool.isXw(getUserId(),_postService);
        boolean isEjxysj = RoleBool.isEjxysj(getUserId(),_postService);
        if(hasRole || isEjxysj){
            param.setDeptId(getDeptId());
            startPage();
            if (param.getStep()==null) {
                param.setStep("3");
            }
            List<SrsKnrdApply> list = srsKnrdApprovalRecordService.listView(param);
            return getDataTable(list);
        }else{
            List<String> list = new ArrayList<>();
            return getDataTable(list);
        }
    }


    @GetMapping("/listFdy")
    @ApiOperation("查询辅导员下的学生申请的列表")
    public TableDataInfo listFdy(CphSearch param){
        boolean hasRole = RoleBool.isFdy(getUserId(),_postService);
        if(hasRole){
            param.setTNo(getUsername());
            startPage();
            if (param.getStep()==null) {
                param.setStep("2");
            }
            List<SrsKnrdApply> list = srsKnrdApprovalRecordService.listView(param);
            return getDataTable(list);
        }else{
            List<String> list = new ArrayList<>();
            return getDataTable(list);
        }
    }



    /**
     * 查询困难审核列表
     */
    @GetMapping("/list")
    public TableDataInfo list(SrsKnrdApprovalRecord srsKnrdApprovalRecord)
    {
//        startPage();
        List<SrsKnrdApprovalRecord> list = srsKnrdApprovalRecordService.selectSrsKnrdApprovalRecordList(srsKnrdApprovalRecord);
        return getDataTable(list);
    }

    /**
     * 导出困难审核列表
     */
    @Log(title = "困难审核", businessType = BusinessType.EXPORT)
    @PostMapping("/xw/export")
    public void export(HttpServletResponse response, SrsKnrdApprovalRecord srsKnrdApprovalRecord,CphSearch param)
    {
            param.setDeptId(getDeptId());
            //startPage();
            if (param.getStep()==null) {
                param.setStep("3");
            }
            List<SrsKnrdApply> list = srsKnrdApprovalRecordService.listView(param);
            for (int i = 0; i < list.size(); i++) {
                list.get(i).setJtcy(null);
//                if(list.get(i).getHjxz().equals("1")){
//                    list.get(i).setHjxz("城镇");
//                }else {
//                    list.get(i).setHjxz("农村");
//                }
//                if (list.get(i).getBjpyyj().equals("1")) {
//                    list.get(i).setBjpyyj("特别困难");
//                } else if (list.get(i).getBjpyyj().equals("2")) {
//                    list.get(i).setBjpyyj("比较困难");
//                } else if (list.get(i).getBjpyyj().equals("3")) {
//                    list.get(i).setBjpyyj("一般困难");
//                } else if (list.get(i).getBjpyyj().equals("4")) {
//                    list.get(i).setBjpyyj("不困难");
//                }
//                if (list.get(i).getEjxyldqmyj().equals("1")) {
//                    list.get(i).setEjxyldqmyj("特别困难");
//                } else if (list.get(i).getEjxyldqmyj().equals("2")) {
//                    list.get(i).setEjxyldqmyj("比较困难");
//                } else if (list.get(i).getEjxyldqmyj().equals("3")) {
//                    list.get(i).setEjxyldqmyj("一般困难");
//                } else if (list.get(i).getEjxyldqmyj().equals("4")) {
//                    list.get(i).setEjxyldqmyj("不困难");
//                }
//                if (list.get(i).getXsqmyj()!=null){
//                    if (list.get(i).getXsqmyj().equals("1")) {
//                        list.get(i).setXsqmyj("特别困难");
//                    } else if (list.get(i).getXsqmyj().equals("2")) {
//                        list.get(i).setXsqmyj("比较困难");
//                    } else if (list.get(i).getXsqmyj().equals("3")) {
//                        list.get(i).setXsqmyj("一般困难");
//                    } else if (list.get(i).getXsqmyj().equals("4")) {
//                        list.get(i).setXsqmyj("不困难");
//                    }
//                }else {
//                    list.get(i).setXsqmyj("未审核");
//                }
//                if(list.get(i).getJtjzfqk().equals("1")){
//                    list.get(i).setJtjzfqk("商品房");
//                } else if (list.get(i).getJtjzfqk().equals("2")) {
//                    list.get(i).setJtjzfqk("单位福利住房");
//                } else if (list.get(i).getJtjzfqk().equals("3")) {
//                    list.get(i).setJtjzfqk("自建房");
//                }else if (list.get(i).getJtjzfqk().equals("4")) {
//                    list.get(i).setJtjzfqk("租房、无房");
//                }else if (list.get(i).getJtjzfqk().equals("5")) {
//                    list.get(i).setJtjzfqk("其他");
//                }
//                if(list.get(i).getJtqcqk().equals("1")){
//                    list.get(i).setJtqcqk("自用");
//                } else if (list.get(i).getJtjzfqk().equals("2")) {
//                    list.get(i).setJtqcqk("经营用");
//                } else if (list.get(i).getJtjzfqk().equals("3")) {
//                    list.get(i).setJtqcqk("无汽车");
//                }
//                if(list.get(i).getJtzysr().equals("1")){
//                    list.get(i).setJtzysr("机关事业单位公职人员");
//                } else if (list.get(i).getJtzysr().equals("2")) {
//                    list.get(i).setJtzysr("单位公司合同制职工");
//                } else if (list.get(i).getJtzysr().equals("3")) {
//                    list.get(i).setJtzysr("私营业主");
//                }else if (list.get(i).getJtzysr().equals("4")) {
//                    list.get(i).setJtzysr("个体工商户");
//                }else if (list.get(i).getJtzysr().equals("5")) {
//                    list.get(i).setJtzysr("务工");
//                }else if (list.get(i).getJtzysr().equals("6")) {
//                    list.get(i).setJtzysr("务农");
//                }else if (list.get(i).getJtzysr().equals("7")) {
//                    list.get(i).setJtzysr("其他收入");
//                }else if (list.get(i).getJtzysr().equals("8")) {
//                    list.get(i).setJtzysr("无固定收入");
//                }else if (list.get(i).getJtzysr().equals("9")) {
//                    list.get(i).setJtzysr("无收入");
//                }
            }
//            List<SrsKnrdApprovalRecord> list = srsKnrdApprovalRecordService.selectSrsKnrdApprovalRecordList(srsKnrdApprovalRecord);
            ExcelUtil<SrsKnrdApply> util = new ExcelUtil<SrsKnrdApply>(SrsKnrdApply.class);
            util.exportExcel(response, list, "困难审核数据");

    }

    @Log(title = "困难审核", businessType = BusinessType.EXPORT)
    @PostMapping("/fdy/export")
    public void fdyexport(HttpServletResponse response, SrsKnrdApprovalRecord srsKnrdApprovalRecord,CphSearch param)
    {
        param.setTNo(getUsername());
        //startPage();
        if (param.getStep()==null) {
            param.setStep("2");
        }
        List<SrsKnrdApply> list = srsKnrdApprovalRecordService.listView(param);
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setJtcy(null);
//            if(list.get(i).getHjxz().equals("1")){
//                list.get(i).setHjxz("城镇");
//            }else {
//                list.get(i).setHjxz("农村");
//            }
//            if (list.get(i).getBjpyyj().equals("1")) {
//                list.get(i).setBjpyyj("特别困难");
//            } else if (list.get(i).getBjpyyj().equals("2")) {
//                list.get(i).setBjpyyj("比较困难");
//            } else if (list.get(i).getBjpyyj().equals("3")) {
//                list.get(i).setBjpyyj("一般困难");
//            } else if (list.get(i).getBjpyyj().equals("4")) {
//                list.get(i).setBjpyyj("不困难");
//            }
//            if (list.get(i).getEjxyldqmyj()!=null){
//                if (list.get(i).getEjxyldqmyj().equals("1")) {
//                    list.get(i).setEjxyldqmyj("特别困难");
//                } else if (list.get(i).getEjxyldqmyj().equals("2")) {
//                    list.get(i).setEjxyldqmyj("比较困难");
//                } else if (list.get(i).getEjxyldqmyj().equals("3")) {
//                    list.get(i).setEjxyldqmyj("一般困难");
//                } else if (list.get(i).getEjxyldqmyj().equals("4")) {
//                    list.get(i).setEjxyldqmyj("不困难");
//                }
//            }else {
//                list.get(i).setEjxyldqmyj("未审核");
//            }
//            if (list.get(i).getXsqmyj()!=null){
//                if (list.get(i).getXsqmyj().equals("1")) {
//                    list.get(i).setXsqmyj("特别困难");
//                } else if (list.get(i).getXsqmyj().equals("2")) {
//                    list.get(i).setXsqmyj("比较困难");
//                } else if (list.get(i).getXsqmyj().equals("3")) {
//                    list.get(i).setXsqmyj("一般困难");
//                } else if (list.get(i).getXsqmyj().equals("4")) {
//                    list.get(i).setXsqmyj("不困难");
//                }
//            }else {
//                list.get(i).setXsqmyj("未审核");
//            }
//            if(list.get(i).getJtjzfqk().equals("1")){
//                list.get(i).setJtjzfqk("商品房");
//            } else if (list.get(i).getJtjzfqk().equals("2")) {
//                list.get(i).setJtjzfqk("单位福利住房");
//            } else if (list.get(i).getJtjzfqk().equals("3")) {
//                list.get(i).setJtjzfqk("自建房");
//            }else if (list.get(i).getJtjzfqk().equals("4")) {
//                list.get(i).setJtjzfqk("租房、无房");
//            }else if (list.get(i).getJtjzfqk().equals("5")) {
//                list.get(i).setJtjzfqk("其他");
//            }
//
//            if(list.get(i).getJtqcqk().equals("1")){
//                list.get(i).setJtqcqk("自用");
//            } else if (list.get(i).getJtjzfqk().equals("2")) {
//                list.get(i).setJtqcqk("经营用");
//            } else if (list.get(i).getJtjzfqk().equals("3")) {
//                list.get(i).setJtqcqk("无汽车");
//            }
//            if(list.get(i).getJtzysr().equals("1")){
//                list.get(i).setJtzysr("机关事业单位公职人员");
//            } else if (list.get(i).getJtzysr().equals("2")) {
//                list.get(i).setJtzysr("单位公司合同制职工");
//            } else if (list.get(i).getJtzysr().equals("3")) {
//                list.get(i).setJtzysr("私营业主");
//            }else if (list.get(i).getJtzysr().equals("4")) {
//                list.get(i).setJtzysr("个体工商户");
//            }else if (list.get(i).getJtzysr().equals("5")) {
//                list.get(i).setJtzysr("务工");
//            }else if (list.get(i).getJtzysr().equals("6")) {
//                list.get(i).setJtzysr("务农");
//            }else if (list.get(i).getJtzysr().equals("7")) {
//                list.get(i).setJtzysr("其他收入");
//            }else if (list.get(i).getJtzysr().equals("8")) {
//                list.get(i).setJtzysr("无固定收入");
//            }else if (list.get(i).getJtzysr().equals("9")) {
//                list.get(i).setJtzysr("无收入");
//            }
        }
//            List<SrsKnrdApprovalRecord> list = srsKnrdApprovalRecordService.selectSrsKnrdApprovalRecordList(srsKnrdApprovalRecord);
        ExcelUtil<SrsKnrdApply> util = new ExcelUtil<SrsKnrdApply>(SrsKnrdApply.class);
        util.exportExcel(response, list, "困难审核数据");

    }

    @Log(title = "困难审核", businessType = BusinessType.EXPORT)
    @PostMapping("/jwc/export")
    public void jwcexport(HttpServletResponse response, SrsKnrdApprovalRecord srsKnrdApprovalRecord,CphSearch param)
    {
//        startPage();
        if (param.getStep()==null) {
            param.setStep("4");
        }
        List<SrsKnrdApply> list = srsKnrdApprovalRecordService.listView(param);
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setJtcy(null);
//            if(list.get(i).getHjxz().equals("1")){
//                list.get(i).setHjxz("城镇");
//            }else {
//                list.get(i).setHjxz("农村");
//            }
//            if (list.get(i).getBjpyyj().equals("1")) {
//                list.get(i).setBjpyyj("特别困难");
//            } else if (list.get(i).getBjpyyj().equals("2")) {
//                list.get(i).setBjpyyj("比较困难");
//            } else if (list.get(i).getBjpyyj().equals("3")) {
//                list.get(i).setBjpyyj("一般困难");
//            } else if (list.get(i).getBjpyyj().equals("4")) {
//                list.get(i).setBjpyyj("不困难");
//            }
//            if (list.get(i).getEjxyldqmyj().equals("1")) {
//                list.get(i).setEjxyldqmyj("特别困难");
//            } else if (list.get(i).getEjxyldqmyj().equals("2")) {
//                list.get(i).setEjxyldqmyj("比较困难");
//            } else if (list.get(i).getEjxyldqmyj().equals("3")) {
//                list.get(i).setEjxyldqmyj("一般困难");
//            } else if (list.get(i).getEjxyldqmyj().equals("4")) {
//                list.get(i).setEjxyldqmyj("不困难");
//            }
//            if (list.get(i).getXsqmyj().equals("1")) {
//                list.get(i).setXsqmyj("特别困难");
//            } else if (list.get(i).getXsqmyj().equals("2")) {
//                list.get(i).setXsqmyj("比较困难");
//            } else if (list.get(i).getXsqmyj().equals("3")) {
//                list.get(i).setXsqmyj("一般困难");
//            } else if (list.get(i).getXsqmyj().equals("4")) {
//                list.get(i).setXsqmyj("不困难");
//            }
//            if(list.get(i).getJtjzfqk().equals("1")){
//                list.get(i).setJtjzfqk("商品房");
//            } else if (list.get(i).getJtjzfqk().equals("2")) {
//                list.get(i).setJtjzfqk("单位福利住房");
//            } else if (list.get(i).getJtjzfqk().equals("3")) {
//                list.get(i).setJtjzfqk("自建房");
//            }else if (list.get(i).getJtjzfqk().equals("4")) {
//                list.get(i).setJtjzfqk("租房、无房");
//            }else if (list.get(i).getJtjzfqk().equals("5")) {
//                list.get(i).setJtjzfqk("其他");
//            }
//            if(list.get(i).getJtqcqk().equals("1")){
//                list.get(i).setJtqcqk("自用");
//            } else if (list.get(i).getJtjzfqk().equals("2")) {
//                list.get(i).setJtqcqk("经营用");
//            } else if (list.get(i).getJtjzfqk().equals("3")) {
//                list.get(i).setJtqcqk("无汽车");
//            }
//            if(list.get(i).getJtzysr().equals("1")){
//                list.get(i).setJtzysr("机关事业单位公职人员");
//            } else if (list.get(i).getJtzysr().equals("2")) {
//                list.get(i).setJtzysr("单位公司合同制职工");
//            } else if (list.get(i).getJtzysr().equals("3")) {
//                list.get(i).setJtzysr("私营业主");
//            }else if (list.get(i).getJtzysr().equals("4")) {
//                list.get(i).setJtzysr("个体工商户");
//            }else if (list.get(i).getJtzysr().equals("5")) {
//                list.get(i).setJtzysr("务工");
//            }else if (list.get(i).getJtzysr().equals("6")) {
//                list.get(i).setJtzysr("务农");
//            }else if (list.get(i).getJtzysr().equals("7")) {
//                list.get(i).setJtzysr("其他收入");
//            }else if (list.get(i).getJtzysr().equals("8")) {
//                list.get(i).setJtzysr("无固定收入");
//            }else if (list.get(i).getJtzysr().equals("9")) {
//                list.get(i).setJtzysr("无收入");
//            }
        }
//            List<SrsKnrdApprovalRecord> list = srsKnrdApprovalRecordService.selectSrsKnrdApprovalRecordList(srsKnrdApprovalRecord);
        ExcelUtil<SrsKnrdApply> util = new ExcelUtil<SrsKnrdApply>(SrsKnrdApply.class);
        util.exportExcel(response, list, "困难审核数据");

    }

    /**
     * 获取困难审核详细信息
     */
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(srsKnrdApprovalRecordService.selectSrsKnrdApprovalRecordById(id));
    }

    /**
     * 新增困难审核
     */
    @Log(title = "困难审核", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SrsKnrdApprovalRecord srsKnrdApprovalRecord)
    {
        return toAjax(srsKnrdApprovalRecordService.insertSrsKnrdApprovalRecord(srsKnrdApprovalRecord));
    }

    /**
     * 修改困难审核
     */
    @Log(title = "困难审核", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SrsKnrdApprovalRecord srsKnrdApprovalRecord)
    {
        return toAjax(srsKnrdApprovalRecordService.updateSrsKnrdApprovalRecord(srsKnrdApprovalRecord));
    }

    /**
     * 删除困难审核
     */
    @Log(title = "困难审核", businessType = BusinessType.DELETE)
	@DeleteMapping("/delete/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(srsKnrdApprovalRecordService.deleteSrsKnrdApprovalRecordByIds(ids));
    }
}
