📄 techdataservices.java
字号:
/* * $Id: TechDataServices.java 7238 2006-04-08 07:30:54Z jacopo $ * * Copyright (c) 2003, 2004 The Open For Business Project - www.ofbiz.org * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */package org.ofbiz.manufacturing.techdata;import java.sql.Time;import java.sql.Timestamp;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.UtilDateTime;import org.ofbiz.base.util.UtilMisc;import org.ofbiz.entity.GenericDelegator;import org.ofbiz.entity.GenericEntityException;import org.ofbiz.entity.GenericValue;import org.ofbiz.entity.condition.EntityExpr;import org.ofbiz.entity.condition.EntityOperator;import org.ofbiz.entity.util.EntityUtil;import org.ofbiz.service.DispatchContext;import org.ofbiz.service.ServiceUtil;/** * TechDataServices - TechData related Services * * @author <a href="mailto:olivier.heintz@nereide.biz">Olivier Heintz</a> */public class TechDataServices { public static final String module = TechDataServices.class.getName(); /** * * Used to retreive some RoutingTasks (WorkEffort) selected by Name or MachineGroup ordered by Name * * @param ctx * @param context: a map containing workEffortName (routingTaskName) and fixedAssetId (MachineGroup or ANY) * @return result: a map containing lookupResult (list of RoutingTask <=> workEffortId with currentStatusId = "ROU_ACTIVE" and workEffortTypeId = "ROU_TASK" */ public static Map lookupRoutingTask(DispatchContext ctx, Map context) { GenericDelegator delegator = ctx.getDelegator(); GenericValue userLogin = (GenericValue) context.get("userLogin"); /* Security security = ctx.getSecurity(); a completer par la suite */ Map result = new HashMap(); String workEffortName = (String) context.get("workEffortName"); String fixedAssetId = (String) context.get("fixedAssetId"); List listRoutingTask = null; List constraints = new LinkedList(); if (workEffortName != null && workEffortName.length()>0) constraints.add(new EntityExpr("workEffortName", EntityOperator.GREATER_THAN_EQUAL_TO, workEffortName)); if (fixedAssetId != null && fixedAssetId.length()>0 && ! "ANY".equals(fixedAssetId)) constraints.add(new EntityExpr("fixedAssetId", EntityOperator.EQUALS, fixedAssetId)); constraints.add(new EntityExpr("currentStatusId", EntityOperator.EQUALS, "ROU_ACTIVE")); constraints.add(new EntityExpr("workEffortTypeId", EntityOperator.EQUALS, "ROU_TASK")); try { listRoutingTask = delegator.findByAnd("WorkEffort", constraints, UtilMisc.toList("workEffortName")); } catch (GenericEntityException e) { Debug.logWarning(e, module); return ServiceUtil.returnError("Error finding desired WorkEffort records: " + e.toString()); } if (listRoutingTask == null) listRoutingTask = new LinkedList(); if (listRoutingTask.size() == 0) listRoutingTask.add(UtilMisc.toMap("label","no Match","value","NO_MATCH")); result.put("lookupResult", listRoutingTask); return result; } /** * * Used to check if there is not two routing task with the same SeqId valid at the same period * * @param ctx The DispatchContext that this service is operating in. * @param context a map containing workEffortIdFrom (routing) and SeqId, fromDate thruDate * @return result a map containing sequenceNumNotOk which is equal to "Y" if it's not Ok */ public static Map checkRoutingTaskAssoc(DispatchContext ctx, Map context) { GenericDelegator delegator = ctx.getDelegator(); Map result = new HashMap(); String sequenceNumNotOk = "N"; String workEffortIdFrom = (String) context.get("workEffortIdFrom"); String workEffortIdTo = (String) context.get("workEffortIdTo"); String workEffortAssocTypeId = (String) context.get("workEffortAssocTypeId"); Long sequenceNum = (Long) context.get("sequenceNum"); Timestamp fromDate = (Timestamp) context.get("fromDate"); Timestamp thruDate = (Timestamp) context.get("thruDate"); String create = (String) context.get("create"); boolean createProcess = (create !=null && create.equals("Y")) ? true : false; List listRoutingTaskAssoc = null; try { listRoutingTaskAssoc = delegator.findByAnd("WorkEffortAssoc",UtilMisc.toMap("workEffortIdFrom", workEffortIdFrom,"sequenceNum",sequenceNum), UtilMisc.toList("fromDate")); } catch (GenericEntityException e) { Debug.logWarning(e, module); return ServiceUtil.returnError("Error finding desired WorkEffortAssoc records: " + e.toString()); } if (listRoutingTaskAssoc != null) { Iterator i = listRoutingTaskAssoc.iterator(); while (i.hasNext()) { GenericValue routingTaskAssoc = (GenericValue) i.next(); if ( ! workEffortIdFrom.equals(routingTaskAssoc.getString("workEffortIdFrom")) || ! workEffortIdTo.equals(routingTaskAssoc.getString("workEffortIdTo")) || ! workEffortAssocTypeId.equals(routingTaskAssoc.getString("workEffortAssocTypeId")) || ! sequenceNum.equals(routingTaskAssoc.getLong("sequenceNum")) ) { if (routingTaskAssoc.getTimestamp("thruDate") == null && routingTaskAssoc.getTimestamp("fromDate") == null) sequenceNumNotOk = "Y"; else if (routingTaskAssoc.getTimestamp("thruDate") == null) { if (thruDate == null) sequenceNumNotOk = "Y"; else if (thruDate.after(routingTaskAssoc.getTimestamp("fromDate"))) sequenceNumNotOk = "Y"; } else if (routingTaskAssoc.getTimestamp("fromDate") == null) { if (fromDate == null) sequenceNumNotOk = "Y"; else if (fromDate.before(routingTaskAssoc.getTimestamp("thruDate"))) sequenceNumNotOk = "Y"; } else if ( fromDate == null && thruDate == null) sequenceNumNotOk = "Y"; else if (thruDate == null) { if (fromDate.before(routingTaskAssoc.getTimestamp("thruDate"))) sequenceNumNotOk = "Y"; } else if (fromDate == null) { if (thruDate.after(routingTaskAssoc.getTimestamp("fromDate"))) sequenceNumNotOk = "Y"; } else if ( routingTaskAssoc.getTimestamp("fromDate").before(thruDate) && fromDate.before(routingTaskAssoc.getTimestamp("thruDate")) ) sequenceNumNotOk = "Y"; } else if (createProcess) sequenceNumNotOk = "Y"; } } result.put("sequenceNumNotOk", sequenceNumNotOk); return result; } /** * Used to check if the routingtaskAssoc is valid for the testDate * * @param routingTaskAssoc the routingTaskAssoc to test * @param testDate a date * @return true if the routingTAskAssoc is valid */ public static boolean routingTaskAssocIsValid(GenericValue routingTaskAssoc, Timestamp testDate) { if (routingTaskAssoc.getTimestamp("fromDate") != null) if (routingTaskAssoc.getTimestamp("thruDate") != null) if (testDate.after(routingTaskAssoc.getTimestamp("fromDate")) && testDate.before(routingTaskAssoc.getTimestamp("thruDate"))) return true; else return false; else if (testDate.after(routingTaskAssoc.getTimestamp("fromDate"))) return true; else return false; else if (routingTaskAssoc.getTimestamp("thruDate") != null) if (testDate.before(routingTaskAssoc.getTimestamp("thruDate"))) return true; else return false; else return true; } /** * Used to check if the productBom is valid for the testDate, currently only tested on date but in futur, maybe there will be the option {valid until stock=0>} * * @param productBom the productBom to test * @param testDate a date * @return true if the productBom is valid */ public static boolean productBomIsValid(GenericValue productBom, Timestamp testDate) { if (productBom.getTimestamp("fromDate") != null)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -