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_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("SparePartsFacade")
|
public class SparePartsFacadeImpl implements SparePartsFacade {
|
@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<Map> getStockList() {
|
return baseDao.queryForList(" select * from SPARE_PART_APPLY where STATE=1 ");
|
}
|
/**
|
* 项目查询
|
* @return
|
*/
|
@Override
|
public List<Map> getCustomerList() {
|
String sql = "SELECT * FROM SC_PARTNER_CUSTOMER_INFO WHERE CUSTOMER_STATE = 1 ";
|
return baseDao.queryForList(sql);
|
}
|
/**
|
* 备件供应商查询
|
* @return
|
*/
|
@Override
|
public List<Map> getSupplierList() {
|
String sql = "SELECT * FROM SUPPLIER_INFO WHERE STATE = 1 ";
|
return baseDao.queryForList(sql);
|
}
|
/**
|
* 查询备件申请头部状态数量信息
|
* @param request
|
* @param type
|
* @return
|
*/
|
@Override
|
public Map queryOrderCountByCate(HttpServletRequest request){
|
String userId = WebUtil.getLoginedUserId(request);
|
Map<String,String> groupMap = WebUtil.getLoginUser(request).getGroupMap();
|
Map paramMap = new HashMap();
|
|
StringBuilder builder = new StringBuilder();
|
paramMap.put("create_id", userId);
|
builder.append("SELECT COUNT(1) AS 'TOTAL',SUM(CASE WHEN STATE=2 THEN 1 ELSE 0 END) AS 'AUDITING' ,SUM(CASE WHEN STATE=3 THEN 1 ELSE 0 END) AS 'DELIVERY',SUM(CASE WHEN STATE=4 THEN 1 ELSE 0 END) AS 'CONFIRM' FROM SPARE_PART_APPLY WHERE CREATE_ID=:create_id");
|
|
|
List<Map> list = baseDao.queryForList(builder.toString(),paramMap);
|
Map resultMap = new HashMap();
|
for(Map m : list) {
|
resultMap.put("TOTAL", m.get("TOTAL"));
|
resultMap.put("AUDITING", m.get("AUDITING"));
|
resultMap.put("DELIVERY", m.get("DELIVERY"));
|
resultMap.put("CONFIRM", m.get("CONFIRM"));
|
}
|
return resultMap;
|
}
|
/**
|
* 备件申请列表信息
|
* @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_APPLY 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");
|
String customer_id=request.getParameter("customer_id");
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userId = user.get("Id").toString();
|
paramMap.put("create_id",userId );
|
//项目
|
if (StringUtil.isNotBlank(customer_id)) {
|
sql.append(" and PROJECT_ID=:project_id ");
|
paramMap.put("project_id", customer_id);
|
}
|
//工单编号
|
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_APPLY 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");
|
String customer_id=request.getParameter("customer_id");
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userId = user.get("Id").toString();
|
paramMap.put("create_id",userId );
|
//项目
|
if (StringUtil.isNotBlank(customer_id)) {
|
sql.append(" and PROJECT_ID=:project_id ");
|
paramMap.put("project_id", customer_id);
|
}
|
//工单编号
|
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 customerid
|
* @param subCustomerId
|
* @return
|
*/
|
@Override
|
public String getCustomerName(String customerid) {
|
String subCustomerName = new String();
|
if (StringUtil.notEmpty(customerid)) {
|
SC_PARTNER_CUSTOMER_INFO info = new SC_PARTNER_CUSTOMER_INFO(customerid).getInstanceById();
|
subCustomerName = info.getCustomer_name();
|
}
|
|
return subCustomerName;
|
}
|
/**
|
* 查询关联配置
|
* @param request
|
* @return
|
*/
|
@Override
|
public List queryLinkDevice(HttpServletRequest request) {
|
String seachcode = request.getParameter("seachcode");
|
String categoryid = request.getParameter("categoryid");
|
String customerid = request.getParameter("customerid");
|
String ciids = request.getParameter("ciids");
|
String cmdbName = AjaxUtil.decode(request.getParameter("cmdbName"));
|
String subCustomerId =customerid;
|
String membercode = request.getParameter("membercode");
|
String spare_part_apply_entity_id = request.getParameter("spare_part_apply_entity_id");
|
String orderId = request.getParameter("orderId");
|
Map paramMap = new HashMap();
|
|
//查询关联设备
|
StringBuilder builder = new StringBuilder("SELECT A.* FROM CMDB_CI_BASE A LEFT JOIN CMDB_CI_FLOW B ON A.ID = B.CFG_ID AND B.STATE = 4 WHERE A.STATE = 1 ");
|
|
String ciid[] = ciids.split("-");
|
if (!StringUtil.isEmpty(ciids)) {
|
String para = "";
|
for (int i = 0; i < ciid.length; i++) {
|
if (i < ciid.length - 1) {
|
para += ciid[i] + "','";
|
} else if (i == ciid.length - 1) {
|
para += ciid[i];
|
}
|
}
|
builder.append(" and A.ID NOT IN ('");
|
builder.append(para);
|
builder.append("') ");
|
}
|
if(StringUtil.isNotBlank(orderId)){
|
String sqlString="select CI_ID from CMDB_CI_REF_ORDER where FLOW_ID=(select FLOW_ID from SPARE_PART_APPLY where id=:orderId)";
|
paramMap.put("orderId", orderId);
|
List<Map> ci_ids = baseDao.queryForList(sqlString, paramMap);
|
if(ci_ids!=null && ci_ids.size()>0){
|
String ci_id_s = "";
|
for (Map ci_id :ci_ids){
|
String cmdb_ci_base_id=ConvertUtil.obj2StrBlank(ci_id.get("CI_ID"));
|
ci_id_s += cmdb_ci_base_id + "','";
|
}
|
builder.append(" and A.ID IN ('");
|
builder.append(ci_id_s);
|
builder.append("') ");
|
}else{
|
builder.append(" and A.ID IN ('");
|
builder.append("");
|
builder.append("') ");
|
}
|
}
|
if(StringUtil.isNotBlank(spare_part_apply_entity_id)){
|
String sqlString="select CI_ID from CMDB_CI_REF_ORDER where FLOW_ID=(select FLOW_ID from SPARE_PART_APPLY where id=(select ORDER_ID from SPARE_PART_APPLY_ENTITY where id=:spare_part_apply_entity_id))";
|
paramMap.put("spare_part_apply_entity_id", spare_part_apply_entity_id);
|
List<Map> ci_ids = baseDao.queryForList(sqlString, paramMap);
|
if(ci_ids!=null && ci_ids.size()>0){
|
String ci_id_s = "";
|
for (Map ci_id :ci_ids){
|
String cmdb_ci_base_id=ConvertUtil.obj2StrBlank(ci_id.get("CI_ID"));
|
ci_id_s += cmdb_ci_base_id + "','";
|
}
|
builder.append(" and A.ID IN ('");
|
builder.append(ci_id_s);
|
builder.append("') ");
|
}else{
|
builder.append(" and A.ID IN ('");
|
builder.append("");
|
builder.append("') ");
|
}
|
}
|
if(StringUtil.isNotBlank(customerid)){
|
builder.append(" AND A.CUS_ID =:customerId ");
|
paramMap.put("customerId", customerid);
|
}
|
|
if (StringUtil.notEmpty(cmdbName)) {
|
builder.append(" AND A.CINAME LIKE :ciName ");
|
paramMap.put("ciName", "%" + cmdbName + "%");
|
}
|
|
if (StringUtil.notEmpty(seachcode)) {
|
builder.append(" AND A.SEARCHCODE LIKE :seachcode ");
|
paramMap.put("seachcode", "%" + seachcode + "%");
|
}
|
|
if (StringUtil.notEmpty(membercode)) {
|
builder.append(" AND A.CODE = :membercode ");
|
paramMap.put("membercode", membercode);
|
}
|
|
/* if (StringUtil.notEmpty(subCustomerId)) {
|
builder.append(" AND A.SUB_CUS_ID = :subCustomerId ");
|
paramMap.put("subCustomerId", subCustomerId);
|
}*/
|
|
builder.append(" ORDER BY A.CODE ");
|
|
List<Map> devices = baseDao.queryForList(builder.toString(), paramMap);
|
|
for (Map device : devices) {
|
device.put("LASTUPDATETIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", device.get("LASTUPDATETIME")));
|
int i = device.get("STATE") == null ? 0 : ConvertUtil.obj2Int(device.get("STATE"));
|
device.put("STATE", Constants.getCMDB_CI_BASE_USINGSTATE_Label(i));
|
}
|
System.out.println(JsonUtil.list2Json(devices));
|
return devices;
|
}
|
|
/**
|
* 查询申请备件列表
|
* @param request
|
* @return
|
*/
|
@Override
|
public List querySpareDeviceList(String orderId) {
|
Map paramMap = new HashMap();
|
paramMap.put("orderId", orderId);
|
String sqlString="SELECT\n" +
|
" cate.cate_id id,\n" +
|
" (select code from CMDB_CI_CATEGORY where id=gory.LV1_id) code1,\n" +
|
" (select code from CMDB_CI_CATEGORY where id=gory.LV2_id) code2,\n" +
|
" gory.LV1_NAME,\n" +
|
" gory.LV2_NAME,\n" +
|
" gory.LV3_NAME,\n" +
|
" gory. CODE,\n" +
|
" cate.CATE_NUM\n" +
|
"FROM\n" +
|
" SPARE_PART_APPLY_CATE cate\n" +
|
"LEFT JOIN CMDB_CI_CATEGORY gory ON cate.CATE_ID = gory.id\n" +
|
"WHERE\n" +
|
" cate.APPLY_ORDER_ID =:orderId order by cate.cate_id";
|
List<Map> devices = baseDao.queryForList(sqlString, paramMap);
|
return devices;
|
}
|
|
/**
|
* 查询关联配置信息
|
* @param request
|
* @return
|
*/
|
@Override
|
public List queryLinkDeviceList(String flowId) {
|
Map paramMap = new HashMap();
|
paramMap.put("flowId", flowId);
|
String sqlString="SELECT\n" +
|
" cmdb.CI_ID id,\n" +
|
" base.ciname,\n" +
|
" base.POSITION,\n" +
|
" base.SEARCHCODE\n" +
|
"FROM\n" +
|
" CMDB_CI_REF_ORDER cmdb\n" +
|
"LEFT JOIN CMDB_CI_BASE base ON cmdb.CI_ID = base.ID\n" +
|
"WHERE\n" +
|
" cmdb.FLOW_ID =:flowId";
|
List<Map> devices = baseDao.queryForList(sqlString, paramMap);
|
return devices;
|
}
|
/**
|
* 查询备件树列表信息
|
* @param pageInfo
|
* @param params
|
* @return
|
*/
|
@Override
|
public List<Map> stockListTreeData(HttpServletRequest request) {
|
String sql="select * from cmdb_ci_category where state=1 and cate_type=2 ";
|
|
|
String spareIds = request.getParameter("spareIds");
|
if(StringUtil.isNotBlank(spareIds)){
|
String spareId[] = spareIds.split("-");
|
if (!StringUtil.isEmpty(spareIds)) {
|
String para = "";
|
for (int i = 0; i < spareId.length; i++) {
|
if (i < spareId.length - 1) {
|
para += spareId[i] + "','";
|
} else if (i == spareId.length - 1) {
|
para += spareId[i];
|
}
|
}
|
sql+=" and ID NOT IN ('";
|
sql+=para;
|
sql+="') ";
|
}
|
}
|
sql+=" order BY lv";
|
List<Map> categoryList = baseDao.queryForList(sql);
|
List<Map> resultList = new LinkedList<Map>();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : categoryList) {
|
String level = map.get("lv").toString();
|
|
//一级树
|
if (level.equalsIgnoreCase("1")) {
|
yjgnCache.put(map.get("ID").toString(), map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (level.equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("pid").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
ejgnCache.put(map.get("ID").toString(), map);
|
continue;
|
}
|
//三级树
|
if (level.equalsIgnoreCase("3")) {
|
if(null!=map.get("pid")){
|
Map ejgnMap = ejgnCache.get(map.get("pid").toString());
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
return resultList;
|
|
}
|
/**
|
* 保存备件信息
|
* @param request
|
* @param release
|
* @return
|
*/
|
@Override
|
public String saveSpare(HttpServletRequest request, SPARE_PART_APPLY spare_part_apply) {
|
String orderId = request.getParameter("orderId");
|
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");
|
if(StringUtil.isBlank(orderId)){
|
//工单编号
|
String order_code = workOrderCodeService.getSpareOrderCode();
|
spare_part_apply.setOrder_code(order_code);
|
spare_part_apply.setCreate_id(userId);
|
spare_part_apply.setCreate_name(userName);
|
spare_part_apply.setGmt_create(DateUtil.getCurrentDate14());
|
spare_part_apply.setProject_id(customer_id);
|
spare_part_apply.setProject_name(customer_name);
|
spare_part_apply.setState(Constants.SPARE_PART_APPLY_STATE_X);
|
spare_part_apply.insertOrUpdate();
|
orderId=spare_part_apply.getId();
|
workflowBusinessService.startSpareWorkflow(spare_part_apply.getId(),bz);
|
}else{
|
SPARE_PART_APPLY spare_part=new SPARE_PART_APPLY(orderId).getInstanceById();
|
String flowId=spare_part.getFlow_id();
|
spare_part_apply.setId(orderId);
|
spare_part_apply.setFlow_id(flowId);
|
spare_part_apply.setOrder_code(spare_part.getOrder_code());
|
spare_part_apply.setState(spare_part.getState());
|
if(StringUtil.isNotBlank(customer_name)){
|
spare_part_apply.setProject_id(customer_id);
|
spare_part_apply.setProject_name(customer_name);
|
}else{
|
spare_part_apply.setProject_id(spare_part.getProject_id());
|
spare_part_apply.setProject_name(spare_part.getProject_name());
|
}
|
|
spare_part_apply.update();
|
Map paramMap = new HashMap();
|
//删除关联配置表
|
if(StringUtil.isNotBlank(flowId)){
|
paramMap.put("flowId", flowId);
|
String sqlString="delete from CMDB_CI_REF_ORDER WHERE FLOW_ID =:flowId";
|
baseDao.execute(sqlString, paramMap);
|
|
/* String node="select id from WORKFLOW_NODE where FLOWID=:flowId and FLOWSTATE='3'";
|
List<Map> node_id = baseDao.queryForList(node, paramMap);
|
if(node_id!=null && node_id.size()>0){
|
String workflow_node_id = node_id.get(0).get("id").toString();
|
String current_dealer_name = node_id.get(0).get("CURRENT_DEALER_NAME").toString();
|
|
WORKFLOW_NODE workflow_node=new WORKFLOW_NODE(workflow_node_id).getInstanceById();
|
workflow_node.setCurrent_dealer_name(current_dealer_name);
|
workflow_node.setCurrent_dealer_id(workflow_node_id);
|
workflow_node.setCreatetime(DateUtil.getCurrentDate14());
|
workflow_node.update();
|
}*/
|
|
|
//删除申请备件变
|
paramMap.put("orderId", orderId);
|
String spare_part_apply_cate="delete from SPARE_PART_APPLY_CATE WHERE apply_order_id =:orderId";
|
baseDao.execute(spare_part_apply_cate, paramMap);
|
}
|
}
|
orderId=spare_part_apply.getId();
|
String[] spareDeviceId = request.getParameterValues("spareDeviceId");
|
if(spareDeviceId!=null && spareDeviceId.length>0){
|
for (String str : spareDeviceId) {
|
SPARE_PART_APPLY_CATE apply_cate = new SPARE_PART_APPLY_CATE();
|
String cate_id=str;
|
String num=request.getParameter(cate_id+"_cateNum");
|
if(StringUtil.isNotBlank(num)){
|
apply_cate.setCate_num(Integer.valueOf(num));
|
}
|
apply_cate.setApply_order_id(spare_part_apply.getId());
|
apply_cate.setCate_id(cate_id);
|
apply_cate.insertOrUpdate();
|
}
|
|
}
|
//关联配置ids
|
String[] linkDeviceIds = request.getParameterValues("linkDeviceId");
|
if(linkDeviceIds!=null &&linkDeviceIds.length>0 ){
|
SPARE_PART_APPLY spare_part=new SPARE_PART_APPLY(orderId).getInstanceById();
|
String flowid =spare_part.getFlow_id();
|
if(StringUtil.isNotBlank(flowid)){
|
//关联配置
|
workFlowSupportService.saveLinkDevices(flowid,linkDeviceIds);
|
}
|
}
|
SPARE_PART_APPLY spare_part=new SPARE_PART_APPLY(orderId).getInstanceById();
|
if(StringUtil.isNotBlank(dealId)){
|
String flowid= spare_part.getFlow_id();
|
WORKFLOW_BASE base=new WORKFLOW_BASE(flowid).getInstanceById();
|
NodeDealEntity entity = new NodeDealEntity();
|
entity.setDealer_type(2);
|
List<Map> userList = new ArrayList<Map>();
|
Map dealer = new HashMap();
|
dealer.put("USER_ID",dealId);
|
dealer.put("USER_NAME",dealName);
|
dealer.put("IS_ADMIN","1");
|
userList.add(dealer);
|
entity.setDealerList(userList);
|
workflowCoreService.toNode(base, Constants.BJSLSP, entity);
|
spare_part.setState(Constants.SPARE_PART_APPLY_STATE_S);
|
}
|
spare_part.update();
|
return orderId;
|
|
}
|
|
/**
|
* 流程节点查询
|
* @return
|
*/
|
@Override
|
public List<Map> getFlowList(String orderId) {
|
String sql = "SELECT\n" +
|
" WORKFLOW_NODE.id nextNoid,\n" +
|
" WORKFLOW_BASE.id flowid\n" +
|
"FROM\n" +
|
" WORKFLOW_BASE,\n" +
|
" WORKFLOW_NODE\n" +
|
"WHERE\n" +
|
" WORKFLOW_BASE.id = WORKFLOW_NODE.FLOWID\n" +
|
"AND WORKFLOW_BASE.BUSINESS_ID =:orderId\n" +
|
"AND WORKFLOW_NODE.FLOWSTATE = '1'";
|
Map paramMap = new HashMap();
|
paramMap.put("orderId", orderId);
|
return baseDao.queryForList(sql,paramMap);
|
}
|
|
/**
|
* 提交
|
* @param request
|
* @return
|
*/
|
@Override
|
public void doApproveAssign(HttpServletRequest request) {
|
String type = request.getParameter("type");
|
String orderId = request.getParameter("orderId");
|
String bz= request.getParameter("bz");
|
String flowid = request.getParameter("flowid");
|
String nexNodeId = request.getParameter("nexNodeId");
|
String dealId = request.getParameter("dealId");
|
String dealName = request.getParameter("dealName");
|
SPARE_PART_APPLY spare_part_apply=new SPARE_PART_APPLY(orderId).getInstanceById();
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userid=user.get("ID").toString();
|
String usernameString=user.get("ZSXM").toString();
|
flowid= spare_part_apply.getFlow_id();
|
WORKFLOW_BASE base=new WORKFLOW_BASE(flowid).getInstanceById();
|
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",userid);
|
List<Map> 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();
|
node.setAnswer_time(DateUtil.getCurrentDate14());
|
node.setDealtime(DateUtil.getCurrentDate14());
|
node.setDeal_note(bz);
|
node.update();
|
WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(NodeId).getInstanceById();
|
workflowCoreService.finishNode(base, workflow_node, finishEntity);
|
|
}
|
NodeDealEntity entity = new NodeDealEntity();
|
entity.setDealer_type(2);
|
List<Map> userList = new ArrayList<Map>();
|
Map dealer = new HashMap();
|
dealer.put("USER_ID",dealId);
|
dealer.put("USER_NAME",dealName);
|
dealer.put("IS_ADMIN","1");
|
userList.add(dealer);
|
entity.setDealerList(userList);
|
workflowCoreService.toNode(base, Constants.BJSLSP, entity);
|
|
String sqlString2="select * from WORKFLOW_NODE where NODE_TEMPLATE_ID=:node_template_id order by CREATETIME desc";
|
paramMap.put("node_template_id", Constants.BJSLSQ);
|
List<Map> list_note = baseDao.queryForList(sqlString2, paramMap);
|
if(list_note!=null & list_note.size()>0){
|
String Node_Id=ConvertUtil.obj2StrBlank(list_note.get(0).get("id"));
|
WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(Node_Id).getInstanceById();
|
workflow_node.setDeal_note(bz);
|
workflow_node.update();
|
}
|
if(orderId!=null){
|
spare_part_apply.setId(orderId);
|
spare_part_apply.setState(Constants.SPARE_PART_STORAGE_STATE_D);
|
spare_part_apply.update();
|
}
|
}
|
|
|
/**
|
* 删除备件工单信息
|
* @param pageInfo
|
* @param params
|
* @return
|
*/
|
@Override
|
public void delSpareSpart(String id) {
|
SPARE_PART_APPLY spare_part_apply=new SPARE_PART_APPLY(id).getInstanceById();
|
String flowId=spare_part_apply.getFlow_id();
|
String spare_part=" delete from spare_part_apply where id=:id ";
|
String apply_cate=" delete from SPARE_PART_APPLY_CATE where APPLY_ORDER_ID=:id ";
|
String workflow_node=" delete from WORKFLOW_NODE where FLOWID=:flowId ";
|
String workflow_base=" delete from WORKFLOW_BASE where BUSINESS_ID=:id ";
|
String cmdb_ci_ref_order=" delete from CMDB_CI_REF_ORDER where FLOW_ID=:flowId";
|
|
Map paramMap = new HashMap();
|
paramMap.put("id",id);
|
paramMap.put("flowId",flowId);
|
baseDao.execute(spare_part, paramMap);
|
baseDao.execute(apply_cate, paramMap);
|
baseDao.execute(workflow_node, paramMap);
|
baseDao.execute(workflow_base, paramMap);
|
baseDao.execute(cmdb_ci_ref_order, paramMap);
|
}
|
|
/**
|
* 关联配置保存
|
* @param xyzzjg
|
* @param request
|
* @param response
|
* @return
|
*/
|
@Override
|
public String doEditCiId(HttpServletRequest request) {
|
String orderId = request.getParameter("orderId");
|
if(StringUtil.isNotBlank(orderId)){
|
String sqlString="select * from SPARE_PART_APPLY_ENTITY where ORDER_ID=:orderId";
|
Map paramMap = new HashMap();
|
paramMap.put("orderId",orderId);
|
List<Map> list= baseDao.queryForList(sqlString,paramMap);
|
if(list!=null && list.size()>0){
|
for(Map map:list){
|
String id=ConvertUtil.obj2StrBlank(map.get("id"));
|
String entity_id=ConvertUtil.obj2StrBlank(map.get("entity_id"));
|
if(StringUtil.isNotBlank(entity_id)){
|
String ci_id=request.getParameter(id+"_ciid");
|
if(StringUtil.isNotBlank(ci_id)){
|
String entity="update SPARE_PART_APPLY_ENTITY set CI_ID=:ci_id ,STATE='2',GMT_USAGE=:gmt_usage where id=:id";
|
paramMap.put("ci_id", ci_id);
|
paramMap.put("id", id);
|
paramMap.put("gmt_usage", DateUtil.getCurrentDate14());
|
baseDao.execute(entity, paramMap);
|
|
|
}
|
}
|
|
}
|
}
|
|
SPARE_PART_APPLY spare_part_apply=new SPARE_PART_APPLY(orderId).getInstanceById();
|
spare_part_apply.setState(Constants.SPARE_PART_APPLY_STATE_T);
|
spare_part_apply.update();
|
}
|
return "";
|
}
|
|
/**
|
* 校验提交前信息
|
* @param request
|
* @return
|
*/
|
@Override
|
public String initDelivery(HttpServletRequest request) {
|
String orderId = request.getParameter("orderId");
|
if(StringUtil.isNotBlank(orderId)){
|
String sqlString="select * from SPARE_PART_APPLY_ENTITY where ORDER_ID=:orderId and ci_id is null";
|
Map paramMap = new HashMap();
|
paramMap.put("orderId",orderId);
|
List<Map> list= baseDao.queryForList(sqlString,paramMap);
|
if(list!=null && list.size()>0){
|
for(Map map:list){
|
String id=ConvertUtil.obj2StrBlank(map.get("id"));
|
String ci_id=request.getParameter(id+"_ciid");
|
if(StringUtil.isBlank(ci_id)){
|
return "0";
|
}
|
|
}
|
}
|
}
|
|
return "1";
|
}
|
|
/**
|
* 校验列表提交前信息
|
* @param request
|
* @return
|
*/
|
@Override
|
public String initCateNum(HttpServletRequest request) {
|
String orderId = request.getParameter("orderId");
|
if(StringUtil.isNotBlank(orderId)){
|
String sqlString="select count(*) from SPARE_PART_APPLY_CATE where APPLY_ORDER_ID=:orderId and CATE_NUM is null";
|
Map paramMap = new HashMap();
|
paramMap.put("orderId",orderId);
|
Integer num= baseDao.queryForInteger(sqlString,paramMap);
|
if(num > 0){
|
return "0";
|
}
|
}
|
return "1";
|
}
|
}
|