package com.norteksoft.mms.module.service; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.xwork.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.norteksoft.mms.module.dao.OperationDao; import com.norteksoft.mms.module.entity.Operation; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.JsonParser; @Service @Transactional(readOnly=true) public class OperationManager { @Autowired private OperationDao operationDao; public Operation getOperation(Long id){ return operationDao.get(id); } public void getOperations(Page<Operation> pages,Long systemId){ operationDao.getOperations(pages,systemId); } public Operation getOperationByCode(String code,Long systemId){ return operationDao.getOperationByCode(code,systemId); } public void getOperationChildren(Page<Operation> page,Long operationId){ operationDao.getOperationChildren(page, operationId); } @Transactional(readOnly=false) public void deleteOperation(Long id){ operationDao.delete(id); } @Transactional(readOnly=false) public void deleteOperations(String ids){ String[] idList=ids.split(","); for(String id:idList){ if(StringUtils.isNotEmpty(id)){ operationDao.delete(Long.parseLong(id)); } } } @Transactional(readOnly=false) public void save(Operation operation){ operationDao.save(operation); } @Transactional(readOnly=false) public void saveOperation(Operation operation){ operationDao.save(operation); List<Object> list=JsonParser.getFormTableDatas(Operation.class); List<Operation> children=new ArrayList<Operation>(); for(Object obj:list){ Operation inter=(Operation)obj; inter.setSystemId(operation.getSystemId()); inter.setParent(operation); operationDao.save(inter); children.add(inter); } operation.setChildren(children); } /** * 验证编号是否存在 * @param code * @param id * @return 存在返回true,反之 */ public boolean isOperationExist(String code,Long id,Long systemId){ Operation operation=getOperationByCode(code,systemId); if(operation==null){ return false; }else{ if(id==null)return true; if(operation.getId().equals(id)){ return false; }else{ return true; } } } /** * 查询所有通用类型 * @return */ public List<Operation> getOperations(String systemIds,Long companyId){ return operationDao.getOperations(systemIds,companyId); } public List<Operation> getAllParentOperations(Long systemId){ return operationDao.getAllParentOperations(systemId); } public List<Operation> getOperationChildrenList(Long operationId){ return operationDao.getOperationChildrenList(operationId); } @Transactional(readOnly=false) public void dealwithOperation(Long systemId){ List<Operation> operations = getAllParentOperations(systemId); List<Long> deleteIds = new ArrayList<Long>(); for(Operation operation:operations){ List<Operation> children = getOperationChildrenList(operation.getId()); if(children.size()<=0)deleteIds.add(operation.getId()); } for(Long id:deleteIds){ deleteOperation(id); } } }