package cn.ksource.web.service.order; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; @Service("orderService") public class OrderServiceImpl implements OrderService { @Autowired private BaseDao baseDao; /** * 所有工单提交时,添加的关联工单 * @param flowId 流程编号 * @param orderId 关联工单id数组 */ @Override public boolean saveLinkOrders(String flowId, String[] orderId,HttpServletRequest request) { if(null!=orderId && orderId.length>0) { List paramList = new ArrayList(); for(String str : orderId) { SqlParameter sqlParameter = new SqlParameter(); sqlParameter.put("id", StringUtil.getUUID()); sqlParameter.put("businessId", flowId); sqlParameter.put("relateFlowId", str); paramList.add(sqlParameter); } String insertSql = "INSERT INTO ORDER_REF_ORDER(ID,BUSINESS_ID,RELATE_FLOW_ID) VALUES (:id,:businessId,:relateFlowId)"; baseDao.executeBatch(insertSql, paramList); return true; } return false; } @Override public List queryLinkOrders(String flowId) { String selectSql = "SELECT A.*,B.ID AS LINK_ID,B.USER_ID FROM ORDER_REF_ORDER B,WORKFLOW_BASE A WHERE A.ID = B.RELATE_FLOW_ID AND A.WFSTATE != :wfstate AND B.BUSINESS_ID = :businessId "; List orders = baseDao.queryForList(selectSql,new SqlParameter("businessId",flowId).addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DELETE)); return orders; } @Override public boolean deleteLinkOrder(String linkId) { String deleteSql = "DELETE FROM ORDER_REF_ORDER WHERE ID = :id"; baseDao.execute(deleteSql, new SqlParameter("id",linkId)); return true; } }