package com.product.project.management.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.product.core.controller.support.AbstractBaseController;
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.module.sys.version.ApiVersion;
import com.product.project.management.config.Cmnconst;
import com.product.project.management.config.SystemCode;
import com.product.project.management.service.ProjectBudgetService;
import com.product.util.BaseUtil;

@RequestMapping("/api/project-budget")
@RestController
public class ProjectBudgetController extends AbstractBaseController{

	@Autowired
	ProjectBudgetService projectBudgetService;
	
	/**
     * 	娓呯┖椤圭洰鎵€鏈夐绠�
     *
     * @param request
     * @return
     */
    @RequestMapping(value = "/clear-budget/{version}", method = RequestMethod.POST)
    @ApiVersion(1)
	public String clearBudget(HttpServletRequest request) {
    	try {
            // 鑾峰彇鍙傛暟
            FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);

            // 鍒ゆ柇uuid鏄惁涓虹┖
            if (BaseUtil.strIsNull(fse.getString(Cmnconst.PROJECT_UUID))) {
                return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
            }
            boolean succ = projectBudgetService.clearBudget(fse.getString(Cmnconst.PROJECT_UUID), fse.getString(Cmnconst.ITEMIZE_CODE));
            if (succ) {
				return OK();
			}
            return this.error(SystemCode.PROJECT_BUDGET_CLEAR_FAIL.getValue(), SystemCode.PROJECT_BUDGET_CLEAR_FAIL.getText());
        } catch (BaseException e) {
            e.printStackTrace();
            return this.error(e);
        } catch (Exception e) {
            e.printStackTrace();
            return this.error(SystemCode.PROJECT_BUDGET_OPERATE_ERROR.getValue(),
                    SystemCode.PROJECT_BUDGET_OPERATE_ERROR.getText() + e.getMessage());
        }
	}
}