package cn.ksource.web.facade.bpbj; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Stack; import javassist.expr.NewArray; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import cn.ksource.beans.SPARE_PART_STORAGE; import cn.ksource.beans.WORKFLOW_BASE; import cn.ksource.beans.WORKFLOW_NODE; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.AjaxUtil; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.OrderCodeUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.SysInfoMsg; import cn.ksource.core.web.WebUtil; import cn.ksource.core.workflow.NodeDealEntity; import cn.ksource.core.workflow.NodeFinishEntity; import cn.ksource.core.workflow.WorkflowBusinessService; import cn.ksource.core.workflow.WorkflowCoreService; import cn.ksource.web.Constants; import cn.ksource.web.entity.WorkFlowSupportEntity; import cn.ksource.web.service.WorkOrderCodeService; import cn.ksource.web.service.record.RecordService; import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService; @Service("StockApplyFacade") public class StockApplyFacadeImpl implements StockApplyFacade { @Resource private BaseDao baseDao; @Autowired private WorkflowBusinessService workflowBusinessService; @Autowired private WorkOrderCodeService workOrderCodeService; @Autowired private WorkFlowSupportService workFlowSupportService; @Autowired private RecordService recordService; @Resource private WorkflowCoreService workflowCoreService; /** * 入库申请列表信息 * @return */ @Override public List getStockList() { return baseDao.queryForList(" select * from SPARE_PART where STATE=1 "); } /** * 入库申请列表信息 * @param pageInfo * @param params * @return */ @Override public PageInfo getStockListData(HttpServletRequest request,PageInfo pageInfo) { StringBuilder sql = new StringBuilder(); Map paramMap = new HashMap(); sql.append(" select * from spare_part_storage where CREATE_ID=:create_id"); String order_code=request.getParameter("order_code"); String order_name=request.getParameter("order_name"); String state=request.getParameter("state"); String start_time=request.getParameter("start_time"); String end_time=request.getParameter("end_time"); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = user.get("Id").toString(); paramMap.put("create_id",userId ); //工单编号 if (StringUtil.isNotBlank(order_code)) { sql.append(" and order_code like:order_code "); paramMap.put("order_code", "%"+order_code.trim()+"%"); } //工单名称 if (StringUtil.isNotBlank(order_name)) { sql.append(" and order_name like:order_name "); paramMap.put("order_name", "%"+order_name.trim()+"%"); } //工单状态 if (StringUtil.isNotBlank(state)) { sql.append(" and state=:state "); paramMap.put("state", state); } //开始时间 if(StringUtil.isNotBlank(start_time)){ sql.append(" AND gmt_create>=:start_time"); paramMap.put("start_time", start_time+"000000"); } //结束时间 if(StringUtil.isNotBlank(end_time)){ sql.append(" and gmt_create<=:end_time"); paramMap.put("end_time", end_time+"235959"); } sql.append(" order by gmt_create desc "); return baseDao.queryforSplitPageInfo(pageInfo,sql.toString(), paramMap); } /** * 入库申请列表数量信息 * @param pageInfo * @param params * @return */ @Override public int getStockListCount(HttpServletRequest request) { StringBuilder sql = new StringBuilder(); Map paramMap = new HashMap(); sql.append(" select count(*) from spare_part_storage where CREATE_ID=:create_id"); String order_code=request.getParameter("order_code"); String order_name=request.getParameter("order_name"); String state=request.getParameter("state"); String start_time=request.getParameter("start_time"); String end_time=request.getParameter("end_time"); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = user.get("Id").toString(); paramMap.put("create_id",userId ); //工单编号 if (StringUtil.isNotBlank(order_code)) { sql.append(" and order_code like:order_code "); paramMap.put("order_code", "%"+order_code.trim()+"%"); } //工单名称 if (StringUtil.isNotBlank(order_name)) { sql.append(" and order_name like:order_name "); paramMap.put("order_name", "%"+order_name.trim()+"%"); } //工单状态 if (StringUtil.isNotBlank(state)) { sql.append(" and state=:state "); paramMap.put("state", state); } //开始时间 if(StringUtil.isNotBlank(start_time)){ sql.append(" AND gmt_create>=:start_time"); paramMap.put("start_time", start_time+"000000"); } //结束时间 if(StringUtil.isNotBlank(end_time)){ sql.append(" and gmt_create<=:end_time"); paramMap.put("end_time", end_time+"235959"); } sql.append(" order by gmt_create desc "); int count = baseDao.queryForInteger(sql.toString(), paramMap); return count; } /** * 删除入库工单信息 * @param pageInfo * @param params * @return */ @Override public void delStockStorage(String id) { String sql=" delete from SPARE_PART_STORAGE where id=:id "; String sqlString=" delete from SPARE_PART where LINK_STORAGE_ID=:id "; baseDao.execute(sql, new SqlParameter().addValue("id", id)); baseDao.execute(sqlString, new SqlParameter().addValue("id", id)); } /** * 删除备件信息 * @param pageInfo * @param params * @return */ @Override public void deleteSpare_part(String id) { String sql=" delete from SPARE_PART where id=:id "; String sqlString=" delete from PROP_DATA where BUS_ID=:id "; baseDao.execute(sql, new SqlParameter().addValue("id", id)); baseDao.execute(sqlString, new SqlParameter().addValue("id", id)); } @Override public void deleteSpareOverage_part(String id) { String sql=" delete from SPARE_PART where id=:id "; String sqlString=" delete from PROP_DATA where BUS_ID=:id "; String overageSql = "delete from overage_loss_detail where ENTITY_ID=:id "; baseDao.execute(sql, new SqlParameter().addValue("id", id)); baseDao.execute(sqlString, new SqlParameter().addValue("id", id)); baseDao.execute(overageSql, new SqlParameter().addValue("id", id)); } /** * 按分类删除备件信息 * @param pageInfo * @param params * @return */ @Override public void deleteSpare_part(String id,String storage_id) { String sqlString="select id from SPARE_PART where CATE_ID=:id and LINK_STORAGE_ID=:storage_id"; List dataList = baseDao.queryForList(sqlString.toString(), new SqlParameter().addValue("id", id).addValue("storage_id", storage_id)); if(dataList!=null&&dataList.size()>0){ for(Map cateMap:dataList){ String spare_id=ConvertUtil.obj2StrBlank(cateMap.get("id")); String sqlStr=" delete from PROP_DATA where BUS_ID=:id"; baseDao.execute(sqlStr, new SqlParameter().addValue("id", spare_id)); } } String sql=" delete from SPARE_PART where CATE_ID=:id and LINK_STORAGE_ID=:storage_id"; baseDao.execute(sql, new SqlParameter().addValue("id", id).addValue("storage_id", storage_id)); } /** * 校验资产编码是否重复 * @param pageInfo * @param params * @return */ @Override public String initAsset_no(HttpServletRequest request) { String asset_no = request.getParameter("asset_no"); String sqlString="select count(*) from SPARE_PART where ASSET_NO=:asset_no "; Integer num= baseDao.queryForInteger(sqlString, new SqlParameter().addValue("asset_no", asset_no)); String asset_no_num=""; if(num>0){ asset_no_num="1"; }else{ asset_no_num="0"; } return asset_no_num; } /** * 查询该工单下的备件信息 * @param id * @return */ public List getEditStockApply(String id) { StringBuilder sql = new StringBuilder(); Map paramMap = new HashMap(); sql.append(" select * from SPARE_PART where LINK_STORAGE_ID=:id "); paramMap.put("id", id); List queryForList = baseDao.queryForList(sql.toString(), paramMap); return queryForList; } /** * 发起流程 * @param spare_part_storage */ public String addSpare_part_storage(SPARE_PART_STORAGE spare_part_storage,String type){ if(type.equals("1")){ SPARE_PART_STORAGE spare_part_storage_old=new SPARE_PART_STORAGE(spare_part_storage.getId()).getInstanceById(); Integer state=spare_part_storage_old.getState(); if(state==Constants.SPARE_PART_STORAGE_STATE_N){ spare_part_storage.setState(Constants.SPARE_PART_STORAGE_STATE_N); }else{ spare_part_storage.setState(Constants.SPARE_PART_STORAGE_STATE_Z); } spare_part_storage.setGmt_create(spare_part_storage_old.getGmt_create()); spare_part_storage.setGmt_modified(DateUtil.getCurrentDate14()); spare_part_storage.update(); }else{ spare_part_storage.setGmt_create(DateUtil.getCurrentDate14()); spare_part_storage.setState(Constants.SPARE_PART_STORAGE_STATE_Z); //工单编号 String order_code = workOrderCodeService.getStockOrderCode(); spare_part_storage.setOrder_code(order_code); spare_part_storage.insert(); } return ""; } public String addSpare_part_storagePl(SPARE_PART_STORAGE spare_part_storage){ spare_part_storage.setState(Constants.SPARE_PART_STORAGE_STATE_T); String order_code = workOrderCodeService.getStockOrderCode(); spare_part_storage.setOrder_code(order_code); spare_part_storage.insert(); return spare_part_storage.getId(); } @Override public List getCfgcateList(Map params){ StringBuilder sql = new StringBuilder(); sql.append(" select id,name from cmdb_ci_category where state=1 and cate_type=2"); if(StringUtil.isNotBlank(params.get("lv"))){ sql.append(" and lv = :lv "); } if(StringUtil.isNotBlank(params.get("pid"))){ sql.append(" and pid = :pid "); } return baseDao.queryForList(sql.toString(), params); } /** * 保存配置项 * @param params * @param request */ @Override public void saveCfg(Map params, HttpServletRequest request) { StringBuilder sql = new StringBuilder(); if (StringUtil.isNotBlank(params.get("full_cate_id"))) { String[] cateIdArr = params.get("full_cate_id").split("-"); String[] cateNameArr = params.get("full_cate_name").split("-"); params.put("lv1_id", cateIdArr[0]); params.put("lv1_name", cateNameArr[0]); params.put("lv2_id", cateIdArr[1]); params.put("lv2_name", cateNameArr[1]); params.put("lv3_id", cateIdArr[2]); params.put("lv3_name", cateNameArr[2]); } String searchcode = OrderCodeUtil.getUUIDCode("SH"); params.put("searchcode", searchcode); params.put("create_time", DateUtil.getCurrentDate14().toString()); params.put("busId", params.get("id")); params.put("linkId", params.get("lv3_id")); saveProp(params); } private void saveProp(Map params) { String linkId = ConvertUtil.obj2StrBlank(params.get("linkId")); String busId = ConvertUtil.obj2StrBlank(params.get("busId")); //删除所有的属性配置信息 String delSql = "delete from prop_data where bus_id = :busId "; baseDao.execute(delSql, new SqlParameter("busId", busId)); List glist = getPropTemplate(linkId, null); if (glist != null && glist.size() > 0) { List pList = new ArrayList(); for (Map g : glist) { if (g.get("props") != null) { List plist = (List) g.get("props"); for (Map p : plist) { String key = "p_" + ConvertUtil.obj2StrBlank(p.get("columncode").toString()); if (params.get(key) != null) { SqlParameter sqlParameter = new SqlParameter(); sqlParameter.addValue("id", StringUtil.getUUID()) .addValue("column_id", p.get("pid")) .addValue("column_code", p.get("columncode")) .addValue("column_name", p.get("columnname")) .addValue("busId", busId) .addValue("column_text", ConvertUtil.obj2StrBlank(params.get(key + "_text"))) .addValue("column_value", ConvertUtil.obj2StrBlank(params.get(key))); pList.add(sqlParameter); } } } } String insertSql = "insert into prop_data(id,bus_id,column_id,column_code,column_name,column_value,column_text) VALUES (:id,:busId,:column_id,:column_code,:column_name,:column_value,:column_text)"; baseDao.executeBatch(insertSql, pList); } } @Override public List getPropTemplate(String linkId ,String busId) { StringBuilder sql = new StringBuilder(); Map propSet = new HashMap(); if(StringUtil.isNotBlank(busId)){ sql.append(" select * from prop_data where bus_id=:busId "); List propList = baseDao.queryForList(sql.toString(),new SqlParameter("busId",busId)); if(propList!=null&&propList.size()>0){ for(Map p:propList){ propSet.put(p.get("column_id"), p); } } sql.setLength(0); } SqlParameter param = new SqlParameter(); param.addValue("linkId", linkId); Map cate = baseDao.queryForMap("select * from CMDB_CI_CATEGORY where id = :linkId ",param); String lv = ConvertUtil.obj2StrBlank(cate.get("lv")); String pid = ConvertUtil.obj2StrBlank(cate.get("pid")); param.addValue("pid", pid); List list = new ArrayList(); sql.append(" select g.serial gserial,g.id gid,g.group_name,p.id pid,p.* from ( "); sql.append(" select g.id,g.group_name,g.serial from prop_group g,cmdb_ci_category c where g.link_id=c.id and c.state=1 "); if(lv.equals("3")){ sql.append(" and (c.id = :linkId or c.id = :pid) "); }else{ sql.append(" and c.id = :linkId "); } /*sql.append(" union select -1 as id,'通用属性' as group_name,0 as serial from prop_group g ");*/ sql.append(" ) g ,prop_column p "); sql.append(" where g.id = p.group_id and p.state=1 order by gid,p.serial desc "); List glist = baseDao.queryForList(sql.toString(),param); sql.setLength(0); sql.append(" select * from prop_sel where column_id = :pid "); if(glist!=null&&glist.size()>0){ Stack stack= new Stack(); for(int i=0;i<=glist.size();i++){ if(i!=glist.size()){ int datatype = ConvertUtil.obj2Int(glist.get(i).get("DATATYPE")); if(datatype==Constants.PROP_TYPE_SEL ||datatype==Constants.YSY_TYPE_MULTI_SEL) { List sList = baseDao.queryForList(sql.toString(),new SqlParameter("pid",glist.get(i).get("pid"))); glist.get(i).put("items", sList); } } if(stack.isEmpty()){ stack.push(glist.get(i)); }else{ if(i==glist.size()||!stack.peek().get("gid").toString().equals(glist.get(i).get("gid").toString())){ Map temp = stack.peek(); List plist = new ArrayList(); while(!stack.isEmpty()){ Map p = stack.pop(); if(!propSet.isEmpty()){ if(propSet.containsKey(p.get("pid").toString())){ Map prop = (Map)propSet.get(p.get("pid").toString()); String def_val = ConvertUtil.obj2StrBlank(prop.get("column_value")); String def_text = ConvertUtil.obj2StrBlank(prop.get("column_text")); p.put("default_val", def_val); p.put("default_ext", def_text); } } plist.add(p); } temp.put("props", plist); list.add(temp); } if(i!=glist.size()){ stack.push(glist.get(i)); } } } } Collections.sort(list, new Comparator(){ @Override public int compare(Map o1, Map o2) { return ConvertUtil.obj2Integer(o1.get("gserial")).compareTo(ConvertUtil.obj2Integer(o2.get("gserial"))); } }); return list; } @Override public List getMftList(String cusId, String type) { String sql = "select * from SUPPLIER_INFO where state=1 and customer_id = :cusId and type = :type"; return baseDao.queryForList(sql, new SqlParameter().addValue("cusId", cusId).addValue("type", type)); } @Override public List getCusList() { return baseDao.queryForList(" select * from SUPPLIER_INFO where STATE=1 "); } /** * 备件信息 */ @Override public Map getCfgById(String id) { return baseDao.queryForMap("select SPARE_PART.*,CMDB_CI_CATEGORY.CODE CODE,CMDB_CI_CATEGORY.LV1_ID,CMDB_CI_CATEGORY.LV2_ID,CMDB_CI_CATEGORY.LV3_ID, CMDB_CI_CATEGORY.LV1_NAME,CMDB_CI_CATEGORY.LV2_NAME,CMDB_CI_CATEGORY.LV3_NAME from SPARE_PART,CMDB_CI_CATEGORY where SPARE_PART.id=:id and SPARE_PART.CATE_ID= CMDB_CI_CATEGORY.LV3_ID", new SqlParameter("id", id)); } /** * 查询备件列表信息 */ @Override public PageInfo stockListData(PageInfo pageInfo, Map params) { Map paramMap = new HashMap(); String storage_id=params.get("storage_id"); StringBuilder sql = new StringBuilder(); sql.append(" SELECT PATH.*,CMDB.LV1_NAME,CMDB.LV2_NAME,CMDB.LV3_NAME FROM SPARE_PART PATH,CMDB_CI_CATEGORY CMDB where PATH.LINK_STORAGE_ID=:link_storage_id and CMDB.LV3_ID=PATH.CATE_ID"); SqlParameter param = new SqlParameter(); paramMap.put("link_storage_id", storage_id); return baseDao.queryforSplitPageInfo(pageInfo,sql.toString(), paramMap); } @Override public PageInfo stockOverageListData(PageInfo pageInfo, Map params) { Map paramMap = new HashMap(); String partId =params.get("partId"); StringBuilder sql = new StringBuilder(); sql.append(" SELECT D.ID,path.ID as PATHID,d.ORDER_ID,PATH.ENTITY_NO,PATH.NAME,PATH.ASSET_NO,PATH.MODEL_NO,PATH.LOCATION,CMDB.LV1_NAME,CMDB.LV2_NAME,CMDB.LV3_NAME,d.REASON FROM overage_loss_detail d "+ " left join SPARE_PART path on d.ENTITY_ID = PATH.ID left join overage_loss c on c.id = d.ORDER_ID left join CMDB_CI_CATEGORY CMDB on CMDB.LV3_ID= PATH.CATE_ID "+ " where d.ORDER_ID =:partId "); SqlParameter param = new SqlParameter(); paramMap.put("partId", partId); return baseDao.queryforSplitPageInfo(pageInfo,sql.toString(), paramMap); } /** * 查询备件树列表信息 * @param pageInfo * @param params * @return */ @Override public List stockListTreeData(Map params) { Map paramMap = new HashMap(); String storage_id=params.get("storage_id"); StringBuilder sql = new StringBuilder(); sql.append(" select b.id,b.lv1_name,b.lv2_name,b.lv3_id,b.lv3_name,count(*) cate_num from spare_part a,cmdb_ci_category b " + " where a.cate_id=b.id and a.link_storage_id =:storage_id group by a.cate_id "); List cateList = baseDao.queryForList(sql.toString(),params); Map cateSetMap = new HashMap(); if(cateList!=null&&cateList.size()>0){ for(Map cateMap:cateList){ cateSetMap.put(ConvertUtil.obj2StrBlank(cateMap.get("id")), cateMap); } } sql.setLength(0); sql.append(" select a.* from spare_part a where a.link_storage_id =:storage_id "); List dataList = baseDao.queryForList(sql.toString(),params); if(dataList!=null&&dataList.size()>0){ for(Map data:dataList){ String cateId = ConvertUtil.obj2StrBlank(data.get("cate_id")); if(StringUtil.isNotBlank(cateId)){ if(cateSetMap.get(cateId)!=null){ Map cateMap = (Map)cateSetMap.get(cateId); if(cateMap.get("children")==null){ cateMap.put("children", new ArrayList()); } ((List)cateMap.get("children")).add(data); } } } } /*sql.append(" SELECT PATH.*,CMDB.LV1_NAME,CMDB.LV2_NAME,CMDB.LV3_NAME FROM SPARE_PART PATH,CMDB_CI_CATEGORY CMDB where PATH.LINK_STORAGE_ID=:link_storage_id and CMDB.LV3_ID=PATH.CATE_ID order by PATH.CATE_ID"); SqlParameter param = new SqlParameter(); paramMap.put("link_storage_id", storage_id); List partlist = baseDao.queryForList(sql.toString(),paramMap); List resultList = new LinkedList(); Map CacheMap = new HashMap(); Map cate = new HashMap(); for (Map map : partlist) { String cate_id = map.get("CATE_ID").toString(); if(cate.get(cate_id)==null){ Map cateMap = new HashMap(); cateMap.put("cate_id", cate_id); cateMap.put("cate_name", ""); cateMap.put("children", new ArrayList()); cate.put(cate_id,cateMap ); } ((List)((Map)cate.get(cate_id)).get("children")).add(map); */ /*if (cate.get(cate_id)!=null && !"".equals(cate.get(cate_id))) { list.put(cate.get(cate_id), map); resultList.add(map); continue; }else{ List list = new LinkedList(); map.put("ejTree", ejgnList); cate.put(cate_id, cate_id); List list = new LinkedList(); list.add(map); } if (cate.get(cate_id)!=null && !"".equals(cate.get(cate_id))) { Map yjgnMap = CacheMap.get(map.get("SJBH").toString()); List list = (List)yjgnMap.get("ejTree"); CacheMap.put(cate_id, map); }else{ List list = new LinkedList(); cate.put(cate_id, cate_id); CacheMap.put(cate_id, map); }*/ return cateList; } @Override public int stockListCount(Map params) { Map paramMap = new HashMap(); String storage_id=params.get("storage_id"); StringBuilder sql = new StringBuilder(); sql.append(" select count(*) from SPARE_PART where LINK_STORAGE_ID=:link_storage_id "); SqlParameter param = new SqlParameter(); paramMap.put("link_storage_id", storage_id); return baseDao.queryForInteger(sql.toString(), paramMap); } @Override public int stockOverageListCount(Map params) { Map paramMap = new HashMap(); StringBuilder sql = new StringBuilder(); String partId =params.get("partId"); sql.append(" select count(*) from overage_loss_detail t where t.ENTITY_ID=:partId "); SqlParameter param = new SqlParameter(); param.put("partId", partId); return baseDao.queryForInteger(sql.toString(),param); } /** * 查询供应商信息 * @param request * @return */ @Override public List querySupplier(HttpServletRequest request) { StringBuilder builder = new StringBuilder("SELECT A.* FROM SUPPLIER_INFO A WHERE A.STATE = 1 "); String supplier_name = request.getParameter("supplier_name"); String contacts = request.getParameter("contacts"); Map paramMap = new HashMap(); if(StringUtil.isNotBlank(supplier_name)){ builder.append(" and SUPPLIER_NAME like:supplier_name "); paramMap.put("supplier_name", "%"+supplier_name.trim()+"%"); } if(StringUtil.isNotBlank(contacts)){ builder.append(" and contacts like:contacts "); paramMap.put("contacts", "%"+contacts.trim()+"%"); } List devices = baseDao.queryForList(builder.toString(),paramMap); return devices; } /** * 提交申请入库 * @param request * @return */ @Override public void doApproveAssign(HttpServletRequest request) { String type = request.getParameter("type"); String storage_id = request.getParameter("storage_id"); String order_name = AjaxUtil.decode(request.getParameter("order_name")); String storage_reason = AjaxUtil.decode(request.getParameter("storage_reason")); String orderId = request.getParameter("orderId"); String executeUserId = request.getParameter("dealId"); String executeUserName = request.getParameter("dealName"); String flowId =""; SPARE_PART_STORAGE spare_part_storage=new SPARE_PART_STORAGE(); Map user = WebUtil.getLoginUser(request).getLoginUser(); if(type!=null && !"".equals(type)){ if(type.equals("0")){ //工单编号 String order_code = workOrderCodeService.getStockOrderCode(); spare_part_storage.setOrder_code(order_code); spare_part_storage.setId(storage_id); spare_part_storage.setOrder_name(order_name); spare_part_storage.setStorage_reason(storage_reason); spare_part_storage.setCreate_id(user.get("ID").toString()); spare_part_storage.setCreate_name( user.get("ZSXM").toString()); spare_part_storage.setGmt_create(DateUtil.getCurrentDate14()); spare_part_storage.setState(Constants.SPARE_PART_STORAGE_STATE_Z); spare_part_storage.insert(); }else if(storage_id!=null & !"".equals(storage_id)){ spare_part_storage=new SPARE_PART_STORAGE(storage_id).getInstanceById(); } } String bz= request.getParameter("bz"); orderId = storage_id; String sqlString="SELECT\n" + " WORKFLOW_BASE.id flowid,\n" + " WORKFLOW_NODE.CURRENT_DEALER_ID userid,\n" + " WORKFLOW_NODE.CURRENT_DEALER_NAME username,\n" + " WORKFLOW_NODE.ID nodeid\n" + "FROM\n" + " WORKFLOW_BASE,\n" + " WORKFLOW_NODE\n" + "WHERE\n" + " WORKFLOW_BASE.BUSINESS_ID =:business_id\n" + "AND WORKFLOW_BASE.id = WORKFLOW_NODE.FLOWID\n" + "AND WORKFLOW_NODE.FLOWSTATE = 1 and WORKFLOW_NODE.CURRENT_DEALER_ID=:userid"; Map paramMap = new HashMap(); paramMap.put("business_id",orderId); paramMap.put("userid",user.get("ID").toString()); List queryForList = baseDao.queryForList(sqlString, paramMap); if(queryForList!=null && queryForList.size()>0){ String NodeId=queryForList.get(0).get("nodeid").toString(); String FlowId=queryForList.get(0).get("flowid").toString(); String UserName=queryForList.get(0).get("username").toString(); String Userid=queryForList.get(0).get("userid").toString(); NodeFinishEntity finishEntity = new NodeFinishEntity(); finishEntity.setDeal_result(0); finishEntity.setDeal_note_title(UserName+"完成了节点"); finishEntity.setDeal_note(bz); WORKFLOW_NODE node = new WORKFLOW_NODE(NodeId).getInstanceById(); WORKFLOW_BASE base=new WORKFLOW_BASE(FlowId).getInstanceById(); workflowCoreService.finishNode(base, node, finishEntity); WORKFLOW_NODE node_no = new WORKFLOW_NODE(NodeId).getInstanceById(); node_no.setAnswer_time(DateUtil.getCurrentDate14()); node_no.update(); NodeDealEntity entity = new NodeDealEntity(); entity.setDealer_type(2); List userList = new ArrayList(); Map dealer = new HashMap(); dealer.put("USER_ID",executeUserId); dealer.put("USER_NAME",executeUserName); dealer.put("IS_ADMIN","1"); userList.add(dealer); entity.setDealerList(userList); workflowCoreService.toNode(base, Constants.RKSP, entity); }else{ List userList = new ArrayList(); Map dealer = new HashMap(); dealer.put("USER_ID",executeUserId); dealer.put("USER_NAME",executeUserName); dealer.put("IS_ADMIN","1"); userList.add(dealer); WorkFlowSupportEntity support = new WorkFlowSupportEntity(); support.setNote(bz); support.setNextUserList(userList); support.setOrderId(orderId); support.setNextNodeTemplateId(Constants.RKSP); support.setUserName(spare_part_storage.getCreate_name()); support.setUserId(spare_part_storage.getCreate_id()); support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_STOCK); SysInfoMsg msg = workFlowSupportService.doOrderFlow(support); } spare_part_storage=new SPARE_PART_STORAGE(storage_id).getInstanceById(); spare_part_storage.setState(Constants.SPARE_PART_STORAGE_STATE_D); spare_part_storage.update(); } /** * 提交申请入库 * @param request * @return */ @Override public void doApproveAssignPl(SPARE_PART_STORAGE spare_part_storage) { String flowId =""; String orderId = spare_part_storage.getId(); List userList = new ArrayList(); Map dealer = new HashMap(); dealer.put("USER_ID",spare_part_storage.getId()); dealer.put("USER_NAME",spare_part_storage.getCreate_name()); dealer.put("IS_ADMIN","1"); userList.add(dealer); WorkFlowSupportEntity support = new WorkFlowSupportEntity(); support.setNote("批量入库"); support.setNextUserList(userList); support.setOrderId(orderId); support.setNextNodeTemplateId(""); support.setUserName(spare_part_storage.getCreate_name()); support.setUserId(spare_part_storage.getCreate_id()); support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_STOCK); workFlowSupportService.doOrderFlow(support); } /** * 查询报损报溢信息 * @param linkId * @param busId * @return */ @Override public List getOverage_loss_detail(String orderId ,String bjId) { String sqlString="select * from OVERAGE_LOSS_DETAIL WHERE ORDER_ID=:order_id and ENTITY_ID=:entity_id"; return baseDao.queryForList(sqlString, new SqlParameter().addValue("order_id", orderId).addValue("entity_id", bjId)); } }