package com.cabletech.business.ah.rating.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.cabletech.business.ah.rating.dao.ContractorSelfRatingDao;
import com.cabletech.business.ah.rating.model.ContractorSelfRating;
import com.cabletech.business.ah.rating.model.ExamVerify;
import com.cabletech.business.ah.rating.model.ExamVerifyRecord;
import com.cabletech.business.ah.rating.service.ContractorSelfRatingService;
import com.cabletech.business.ah.rating.service.ExamVerifyRecordService;
import com.cabletech.business.ah.rating.service.ExamVerifyService;
import com.cabletech.business.ah.rating.service.ItemResultService;
import com.cabletech.common.base.BaseDao;
import com.cabletech.common.base.BaseServiceImpl;
import com.cabletech.common.util.Page;
/**
* 代维单位人员自评
* @author wangt
*
*/
@Service
@Transactional
public class ContractorSelfRatingServiceImpl extends
BaseServiceImpl<ContractorSelfRating, String> implements ContractorSelfRatingService {
// 代维单位人员自评Dao
@Resource(name = "contractorSelfRatingDao")
private ContractorSelfRatingDao dao;
@Resource(name = "examVerifyRecordServiceImpl")
private ExamVerifyRecordService examverifyrecordservice;
@Resource(name = "examVerifyServiceImpl")
private ExamVerifyService examverifyservice;
@Override
protected BaseDao<ContractorSelfRating, String> getBaseDao() {
// TODO Auto-generated method stub
return dao;
}
@SuppressWarnings("rawtypes")
@Override
public Page queryPage(Page page,String orgId) {
// TODO Auto-generated method stub
return dao.queryPage(page, orgId);
}
@Override
public List<Map<String,Object>> getItems(String personId, String id) {
// TODO Auto-generated method stub
return dao.getItems(personId, id);
}
@Override
public ContractorSelfRating getOne(String id) {
// TODO Auto-generated method stub
return dao.get(id);
}
/**
* 保存月考核信息
* @param entity
* @return
*/
public void save(ContractorSelfRating entity){
dao.save(entity);
}
@Override
public Map<String,Object> getPersonImform(String personId, String id) {
return dao.getPersonImfor(personId,id);
}
/**
* 流程处理
* @param request 请求
* @param ids 当前流程
* @param maxflownums 最大流程处理
* @param entity 实现
*/
@Transactional
public void processData(HttpServletRequest request, String[] ids, String[] maxflownums, ContractorSelfRating entity) {
if (ids.length > 0) {
int flowstate = 0;
for (int i = 0; i < ids.length; i++) {
ExamVerify examverifybean = new ExamVerify();
examverifybean.setResult(request.getParameter("result"));
examverifybean.setRemark(request.getParameter("remark"));
examverifyservice.save(examverifybean); // 保存提交记录详细信息
ExamVerifyRecord examverifyrecordbean = new ExamVerifyRecord();
examverifyrecordbean.setExamverifyid(examverifybean.getId());
examverifyrecordbean.setMonthid(ids[i]);
examverifyrecordservice.save(examverifyrecordbean); // 保存提交记录
entity = getOne(ids[i]);
if (StringUtils.isNotBlank(entity.getFlowstate())) {
flowstate = Integer.valueOf(entity.getFlowstate());
}
// 如果审批通过,默认是通过,流程节点+1,不通过-1
if ("1".equals(request.getParameter("result"))) {
entity.setFlowstate(Integer.toString(flowstate + 1));
} else {
flowstate=flowstate - 1;
entity.setFlowstate(Integer.toString(flowstate));
}
if (null!=maxflownums&&StringUtils.isNotBlank(maxflownums[i])) {
if (Integer.toString(flowstate).equals(maxflownums[i])) {
//移动审核提交后
entity.setFlowstate("-1");
}
}
if (flowstate == -1) {// 代维确认 后 变成-2
entity.setFlowstate("-2");
}
save(entity); // 改变流程
}
}
}
}