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 javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; 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.CMDB_CI_CATEGORY; import cn.ksource.beans.GG_RECORD; import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO; import cn.ksource.beans.SC_PARTNER_CUSTOMER_SUB; import cn.ksource.beans.SC_WORKFLOW_INCIDENT_LOCAL; import cn.ksource.beans.SC_WORKFLOW_RELEASE; import cn.ksource.beans.SPARE_PART; import cn.ksource.beans.SPARE_PART_APPLY; import cn.ksource.beans.SPARE_PART_APPLY_CATE; import cn.ksource.beans.SPARE_PART_APPLY_ENTITY; import cn.ksource.beans.SPARE_PART_DELIVERY; 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.JsonUtil; import cn.ksource.core.util.OrderCodeUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.util.TwoDimensionCode; 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("DeliveryApplyFacade") public class DeliveryApplyFacadeImpl implements DeliveryApplyFacade { @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_APPLY where STATE=1 "); } /** * 项目查询 * @return */ @Override public List getCustomerList() { String sql = "SELECT * FROM SC_PARTNER_CUSTOMER_INFO WHERE CUSTOMER_STATE = 1 "; return baseDao.queryForList(sql); } /** * 出库列表信息 * @param pageInfo * @param params * @return */ @Override public PageInfo getDeliveryListData(HttpServletRequest request,PageInfo pageInfo){ StringBuilder sql = new StringBuilder(); Map paramMap = new HashMap(); sql.append("SELECT\n" + " D.*, A.ORDER_CODE ORDER_CODE_A\n" + "FROM\n" + " SPARE_PART_DELIVERY D\n" + "LEFT JOIN SPARE_PART_APPLY A ON D.APPLY_ORDER_ID = A.ID WHERE 1=1 and D.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"); String order_code_A=request.getParameter("order_code_A"); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = user.get("Id").toString(); paramMap.put("create_id",userId ); //关联工单 if (StringUtil.isNotBlank(order_code_A)) { sql.append(" and D.APPLY_ORDER_ID in(select id from SPARE_PART_APPLY where order_code like :order_code_A) "); paramMap.put("order_code_A", "%"+order_code_A.trim()+"%"); } //出库类型KEY String delivery_type_keys=request.getParameter("delivery_type_keys"); if (StringUtil.notEmpty(delivery_type_keys)) { String[] keys = delivery_type_keys.split(","); if (keys.length == 1) { sql.append(" AND D.DELIVERY_TYPE_KEY = :delivery_type_key"); paramMap.put("delivery_type_key", keys[0]); } else { sql.append(" AND D.DELIVERY_TYPE_KEY IN ("); for (int i = 0; i < keys.length; i++) { sql.append(" :pri" + i); sql.append(","); paramMap.put("pri" + i, keys[i]); } sql.deleteCharAt(sql.lastIndexOf(",")); sql.append(")"); } } //工单编号 if (StringUtil.isNotBlank(order_code)) { sql.append(" and D.order_code like :order_code "); paramMap.put("order_code", "%"+ order_code.trim()+"%"); } //工单名称 if (StringUtil.isNotBlank(order_name)) { sql.append(" and D.order_name like :order_name "); paramMap.put("order_name", "%"+ order_name.trim()+"%"); } //工单状态 if (StringUtil.isNotBlank(state)) { sql.append(" and D.state=:state "); paramMap.put("state", state); } //开始时间 if(StringUtil.isNotBlank(start_time)){ sql.append(" AND D.gmt_create>=:start_time"); paramMap.put("start_time", start_time+"000000"); } //结束时间 if(StringUtil.isNotBlank(end_time)){ sql.append(" and D.gmt_create<=:end_time"); paramMap.put("end_time", end_time+"235959"); } //出库类型 String pri =request.getParameter("pri"); if (StringUtil.notEmpty(pri)) { String[] pris = pri.split(","); if (pris.length == 1) { sql.append(" AND D.DELIVERY_TYPE_KEY = :delivery_type_key"); paramMap.put("delivery_type_key", pris[0]); } else { sql.append(" AND D.DELIVERY_TYPE_KEY IN ("); for (int i = 0; i < pris.length; i++) { sql.append(" :pri" + i); sql.append(","); paramMap.put("pri" + i, pris[i]); } sql.deleteCharAt(sql.lastIndexOf(",")); sql.append(")"); } } sql.append(" order by gmt_create desc "); return baseDao.queryforSplitPageInfo(pageInfo,sql.toString(), paramMap); } /** * 出库申请列表数量信息 * @param pageInfo * @param params * @return */ @Override public int getDeliveryListCount(HttpServletRequest request) { StringBuilder sql = new StringBuilder(); Map paramMap = new HashMap(); sql.append("SELECT\n" + " count(D.id)\n" + "FROM\n" + " SPARE_PART_DELIVERY D\n" + "LEFT JOIN SPARE_PART_APPLY A ON D.APPLY_ORDER_ID = A.ID WHERE D.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"); String order_code_A=request.getParameter("order_code_A"); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = user.get("Id").toString(); paramMap.put("create_id",userId ); //关联工单 if (StringUtil.isNotBlank(order_code_A)) { sql.append(" and D.APPLY_ORDER_ID in(select id from SPARE_PART_APPLY where order_code like :order_code_A) "); paramMap.put("order_code_A", "%"+order_code_A.trim()+"%"); } //出库类型KEY String delivery_type_keys=request.getParameter("delivery_type_keys"); if (StringUtil.notEmpty(delivery_type_keys)) { String[] keys = delivery_type_keys.split(","); if (keys.length == 1) { sql.append(" AND D.DELIVERY_TYPE_KEY = :delivery_type_key"); paramMap.put("delivery_type_key", keys[0]); } else { sql.append(" AND D.DELIVERY_TYPE_KEY IN ("); for (int i = 0; i < keys.length; i++) { sql.append(" :pri" + i); sql.append(","); paramMap.put("pri" + i, keys[i]); } sql.deleteCharAt(sql.lastIndexOf(",")); sql.append(")"); } } //工单编号 if (StringUtil.isNotBlank(order_code)) { sql.append(" and D.order_code like :order_code "); paramMap.put("order_code", "%"+ order_code.trim()+"%"); } //工单名称 if (StringUtil.isNotBlank(order_name)) { sql.append(" and D.order_name like :order_name "); paramMap.put("order_name", "%"+ order_name.trim()+"%"); } //工单状态 if (StringUtil.isNotBlank(state)) { sql.append(" and D.state=:state "); paramMap.put("state", state); } //开始时间 if(StringUtil.isNotBlank(start_time)){ sql.append(" AND D.gmt_create>=:start_time"); paramMap.put("start_time", start_time+"000000"); } //结束时间 if(StringUtil.isNotBlank(end_time)){ sql.append(" and D.gmt_create<=:end_time"); paramMap.put("end_time", end_time+"235959"); } //出库类型 String pri = request.getParameter("pri"); if (StringUtil.notEmpty(pri)) { String[] pris = pri.split(","); if (pris.length == 1) { sql.append(" AND D.DELIVERY_TYPE_KEY = :delivery_type_key"); paramMap.put("delivery_type_key", pris[0]); } else { sql.append(" AND D.DELIVERY_TYPE_KEY IN ("); for (int i = 0; i < pris.length; i++) { sql.append(" :pri" + i); sql.append(","); paramMap.put("pri" + i, pris[i]); } sql.deleteCharAt(sql.lastIndexOf(",")); sql.append(")"); } } sql.append(" order by D.gmt_create desc "); int count = baseDao.queryForInteger(sql.toString(), paramMap); return count; } /** * 查询备件信息 * @param request * @return */ @Override public List querySpareDevice(HttpServletRequest request) { String cate_id = request.getParameter("cate_id"); String id = request.getParameter("id"); String name = request.getParameter("name"); String entity_no = request.getParameter("entity_no"); String spart_ids = request.getParameter("spart_ids"); //查询关联设备 StringBuilder builder = new StringBuilder("SELECT\n" + " SPARE_PART.*, cmdb.LV1_NAME,\n" + " cmdb.LV2_NAME,\n" + " (select code from CMDB_CI_CATEGORY where id=cmdb.LV1_id) code1,\n" + " (select code from CMDB_CI_CATEGORY where id=cmdb.LV2_id) code2,\n" + " cmdb.LV3_NAME\n" + "FROM\n" + " SPARE_PART,\n" + " CMDB_CI_CATEGORY cmdb\n" + "WHERE\n" + " SPARE_PART.CATE_ID = cmdb.ID and SPARE_PART.state ='1'"); Map paramMap = new HashMap(); if (StringUtil.notEmpty(cate_id)) { builder.append(" AND SPARE_PART.CATE_ID =:cate_id "); paramMap.put("cate_id", cate_id); } String spart_id[] = spart_ids.split("-"); if (!StringUtil.isEmpty(spart_ids)) { String para = ""; for (int i = 0; i < spart_id.length; i++) { if (i < spart_id.length - 1) { para += spart_id[i] + "','"; } else if (i == spart_id.length - 1) { para += spart_id[i]; } } builder.append(" and SPARE_PART.ID NOT IN ('"); builder.append(para); builder.append("') "); } if (StringUtil.notEmpty(name)) { builder.append(" AND SPARE_PART.NAME like :name "); paramMap.put("name", "%"+name.trim()+"%"); } if (StringUtil.notEmpty(entity_no)) { builder.append(" AND SPARE_PART.entity_no like :entity_no "); paramMap.put("entity_no", "%"+entity_no+"%"); } builder.append(" ORDER BY SPARE_PART.GMT_CREATE desc "); List devices = baseDao.queryForList(builder.toString(), paramMap); return devices; } /** * 查询备件分类明细表信息 * @param request * @return */ public List queryApplyCateList(HttpServletRequest request) { String orderId = request.getParameter("orderId"); String cate_id = request.getParameter("cate_id"); String id_test = request.getParameter("id_test"); //查询关联设备 StringBuilder builder = new StringBuilder("SELECT\n" + " c.id,\n" + " c.CATE_ID,\n" + " c.CATE_NUM,\n" + " P.LV1_NAME,\n" + " P.LV2_NAME,\n" + " P.LV3_NAME\n" + "FROM\n" + " SPARE_PART_APPLY_CATE c,\n" + " CMDB_CI_CATEGORY p\n" + "WHERE\n" + " c.CATE_ID = p.ID\n" + "AND c.DELIVERY_ORDER_ID =:orderId"); Map paramMap = new HashMap(); if(StringUtil.isNotBlank(cate_id)){ builder.append(" and c.CATE_ID=:cate_id"); paramMap.put("cate_id", cate_id); } if(StringUtil.isNotBlank(orderId)){ paramMap.put("orderId", orderId); }else if(StringUtil.isNotBlank(id_test)){ paramMap.put("orderId", id_test); } List devices = baseDao.queryForList(builder.toString(), paramMap); Map cateSetMap = new HashMap(); if(devices!=null&&devices.size()>0){ for(Map cateMap:devices){ cateSetMap.put(ConvertUtil.obj2StrBlank(cateMap.get("id")), cateMap); } } builder.setLength(0); builder.append("SELECT\n" + " ENTITY.ID,\n" + " ENTITY.LINK_ID,\n" + " ENTITY.CI_ID,\n" + " SPARE.ENTITY_NO,\n" + " SPARE.ASSET_NO,\n" + " SPARE.MODEL_NO,\n" + " SPARE.ID SPART_ID,\n" + " SPARE.SUPPLIER_NAME,\n" + " SPARE.SALE_PRICE,\n" + " SPARE.NAME,\n" + " CMDB.LV1_NAME,\n" + " CMDB.LV2_NAME,\n" + " (select CINAME from CMDB_CI_BASE where id=ENTITY.CI_ID) CINAME,\n" + " CMDB.LV3_NAME\n" + "FROM\n" + " SPARE_PART_APPLY_ENTITY ENTITY,\n" + " SPARE_PART SPARE,\n" + " CMDB_CI_CATEGORY CMDB\n" + "WHERE\n" + " ENTITY.ENTITY_ID = SPARE.id\n" + " AND (ENTITY.state ='1'or ENTITY.state='2')\n" + "AND CMDB.ID = SPARE.CATE_ID AND ENTITY.DELIVERY_ORDER_ID=:orderId"); if(StringUtil.isNotBlank(cate_id)){ builder.append(" and CMDB.id=:cate_id"); paramMap.put("cate_id", cate_id); } List dataList = baseDao.queryForList(builder.toString(),paramMap); if(dataList!=null&&dataList.size()>0){ for(Map data:dataList){ String link_id = ConvertUtil.obj2StrBlank(data.get("LINK_ID")); if(StringUtil.isNotBlank(link_id)){ if(cateSetMap.get(link_id)!=null){ Map cateMap = (Map)cateSetMap.get(link_id); if(cateMap.get("children")==null){ cateMap.put("children", new ArrayList()); } ((List)cateMap.get("children")).add(data); } } } } return devices; } /** * 保存备件实体明细表信息 * @param request * @return */ @Override public String doSpareAssign(HttpServletRequest request) { String orderId = request.getParameter("orderId"); String cate_id = request.getParameter("cate_id"); String spare_part_ids= request.getParameter("spare_part_ids"); String order_name= request.getParameter("order_name"); String apply_reason= request.getParameter("apply_reason"); String id_test = request.getParameter("id_test"); String[] spare_part_id_s = spare_part_ids.split(","); if(StringUtil.isNotBlank(orderId) && StringUtil.isNotBlank(cate_id)){ String sql="select * from SPARE_PART_APPLY_CATE where CATE_ID=:cate_id and DELIVERY_ORDER_ID=:orderId"; Map paramMap = new HashMap(); paramMap.put("orderId", orderId); paramMap.put("cate_id", cate_id); List dataList = baseDao.queryForList(sql,paramMap); if(dataList!=null && dataList.size()>0){ String id=ConvertUtil.obj2StrBlank(dataList.get(0).get("id")); //申领工单id String apply_order_id=ConvertUtil.obj2StrBlank(dataList.get(0).get("APPLY_ORDER_ID")); SPARE_PART_APPLY_CATE spare_part_apply_cate=new SPARE_PART_APPLY_CATE(id).getInstanceById(); for (int i = 0; i < spare_part_id_s.length; i++) { String spare_part_id= spare_part_id_s[i]; SPARE_PART_APPLY_ENTITY SPARE_PART_APPLY_ENTITY=new SPARE_PART_APPLY_ENTITY(); SPARE_PART_APPLY_ENTITY.setOrder_id(apply_order_id); SPARE_PART_APPLY_ENTITY.setLink_id(id); SPARE_PART_APPLY_ENTITY.setEntity_id(spare_part_id); SPARE_PART_APPLY_ENTITY.setDelivery_order_id(orderId); SPARE_PART_APPLY_ENTITY.setState(1); SPARE_PART_APPLY_ENTITY.insert(); /* SPARE_PART spare_part=new SPARE_PART(spare_part_id).getInstanceById(); spare_part.setState(Constants.SPARE_PART_STATE_D); spare_part.update();*/ } } }else{ for (int i = 0; i < spare_part_id_s.length; i++) { String spare_part_id= spare_part_id_s[i]; SPARE_PART spare_part=new SPARE_PART(spare_part_id).getInstanceById(); String cateId=spare_part.getCate_id(); String sqlString="select * from SPARE_PART_APPLY_CATE where CATE_ID=:cateId and DELIVERY_ORDER_ID=:delivery_order_id"; Map paramMap = new HashMap(); if(StringUtil.isNotBlank(id_test)){ paramMap.put("delivery_order_id", id_test); }else{ paramMap.put("delivery_order_id", orderId); } paramMap.put("cateId", cateId); List dataList = baseDao.queryForList(sqlString,paramMap); if(dataList!=null && dataList.size()>0){ String spare_part_apply_cate_id=ConvertUtil.obj2StrBlank(dataList.get(0).get("id")); SPARE_PART_APPLY_ENTITY spare_part_apply_entity=new SPARE_PART_APPLY_ENTITY(); spare_part_apply_entity.setLink_id(spare_part_apply_cate_id); spare_part_apply_entity.setEntity_id(spare_part_id); if(StringUtil.isNotBlank(id_test)){ spare_part_apply_entity.setDelivery_order_id(id_test); }else{ spare_part_apply_entity.setDelivery_order_id(orderId); } spare_part_apply_entity.setState(1); spare_part_apply_entity.insert(); Integer num=Integer.valueOf(ConvertUtil.obj2StrBlank(dataList.get(0).get("CATE_NUM"))); String cate="update SPARE_PART_APPLY_CATE set CATE_NUM=:num where id=:spare_part_apply_cate_id"; paramMap.put("spare_part_apply_cate_id", spare_part_apply_cate_id); paramMap.put("num", num+1); baseDao.execute(cate, paramMap); }else{ SPARE_PART_APPLY_CATE spare_part_apply_cate=new SPARE_PART_APPLY_CATE(); if(StringUtil.isNotBlank(id_test)){ spare_part_apply_cate.setDelivery_order_id(id_test); }else{ spare_part_apply_cate.setDelivery_order_id(orderId); } spare_part_apply_cate.setCate_id(cateId); spare_part_apply_cate.setCate_num(1); spare_part_apply_cate.insert(); SPARE_PART_APPLY_ENTITY spare_part_apply_entity=new SPARE_PART_APPLY_ENTITY(); spare_part_apply_entity.setLink_id(spare_part_apply_cate.getId()); spare_part_apply_entity.setEntity_id(spare_part_id); if(StringUtil.isNotBlank(id_test)){ spare_part_apply_entity.setDelivery_order_id(id_test); }else{ spare_part_apply_entity.setDelivery_order_id(orderId); } spare_part_apply_entity.setState(1); spare_part_apply_entity.insert(); } } } return ""; } /** * 保存出库信息 * @param request * @param release * @return */ @Override public String saveDelivery(HttpServletRequest request, SPARE_PART_DELIVERY spare_part_delivery) { String orderId = request.getParameter("orderId"); String id_test = request.getParameter("id_test"); String order_name = request.getParameter("order_name"); String delivery_reason = request.getParameter("delivery_reason"); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userName = user.get("ZSXM").toString(); String userId = user.get("Id").toString(); String type = request.getParameter("type"); String customer_id = request.getParameter("customer_id"); String customer_name = request.getParameter("customer_name"); String dealId = request.getParameter("dealId"); String dealName = request.getParameter("dealName"); String bz = request.getParameter("bz"); spare_part_delivery.setOrder_name(order_name); spare_part_delivery.setDelivery_reason(delivery_reason); //新增 if(StringUtil.isNotBlank(id_test)){ spare_part_delivery.setId(id_test); //工单编号 String order_code = workOrderCodeService.getSpareDeliveryOrderCode(); spare_part_delivery.setOrder_code(order_code); spare_part_delivery.setCreate_id(userId); spare_part_delivery.setState(Constants.SPARE_PART_DELIVERY_STATE_X); spare_part_delivery.setCreate_name(userName); spare_part_delivery.setGmt_create(DateUtil.getCurrentDate14()); spare_part_delivery.setDelivery_type_key("2"); spare_part_delivery.setDelivery_type_name("其他"); spare_part_delivery.insert(); orderId=id_test; /*String sqlString="update SPARE_PART set STATE=:state where id in(select ENTITY_ID from SPARE_PART_APPLY_ENTITY where DELIVERY_ORDER_ID=:delivery_order_id)"; Map paramMap = new HashMap(); paramMap.put("state", Constants.SPARE_PART_STATE_D); paramMap.put("delivery_order_id", id_test); baseDao.execute(sqlString, paramMap);*/ }else{ SPARE_PART_DELIVERY spare_part_delivery_old=new SPARE_PART_DELIVERY(orderId).getInstanceById(); spare_part_delivery_old.setOrder_name(order_name); spare_part_delivery_old.setDelivery_reason(delivery_reason); spare_part_delivery_old.setState(Constants.SPARE_PART_DELIVERY_STATE_X); spare_part_delivery_old.update(); } if(StringUtil.isNotBlank(dealId)){ List userList = new ArrayList(); Map dealer = new HashMap(); dealer.put("USER_ID",dealId); dealer.put("USER_NAME",dealName); dealer.put("IS_ADMIN","1"); userList.add(dealer); WorkFlowSupportEntity support = new WorkFlowSupportEntity(); support.setNote(bz); support.setNextUserList(userList); support.setOrderId(orderId); support.setNextNodeTemplateId(Constants.CKSH); support.setUserName(userId); support.setUserId(userName); support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CKLC); SysInfoMsg msg = workFlowSupportService.doOrderFlow(support); SPARE_PART_DELIVERY spare_part_delivery_old=new SPARE_PART_DELIVERY(orderId).getInstanceById(); spare_part_delivery_old.setOrder_name(order_name); spare_part_delivery_old.setDelivery_reason(delivery_reason); spare_part_delivery_old.setState(Constants.SPARE_PART_DELIVERY_STATE_S); spare_part_delivery_old.update(); } return ""; } /** * 提交出库信息 * @param request * @return */ @Override public String doApproveAssign(HttpServletRequest request) { String orderId = request.getParameter("orderId"); String type = request.getParameter("type"); String executeUserId = request.getParameter("dealId"); String executeUserName = request.getParameter("dealName"); String bz= request.getParameter("bz"); Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId =user.get("ID").toString(); String userName=user.get("ZSXM").toString(); 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.CKSH); support.setUserName(userId); support.setUserId(userName); support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CKLC); SysInfoMsg msg = workFlowSupportService.doOrderFlow(support); if(StringUtil.isNotBlank(orderId)){ SPARE_PART_DELIVERY SPARE_PART_DELIVERY=new SPARE_PART_DELIVERY(orderId).getInstanceById(); SPARE_PART_DELIVERY.setState(Constants.SPARE_PART_DELIVERY_STATE_S); SPARE_PART_DELIVERY.update(); } return ""; } /** * 删除出库工单(SPARE_PART_APPLY_ENTITY) * @param request * @return */ @Override public String deleteDeliveryItem(HttpServletRequest request) { String orderId = request.getParameter("id"); String delivery="delete from SPARE_PART_DELIVERY where id=:orderId"; String cate="delete from SPARE_PART_APPLY_CATE where DELIVERY_ORDER_ID=:orderId"; String entity="update SPARE_PART_APPLY_ENTITY set state='1' where DELIVERY_ORDER_ID=:orderId"; String spare_part="update SPARE_PART set state='1' where id in (select ENTITY_ID from SPARE_PART_APPLY_ENTITY where DELIVERY_ORDER_ID=:orderId)"; Map paramMap = new HashMap(); paramMap.put("orderId", orderId); baseDao.execute(delivery, paramMap); baseDao.execute(cate, paramMap); baseDao.execute(entity, paramMap); baseDao.execute(spare_part, paramMap); return ""; } /** * 删除配置下的备件实体明细(SPARE_PART_APPLY_ENTITY) * @param request * @return */ @Override public String deleteTree(HttpServletRequest request) { String cate_id = request.getParameter("id"); String orderId = request.getParameter("orderId"); String id_test = request.getParameter("id_test"); String sqlString="select * from spare_part_apply_entity where LINK_ID in(:cate_id) and DELIVERY_ORDER_ID=:orderId"; Map paramMap = new HashMap(); if(StringUtil.isNotBlank(orderId)){ paramMap.put("orderId", orderId); }else{ paramMap.put("orderId", id_test); } paramMap.put("cate_id", cate_id); List apply_entity_list=baseDao.queryForList(sqlString, paramMap); //更新备件实体表状态 if(apply_entity_list!=null &&apply_entity_list.size()>0){ for(Map apply_entity_map:apply_entity_list){ String entity_id=ConvertUtil.obj2StrBlank(apply_entity_map.get("ENTITY_ID")); SPARE_PART SPARE_PART=new SPARE_PART(entity_id).getInstanceById(); SPARE_PART.setState(Constants.SPARE_PART_STATE_Z); SPARE_PART.update(); } } String entity="update spare_part_apply_entity set STATE='0' where LINK_ID in(:cate_id) and DELIVERY_ORDER_ID=:orderId"; baseDao.execute(entity, paramMap); SPARE_PART_DELIVERY spare_part_delivery=new SPARE_PART_DELIVERY(); String delivery_type_key=""; if(StringUtil.isNotBlank(orderId)){ spare_part_delivery=new SPARE_PART_DELIVERY(orderId).getInstanceById(); delivery_type_key=spare_part_delivery.getDelivery_type_key(); }else{ delivery_type_key="2"; } if(StringUtil.isNotBlank(delivery_type_key)){ if(delivery_type_key.equals("2")){ String cate="delete from SPARE_PART_APPLY_CATE where id=:cate_id"; baseDao.execute(cate, paramMap); } } return ""; } /** * 校验提交前信息 * @param request * @return */ @Override public String initDelivery(HttpServletRequest request) { String orderId = request.getParameter("orderId"); String id_test = request.getParameter("id_test"); //查询关联设备 StringBuilder builder = new StringBuilder("SELECT\n" + " c.id,\n" + " c.CATE_ID,\n" + " c.CATE_NUM\n" + "FROM\n" + " SPARE_PART_APPLY_CATE c\n" + "WHERE\n" + " c.DELIVERY_ORDER_ID =:orderId"); Map paramMap = new HashMap(); if(StringUtil.isNotBlank(orderId)){ paramMap.put("orderId", orderId); }else if(StringUtil.isNotBlank(id_test)){ paramMap.put("orderId", id_test); } List devices = baseDao.queryForList(builder.toString(), paramMap); Map cateSetMap = new HashMap(); if(devices!=null&&devices.size()>0){ for(Map cateMap:devices){ String id=ConvertUtil.obj2StrBlank(cateMap.get("id")); Integer cate_num=Integer.valueOf(ConvertUtil.obj2StrBlank(cateMap.get("CATE_NUM"))); String sqlString="select count(*) from SPARE_PART_APPLY_ENTITY where LINK_ID=:link_id AND state='1'"; paramMap.put("link_id", id); Integer aInteger=baseDao.queryForInteger(sqlString, paramMap); if(aIntegercate_num){ return "3"; } } }else{ return "0"; } return "1"; } }