19 package org.turro.erp.task.usage;
21 import java.util.HashMap;
22 import java.util.List;
23 import org.turro.erp.db.ErpPU;
24 import org.turro.erp.entity.HumanResource;
25 import org.turro.erp.entity.OrderItem;
26 import org.turro.erp.entity.RequiredUsage;
27 import org.turro.erp.entity.Resource;
28 import org.turro.erp.task.Workload;
29 import org.turro.erp.task.WorkloadSet;
30 import org.turro.jpa.Dao;
31 import org.turro.zkoss.svg.GanttResource;
32 import org.turro.zkoss.svg.GanttResourceData;
33 import org.turro.zkoss.svg.GanttResourceItem;
34 import org.zkoss.zk.ui.ext.AfterCompose;
42 private String selectItem;
43 private double scale = 1.0;
53 this.selectItem = selectItem;
77 getChildren().clear();
84 private void loadData() {
88 private GanttResourceData fillModel() {
90 List<HumanResource> humanResources = (List<HumanResource>) dao.getResultList(
"select x from HumanResource x");
91 List<Resource> resources = (List<Resource>) dao.getResultList(
"select x from Resource x");
92 HashMap<Long, GanttResourceItem> map =
new HashMap<Long, GanttResourceItem>();
94 if(humanResource.isActive()) {
95 GanttResourceItem gri =
new GanttResourceItem(1,
"" + humanResource.getId(), humanResource.getName());
96 map.put(humanResource.getId() + 1000000000000L, gri);
99 for(Resource resource : resources) {
100 if(resource.isActive()) {
101 GanttResourceItem gri =
new GanttResourceItem(2,
"" + resource.getId(), resource.getName());
102 map.put(resource.getId() + 2000000000000L, gri);
105 WorkloadSet wls =
new WorkloadSet((HumanResource)
null,
true);
106 for(Workload wl : wls) {
107 OrderItem oi = wl.getOrderItem();
108 HumanResource humanResource = oi.getHumanResource();
109 Resource resource = oi.getRelated() !=
null ? oi.getRelated().getResource() :
null;
110 if(humanResource !=
null && humanResource.isActive()) {
111 GanttResourceItem gri = map.get(humanResource.getId() + 1000000000000L);
113 gri.setExpected(Math.max(oi.getExpectedUnits() - oi.getRealUnits(), 0.0d) + gri.getExpected());
116 if(resource !=
null && resource.isActive()) {
117 oi = oi.getRelated();
118 GanttResourceItem gri = map.get(resource.getId() + 2000000000000L);
120 gri.setExpected(Math.max(oi.getExpectedUnits() - oi.getRealUnits(), 0.0d) + gri.getExpected());
124 wls =
new WorkloadSet((HumanResource)
null,
false);
125 for(Workload wl : wls) {
126 RequiredUsage ru = wl.getRequiredUsage();
127 for(HumanResource humanResource : humanResources) {
128 if(humanResource !=
null && humanResource.isActive() && ru.fits(humanResource)) {
129 GanttResourceItem gri = map.get(humanResource.getId() + 1000000000000L);
131 gri.setVariable(Math.max((ru.getUnits() * ru.getDedication()) - getExpectedUnits(ru), 0.0d) + gri.getVariable());
135 Resource resource = ru.getResource();
136 if(resource !=
null && resource.isActive()) {
137 GanttResourceItem gri = map.get(resource.getId() + 2000000000000L);
139 gri.setVariable(Math.max((ru.getUnits()) - getRelatedExpectedUnits(ru), 0.0d) + gri.getVariable());
200 GanttResourceData grd =
new GanttResourceData();
201 for(GanttResourceItem gri : map.values()) {
208 private double getExpectedUnits(RequiredUsage ru) {
210 for(OrderItem oi : ru.getOrderItems()) {
211 q += oi.getUnits() * oi.getDedication();
216 private double getRelatedExpectedUnits(RequiredUsage ru) {
218 for(OrderItem oi : ru.getOrderItems()) {
219 if(oi.getRelated() !=
null) {
220 q += oi.getRelated().getUnits() * oi.getRelated().getDedication();
void setSelectItem(String selectItem)
void setScale(double scale)
void setData(GanttResourceData data)
void startComposing(String onUserEvent, String width, String height, double scale)
void generateContent(Map args)