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.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_WORKFLOW_RELEASE;
|
import cn.ksource.beans.SPARE_PART;
|
import cn.ksource.beans.SPARE_PART_APPLY;
|
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("SpareAuditingFacade")
|
public class SpareAuditingFacadeImpl implements SpareAuditingFacade {
|
|
@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 where STATE=1 ");
|
}
|
/**
|
* 入库申请列表信息
|
* @param pageInfo
|
* @param params
|
* @return
|
*/
|
@Override
|
public PageInfo getStockListData(Map<String, String> params,PageInfo pageInfo) {
|
StringBuilder sql = new StringBuilder();
|
Map paramMap = new HashMap();
|
sql.append("SELECT DISTINCT\n" +
|
" SPARE_PART_APPLY.*\n" +
|
"FROM\n" +
|
" SPARE_PART_APPLY\n" +
|
"LEFT JOIN WORKFLOW_NODE ON WORKFLOW_NODE.FLOWID = SPARE_PART_APPLY.FLOW_ID\n" +
|
"WHERE\n" +
|
" (\n" +
|
" WORKFLOW_NODE.FLOWSTATE = '1'\n" +
|
" OR SPARE_PART_APPLY.state >=3\n" +
|
" )\n" +
|
"AND SPARE_PART_APPLY.state >=2\n" +
|
"AND WORKFLOW_NODE.CURRENT_DEALER_ID = :userId");
|
String order_code=params.get("order_code");
|
String order_name=params.get("order_name");
|
String state=params.get("state");
|
String start_time=params.get("start_time");
|
String end_time=params.get("end_time");
|
String userId=params.get("userId");
|
paramMap.put("userId", userId);
|
String customer_id=params.get("customer_id");
|
//项目
|
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 state asc, gmt_create desc ");
|
return baseDao.queryforSplitPageInfo(pageInfo,sql.toString(), paramMap);
|
}
|
/**
|
* 入库申请列表数量信息
|
* @param pageInfo
|
* @param params
|
* @return
|
*/
|
@Override
|
public int getStockListCount(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
Map paramMap = new HashMap();
|
sql.append("SELECT \n" +
|
" COUNT(DISTINCT SPARE_PART_APPLY.ID)\n" +
|
"FROM\n" +
|
" SPARE_PART_APPLY\n" +
|
"LEFT JOIN WORKFLOW_NODE ON WORKFLOW_NODE.FLOWID = SPARE_PART_APPLY.FLOW_ID\n" +
|
"WHERE\n" +
|
" (\n" +
|
" WORKFLOW_NODE.FLOWSTATE = '1'\n" +
|
" OR SPARE_PART_APPLY.state IN ('3', '4','6')\n" +
|
" )\n" +
|
"AND SPARE_PART_APPLY.state IN ('2', '3', '4','6')\n" +
|
"AND WORKFLOW_NODE.CURRENT_DEALER_ID =:userId");
|
String order_code=params.get("order_code");
|
String order_name=params.get("order_name");
|
String state=params.get("state");
|
String start_time=params.get("start_time");
|
String end_time=params.get("end_time");
|
String userId=params.get("userId");
|
paramMap.put("userId", userId);
|
String customer_id=params.get("customer_id");
|
//项目
|
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 request
|
* @return
|
*/
|
@Override
|
public String doApproveAssign(HttpServletRequest request) {
|
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userid=user.get("ID").toString();
|
String usernameString=user.get("ZSXM").toString();
|
String orderId = request.getParameter("orderId");
|
String bz= request.getParameter("note");
|
String note_key= request.getParameter("note_key");
|
String note_val= request.getParameter("note_val");
|
String jg= request.getParameter("isNext");
|
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 FlowId=queryForList.get(0).get("flowid").toString();
|
String NodeId=queryForList.get(0).get("nodeid").toString();
|
String UserName=queryForList.get(0).get("username").toString();
|
String Userid=queryForList.get(0).get("userid").toString();
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
support.setOrderId(orderId);
|
support.setNodeId(NodeId);
|
support.setUserName(UserName);
|
support.setUserId(Userid);
|
support.setFlowId(FlowId);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_STOCK);
|
support.setNote(bz);
|
SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
|
|
WORKFLOW_BASE base = new WORKFLOW_BASE(support.getFlowId()).getInstanceById();
|
WORKFLOW_NODE node = new WORKFLOW_NODE(support.getNodeId()).getInstanceById();
|
node.setDeal_result(Integer.valueOf(jg));
|
node.setNote_key(note_key);
|
node.setNote_val(note_val);
|
node.setAnswer_time(DateUtil.getCurrentDate14());
|
node.update();
|
|
//更新业务表状态
|
SPARE_PART_APPLY spare_part_apply = new SPARE_PART_APPLY(orderId).getInstanceById();
|
if(jg.equals("1")){
|
spare_part_apply.setState(Constants.SPARE_PART_APPLY_STATE_C);
|
//生成出库单
|
SPARE_PART_DELIVERY spare_part_delivery=new SPARE_PART_DELIVERY();
|
spare_part_delivery.setOrder_name(spare_part_apply.getOrder_name());
|
spare_part_delivery.setDelivery_type_key("1");
|
spare_part_delivery.setDelivery_type_name("备件申领");
|
spare_part_delivery.setDelivery_reason(spare_part_apply.getApply_reason());
|
spare_part_delivery.setApply_order_id(orderId);
|
//工单编号
|
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(usernameString);
|
spare_part_delivery.setGmt_create(DateUtil.getCurrentDate14());
|
spare_part_delivery.insert();
|
|
spare_part_apply.setDelivery_order_id(spare_part_delivery.getId());
|
String apply_cate="update SPARE_PART_APPLY_CATE set DELIVERY_ORDER_ID=:delivery_order_id where APPLY_ORDER_ID=:apply_order_id";
|
paramMap.put("delivery_order_id", spare_part_delivery.getId());
|
paramMap.put("apply_order_id", orderId);
|
baseDao.execute(apply_cate, paramMap);
|
//结束审批,更新流程实例表状态
|
workflowCoreService.finishWorkFlow(base);
|
}else{
|
NodeDealEntity entity = new NodeDealEntity();
|
List<Map> userList = new ArrayList<Map>();
|
Map dealer = new HashMap();
|
dealer.put("USER_ID",base.getCreaterid());
|
dealer.put("USER_NAME",base.getCreatername());
|
dealer.put("IS_ADMIN","1");
|
userList.add(dealer);
|
entity.setDealerList(userList);
|
entity.setDealer_type(2);
|
workflowCoreService.toNode(base,Constants.BJSLSQ, entity);
|
spare_part_apply.setState(Constants.SPARE_PART_APPLY_STATE_B);
|
}
|
spare_part_apply.update();
|
}
|
|
return "";
|
}
|
/**
|
* 审核不同意数据字典
|
* @param params
|
* @return
|
*/
|
@Override
|
public List getNoteKeyList(String sjzdbs){
|
StringBuilder sql = new StringBuilder();
|
sql.append("SELECT\n" +
|
" id,categoryname name\n" +
|
"FROM\n" +
|
" CONFIG_DATA_DICTIONARY_CATEGORY\n" +
|
"WHERE\n" +
|
" parentid IN (\n" +
|
" SELECT\n" +
|
" id\n" +
|
" FROM\n" +
|
" CONFIG_DATA_DICTIONARY_CATEGORY\n" +
|
" WHERE\n" +
|
" categorykey =:bjsl\n" +
|
" ) ");
|
Map paramMap = new HashMap();
|
paramMap.put("bjsl", sjzdbs);
|
return baseDao.queryForList(sql.toString(),paramMap);
|
}
|
}
|