/**
 * 保存方案
 * @param po
 * @param list
 * @return
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
public String saveScheme(InsuresetSchemePO po , //方案PO
 List insureIdsList,//险种ID
 List groupNameList,//分组
 List empIdsList,//人员ID
 List<List<InsuresetSchemeBasePO>> baseList //险种基数
 ){
boolean isAdd = false;
     String schemeId = null;
     if(isNull(schemeId)){
     isAdd = true;
     }
     // 新建
     if(isAdd){
     // 设置方案状态    有效
     po.setStatue(new Code("1"));
     // 保存方案PO
     DBContext.save(po);
     // 得到保存后的方案ID
     schemeId = po.getId();
     InsuresetSchemeGroupPO groupPO = null;
     for(int i = 0 ;i<groupNameList.size() ;i++){
     // 参保人员分组
     String groupName = (String)groupNameList.get(i);
     // 险种
     LinkedList<String> insureList = (LinkedList) insureIdsList.get(i);
     //分组人员表
     LinkedList<String> empId = (LinkedList)empIdsList.get(i);
     //保存参保人员分组PO
     groupPO = new InsuresetSchemeGroupPO();
groupPO.setGroupName(groupName);
groupPO.setSchemeId(schemeId);
DBContext.save(groupPO);
//保存成功之后,取得分组Id
String groupId = groupPO.getId();
//分组人员
InsuresetSchemeGroupEmpPO empPO =null;
    for (String str : empId) {
     empPO = new InsuresetSchemeGroupEmpPO();
     empPO.setEmpId(str);
     empPO.setGroupId(groupId);
     DBContext.save(empPO);
}
       //险种基数
    List<InsuresetSchemeBasePO> schemeBaseList = baseList.get(i);
     for(InsuresetSchemeBasePO basePO : schemeBaseList){
     basePO.setSchemeId(schemeId);
     basePO.setGroupId(groupId);
     basePO.setInsureName(new Code((String)insureList.get(i)));
     }
     DBContext.save(schemeBaseList,100);
     }
     }
return schemeId;
}