Commit 58ea9a80846f11ae0362f9b383f7596b9ac0d37e

Authored by 潘钊
2 parents 6f6fd088 4935c902

Merge branch 'minhang' into pudong

Showing 33 changed files with 1170 additions and 1880 deletions

Too many changes to show.

To preserve performance only 33 of 55 files are displayed.

src/main/java/com/bsth/controller/oil/CwjyController.java
@@ -2,6 +2,8 @@ package com.bsth.controller.oil; @@ -2,6 +2,8 @@ package com.bsth.controller.oil;
2 2
3 3
4 import java.util.Date; 4 import java.util.Date;
  5 +import java.util.HashMap;
  6 +import java.util.List;
5 import java.util.Map; 7 import java.util.Map;
6 8
7 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,9 +33,9 @@ public class CwjyController extends BaseController<Cwjy, Integer>{ @@ -31,9 +33,9 @@ public class CwjyController extends BaseController<Cwjy, Integer>{
31 return service.save(t); 33 return service.save(t);
32 } 34 }
33 35
34 - @RequestMapping(value = "/pagequery",method = RequestMethod.GET)  
35 - public PageObject<Ylxxb> pagequery(@RequestParam Map<String, Object> map){  
36 - PageObject<Ylxxb> pagequery=null; 36 + @RequestMapping(value = "/queryList",method = RequestMethod.GET)
  37 + public List<Ylxxb> queryList(@RequestParam Map<String, Object> map){
  38 + List<Ylxxb> pagequery=null;
37 map.put("curPage", map.get("page").toString()); 39 map.put("curPage", map.get("page").toString());
38 map.put("pageData","10"); 40 map.put("pageData","10");
39 pagequery=service.Pagequery(map); 41 pagequery=service.Pagequery(map);
@@ -56,9 +58,15 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{ @@ -56,9 +58,15 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
56 * @throws 58 * @throws
57 */ 59 */
58 @RequestMapping(value="/savejzl",method = RequestMethod.POST) 60 @RequestMapping(value="/savejzl",method = RequestMethod.POST)
59 - public Map<String, Object> savejzl(Ylxxb t){  
60 - Map<String, Object> map=service.savejzl(t);  
61 - return map; 61 + public Map<String, Object> savejzl(Map<String, Object> map){
  62 + Map<String, Object> maps=new HashMap<>();
  63 + try {
  64 + maps = service.savejzl(map);
  65 + } catch (Exception e) {
  66 + // TODO Auto-generated catch block
  67 + e.printStackTrace();
  68 + }
  69 + return maps;
62 } 70 }
63 71
64 } 72 }
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -16,6 +16,7 @@ import org.springframework.data.domain.Page; @@ -16,6 +16,7 @@ import org.springframework.data.domain.Page;
16 import org.springframework.data.domain.PageRequest; 16 import org.springframework.data.domain.PageRequest;
17 import org.springframework.data.domain.Sort; 17 import org.springframework.data.domain.Sort;
18 import org.springframework.data.domain.Sort.Direction; 18 import org.springframework.data.domain.Sort.Direction;
  19 +import org.springframework.web.bind.annotation.PathVariable;
19 import org.springframework.web.bind.annotation.RequestMapping; 20 import org.springframework.web.bind.annotation.RequestMapping;
20 import org.springframework.web.bind.annotation.RequestMethod; 21 import org.springframework.web.bind.annotation.RequestMethod;
21 import org.springframework.web.bind.annotation.RequestParam; 22 import org.springframework.web.bind.annotation.RequestParam;
@@ -196,6 +197,17 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -196,6 +197,17 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
196 return ylbList; 197 return ylbList;
197 } 198 }
198 199
  200 + @RequestMapping(value = "/deleteIds", method = RequestMethod.POST)
  201 + public Map<String, Object> deleteIds(@RequestParam Map<String, Object> map) {
  202 + Map<String, Object> maps=new HashMap<String, Object>();
  203 + try {
  204 + maps= yblService.deleteIds(map);
  205 + } catch (Exception e) {
  206 + // TODO Auto-generated catch block
  207 + e.printStackTrace();
  208 + }
  209 + return maps;
  210 + }
199 @RequestMapping(value="/oilListMonth") 211 @RequestMapping(value="/oilListMonth")
200 public List<Ylb> oilListMonth(@RequestParam String line,@RequestParam String date){ 212 public List<Ylb> oilListMonth(@RequestParam String line,@RequestParam String date){
201 return yblService.oilListMonth(line, date); 213 return yblService.oilListMonth(line, date);
@@ -219,17 +231,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -219,17 +231,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
219 sdfSimple = new SimpleDateFormat("yyyyMMdd"); 231 sdfSimple = new SimpleDateFormat("yyyyMMdd");
220 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 232 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
221 ReportUtils ee = new ReportUtils(); 233 ReportUtils ee = new ReportUtils();
222 - String rq=map.get("rq").toString();  
223 - if(!(rq=="")){  
224 - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
225 - try {  
226 - map.put("rq_eq", sdfMonth.parse(rq));  
227 - } catch (ParseException e) {  
228 - // TODO Auto-generated catch block  
229 - e.printStackTrace();  
230 - }  
231 - }  
232 - List<Ylb> ylb= (List<Ylb>)yblService.list(map); 234 + List<Ylb> ylb= yblService.listYlb(map);
233 // (new CustomerSpecs<Ylb>(map)).iterator(); 235 // (new CustomerSpecs<Ylb>(map)).iterator();
234 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 236 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
235 for (Ylb y : ylb) { 237 for (Ylb y : ylb) {
@@ -245,12 +247,28 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -245,12 +247,28 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
245 m.put("czyl", y.getCzyl()); 247 m.put("czyl", y.getCzyl());
246 m.put("jzyl", y.getJzyl()); 248 m.put("jzyl", y.getJzyl());
247 m.put("yh", y.getYh()); 249 m.put("yh", y.getYh());
248 - m.put("rylx", y.getRylx()); 250 + String rylx="";
  251 + if(y.getRylx()!=null){
  252 + if(y.getRylx().equals("0")){rylx="0号柴油";}
  253 + if(y.getRylx().equals("1")){rylx="负10号柴油";}
  254 + }
  255 + m.put("rylx", rylx);
249 m.put("ns", y.getNs()); 256 m.put("ns", y.getNs());
250 - m.put("shyy", y.getShyy()); 257 + String shyy ="无";
  258 + if(y.getShyy()!=null){
  259 + if(shyy.equals("1")){shyy="票务用油";}
  260 + else if(shyy.equals("2")){shyy="保养用油";}
  261 + else if(shyy.equals("3")){shyy="报废车用油";}
  262 + else if(shyy.equals("4")){shyy="其它用油";}
  263 + else if(shyy.equals("5")){shyy="人保部";}
  264 + else if(shyy.equals("6")){shyy="车队";}
  265 + else if(shyy.equals("7")){shyy="车间(高保)";}
  266 + else if(shyy.equals("8")){shyy="车间(小修)";}
  267 + else{shyy ="无";}
  268 + }
  269 + m.put("shyy", shyy);
251 m.put("sh", y.getSh()); 270 m.put("sh", y.getSh());
252 m.put("zlc", y.getZlc()); 271 m.put("zlc", y.getZlc());
253 - m.put("yhlx", y.getYhlx());  
254 m.put("bglyh", y.getBglyh()); 272 m.put("bglyh", y.getBglyh());
255 resList.add(m); 273 resList.add(m);
256 } 274 }
@@ -258,7 +276,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -258,7 +276,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
258 listI.add(resList.iterator()); 276 listI.add(resList.iterator());
259 String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; 277 String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
260 ee.excelReplace(listI, new Object[] { map }, path+"mould/list.xls", 278 ee.excelReplace(listI, new Object[] { map }, path+"mould/list.xls",
261 - path+"export/进出场存油量" + sdfSimple.format(sdfMonth.parse(map.get("rq").toString())) + ".xls"); 279 + path+"export/"+map.get("rq").toString()+ "进出场存油量.xls");
262 } catch (Exception e) { 280 } catch (Exception e) {
263 e.printStackTrace(); 281 e.printStackTrace();
264 } 282 }
src/main/java/com/bsth/controller/oil/YlxxbController.java
1 package com.bsth.controller.oil; 1 package com.bsth.controller.oil;
2 2
  3 +import java.util.HashMap;
3 import java.util.Map; 4 import java.util.Map;
4 5
5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,9 +34,15 @@ public class YlxxbController extends BaseController&lt;Ylxxb, Integer&gt;{ @@ -33,9 +34,15 @@ public class YlxxbController extends BaseController&lt;Ylxxb, Integer&gt;{
33 * @param map 34 * @param map
34 * @return 35 * @return
35 */ 36 */
36 - @RequestMapping(value = "/check",method = RequestMethod.GET) 37 + @RequestMapping(value = "/check",method = RequestMethod.POST)
37 public Map<String, Object> check(@RequestParam Map<String, Object> map){ 38 public Map<String, Object> check(@RequestParam Map<String, Object> map){
38 - Map<String, Object> list=service.checkJsy(map); 39 + Map<String, Object> list=new HashMap<>();
  40 + try {
  41 + list = service.checkJsy(map);
  42 + } catch (Exception e) {
  43 + // TODO Auto-generated catch block
  44 + e.printStackTrace();
  45 + }
39 return list; 46 return list;
40 } 47 }
41 } 48 }
src/main/java/com/bsth/controller/report/ReportController.java
@@ -108,4 +108,9 @@ public class ReportController { @@ -108,4 +108,9 @@ public class ReportController {
108 return service.carList(map); 108 return service.carList(map);
109 } 109 }
110 110
  111 + @RequestMapping(value="/userList",method = RequestMethod.GET)
  112 + public List<Map<String,String>> userList(@RequestParam Map<String, Object> map){
  113 + return service.userList(map);
  114 + }
  115 +
111 } 116 }
src/main/java/com/bsth/data/gpsdata/arrival/handlers/CorrectSignalHandle.java
@@ -6,6 +6,9 @@ import com.bsth.data.gpsdata.arrival.utils.CircleQueue; @@ -6,6 +6,9 @@ import com.bsth.data.gpsdata.arrival.utils.CircleQueue;
6 import com.bsth.data.schedule.DayOfSchedule; 6 import com.bsth.data.schedule.DayOfSchedule;
7 import com.bsth.entity.realcontrol.ChildTaskPlan; 7 import com.bsth.entity.realcontrol.ChildTaskPlan;
8 import com.bsth.entity.realcontrol.ScheduleRealInfo; 8 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  9 +import com.bsth.service.directive.DirectiveService;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
9 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.stereotype.Component; 13 import org.springframework.stereotype.Component;
11 14
@@ -18,6 +21,10 @@ public class CorrectSignalHandle extends SignalHandle { @@ -18,6 +21,10 @@ public class CorrectSignalHandle extends SignalHandle {
18 21
19 @Autowired 22 @Autowired
20 DayOfSchedule dayOfSchedule; 23 DayOfSchedule dayOfSchedule;
  24 + @Autowired
  25 + DirectiveService directiveService;
  26 +
  27 + Logger logger = LoggerFactory.getLogger(this.getClass());
21 28
22 @Override 29 @Override
23 public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) { 30 public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) {
@@ -41,6 +48,11 @@ public class CorrectSignalHandle extends SignalHandle { @@ -41,6 +48,11 @@ public class CorrectSignalHandle extends SignalHandle {
41 gps.setState(0); 48 gps.setState(0);
42 } 49 }
43 50
  51 + if(gps.getState() != 0){
  52 + logger.info(gps.getNbbm() + " 纠正状态到营运");
  53 + //切换到营运状态
  54 + directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "纠正@系统");
  55 + }
44 56
45 return true; 57 return true;
46 } 58 }
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
@@ -235,6 +235,10 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -235,6 +235,10 @@ public class InOutStationSignalHandle extends SignalHandle{
235 235
236 //下发调度指令 236 //下发调度指令
237 directiveService.send60Dispatch(next, doneSum, "到站@系统"); 237 directiveService.send60Dispatch(next, doneSum, "到站@系统");
  238 +
  239 + //套跑 -下发线路切换指令
  240 + if(!next.getXlBm().equals(sch.getXlBm()))
  241 + directiveService.lineChange(next.getClZbh(), next.getXlBm(), "套跑@系统");
238 } 242 }
239 else if(sch.getBcType().equals("in")){ 243 else if(sch.getBcType().equals("in")){
240 //终班进场,切换成非营运状态 244 //终班进场,切换成非营运状态
src/main/java/com/bsth/entity/Cars.java
@@ -2,6 +2,7 @@ package com.bsth.entity; @@ -2,6 +2,7 @@ package com.bsth.entity;
2 2
3 import com.bsth.entity.schedule.BEntity; 3 import com.bsth.entity.schedule.BEntity;
4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5 +import org.hibernate.annotations.Formula;
5 6
6 import javax.persistence.*; 7 import javax.persistence.*;
7 import java.io.Serializable; 8 import java.io.Serializable;
@@ -47,6 +48,10 @@ public class Cars extends BEntity implements Serializable { @@ -47,6 +48,10 @@ public class Cars extends BEntity implements Serializable {
47 /** 分公司 */ 48 /** 分公司 */
48 private String brancheCompany; 49 private String brancheCompany;
49 50
  51 + /** 组合公司分公司编码 */
  52 + @Formula(" concat(business_code, '_', branche_company_code) ")
  53 + private String cgsbm;
  54 +
50 /** 车辆编码(TODO:在原系统里没有,这里暂时留着) */ 55 /** 车辆编码(TODO:在原系统里没有,这里暂时留着) */
51 @Column(nullable = false) 56 @Column(nullable = false)
52 private String carCode; 57 private String carCode;
@@ -499,4 +504,12 @@ public class Cars extends BEntity implements Serializable { @@ -499,4 +504,12 @@ public class Cars extends BEntity implements Serializable {
499 public void setXlmc(String xlmc) { 504 public void setXlmc(String xlmc) {
500 this.xlmc = xlmc; 505 this.xlmc = xlmc;
501 } 506 }
  507 +
  508 + public String getCgsbm() {
  509 + return cgsbm;
  510 + }
  511 +
  512 + public void setCgsbm(String cgsbm) {
  513 + this.cgsbm = cgsbm;
  514 + }
502 } 515 }
src/main/java/com/bsth/entity/Personnel.java
@@ -2,6 +2,7 @@ package com.bsth.entity; @@ -2,6 +2,7 @@ package com.bsth.entity;
2 2
3 import com.bsth.entity.schedule.BEntity; 3 import com.bsth.entity.schedule.BEntity;
4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5 +import org.hibernate.annotations.Formula;
5 6
6 import javax.persistence.*; 7 import javax.persistence.*;
7 8
@@ -39,6 +40,10 @@ public class Personnel extends BEntity { @@ -39,6 +40,10 @@ public class Personnel extends BEntity {
39 private String brancheCompany; 40 private String brancheCompany;
40 /** 分公司编码 */ 41 /** 分公司编码 */
41 private String brancheCompanyCode; 42 private String brancheCompanyCode;
  43 + /** 组合公司分公司编码 */
  44 + @Formula(" concat(company_code, '_', branche_company_code) ")
  45 + private String cgsbm;
  46 +
42 /** 工号 */ 47 /** 工号 */
43 @Column(nullable = false) 48 @Column(nullable = false)
44 private String jobCode; 49 private String jobCode;
@@ -218,4 +223,12 @@ public class Personnel extends BEntity { @@ -218,4 +223,12 @@ public class Personnel extends BEntity {
218 public void setDescriptions(String descriptions) { 223 public void setDescriptions(String descriptions) {
219 this.descriptions = descriptions; 224 this.descriptions = descriptions;
220 } 225 }
  226 +
  227 + public String getCgsbm() {
  228 + return cgsbm;
  229 + }
  230 +
  231 + public void setCgsbm(String cgsbm) {
  232 + this.cgsbm = cgsbm;
  233 + }
221 } 234 }
src/main/java/com/bsth/entity/schedule/temp/SchedulePlanRuleResult.java 0 → 100644
  1 +package com.bsth.entity.schedule.temp;
  2 +
  3 +import com.bsth.entity.schedule.SchedulePlan;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.Table;
  9 +import java.util.Date;
  10 +
  11 +/**
  12 + * 排班的中间结果数据,记录每次排班后规则的变化。
  13 + */
  14 +@Entity
  15 +@Table(name = "bsth_c_s_sp_rule_rst")
  16 +public class SchedulePlanRuleResult {
  17 + /** 主键Id */
  18 + @Id
  19 + @GeneratedValue
  20 + private Long id;
  21 +
  22 + /** 线路id */
  23 + private String xlId;
  24 + /** 线路名字 */
  25 + private String xlName;
  26 +
  27 + /** 排班规则id */
  28 + private String ruleId;
  29 + /** 车辆配置id */
  30 + private String ccId;
  31 + /** 车辆自编号 */
  32 + private String ccZbh;
  33 +
  34 + /** 路牌id列表字符串 */
  35 + private String gids;
  36 + /** 路牌名字列表字符串 */
  37 + private String gnames;
  38 + /** 翻到哪个路牌索引 */
  39 + private String gidindex;
  40 + /** 人员配置id列表字符串 */
  41 + private String ecids;
  42 + /** 人员配置搭班编码列表字符串 */
  43 + private String ecdbbms;
  44 + /** 翻到哪个人员配置索引 */
  45 + private String ecindex;
  46 +
  47 + /** 时刻表id */
  48 + private String ttinfoId;
  49 + /** 时刻表名字 */
  50 + private String ttinfoName;
  51 +
  52 + /** 排班日期 */
  53 + private Date scheduleDate;
  54 +
  55 + /** 操作人员id */
  56 + private String sysuserId;
  57 + /** 操作人员姓名 */
  58 + private String sysuserName;
  59 + /** 操作时间 */
  60 + private Date createDate;
  61 +
  62 + public SchedulePlanRuleResult() {
  63 +
  64 + }
  65 + public SchedulePlanRuleResult(SchedulePlan schedulePlan) {
  66 + this.sysuserId = schedulePlan.getCreateBy().getId().toString();
  67 + this.sysuserName = schedulePlan.getCreateBy().getName();
  68 +// this.createDate = schedulePlan.getCreateDate();
  69 + this.createDate = new Date();
  70 + }
  71 +
  72 + public Long getId() {
  73 + return id;
  74 + }
  75 +
  76 + public void setId(Long id) {
  77 + this.id = id;
  78 + }
  79 +
  80 + public String getRuleId() {
  81 + return ruleId;
  82 + }
  83 +
  84 + public void setRuleId(String ruleId) {
  85 + this.ruleId = ruleId;
  86 + }
  87 +
  88 + public String getCcId() {
  89 + return ccId;
  90 + }
  91 +
  92 + public void setCcId(String ccId) {
  93 + this.ccId = ccId;
  94 + }
  95 +
  96 + public String getCcZbh() {
  97 + return ccZbh;
  98 + }
  99 +
  100 + public void setCcZbh(String ccZbh) {
  101 + this.ccZbh = ccZbh;
  102 + }
  103 +
  104 + public String getGids() {
  105 + return gids;
  106 + }
  107 +
  108 + public void setGids(String gids) {
  109 + this.gids = gids;
  110 + }
  111 +
  112 + public String getGnames() {
  113 + return gnames;
  114 + }
  115 +
  116 + public void setGnames(String gnames) {
  117 + this.gnames = gnames;
  118 + }
  119 +
  120 + public String getGidindex() {
  121 + return gidindex;
  122 + }
  123 +
  124 + public void setGidindex(String gidindex) {
  125 + this.gidindex = gidindex;
  126 + }
  127 +
  128 + public String getEcids() {
  129 + return ecids;
  130 + }
  131 +
  132 + public void setEcids(String ecids) {
  133 + this.ecids = ecids;
  134 + }
  135 +
  136 + public String getEcdbbms() {
  137 + return ecdbbms;
  138 + }
  139 +
  140 + public void setEcdbbms(String ecdbbms) {
  141 + this.ecdbbms = ecdbbms;
  142 + }
  143 +
  144 + public String getEcindex() {
  145 + return ecindex;
  146 + }
  147 +
  148 + public void setEcindex(String ecindex) {
  149 + this.ecindex = ecindex;
  150 + }
  151 +
  152 + public Date getScheduleDate() {
  153 + return scheduleDate;
  154 + }
  155 +
  156 + public void setScheduleDate(Date scheduleDate) {
  157 + this.scheduleDate = scheduleDate;
  158 + }
  159 +
  160 + public String getSysuserId() {
  161 + return sysuserId;
  162 + }
  163 +
  164 + public void setSysuserId(String sysuserId) {
  165 + this.sysuserId = sysuserId;
  166 + }
  167 +
  168 + public String getSysuserName() {
  169 + return sysuserName;
  170 + }
  171 +
  172 + public void setSysuserName(String sysuserName) {
  173 + this.sysuserName = sysuserName;
  174 + }
  175 +
  176 + public Date getCreateDate() {
  177 + return createDate;
  178 + }
  179 +
  180 + public void setCreateDate(Date createDate) {
  181 + this.createDate = createDate;
  182 + }
  183 +
  184 + public String getXlId() {
  185 + return xlId;
  186 + }
  187 +
  188 + public void setXlId(String xlId) {
  189 + this.xlId = xlId;
  190 + }
  191 +
  192 + public String getXlName() {
  193 + return xlName;
  194 + }
  195 +
  196 + public void setXlName(String xlName) {
  197 + this.xlName = xlName;
  198 + }
  199 +
  200 + public String getTtinfoId() {
  201 + return ttinfoId;
  202 + }
  203 +
  204 + public void setTtinfoId(String ttinfoId) {
  205 + this.ttinfoId = ttinfoId;
  206 + }
  207 +
  208 + public String getTtinfoName() {
  209 + return ttinfoName;
  210 + }
  211 +
  212 + public void setTtinfoName(String ttinfoName) {
  213 + this.ttinfoName = ttinfoName;
  214 + }
  215 +}
src/main/java/com/bsth/repository/oil/YlbRepository.java
@@ -76,6 +76,23 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{ @@ -76,6 +76,23 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
76 List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm); 76 List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
77 77
78 78
  79 + /**
  80 + *
  81 + * @param nbbm
  82 + * @param rq
  83 + * @param xlbm
  84 + * @return
  85 + */
  86 + @Transactional
  87 + @Modifying
  88 + @Query(value="select nbbm,sum(jzl*100) as jzl ,sum(zlc*100) as zlc from bsth_c_ylb where to_days(?1)=to_days(rq) and "
  89 + + " ssgsdm like %?2% "
  90 + + " and fgsdm like %?3%"
  91 + + " and xlbm like %?4% and nbbm like %?5% "
  92 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  93 + List<Object[]> checkNbmmYl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
  94 +
  95 +
79 @Query(value="select jzl,yh,sh from Ylb s " 96 @Query(value="select jzl,yh,sh from Ylb s "
80 + " where to_days(?1)=to_days(s.rq) " 97 + " where to_days(?1)=to_days(s.rq) "
81 + " and s.ssgsdm like %?2% " 98 + " and s.ssgsdm like %?2% "
src/main/java/com/bsth/repository/schedule/SchedulePlanRuleResultRepository.java 0 → 100644
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.data.jpa.repository.Modifying;
  6 +import org.springframework.data.jpa.repository.Query;
  7 +import org.springframework.stereotype.Repository;
  8 +
  9 +import java.util.Date;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * Created by xu on 17/3/29.
  14 + */
  15 +@Repository
  16 +public interface SchedulePlanRuleResultRepository extends BaseRepository<SchedulePlanRuleResult, Long> {
  17 +
  18 + @Query("select t from SchedulePlanRuleResult t " +
  19 + "where not exists (select 1 from SchedulePlanRuleResult " +
  20 + "where createDate > t.createDate and scheduleDate < ?2 ) " +
  21 + "and t.xlId = ?1 and t.scheduleDate < ?2")
  22 + List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from);
  23 +
  24 +// @Modifying
  25 +// @Query("delete from SchedulePlanRuleResult t " +
  26 +// "where t.xlId = ?1 and t.scheduleDate >= ?2 and t.scheduleDate <= ?3")
  27 +// void deleteByXlAndDate(String xlid, Date from, Date to);
  28 +}
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -731,22 +731,33 @@ public class FormsServiceImpl implements FormsService { @@ -731,22 +731,33 @@ public class FormsServiceImpl implements FormsService {
731 731
732 @Override 732 @Override
733 public List<Daily> daily(Map<String, Object> map) { 733 public List<Daily> daily(Map<String, Object> map) {
  734 +
  735 + String gsbm="";
  736 + if(map.get("gsdmDaily")!=null){
  737 + gsbm=map.get("gsdmDaily").toString();
  738 + }
  739 +
  740 + String fgsbm="";
  741 + if(map.get("fgsdmDaily").toString()!=null){
  742 + fgsbm=map.get("fgsdmDaily").toString();
  743 + }
  744 +
734 String sql="select t.schedule_date_str," 745 String sql="select t.schedule_date_str,"
735 + " t.cl_zbh,t.j_gh,t.j_name,x.yh from (select r.schedule_date_str,r.xl_bm,r.xl_name," 746 + " t.cl_zbh,t.j_gh,t.j_name,x.yh from (select r.schedule_date_str,r.xl_bm,r.xl_name,"
736 + " r.cl_zbh,r.j_gh,r.j_name from bsth_c_s_sp_info_real r WHERE " 747 + " r.cl_zbh,r.j_gh,r.j_name from bsth_c_s_sp_info_real r WHERE "
737 - + " r.xl_bm='" + map.get("line").toString() + "' and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "  
738 - + " and r.gs_bm like '%"+map.get("gsdmDaily").toString()+"%' "  
739 - + " and r.fgs_bm like '%"+map.get("fgsdmDaily").toString()+"%' " 748 + + " r.xl_bm='" + map.get("line").toString() + "' "
  749 + + " and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "
  750 + + " and r.gs_bm like '%"+gsbm+"%' "
  751 + + " and r.fgs_bm like '%"+fgsbm+"%' "
740 + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name) t" 752 + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name) t"
741 + " left join (select * from bsth_c_ylb y where " 753 + " left join (select * from bsth_c_ylb y where "
742 + " to_days(y.rq)=to_days('"+map.get("date").toString()+"') " 754 + " to_days(y.rq)=to_days('"+map.get("date").toString()+"') "
743 + " and y.xlbm= '" + map.get("line").toString() + "'" 755 + " and y.xlbm= '" + map.get("line").toString() + "'"
744 - + " and y.ssgsdm like '%"+map.get("gsdmDaily").toString()+"%' "  
745 - + " and y.fgsdm like '%"+map.get("fgsdmDaily").toString()+"%'" 756 + + " and y.ssgsdm like '%"+gsbm+"%' "
  757 + + " and y.fgsdm like '%"+fgsbm+"%'"
746 + " ) x" 758 + " ) x"
747 + " on t.cl_zbh = x.nbbm "; 759 + " on t.cl_zbh = x.nbbm ";
748 760
749 - System.out.println(new Date());  
750 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() { 761 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() {
751 @Override 762 @Override
752 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException { 763 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException {
src/main/java/com/bsth/service/oil/CwjyService.java
1 package com.bsth.service.oil; 1 package com.bsth.service.oil;
2 2
3 3
  4 +import java.util.List;
4 import java.util.Map; 5 import java.util.Map;
5 6
6 import com.bsth.entity.oil.Cwjy; 7 import com.bsth.entity.oil.Cwjy;
@@ -9,8 +10,8 @@ import com.bsth.service.BaseService; @@ -9,8 +10,8 @@ import com.bsth.service.BaseService;
9 import com.bsth.util.PageObject; 10 import com.bsth.util.PageObject;
10 11
11 public interface CwjyService extends BaseService<Cwjy, Integer>{ 12 public interface CwjyService extends BaseService<Cwjy, Integer>{
12 - PageObject<Ylxxb> Pagequery(Map<String, Object> map) ; 13 + List<Ylxxb> Pagequery(Map<String, Object> map) ;
13 Ylxxb bynbbm(Map<String, Object> map); 14 Ylxxb bynbbm(Map<String, Object> map);
14 15
15 - Map<String, Object> savejzl(Ylxxb t); 16 + Map<String, Object> savejzl(Map<String, Object> map) throws Exception ;
16 } 17 }
src/main/java/com/bsth/service/oil/YlbService.java
@@ -23,4 +23,6 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{ @@ -23,4 +23,6 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{
23 List<Ylb> listYlb(Map<String, Object> map); 23 List<Ylb> listYlb(Map<String, Object> map);
24 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx); 24 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx);
25 25
  26 + Map<String, Object> deleteIds(Map<String, Object> map) throws Exception;
  27 +
26 } 28 }
src/main/java/com/bsth/service/oil/YlxxbService.java
@@ -9,6 +9,6 @@ import com.bsth.util.PageObject; @@ -9,6 +9,6 @@ import com.bsth.util.PageObject;
9 public interface YlxxbService extends BaseService<Ylxxb, Integer>{ 9 public interface YlxxbService extends BaseService<Ylxxb, Integer>{
10 PageObject<Ylxxb> Pagequery(Map<String, Object> map) ; 10 PageObject<Ylxxb> Pagequery(Map<String, Object> map) ;
11 11
12 - Map<String, Object> checkJsy(Map<String, Object> map); 12 + Map<String, Object> checkJsy(Map<String, Object> map) throws Exception;
13 13
14 } 14 }
src/main/java/com/bsth/service/oil/impl/CwjyServiceImpl.java
@@ -6,17 +6,26 @@ import java.text.ParseException; @@ -6,17 +6,26 @@ import java.text.ParseException;
6 import java.text.SimpleDateFormat; 6 import java.text.SimpleDateFormat;
7 import java.util.ArrayList; 7 import java.util.ArrayList;
8 import java.util.Arrays; 8 import java.util.Arrays;
  9 +import java.util.Date;
9 import java.util.HashMap; 10 import java.util.HashMap;
10 import java.util.List; 11 import java.util.List;
11 import java.util.Map; 12 import java.util.Map;
12 13
  14 +import javax.transaction.Transactional;
  15 +
  16 +import org.apache.commons.lang3.StringEscapeUtils;
  17 +import org.slf4j.Logger;
  18 +import org.slf4j.LoggerFactory;
13 import org.springframework.beans.factory.annotation.Autowired; 19 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.jdbc.core.JdbcTemplate; 20 import org.springframework.jdbc.core.JdbcTemplate;
15 import org.springframework.jdbc.core.RowMapper; 21 import org.springframework.jdbc.core.RowMapper;
16 import org.springframework.stereotype.Service; 22 import org.springframework.stereotype.Service;
17 23
  24 +import com.alibaba.fastjson.JSONArray;
  25 +import com.alibaba.fastjson.JSONObject;
18 import com.bsth.common.ResponseCode; 26 import com.bsth.common.ResponseCode;
19 import com.bsth.entity.oil.Cwjy; 27 import com.bsth.entity.oil.Cwjy;
  28 +import com.bsth.entity.oil.Cyl;
20 import com.bsth.entity.oil.Ylxxb; 29 import com.bsth.entity.oil.Ylxxb;
21 import com.bsth.repository.oil.CwjyRepository; 30 import com.bsth.repository.oil.CwjyRepository;
22 import com.bsth.repository.oil.YlxxbRepository; 31 import com.bsth.repository.oil.YlxxbRepository;
@@ -35,8 +44,8 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw @@ -35,8 +44,8 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
35 44
36 @Autowired 45 @Autowired
37 JdbcTemplate jdbcTemplate; 46 JdbcTemplate jdbcTemplate;
38 -  
39 - @SuppressWarnings("unchecked") 47 + Logger logger = LoggerFactory.getLogger(this.getClass());
  48 + /*@SuppressWarnings("unchecked")
40 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) { 49 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) {
41 int page=Integer.parseInt(map.get("page").toString()); 50 int page=Integer.parseInt(map.get("page").toString());
42 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 51 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
@@ -129,7 +138,7 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw @@ -129,7 +138,7 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
129 return t; 138 return t;
130 } 139 }
131 }); 140 });
132 - /*List<Object[]> list=repository.obtainCwjycl(rq,nbbm); 141 + List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
133 for (int i = 0; i < list.size(); i++) { 142 for (int i = 0; i < list.size(); i++) {
134 Ylxxb y=new Ylxxb(); 143 Ylxxb y=new Ylxxb();
135 y.setGsdm(list.get(i)[0]==null?"":list.get(i)[0].toString()); 144 y.setGsdm(list.get(i)[0]==null?"":list.get(i)[0].toString());
@@ -148,13 +157,13 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw @@ -148,13 +157,13 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
148 e.printStackTrace(); 157 e.printStackTrace();
149 } 158 }
150 yList.add(y); 159 yList.add(y);
151 - }*/ 160 + }
152 PageHelper pageHelper = new PageHelper(listsize, map); 161 PageHelper pageHelper = new PageHelper(listsize, map);
153 pageHelper.getMap(); 162 pageHelper.getMap();
154 PageObject<Ylxxb> pageObject=pageHelper.getPageObject(); 163 PageObject<Ylxxb> pageObject=pageHelper.getPageObject();
155 pageObject.setDataList(yList); 164 pageObject.setDataList(yList);
156 return pageObject; 165 return pageObject;
157 - } 166 + }*/
158 167
159 @Override 168 @Override
160 public Ylxxb bynbbm(Map<String, Object> map) { 169 public Ylxxb bynbbm(Map<String, Object> map) {
@@ -188,28 +197,112 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw @@ -188,28 +197,112 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
188 return y; 197 return y;
189 } 198 }
190 199
  200 + @Transactional
191 @Override 201 @Override
192 - public Map<String, Object> savejzl(Ylxxb t) { 202 + public Map<String, Object> savejzl(Map<String, Object> maps) throws Exception {
193 // TODO Auto-generated method stub 203 // TODO Auto-generated method stub
194 Map<String, Object> map=new HashMap<String,Object>(); 204 Map<String, Object> map=new HashMap<String,Object>();
195 try { 205 try {
196 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 206 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
197 - String rq = sdf.format(t.getYyrq());  
198 - String nbbm=t.getNbbm();  
199 - List<Ylxxb> yList=ylxxbRepository.obtainYlxx2(rq,nbbm);  
200 - if(yList.size()>0){  
201 - t.setId(yList.get(0).getId());  
202 - ylxxbRepository.save(t);  
203 - }else{  
204 - ylxxbRepository.save(t); 207 +// String rq = sdf.format(t.getYyrq());
  208 +// String nbbm=t.getNbbm();
  209 +// List<Ylxxb> yList=ylxxbRepository.obtainYlxx2(rq,nbbm);
  210 +// if(yList.size()>0){
  211 +// t.setId(yList.get(0).getId());
  212 +// ylxxbRepository.save(t);
  213 +// }else{
  214 +// ylxxbRepository.save(t);
  215 +// }
  216 + String gsbm=maps.get("gsbm").toString();
  217 + String fgsbm=maps.get("fgsbm").toString();
  218 + String rq=maps.get("rq").toString();
  219 + Date date=sdf.parse(rq);
  220 + String json =StringEscapeUtils.unescapeHtml4(maps.get("ylbList").toString());
  221 + JSONArray jsonArray=JSONArray.parseArray(json);
  222 + JSONObject jsonObject;
  223 + // 获取车辆存油信息
  224 + for (int i = 0; i < jsonArray.size(); i++) {
  225 + jsonObject=jsonArray.getJSONObject(i);
  226 + Integer id =jsonObject.getInteger("id");
  227 + String jsy=jsonObject.getString("jsy");
  228 + double jzl=jsonObject.getDoubleValue("jzl");
  229 + String stationid=jsonObject.getString("stationid");
  230 + int nylx=jsonObject.getIntValue("nylx");
  231 + String jyggh=jsonObject.getString("jyggh");
  232 + String bz=jsonObject.getString("bz");
  233 + Ylxxb y;
  234 + if(id>0){
  235 + y=ylxxbRepository.findOne(id);
  236 + y.setJsy(jsy);
  237 + y.setJzl(jzl);
  238 + y.setStationid(stationid);
  239 + y.setJyggh(jyggh);
  240 + y.setBz(bz);
  241 + y.setCreatetime(date);
  242 + ylxxbRepository.save(y);
  243 + }else{
  244 + y=new Ylxxb();
  245 + y.setGsdm(gsbm);
  246 + y.setJsy(jsy);
  247 + y.setJzl(jzl);
  248 + y.setStationid(stationid);
  249 + y.setJyggh(jyggh);
  250 + y.setBz(bz);
  251 + y.setCreatetime(date);
  252 + y.setJylx(1);
  253 + ylxxbRepository.save(y);
  254 + }
205 } 255 }
206 map.put("status", ResponseCode.SUCCESS); 256 map.put("status", ResponseCode.SUCCESS);
  257 +
207 } catch (Exception e) { 258 } catch (Exception e) {
208 map.put("status", ResponseCode.ERROR); 259 map.put("status", ResponseCode.ERROR);
209 - e.printStackTrace(); 260 + logger.error("save erro.", e);
  261 + throw e;
210 // TODO: handle exception 262 // TODO: handle exception
211 } 263 }
212 return map; 264 return map;
213 } 265 }
214 266
  267 + @Override
  268 + public List<Ylxxb> Pagequery(Map<String, Object> map) {
  269 + // TODO Auto-generated method stub
  270 + String rq=map.get("rq").toString();
  271 + String nbbm=map.get("nbbh").toString();
  272 + String sql="SELECT a.gsdm as gsdm,a.fgsdm as fgsdm,a.nbbm as nbbm,"
  273 + + "b.jyggh as jyggh,b.jzl as jzl ,b.stationid as stationid,b.jsy as jsy,"
  274 + + "b.nylx as nylx,b.yj as yj,b.bz as bz,b.id as id ,c.jsy as ldgh FROM bsth_c_cwjy a "+
  275 + " left join ("
  276 + + " select * from bsth_c_ylxxb b "
  277 + + "where to_days(b.yyrq)=to_days('"+rq+"') and jylx=1) b " +
  278 + " on a.nbbm=b.nbbm "
  279 + + "left join (select nbbm,group_concat(jsy) as jsy "
  280 + + "from bsth_c_ylb where to_days(rq)= to_days('"+rq+"' ) group by nbbm "+
  281 + " ) c on a.nbbm=c.nbbm "
  282 + + "where a.nbbm like '%"+nbbm+"%'";
  283 +
  284 + List<Ylxxb> yList= jdbcTemplate.query(sql,
  285 + new RowMapper<Ylxxb>(){
  286 + @Override
  287 + public Ylxxb mapRow(ResultSet rs, int rowNum) throws SQLException {
  288 + Ylxxb t=new Ylxxb();
  289 + t.setId(rs.getInt("id"));
  290 + t.setGsdm(rs.getString("gsdm"));
  291 + t.setFgsdm(rs.getString("fgsdm"));
  292 + t.setNbbm(rs.getString("nbbm"));
  293 + t.setJyggh(rs.getString("jyggh"));
  294 + t.setJsy(rs.getString("jsy"));
  295 + t.setJzl(rs.getDouble("jzl"));
  296 + t.setStationid(rs.getString("stationid"));
  297 + t.setNylx(rs.getInt("nylx"));
  298 + t.setYj(rs.getDouble("yj"));
  299 + t.setBz(rs.getString("bz"));
  300 + t.setJsy(rs.getString("ldgh"));
  301 + return t;
  302 + }
  303 + });
  304 +
  305 + return yList;
  306 + }
  307 +
215 } 308 }
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -30,6 +30,7 @@ import com.alibaba.fastjson.JSONObject; @@ -30,6 +30,7 @@ import com.alibaba.fastjson.JSONObject;
30 import com.bsth.common.ResponseCode; 30 import com.bsth.common.ResponseCode;
31 import com.bsth.data.BasicData; 31 import com.bsth.data.BasicData;
32 import com.bsth.entity.Cars; 32 import com.bsth.entity.Cars;
  33 +import com.bsth.entity.Line;
33 import com.bsth.entity.oil.Cyl; 34 import com.bsth.entity.oil.Cyl;
34 import com.bsth.entity.oil.Ylb; 35 import com.bsth.entity.oil.Ylb;
35 import com.bsth.entity.oil.Ylxxb; 36 import com.bsth.entity.oil.Ylxxb;
@@ -134,11 +135,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -134,11 +135,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
134 Ylb ylb=ylListBe.get(i); 135 Ylb ylb=ylListBe.get(i);
135 if(map.get("clZbh").toString().equals(ylb.getNbbm())){ 136 if(map.get("clZbh").toString().equals(ylb.getNbbm())){
136 if(ylb.getJzyl()!=null){ 137 if(ylb.getJzyl()!=null){
137 - if(ylb.getJzyl()>0){  
138 - t.setCzyl(ylb.getJzyl());  
139 - fage=false;  
140 - break;  
141 - } 138 + t.setCzyl(ylb.getJzyl());
  139 + fage=false;
  140 + break;
142 } 141 }
143 142
144 } 143 }
@@ -178,6 +177,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -178,6 +177,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
178 t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString()); 177 t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
179 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString()); 178 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
180 t.setRq(sdf.parse(rq)); 179 t.setRq(sdf.parse(rq));
  180 + t.setCreatetime(dNow);
181 repository.save(t); 181 repository.save(t);
182 182
183 } 183 }
@@ -202,6 +202,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -202,6 +202,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
202 public Map<String, Object> obtain(Map<String, Object> map2) throws Exception{ 202 public Map<String, Object> obtain(Map<String, Object> map2) throws Exception{
203 Map<String, Object> newMap = new HashMap<String, Object>(); 203 Map<String, Object> newMap = new HashMap<String, Object>();
204 try { 204 try {
  205 + Date date=new Date();
205 List<Cars> carsList = carsRepository.findCars(); 206 List<Cars> carsList = carsRepository.findCars();
206 Map<String, Boolean> carsMap = new HashMap<String, Boolean>(); 207 Map<String, Boolean> carsMap = new HashMap<String, Boolean>();
207 for (int i = 0; i < carsList.size(); i++) { 208 for (int i = 0; i < carsList.size(); i++) {
@@ -269,7 +270,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -269,7 +270,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
269 for (int i = 0; i < ylListBe.size(); i++) { 270 for (int i = 0; i < ylListBe.size(); i++) {
270 Ylb ylb = ylListBe.get(i); 271 Ylb ylb = ylListBe.get(i);
271 if (map.get("clZbh").toString().equals(ylb.getNbbm())) { 272 if (map.get("clZbh").toString().equals(ylb.getNbbm())) {
272 - if(ylb.getJzyl()>0){ 273 + if(ylb.getJzyl()>=0){
273 t.setCzyl(ylb.getJzyl()); 274 t.setCzyl(ylb.getJzyl());
274 fage = false; 275 fage = false;
275 break; 276 break;
@@ -281,7 +282,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -281,7 +282,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
281 for (int y = 0; y < clyList.size(); y++) { 282 for (int y = 0; y < clyList.size(); y++) {
282 Cyl cyl = clyList.get(y); 283 Cyl cyl = clyList.get(y);
283 if (map.get("clZbh").toString().equals(cyl.getNbbm())) { 284 if (map.get("clZbh").toString().equals(cyl.getNbbm())) {
284 - if(cyl.getCyl()>0){ 285 + if(cyl.getCyl()>=0){
285 t.setCzyl(cyl.getCyl()); 286 t.setCzyl(cyl.getCyl());
286 fage = false; 287 fage = false;
287 break; 288 break;
@@ -312,12 +313,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -312,12 +313,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
312 jzl =Arith.add(jzl, ylxxb.getJzl()); 313 jzl =Arith.add(jzl, ylxxb.getJzl());
313 } 314 }
314 } 315 }
315 - if(map.get("clZbh").toString().equals("W0A-212")){  
316 - System.out.println();  
317 - }  
318 - if(map.get("clZbh").toString().equals("W0A-211")){  
319 - System.out.println();  
320 - } 316 +
321 t.setJzl(jzl); 317 t.setJzl(jzl);
322 t.setNbbm(map.get("clZbh").toString()); 318 t.setNbbm(map.get("clZbh").toString());
323 t.setJsy(map.get("jGh") == null ? "" : map.get("jGh").toString()); 319 t.setJsy(map.get("jGh") == null ? "" : map.get("jGh").toString());
@@ -329,6 +325,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -329,6 +325,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
329 t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString()); 325 t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString());
330 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString()); 326 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
331 t.setRq(sdf.parse(rq)); 327 t.setRq(sdf.parse(rq));
  328 + t.setCreatetime(date);
332 if(type.equals("add")){ 329 if(type.equals("add")){
333 addList.add(t); 330 addList.add(t);
334 }else{ 331 }else{
@@ -385,8 +382,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -385,8 +382,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
385 nbbm=map.get("nbbm_eq").toString(); 382 nbbm=map.get("nbbm_eq").toString();
386 } 383 }
387 384
388 - List<Cyl> cylListAdd=new ArrayList<Cyl>();  
389 - Map<String, Object> cylMapAdd=new HashMap<String,Object>();  
390 Map<String, Object> newMap=new HashMap<String,Object>(); 385 Map<String, Object> newMap=new HashMap<String,Object>();
391 Map<String, Object> map2=new HashMap<String,Object>(); 386 Map<String, Object> map2=new HashMap<String,Object>();
392 try { 387 try {
@@ -456,7 +451,10 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -456,7 +451,10 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
456 nextJzyl=ylxs; 451 nextJzyl=ylxs;
457 } else { 452 } else {
458 t.setCzyl(nextJzyl); 453 t.setCzyl(nextJzyl);
459 - Double yh = Double.parseDouble(df.format(zyl * (t.getZlc() / zlc))); 454 + Double yh=0.0;
  455 + if(zlc>0){
  456 + yh= Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
  457 + }
460 nextJzyl =Arith.sub( Arith.add(t.getJzl(),nextJzyl),yh); 458 nextJzyl =Arith.sub( Arith.add(t.getJzl(),nextJzyl),yh);
461 long l=Math.round(nextJzyl); 459 long l=Math.round(nextJzyl);
462 double ylxs=l*100/100; 460 double ylxs=l*100/100;
@@ -466,16 +464,21 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -466,16 +464,21 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
466 t.setJzyl(ylxs); 464 t.setJzyl(ylxs);
467 nextJzyl= ylxs; 465 nextJzyl= ylxs;
468 } 466 }
469 -  
470 repository.save(t); 467 repository.save(t);
  468 + for (int z = 0; z < cylList.size(); z++) {
  469 + Cyl cyl = cylList.get(z);
  470 + if (t.getNbbm().equals(cyl.getNbbm())) {
  471 + cyl.setCyl(t.getJzyl());
  472 + cyl.setUpdatetime(t.getRq());
  473 + break;
  474 + }
  475 + cylRepository.save(cyl);
  476 + }
471 } 477 }
472 map2.put("status", ResponseCode.SUCCESS); 478 map2.put("status", ResponseCode.SUCCESS);
473 } 479 }
474 } 480 }
475 } 481 }
476 - for (int i = 0; i < cylListAdd.size(); i++) {  
477 - cylRepository.save(cylListAdd.get(i));  
478 - }  
479 } catch (Exception e) { 482 } catch (Exception e) {
480 map2.put("status", ResponseCode.ERROR); 483 map2.put("status", ResponseCode.ERROR);
481 logger.error("save erro.", e); 484 logger.error("save erro.", e);
@@ -647,9 +650,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -647,9 +650,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
647 // xlbm=map.get("xlbm_like").toString(); 650 // xlbm=map.get("xlbm_like").toString();
648 // } 651 // }
649 // TODO Auto-generated method stub 652 // TODO Auto-generated method stub
  653 +
  654 + List<Cars> carsList = carsRepository.findCars();
  655 + Map<String, String> carsMap = new HashMap<String, String>();
  656 + for (int i = 0; i < carsList.size(); i++) {
  657 + Cars c = carsList.get(i);
  658 + carsMap.put(c.getInsideCode(), c.getBrancheCompanyCode()==null?"":c.getBrancheCompanyCode());
  659 + }
  660 +
650 try{ 661 try{
651 //获取车辆存油信息 662 //获取车辆存油信息
652 - List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap)); 663 +
653 String rq=map.get("rq").toString(); 664 String rq=map.get("rq").toString();
654 String xlbm=""; 665 String xlbm="";
655 if(map.get("xlbm_like")!=null){ 666 if(map.get("xlbm_like")!=null){
@@ -667,6 +678,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -667,6 +678,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
667 if(map.get("nbbm_eq")!=null){ 678 if(map.get("nbbm_eq")!=null){
668 nbbm=map.get("nbbm_eq").toString(); 679 nbbm=map.get("nbbm_eq").toString();
669 } 680 }
  681 + List<Ylb> ylListBe=repository.obtainYlbefore(rq, gsbm, "", xlbm, nbbm);
  682 + List<Cyl> cylList=cylRepository.obtainCyl(nbbm, gsbm);
670 List<Ylb> ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm"); 683 List<Ylb> ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
671 List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm); 684 List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm);
672 for (int i = 0; i < ylxxbList.size(); i++) { 685 for (int i = 0; i < ylxxbList.size(); i++) {
@@ -681,14 +694,56 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -681,14 +694,56 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
681 } 694 }
682 695
683 if(fage){ 696 if(fage){
  697 + Cyl cyl=null;
684 Ylb t=new Ylb(); 698 Ylb t=new Ylb();
685 t.setNbbm(y1.getNbbm()); 699 t.setNbbm(y1.getNbbm());
686 t.setRq(y1.getYyrq()); 700 t.setRq(y1.getYyrq());
687 t.setJsy(y1.getJsy()); 701 t.setJsy(y1.getJsy());
688 t.setJzl(y1.getJzl()); 702 t.setJzl(y1.getJzl());
689 t.setSsgsdm(y1.getGsdm()); 703 t.setSsgsdm(y1.getGsdm());
690 - t.setXlbm(xlbm);  
691 - repository.save(t); 704 + String fgsdm=carsMap.get(y1.getNbbm());
  705 + t.setFgsdm(fgsdm);
  706 + t.setJcsx(1);
  707 + Line line= BasicData.nbbm2LineMap.get(y1.getNbbm());
  708 + if(null !=line){
  709 + t.setXlbm(line.getLineCode());
  710 + }else{
  711 + t.setXlbm("");
  712 + }
  713 + t.setJcsx(1);
  714 + boolean status=true;
  715 + for (int j = 0; j < ylListBe.size(); j++) {
  716 + Ylb b=ylListBe.get(j);
  717 + if(b.getNbbm().equals(y1.getNbbm())){
  718 + t.setCzyl(b.getJzyl());
  719 + status=false;
  720 + break;
  721 + }
  722 + }
  723 + if(status){
  724 + for (int j = 0; j < cylList.size(); j++) {
  725 + Cyl c=cylList.get(j);
  726 + if(c.getNbbm().equals(y1.getNbbm())){
  727 + t.setCzyl(c.getCyl());
  728 + cyl=c;
  729 + status=false;
  730 + break;
  731 + }
  732 + }
  733 + }
  734 + if(status){
  735 + t.setCzyl(0.0);
  736 + }
  737 +// double jzyl=Arith.add(t.getJzl(), t.getCzyl());
  738 + t.setJzyl(Arith.add(t.getJzl(), t.getCzyl()));
  739 + t.setYh(0.0);
  740 + if(fgsdm.equals("fgsbm")){
  741 + repository.save(t);
  742 + if(null!=cyl){
  743 + cyl.setCyl(Arith.add(t.getJzl(), t.getCzyl()));
  744 + cylRepository.save(cyl);
  745 + }
  746 + }
692 } 747 }
693 } 748 }
694 newMap.put("status", ResponseCode.SUCCESS); 749 newMap.put("status", ResponseCode.SUCCESS);
@@ -862,23 +917,52 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -862,23 +917,52 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
862 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); 917 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
863 } 918 }
864 }else{ 919 }else{
865 - List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);  
866 - for (int i = 0; i < objectLists.size(); i++) {  
867 - String clbm=objectLists.get(i)[0].toString();  
868 - int cs=Integer.parseInt(objectLists.get(i)[1].toString());  
869 - //一车一单  
870 - if(sxtj.equals("1")){  
871 - if(cs==1){ 920 + List<Object[]> objectLists;
  921 + if(sxtj.equals("3")){
  922 + //有加油没里程
  923 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm);
  924 + for (int i = 0; i < objectLists.size(); i++) {
  925 + String clbm=objectLists.get(i)[0].toString();
  926 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  927 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  928 + if(jzl>0 && zlc<=0){
872 stringList.add(clbm); 929 stringList.add(clbm);
873 } 930 }
874 - }  
875 - //一车多单  
876 - if(sxtj.equals("2")){  
877 - if(cs>1){ 931 +
  932 + }
  933 +
  934 + }else if(sxtj.equals("4")){
  935 + //有里程没加油
  936 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm);
  937 + for (int i = 0; i < objectLists.size(); i++) {
  938 + String clbm=objectLists.get(i)[0].toString();
  939 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  940 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  941 + if(zlc>0 && jzl<=0){
878 stringList.add(clbm); 942 stringList.add(clbm);
879 } 943 }
  944 +
  945 + }
  946 + }else{
  947 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  948 + for (int i = 0; i < objectLists.size(); i++) {
  949 + String clbm=objectLists.get(i)[0].toString();
  950 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  951 + //一车一单
  952 + if(sxtj.equals("1")){
  953 + if(cs==1){
  954 + stringList.add(clbm);
  955 + }
  956 + }
  957 + //一车多单
  958 + if(sxtj.equals("2")){
  959 + if(cs>1){
  960 + stringList.add(clbm);
  961 + }
  962 + }
880 } 963 }
881 } 964 }
  965 +
882 if(stringList.size()>0){ 966 if(stringList.size()>0){
883 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); 967 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
884 } 968 }
@@ -894,10 +978,12 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -894,10 +978,12 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
894 // TODO Auto-generated method stub 978 // TODO Auto-generated method stub
895 Map<String, Object> newMap=new HashMap<String,Object>(); 979 Map<String, Object> newMap=new HashMap<String,Object>();
896 try{ 980 try{
  981 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
897 String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString()); 982 String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString());
898 JSONArray jsonArray=JSONArray.parseArray(json); 983 JSONArray jsonArray=JSONArray.parseArray(json);
899 JSONObject jsonObject; 984 JSONObject jsonObject;
900 - 985 + // 获取车辆存油信息
  986 + List<Cyl> cylList = cylRepository.obtainCyl("","");
901 for (int i = 0; i < jsonArray.size(); i++) { 987 for (int i = 0; i < jsonArray.size(); i++) {
902 // Ylb t=new Ylb(); 988 // Ylb t=new Ylb();
903 jsonObject=jsonArray.getJSONObject(i); 989 jsonObject=jsonArray.getJSONObject(i);
@@ -910,6 +996,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -910,6 +996,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
910 String rylx =jsonObject.getString("rylx"); 996 String rylx =jsonObject.getString("rylx");
911 int yhlx =jsonObject.getIntValue("yhlx"); 997 int yhlx =jsonObject.getIntValue("yhlx");
912 Integer id =jsonObject.getInteger("id"); 998 Integer id =jsonObject.getInteger("id");
  999 + String nbbm =jsonObject.getString("nbbm");
  1000 + String rq=jsonObject.getString("rq");
913 double yh = Arith.sub(Arith.add(czyl, jzl), jzyl); 1001 double yh = Arith.sub(Arith.add(czyl, jzl), jzyl);
914 /*t.setJzyl(jzyl); 1002 /*t.setJzyl(jzyl);
915 t.setSh(sh); 1003 t.setSh(sh);
@@ -918,6 +1006,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -918,6 +1006,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
918 t.setRylx(rylx); 1006 t.setRylx(rylx);
919 t.setId(jsonObject.getInteger("id"));*/ 1007 t.setId(jsonObject.getInteger("id"));*/
920 repository.ylbUpdate(id, czyl, jzyl, yh, sh, shyy, ns, rylx,yhlx); 1008 repository.ylbUpdate(id, czyl, jzyl, yh, sh, shyy, ns, rylx,yhlx);
  1009 + for (int z = 0; z < cylList.size(); z++) {
  1010 + Cyl cyl = cylList.get(z);
  1011 + if (nbbm.equals(cyl.getNbbm())) {
  1012 + cyl.setCyl(jzyl);
  1013 + cyl.setUpdatetime(sdf.parse(rq));
  1014 + break;
  1015 + }
  1016 + cylRepository.save(cyl);
  1017 + }
921 } 1018 }
922 // List<Map<String, Object>> list=(List<Map<String, Object>>) map.get("ylbList"); 1019 // List<Map<String, Object>> list=(List<Map<String, Object>>) map.get("ylbList");
923 1020
@@ -986,8 +1083,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -986,8 +1083,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
986 Double zyl = 0.0; 1083 Double zyl = 0.0;
987 Double nextJzyl = 0.0; 1084 Double nextJzyl = 0.0;
988 // 车的,进,出油量及耗油 1085 // 车的,进,出油量及耗油
989 - Map<String, Object> cylMapAdd=new HashMap<String,Object>();  
990 - List<Cyl> cylListAdd=new ArrayList<Cyl>();  
991 for (int i = 0; i < iterator2.size(); i++) { 1086 for (int i = 0; i < iterator2.size(); i++) {
992 Ylb t = iterator2.get(i); 1087 Ylb t = iterator2.get(i);
993 if (t.getJcsx() == 1) { 1088 if (t.getJcsx() == 1) {
@@ -1029,9 +1124,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -1029,9 +1124,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1029 nextJzyl=ylxs; 1124 nextJzyl=ylxs;
1030 } 1125 }
1031 repository.save(t); 1126 repository.save(t);
1032 - }  
1033 - for (int i = 0; i < cylListAdd.size(); i++) {  
1034 - cylRepository.save(cylListAdd.get(i)); 1127 + for (int z = 0; z < cylList.size(); z++) {
  1128 + Cyl cyl = cylList.get(z);
  1129 + if (t.getNbbm().equals(cyl.getNbbm())) {
  1130 + cyl.setCyl(t.getJzyl());
  1131 + cyl.setUpdatetime(t.getRq());
  1132 + break;
  1133 + }
  1134 + cylRepository.save(cyl);
  1135 + }
1035 } 1136 }
1036 newMap.put("status", ResponseCode.SUCCESS); 1137 newMap.put("status", ResponseCode.SUCCESS);
1037 } 1138 }
@@ -1052,9 +1153,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -1052,9 +1153,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1052 String jsy =map.get("jsy").toString(); 1153 String jsy =map.get("jsy").toString();
1053 String xlbm=map.get("xlbm").toString(); 1154 String xlbm=map.get("xlbm").toString();
1054 List<Ylb> list= repository.checkYlb(rq, nbbm, jsy,xlbm,"nbbm"); 1155 List<Ylb> list= repository.checkYlb(rq, nbbm, jsy,xlbm,"nbbm");
1055 - String type=""; 1156 + String type="1";
1056 if(list.size()>0){ 1157 if(list.size()>0){
1057 - type="cunzai"; 1158 + type="0";
1058 } 1159 }
1059 return type; 1160 return type;
1060 } 1161 }
@@ -1070,17 +1171,51 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -1070,17 +1171,51 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1070 String jhsj=t.getJhsj(); 1171 String jhsj=t.getJhsj();
1071 String jsy=t.getJsy(); 1172 String jsy=t.getJsy();
1072 String nbbm=t.getNbbm(); 1173 String nbbm=t.getNbbm();
1073 - List<Ylb> list=repository.checkYlb(rq, nbbm, jsy, xlbm,"jhsj"); 1174 + t.setCreatetime(new Date());
  1175 + String[] jhsjStr = jhsj.split(":");
  1176 + long fcsjL= Long.parseLong(jhsjStr[0])*60+Long.parseLong(jhsjStr[1]);
  1177 + List<Ylb> list=repository.obtainYl(rq, gsdm, fgsdm, xlbm, nbbm, "jhsj");
  1178 + int jcsx=1;
1074 if(list.size()>0){ 1179 if(list.size()>0){
1075 for (int i = 0; i < list.size(); i++) { 1180 for (int i = 0; i < list.size(); i++) {
1076 Ylb y=list.get(i); 1181 Ylb y=list.get(i);
1077 - String jhsj2=y.getJhsj(); 1182 + String[] fcsjStr = y.getJhsj().split(":");
  1183 + long fcsj=Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  1184 + if(fcsjL>fcsj){
  1185 + jcsx=jcsx+y.getJcsx();
  1186 + }else{
  1187 + y.setJcsx(y.getJcsx()+1);
  1188 + repository.save(y);
  1189 + }
1078 } 1190 }
1079 - }else{  
1080 - t.setJcsx(1); 1191 +
1081 } 1192 }
  1193 + t.setJcsx(jcsx);
  1194 + repository.save(t);
1082 map.put("status", ResponseCode.SUCCESS); 1195 map.put("status", ResponseCode.SUCCESS);
1083 map.put("t", t); 1196 map.put("t", t);
1084 - return null; 1197 + return map;
  1198 + }
  1199 + @Transactional
  1200 + @Override
  1201 + public Map<String, Object> deleteIds(Map<String, Object> map) throws Exception{
  1202 + // TODO Auto-generated method stub
  1203 + Map<String, Object> maps = new HashMap<>();
  1204 + try{
  1205 + String json =StringEscapeUtils.unescapeHtml4(map.get("ids").toString());
  1206 + JSONArray jsonArray=JSONArray.parseArray(json);
  1207 + JSONObject jsonObject;
  1208 + for (int x = 0; x < jsonArray.size(); x++) {
  1209 + jsonObject=jsonArray.getJSONObject(x);
  1210 + Integer id =jsonObject.getInteger("id");
  1211 + repository.delete(id);
  1212 + }
  1213 + maps.put("status", ResponseCode.SUCCESS);
  1214 + } catch (Exception e) {
  1215 + maps.put("status", ResponseCode.ERROR);
  1216 + logger.error("save erro.", e);
  1217 + throw e;
  1218 + }
  1219 + return maps;
1085 } 1220 }
1086 } 1221 }
src/main/java/com/bsth/service/oil/impl/YlxxbServiceImpl.java
@@ -9,6 +9,9 @@ import java.util.HashMap; @@ -9,6 +9,9 @@ import java.util.HashMap;
9 import java.util.List; 9 import java.util.List;
10 import java.util.Map; 10 import java.util.Map;
11 11
  12 +import javax.transaction.Transactional;
  13 +
  14 +import org.apache.commons.lang3.StringEscapeUtils;
12 import org.slf4j.Logger; 15 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory; 16 import org.slf4j.LoggerFactory;
14 import org.springframework.beans.factory.annotation.Autowired; 17 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +19,8 @@ import org.springframework.jdbc.core.JdbcTemplate; @@ -16,6 +19,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
16 import org.springframework.jdbc.core.RowMapper; 19 import org.springframework.jdbc.core.RowMapper;
17 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
18 21
  22 +import com.alibaba.fastjson.JSONArray;
  23 +import com.alibaba.fastjson.JSONObject;
19 import com.bsth.common.ResponseCode; 24 import com.bsth.common.ResponseCode;
20 import com.bsth.entity.excep.Offline; 25 import com.bsth.entity.excep.Offline;
21 import com.bsth.entity.oil.Ylb; 26 import com.bsth.entity.oil.Ylb;
@@ -44,12 +49,27 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements @@ -44,12 +49,27 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
44 String rq=map.get("yyrq").toString(); 49 String rq=map.get("yyrq").toString();
45 String gsdm=map.get("gsdm_like").toString(); 50 String gsdm=map.get("gsdm_like").toString();
46 String fgsdm=map.get("fgsdm_like").toString(); 51 String fgsdm=map.get("fgsdm_like").toString();
47 - 52 + /*
48 String sql=" select x.*,y.jsy as ldgh,y.fgsdm as fgsdm from bsth_c_ylxxb x " 53 String sql=" select x.*,y.jsy as ldgh,y.fgsdm as fgsdm from bsth_c_ylxxb x "
49 + " left join bsth_c_ylb y on x.nbbm = y.nbbm and x.jsy !=y.jsy " 54 + " left join bsth_c_ylb y on x.nbbm = y.nbbm and x.jsy !=y.jsy "
50 + " where DATE_FORMAT(y.rq,'%Y-%m-%d')='"+rq+"' and y.ssgsdm='"+gsdm+"' " 55 + " where DATE_FORMAT(y.rq,'%Y-%m-%d')='"+rq+"' and y.ssgsdm='"+gsdm+"' "
51 + " and y.fgsdm='"+fgsdm+"' and DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' " 56 + " and y.fgsdm='"+fgsdm+"' and DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' "
52 - + " and x.gsdm='"+gsdm+"'"; 57 + + " and x.gsdm='"+gsdm+"'";*/
  58 +
  59 + String sql= "select v.*,u.jsy as ldgh from "
  60 + + " ( select * from bsth_c_ylxxb x where "
  61 + + " DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' and x.gsdm='"+gsdm+"'"
  62 + + " and x.jsy not in ("
  63 + + " select jsy from bsth_c_ylb "
  64 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  65 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"')"
  66 + + " and x.nbbm in (select nbbm from bsth_c_ylb "
  67 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  68 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"' )) v "
  69 + + " left join (select * from bsth_c_ylb "
  70 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"'"
  71 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"' ) u "
  72 + + " on v.nbbm=u.nbbm ";
53 73
54 //根具条件查询指定日期Ylxxb的数据 74 //根具条件查询指定日期Ylxxb的数据
55 // List<Ylxxb> iterator=repository.checkYlxx(rq,gsdm); 75 // List<Ylxxb> iterator=repository.checkYlxx(rq,gsdm);
@@ -114,21 +134,33 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements @@ -114,21 +134,33 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
114 pageObject.setDataList(list); 134 pageObject.setDataList(list);
115 return pageObject; 135 return pageObject;
116 } 136 }
117 - 137 + @Transactional
118 @Override 138 @Override
119 - public Map<String, Object> checkJsy(Map<String, Object> map) { 139 + public Map<String, Object> checkJsy(Map<String, Object> map) throws Exception{
120 Map<String, Object> newMap=new HashMap<String,Object>(); 140 Map<String, Object> newMap=new HashMap<String,Object>();
121 // TODO Auto-generated method stub 141 // TODO Auto-generated method stub
122 try { 142 try {
123 - int id=Integer.parseInt(map.get("id").toString());  
124 - String jsy=map.get("jsy").toString();  
125 - Ylxxb ylxxb=repository.findOne(id);  
126 - ylxxb.setJsy(jsy);  
127 - repository.save(ylxxb); 143 +// int id=Integer.parseInt(map.get("id").toString());
  144 +// String jsy=map.get("jsy").toString();
  145 +// Ylxxb ylxxb=repository.findOne(id);
  146 +// ylxxb.setJsy(jsy);
  147 +// repository.save(ylxxb);
  148 + String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString());
  149 + JSONArray jsonArray=JSONArray.parseArray(json);
  150 + JSONObject jsonObject;
  151 + for (int x = 0; x < jsonArray.size(); x++) {
  152 + jsonObject=jsonArray.getJSONObject(x);
  153 + Integer id =jsonObject.getInteger("id");
  154 + String jsy =jsonObject.getString("jsy");
  155 + Ylxxb ylxxb=repository.findOne(id);
  156 + ylxxb.setJsy(jsy);
  157 + repository.save(ylxxb);
  158 + }
128 newMap.put("status", ResponseCode.SUCCESS); 159 newMap.put("status", ResponseCode.SUCCESS);
129 }catch(Exception e){ 160 }catch(Exception e){
130 newMap.put("status", ResponseCode.ERROR); 161 newMap.put("status", ResponseCode.ERROR);
131 logger.error("save erro.", e); 162 logger.error("save erro.", e);
  163 + throw e;
132 } 164 }
133 return newMap; 165 return newMap;
134 } 166 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -89,6 +89,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -89,6 +89,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
89 89
90 @Autowired 90 @Autowired
91 SectionRouteService sectionRouteService; 91 SectionRouteService sectionRouteService;
  92 +
  93 + @Autowired
  94 + CulateMileageService culateMieageService;
92 95
93 /*@Autowired 96 /*@Autowired
94 BorrowCenter borrowCenter;*/ 97 BorrowCenter borrowCenter;*/
@@ -1576,10 +1579,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1576,10 +1579,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1576 listSchedule.add(s); 1579 listSchedule.add(s);
1577 //计算营运里程,空驶里程 1580 //计算营运里程,空驶里程
1578 if (!childTaskPlans.isEmpty()) { 1581 if (!childTaskPlans.isEmpty()) {
1579 - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();  
1580 - while (it.hasNext()) { 1582 +// Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1583 + List<ChildTaskPlan> listit=new ArrayList<ChildTaskPlan>(childTaskPlans);
  1584 + Collections.sort(listit, new ComparableChild());
  1585 + for (int j = 0; j < listit.size(); j++) {
1581 ScheduleRealInfo t = new ScheduleRealInfo(); 1586 ScheduleRealInfo t = new ScheduleRealInfo();
1582 - ChildTaskPlan childTaskPlan = it.next(); 1587 + ChildTaskPlan childTaskPlan = listit.get(j);
1583 if (childTaskPlan.isDestroy()) { 1588 if (childTaskPlan.isDestroy()) {
1584 t.setFcsjActual(""); 1589 t.setFcsjActual("");
1585 t.setZdsjActual(""); 1590 t.setZdsjActual("");
@@ -3045,12 +3050,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3045,12 +3050,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3045 String jName = yesterdayDataList.get(x).get("jGh").toString(); 3050 String jName = yesterdayDataList.get(x).get("jGh").toString();
3046 String clZbh = yesterdayDataList.get(x).get("clZbh").toString(); 3051 String clZbh = yesterdayDataList.get(x).get("clZbh").toString();
3047 3052
3048 - double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0; 3053 +// double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0;
3049 double addMileage = 0, remMileage = 0; 3054 double addMileage = 0, remMileage = 0;
3050 Map<String, Object> map = new HashMap<String, Object>(); 3055 Map<String, Object> map = new HashMap<String, Object>();
3051 boolean fage = true; 3056 boolean fage = true;
3052 String company=""; 3057 String company="";
3053 String bCompany=""; 3058 String bCompany="";
  3059 + List<ScheduleRealInfo> listS=new ArrayList<ScheduleRealInfo>();
3054 for (ScheduleRealInfo scheduleRealInfo : lists) { 3060 for (ScheduleRealInfo scheduleRealInfo : lists) {
3055 if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)){ 3061 if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)){
3056 if (fage) { 3062 if (fage) {
@@ -3059,7 +3065,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3059,7 +3065,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3059 bCompany=scheduleRealInfo.getFgsBm(); 3065 bCompany=scheduleRealInfo.getFgsBm();
3060 fage = false; 3066 fage = false;
3061 } 3067 }
3062 - if (scheduleRealInfo != null) { 3068 + listS.add(scheduleRealInfo);
  3069 +
  3070 + /* if (scheduleRealInfo != null) {
3063 //计划里程(主任务过滤掉临加班次), 3071 //计划里程(主任务过滤掉临加班次),
3064 //烂班里程(主任务烂班), 3072 //烂班里程(主任务烂班),
3065 //临加里程(主任务临加), 3073 //临加里程(主任务临加),
@@ -3118,16 +3126,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3118,16 +3126,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3118 } 3126 }
3119 } 3127 }
3120 } 3128 }
3121 - } 3129 + }*/
3122 } 3130 }
3123 } 3131 }
  3132 +
3124 yesterdayDataList.get(x).put("company", company); 3133 yesterdayDataList.get(x).put("company", company);
3125 yesterdayDataList.get(x).put("bCompany", bCompany); 3134 yesterdayDataList.get(x).put("bCompany", bCompany);
3126 - Double zgl=Arith.add(yygl,ksgl);  
3127 - yesterdayDataList.get(x).put("totalKilometers", Arith.add(zgl, jcclc)); 3135 +// Double zgl=Arith.add(yygl,ksgl);
  3136 + Double ljgl=culateMieageService.culateLjgl(listS);
  3137 + Double sjgl=culateMieageService.culateSjgl(listS);
  3138 + Double ksgl=culateMieageService.culateKsgl(listS);
  3139 + Double jccgl=culateMieageService.culateJccgl(listS);
  3140 + Double zyygl=Arith.add(sjgl, ljgl);
  3141 + Double zksgl=Arith.add(ksgl, jccgl);
  3142 + yesterdayDataList.get(x).put("totalKilometers", Arith.add(zyygl, zksgl));
3128 3143
3129 } 3144 }
3130 - System.out.println();  
3131 //增加顺序号 3145 //增加顺序号
3132 for (int i = 0; i < yesterdayDataList.size(); i++) { 3146 for (int i = 0; i < yesterdayDataList.size(); i++) {
3133 if (i == 0) { 3147 if (i == 0) {
src/main/java/com/bsth/service/report/ReportService.java
@@ -38,4 +38,6 @@ public interface ReportService { @@ -38,4 +38,6 @@ public interface ReportService {
38 List<Map<String, Object>> lineList(); 38 List<Map<String, Object>> lineList();
39 39
40 List<Map<String, String>> carList(Map<String, Object> map); 40 List<Map<String, String>> carList(Map<String, Object> map);
  41 +
  42 + List<Map<String, String>> userList(Map<String, Object> map);
41 } 43 }
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
@@ -221,15 +221,29 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -221,15 +221,29 @@ public class CulateMileageServiceImpl implements CulateMileageService{
221 if (!(scheduleRealInfo.getBcType().equals("in") 221 if (!(scheduleRealInfo.getBcType().equals("in")
222 || scheduleRealInfo.getBcType().equals("out"))) { 222 || scheduleRealInfo.getBcType().equals("out"))) {
223 if(scheduleRealInfo.isSflj()){ 223 if(scheduleRealInfo.isSflj()){
224 - String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");  
225 - long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);  
226 - if(item.equals("zgf")){  
227 - if(fcsj>=zgf1 && fcsj<=zgf2){  
228 - ljbc++; 224 + if(item.equals("zgf") || item.equals("wgf")){
  225 + String time="";
  226 + if(scheduleRealInfo.getFcsjActual()!=null){
  227 + time=scheduleRealInfo.getFcsjActual();
229 } 228 }
230 - }else if(item.equals("wgf")){  
231 - if(fcsj>=wgf1 && fcsj<=wgf2){  
232 - ljbc++; 229 + if(time.equals("")){
  230 + if(scheduleRealInfo.getDfsj()!=null){
  231 + time=scheduleRealInfo.getDfsj();
  232 + }
  233 + }
  234 + if(!time.equals("")){
  235 + String[] fcsjStr = time.split(":");
  236 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  237 +
  238 + if(item.equals("zgf")){
  239 + if(fcsj>=zgf1 && fcsj<=zgf2){
  240 + ljbc++;
  241 + }
  242 + }else if(item.equals("wgf")){
  243 + if(fcsj>=wgf1 && fcsj<=wgf2){
  244 + ljbc++;
  245 + }
  246 + }
233 } 247 }
234 }else{ 248 }else{
235 ljbc++; 249 ljbc++;
@@ -327,37 +341,24 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -327,37 +341,24 @@ public class CulateMileageServiceImpl implements CulateMileageService{
327 || scheduleRealInfo.getBcType().equals("out"))) { 341 || scheduleRealInfo.getBcType().equals("out"))) {
328 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); 342 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
329 if(!scheduleRealInfo.isSflj()){ 343 if(!scheduleRealInfo.isSflj()){
330 - String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");  
331 - long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);  
332 - if(childTaskPlans.isEmpty()){  
333 - if(scheduleRealInfo.getStatus()!=-1){  
334 - if(item.equals("zgf")){  
335 - if(fcsj>=zgf1 && fcsj<=zgf2){  
336 - sjbc++;  
337 - }  
338 - }else if(item.equals("wgf")){  
339 - if(fcsj>=wgf1 && fcsj<=wgf2){  
340 - sjbc++;  
341 - }  
342 - }else{  
343 - sjbc++; 344 + String time="";
  345 + if(item.equals("zgf") || item.equals("wgf")){
  346 + if(scheduleRealInfo.getFcsjActual()!=null){
  347 + time=scheduleRealInfo.getFcsjActual();
  348 + }
  349 + if(time.equals("")){
  350 + if(scheduleRealInfo.getDfsj()!=null){
  351 + time=scheduleRealInfo.getDfsj();
344 } 352 }
345 -  
346 } 353 }
347 }else{ 354 }else{
348 - if(scheduleRealInfo.getStatus() == -1){  
349 - boolean fage=false;  
350 - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();  
351 - if(it.hasNext()){  
352 - ChildTaskPlan childTaskPlan = it.next();  
353 - if(!childTaskPlan.isDestroy()){  
354 - if(childTaskPlan.getMileageType().equals("service")){  
355 - fage=true;  
356 - }  
357 - }  
358 -  
359 - }  
360 - if(fage){ 355 + time=scheduleRealInfo.getFcsj();
  356 + }
  357 + if(!time.equals("")){
  358 + String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
  359 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  360 + if(childTaskPlans.isEmpty()){
  361 + if(scheduleRealInfo.getStatus()!=-1){
361 if(item.equals("zgf")){ 362 if(item.equals("zgf")){
362 if(fcsj>=zgf1 && fcsj<=zgf2){ 363 if(fcsj>=zgf1 && fcsj<=zgf2){
363 sjbc++; 364 sjbc++;
@@ -369,19 +370,47 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -369,19 +370,47 @@ public class CulateMileageServiceImpl implements CulateMileageService{
369 }else{ 370 }else{
370 sjbc++; 371 sjbc++;
371 } 372 }
  373 +
372 } 374 }
373 -  
374 }else{ 375 }else{
375 - if(item.equals("zgf")){  
376 - if(fcsj>=zgf1 && fcsj<=zgf2){  
377 - sjbc++; 376 + if(scheduleRealInfo.getStatus() == -1){
  377 + boolean fage=false;
  378 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  379 + if(it.hasNext()){
  380 + ChildTaskPlan childTaskPlan = it.next();
  381 + if(!childTaskPlan.isDestroy()){
  382 + if(childTaskPlan.getMileageType().equals("service")){
  383 + fage=true;
  384 + }
  385 + }
  386 +
378 } 387 }
379 - }else if(item.equals("wgf")){  
380 - if(fcsj>=wgf1 && fcsj<=wgf2){  
381 - sjbc++; 388 + if(fage){
  389 + if(item.equals("zgf")){
  390 + if(fcsj>=zgf1 && fcsj<=zgf2){
  391 + sjbc++;
  392 + }
  393 + }else if(item.equals("wgf")){
  394 + if(fcsj>=wgf1 && fcsj<=wgf2){
  395 + sjbc++;
  396 + }
  397 + }else{
  398 + sjbc++;
  399 + }
382 } 400 }
  401 +
383 }else{ 402 }else{
384 - sjbc++; 403 + if(item.equals("zgf")){
  404 + if(fcsj>=zgf1 && fcsj<=zgf2){
  405 + sjbc++;
  406 + }
  407 + }else if(item.equals("wgf")){
  408 + if(fcsj>=wgf1 && fcsj<=wgf2){
  409 + sjbc++;
  410 + }
  411 + }else{
  412 + sjbc++;
  413 + }
385 } 414 }
386 } 415 }
387 } 416 }
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
@@ -25,6 +25,7 @@ import org.springframework.stereotype.Service; @@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
25 25
26 import com.bsth.data.BasicData; 26 import com.bsth.data.BasicData;
27 import com.bsth.entity.Line; 27 import com.bsth.entity.Line;
  28 +import com.bsth.entity.Personnel;
28 import com.bsth.entity.StationRoute; 29 import com.bsth.entity.StationRoute;
29 import com.bsth.entity.excep.ArrivalInfo; 30 import com.bsth.entity.excep.ArrivalInfo;
30 import com.bsth.entity.oil.Ylb; 31 import com.bsth.entity.oil.Ylb;
@@ -1384,4 +1385,47 @@ public class ReportServiceImpl implements ReportService{ @@ -1384,4 +1385,47 @@ public class ReportServiceImpl implements ReportService{
1384 } 1385 }
1385 return list; 1386 return list;
1386 } 1387 }
  1388 +
  1389 +
  1390 + @Override
  1391 + public List<Map<String, String>> userList(Map<String, Object> maps) {
  1392 + // TODO Auto-generated method stub
  1393 + // 转大写
  1394 + String jsy =maps.get("jsy").toString().toUpperCase();
  1395 + String gsbm=maps.get("gsbm").toString().trim();
  1396 +// String fgsbm=maps.get("fgsbm").toString().trim();
  1397 + List<Map<String, String>> list = new ArrayList<Map<String, String>>();
  1398 + Map<String, String> map;
  1399 +// Set<String> allSet = BasicData.nbbm2CompanyCodeMap.keySet();
  1400 + Set<String> allJsy = BasicData.jsyMap.keySet();
  1401 +
  1402 + Personnel per;
  1403 + for (String k : allJsy) {
  1404 + if (k.indexOf(jsy) != -1) {
  1405 + // 所属线路
  1406 + boolean fage=true;
  1407 + map = new HashMap<>();
  1408 + per = BasicData.jsyMap.get(k);
  1409 + String rygsdm= per.getCompanyCode();
  1410 +
  1411 + map.put("id", k);
  1412 + map.put("text", k+"/"+per.getPersonnelName());
  1413 +
  1414 + if(!gsbm.equals("")){
  1415 + if(!rygsdm.equals(gsbm)){
  1416 + fage=false;
  1417 + }
  1418 + }
  1419 +
  1420 + if(fage){
  1421 + list.add(map);
  1422 + }
  1423 +
  1424 + }
  1425 +
  1426 + if (list.size() > 20)
  1427 + break;
  1428 + }
  1429 + return list;
  1430 + }
1387 } 1431 }
src/main/java/com/bsth/service/schedule/SchedulePlanRuleResultService.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +
  5 +/**
  6 + * Created by xu on 17/3/29.
  7 + */
  8 +public interface SchedulePlanRuleResultService extends BService<SchedulePlanRuleResult, Long> {
  9 +}
src/main/java/com/bsth/service/schedule/impl/SchedulePlanRuleResultServiceImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.impl;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +import com.bsth.service.schedule.SchedulePlanRuleResultService;
  5 +import org.springframework.stereotype.Service;
  6 +
  7 +/**
  8 + * Created by xu on 17/3/29.
  9 + */
  10 +@Service
  11 +public class SchedulePlanRuleResultServiceImpl extends BServiceImpl<SchedulePlanRuleResult, Long> implements SchedulePlanRuleResultService {
  12 +}
src/main/java/com/bsth/service/schedule/impl/SchedulePlanServiceImpl.java
@@ -6,6 +6,7 @@ import com.bsth.entity.schedule.rule.ScheduleRule1Flat; @@ -6,6 +6,7 @@ import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
6 import com.bsth.repository.BusinessRepository; 6 import com.bsth.repository.BusinessRepository;
7 import com.bsth.repository.LineRepository; 7 import com.bsth.repository.LineRepository;
8 import com.bsth.repository.schedule.*; 8 import com.bsth.repository.schedule.*;
  9 +import com.bsth.service.schedule.SchedulePlanRuleResultService;
9 import com.bsth.service.schedule.SchedulePlanService; 10 import com.bsth.service.schedule.SchedulePlanService;
10 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input; 11 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input;
11 import com.bsth.service.schedule.rules.plan.PlanResult; 12 import com.bsth.service.schedule.rules.plan.PlanResult;
@@ -51,6 +52,10 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im @@ -51,6 +52,10 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
51 private EmployeeConfigInfoRepository employeeConfigInfoRepository; 52 private EmployeeConfigInfoRepository employeeConfigInfoRepository;
52 @Autowired 53 @Autowired
53 private BusinessRepository businessRepository; 54 private BusinessRepository businessRepository;
  55 + @Autowired
  56 + private SchedulePlanRuleResultService schedulePlanRuleResultService;
  57 + @Autowired
  58 + private SchedulePlanRuleResultRepository schedulePlanRuleResultRepository;
54 59
55 /** 日志记录器 */ 60 /** 日志记录器 */
56 private Logger logger = LoggerFactory.getLogger(SchedulePlanServiceImpl.class); 61 private Logger logger = LoggerFactory.getLogger(SchedulePlanServiceImpl.class);
@@ -84,6 +89,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im @@ -84,6 +89,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
84 // 设置gloable对象,在drl中通过别名使用 89 // 设置gloable对象,在drl中通过别名使用
85 session.setGlobal("scheduleResult", scheduleResults_output); 90 session.setGlobal("scheduleResult", scheduleResults_output);
86 session.setGlobal("log", logger); // 设置日志 91 session.setGlobal("log", logger); // 设置日志
  92 + session.setGlobal("schedulePlanRuleResultRepository", schedulePlanRuleResultRepository);
87 93
88 // 载入数据 94 // 载入数据
89 session.insert(scheduleCalcuParam_input); 95 session.insert(scheduleCalcuParam_input);
@@ -229,6 +235,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im @@ -229,6 +235,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
229 schedulePlan.getSchedulePlanInfoList().addAll(planResult.getSchedulePlanInfos()); 235 schedulePlan.getSchedulePlanInfoList().addAll(planResult.getSchedulePlanInfos());
230 super.save(schedulePlan); 236 super.save(schedulePlan);
231 237
  238 + schedulePlanRuleResultService.bulkSave(scheduleResults_output.getSchedulePlanRuleResults());
  239 +
232 return new SchedulePlan(); 240 return new SchedulePlan();
233 } 241 }
234 242
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleCalcuParam_input.java
@@ -12,11 +12,20 @@ public class ScheduleCalcuParam_input { @@ -12,11 +12,20 @@ public class ScheduleCalcuParam_input {
12 /** 结束计算日期 */ 12 /** 结束计算日期 */
13 private DateTime toDate; 13 private DateTime toDate;
14 14
  15 + /** 线路Id */
  16 + private String xlId;
  17 +
  18 + /** 排班计划实体 */
  19 + private SchedulePlan schedulePlan;
  20 +
15 public ScheduleCalcuParam_input() {} 21 public ScheduleCalcuParam_input() {}
16 22
17 public ScheduleCalcuParam_input(SchedulePlan schedulePlan) { 23 public ScheduleCalcuParam_input(SchedulePlan schedulePlan) {
18 this.fromDate = new DateTime((schedulePlan.getScheduleFromTime())); 24 this.fromDate = new DateTime((schedulePlan.getScheduleFromTime()));
19 this.toDate = new DateTime((schedulePlan.getScheduleToTime())); 25 this.toDate = new DateTime((schedulePlan.getScheduleToTime()));
  26 +
  27 + this.schedulePlan = schedulePlan;
  28 + this.xlId = String.valueOf(schedulePlan.getXl().getId());
20 } 29 }
21 30
22 public DateTime getFromDate() { 31 public DateTime getFromDate() {
@@ -35,4 +44,19 @@ public class ScheduleCalcuParam_input { @@ -35,4 +44,19 @@ public class ScheduleCalcuParam_input {
35 this.toDate = toDate; 44 this.toDate = toDate;
36 } 45 }
37 46
  47 + public SchedulePlan getSchedulePlan() {
  48 + return schedulePlan;
  49 + }
  50 +
  51 + public void setSchedulePlan(SchedulePlan schedulePlan) {
  52 + this.schedulePlan = schedulePlan;
  53 + }
  54 +
  55 + public String getXlId() {
  56 + return xlId;
  57 + }
  58 +
  59 + public void setXlId(String xlId) {
  60 + this.xlId = xlId;
  61 + }
38 } 62 }
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleResults_output.java
1 package com.bsth.service.schedule.rules.shiftloop; 1 package com.bsth.service.schedule.rules.shiftloop;
2 2
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
3 import org.apache.commons.lang3.StringUtils; 4 import org.apache.commons.lang3.StringUtils;
4 5
5 import java.util.*; 6 import java.util.*;
@@ -11,6 +12,17 @@ public class ScheduleResults_output { @@ -11,6 +12,17 @@ public class ScheduleResults_output {
11 /** 输出列表 */ 12 /** 输出列表 */
12 private List<ScheduleResult_output> results = new ArrayList<>(); 13 private List<ScheduleResult_output> results = new ArrayList<>();
13 14
  15 + /** 排班规则结果保存数据 */
  16 + private List<SchedulePlanRuleResult> schedulePlanRuleResults = new ArrayList<>();
  17 +
  18 + public List<SchedulePlanRuleResult> getSchedulePlanRuleResults() {
  19 + return schedulePlanRuleResults;
  20 + }
  21 +
  22 + public void setSchedulePlanRuleResults(List<SchedulePlanRuleResult> schedulePlanRuleResults) {
  23 + this.schedulePlanRuleResults = schedulePlanRuleResults;
  24 + }
  25 +
14 public List<ScheduleResult_output> getResults() { 26 public List<ScheduleResult_output> getResults() {
15 return results; 27 return results;
16 } 28 }
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleRule_input.java
@@ -36,6 +36,9 @@ public class ScheduleRule_input { @@ -36,6 +36,9 @@ public class ScheduleRule_input {
36 /** 车辆翻版(周一到周日是否启用) */ 36 /** 车辆翻版(周一到周日是否启用) */
37 private List<Boolean> weekdays = new ArrayList<>(); 37 private List<Boolean> weekdays = new ArrayList<>();
38 38
  39 + /** 关联的原始规则 */
  40 + private ScheduleRule1Flat self;
  41 +
39 public ScheduleRule_input() {} 42 public ScheduleRule_input() {}
40 43
41 public ScheduleRule_input(ScheduleRule1Flat scheduleRule1Flat) { 44 public ScheduleRule_input(ScheduleRule1Flat scheduleRule1Flat) {
@@ -74,6 +77,8 @@ public class ScheduleRule_input { @@ -74,6 +77,8 @@ public class ScheduleRule_input {
74 weekdays.add(false); 77 weekdays.add(false);
75 } 78 }
76 } 79 }
  80 +
  81 + this.self = scheduleRule1Flat;
77 } 82 }
78 83
79 public String getRuleId() { 84 public String getRuleId() {
@@ -147,4 +152,12 @@ public class ScheduleRule_input { @@ -147,4 +152,12 @@ public class ScheduleRule_input {
147 public void setXlId(String xlId) { 152 public void setXlId(String xlId) {
148 this.xlId = xlId; 153 this.xlId = xlId;
149 } 154 }
  155 +
  156 + public ScheduleRule1Flat getSelf() {
  157 + return self;
  158 + }
  159 +
  160 + public void setSelf(ScheduleRule1Flat self) {
  161 + this.self = self;
  162 + }
150 } 163 }
src/main/java/com/bsth/service/schedule/rules/ttinfo/LpInfoResult_output.java
@@ -14,6 +14,8 @@ public class LpInfoResult_output { @@ -14,6 +14,8 @@ public class LpInfoResult_output {
14 private String xlId; 14 private String xlId;
15 /** 时刻表Id */ 15 /** 时刻表Id */
16 private String ttInfoId; 16 private String ttInfoId;
  17 + /** 时刻表名字 */
  18 + private String ttInfoName;
17 19
18 public DateTime getDateTime() { 20 public DateTime getDateTime() {
19 return dateTime; 21 return dateTime;
@@ -46,4 +48,12 @@ public class LpInfoResult_output { @@ -46,4 +48,12 @@ public class LpInfoResult_output {
46 public void setTtInfoId(String ttInfoId) { 48 public void setTtInfoId(String ttInfoId) {
47 this.ttInfoId = ttInfoId; 49 this.ttInfoId = ttInfoId;
48 } 50 }
  51 +
  52 + public String getTtInfoName() {
  53 + return ttInfoName;
  54 + }
  55 +
  56 + public void setTtInfoName(String ttInfoName) {
  57 + this.ttInfoName = ttInfoName;
  58 + }
49 } 59 }
src/main/java/com/bsth/service/schedule/rules/ttinfo/LpInfoResultsFunction.java
@@ -66,6 +66,7 @@ public class LpInfoResultsFunction implements AccumulateFunction { @@ -66,6 +66,7 @@ public class LpInfoResultsFunction implements AccumulateFunction {
66 lpInfoResult_output.setLpId(String.valueOf(ttInfoDetail.getLp().getId())); 66 lpInfoResult_output.setLpId(String.valueOf(ttInfoDetail.getLp().getId()));
67 lpInfoResult_output.setXlId(String.valueOf(ttInfoDetail.getXl().getId())); 67 lpInfoResult_output.setXlId(String.valueOf(ttInfoDetail.getXl().getId()));
68 lpInfoResult_output.setTtInfoId(String.valueOf(ttInfoDetail.getTtinfo().getId())); 68 lpInfoResult_output.setTtInfoId(String.valueOf(ttInfoDetail.getTtinfo().getId()));
  69 + lpInfoResult_output.setTtInfoName(ttInfoDetail.getTtinfo().getName());
69 70
70 lpInfoResultsData.lpInfoResult_outputMap.put( 71 lpInfoResultsData.lpInfoResult_outputMap.put(
71 ttInfoDetail.getLp().getId(), 72 ttInfoDetail.getLp().getId(),
src/main/java/com/bsth/util/ComparableChild.java 0 → 100644
  1 +package com.bsth.util;
  2 +
  3 +import java.util.Comparator;
  4 +import java.util.List;
  5 +
  6 +import com.bsth.entity.realcontrol.ChildTaskPlan;
  7 +
  8 +public class ComparableChild implements Comparator<ChildTaskPlan>{
  9 +
  10 + @Override
  11 + public int compare(ChildTaskPlan o1, ChildTaskPlan o2) {
  12 + // TODO Auto-generated method stub
  13 + return o1.getStartDate().compareTo(o2.getStartDate());
  14 + }
  15 +
  16 +}
src/main/resources/application-dev.properties
@@ -6,11 +6,11 @@ spring.jpa.hibernate.ddl-auto= update @@ -6,11 +6,11 @@ spring.jpa.hibernate.ddl-auto= update
6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy 6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
7 #DATABASE 7 #DATABASE
8 spring.jpa.database= MYSQL 8 spring.jpa.database= MYSQL
9 -spring.jpa.show-sql= false 9 +spring.jpa.show-sql= true
10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver 10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11 -spring.datasource.url= jdbc:mysql://localhost:3306/qp_control?useUnicode=true&characterEncoding=utf-8&useSSL=false 11 +spring.datasource.url= jdbc:mysql://127.0.0.1:3306/qp_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 spring.datasource.username= root 12 spring.datasource.username= root
13 -spring.datasource.password= root 13 +spring.datasource.password=
14 #DATASOURCE 14 #DATASOURCE
15 spring.datasource.max-active=100 15 spring.datasource.max-active=100
16 spring.datasource.max-idle=8 16 spring.datasource.max-idle=8
src/main/resources/datatools/ktrs/carsDataInput.ktr
@@ -84,27 +84,6 @@ @@ -84,27 +84,6 @@
84 <is_key_private>N</is_key_private> 84 <is_key_private>N</is_key_private>
85 </info> 85 </info>
86 <notepads> 86 <notepads>
87 - <notepad>  
88 - <note>&#x539f;&#x7cfb;&#x7edf;&#x7684;&#x5bfc;&#x51fa;&#x8868;&#xff0c;&#x6709;&#x4e9b;&#x6570;&#x636e;&#x662f;&#x6ca1;&#x6709;&#x7684;&#xff0c;&#x6709;&#x4e9b;&#x6570;&#x636e;&#x4e5f;&#x6709;&#x95ee;&#x9898;&#xff0c;&#x5982;&#x4e0b;&#xa;&#x62a5;&#x5e9f;&#x65e5;&#x671f;&#x53bb;&#x6389;&#xa;&#x8f66;&#x8f86;&#x7f16;&#x7801;&#xff0c;&#x6682;&#x65f6;&#x7528;1&#x4ee3;&#x66ff;&#xa;&#x662f;&#x5426;&#x7535;&#x8f66; &#x6ca1;&#x6709;&#xa;&#x8f66;&#x8f86;&#x5e8f;&#x53f7; &#x6ca1;&#x6709;&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6ca1;&#x6709;&#xa;&#x7ebf;&#x8def;&#x540d;&#x79f0;&#xff08;&#x8fd9;&#x91cc;&#x4e0d;&#x505a;&#x5173;&#x8054;&#xff0c;&#x53ea;&#x662f;&#x767b;&#x8bb0;&#x7684;&#x65f6;&#x5019;&#x4f7f;&#x7528;&#xff09; &#x54a9;&#x6709;&#xa;&#xa;&#x5b57;&#x5178;&#xa;&#x662f;&#x4e0e;&#x5426;truefalseType &#x662f; 1&#xa;&#x662f;&#x4e0e;&#x5426;truefalseType &#x5426; 0&#xa;&#xa;&#xa;&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;snames &#x5df4;&#x58eb;&#x62d3;&#x534e; 1&#xa;&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;snames &#x535a;&#x5eb7; 2&#xa;&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8425;&#x8fd0; 1&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x505c;&#x8fd0; 2&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6302;&#x5931; 3&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8fc1;&#x51fa;&#xff08;&#x8fc7;&#x6237;&#xff09; 4&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8fc1;&#x51fa;&#xff08;&#x8f6c;&#x7c4d;&#xff09; 5&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x62a5;&#x5e9f; 6&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6b47;&#x4e1a; 7&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6ce8;&#x9500; 8&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6d4b;&#x8bd5; 9&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x5176;&#x4ed6; 10&#xa;&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x975e;&#x673a;&#x52a8;&#x8f66; 1&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e00;&#x961f; 2&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e8c;&#x961f; 3&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e09;&#x961f; 4&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x5907;&#x8f66; 5&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x62a2;&#x4fee;&#x8f66; 6&#xa;&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x8425;&#x8fd0;&#x8f66; 1&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5305;&#x8f66; 2&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5b66;&#x6821;&#x73ed;&#x8f66; 3&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x516c;&#x53f8;&#x73ed;&#x8f66; 4&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5f85;&#x62a5;&#x5e9f;&#x8f66; 5&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5907;&#x8f66; 6&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x6d4b;&#x8bd5;&#x8bbe;&#x5907; 7&#xa;&#xa;&#xa;&#xa;</note>  
89 - <xloc>45</xloc>  
90 - <yloc>254</yloc>  
91 - <width>346</width>  
92 - <heigth>730</heigth>  
93 - <fontname>YaHei Consolas Hybrid</fontname>  
94 - <fontsize>12</fontsize>  
95 - <fontbold>N</fontbold>  
96 - <fontitalic>N</fontitalic>  
97 - <fontcolorred>0</fontcolorred>  
98 - <fontcolorgreen>0</fontcolorgreen>  
99 - <fontcolorblue>0</fontcolorblue>  
100 - <backgroundcolorred>255</backgroundcolorred>  
101 - <backgroundcolorgreen>205</backgroundcolorgreen>  
102 - <backgroundcolorblue>112</backgroundcolorblue>  
103 - <bordercolorred>100</bordercolorred>  
104 - <bordercolorgreen>100</bordercolorgreen>  
105 - <bordercolorblue>100</bordercolorblue>  
106 - <drawshadow>Y</drawshadow>  
107 - </notepad>  
108 </notepads> 87 </notepads>
109 <connection> 88 <connection>
110 <name>bus_control_variable</name> 89 <name>bus_control_variable</name>
@@ -268,98 +247,11 @@ @@ -268,98 +247,11 @@
268 </attributes> 247 </attributes>
269 </connection> 248 </connection>
270 <order> 249 <order>
271 - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>  
272 - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x662f;&#x5426;&#x7a7a;&#x8c03;&#x8f66;</to><enabled>Y</enabled> </hop>  
273 - <hop> <from>&#x662f;&#x5426;&#x6709;LED&#x670d;&#x52a1;&#x5c4f;</from><to>&#x662f;&#x5426;&#x6709;TV&#x89c6;&#x9891;</to><enabled>Y</enabled> </hop>  
274 - <hop> <from>&#x662f;&#x5426;&#x6709;TV&#x89c6;&#x9891;</from><to>&#x662f;&#x5426;&#x7684;&#x53d8;&#x6210;&#x6570;&#x5b57;&#x578b;</to><enabled>Y</enabled> </hop>  
275 - <hop> <from>&#x662f;&#x5426;&#x7a7a;&#x8c03;&#x8f66;</from><to>&#x6709;&#x65e0;&#x4eba;&#x552e;&#x7968;</to><enabled>Y</enabled> </hop>  
276 - <hop> <from>&#x6709;&#x65e0;&#x4eba;&#x552e;&#x7968;</from><to>&#x662f;&#x5426;&#x6709;LED&#x670d;&#x52a1;&#x5c4f;</to><enabled>Y</enabled> </hop>  
277 <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop> 250 <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
278 - <hop> <from>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</from><to>&#x8425;&#x8fd0;&#x72b6;&#x6001;</to><enabled>Y</enabled> </hop>  
279 <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop> 251 <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
280 - <hop> <from>&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;</from><to>&#x8f66;&#x8f86;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>  
281 - <hop> <from>&#x8425;&#x8fd0;&#x72b6;&#x6001;</from><to>&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>  
282 - <hop> <from>&#x8f66;&#x8f86;&#x7c7b;&#x578b;</from><to>&#x8f66;&#x8f86;&#x7f16;&#x7801;</to><enabled>Y</enabled> </hop>  
283 - <hop> <from>&#x8f66;&#x8f86;&#x7f16;&#x7801;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>  
284 - <hop> <from>&#x662f;&#x5426;&#x7684;&#x53d8;&#x6210;&#x6570;&#x5b57;&#x578b;</from><to>&#x516c;&#x4ea4;&#x4f01;&#x4e1a;&#x4ee3;&#x7801;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
285 - <hop> <from>&#x516c;&#x4ea4;&#x4f01;&#x4e1a;&#x4ee3;&#x7801;&#x67e5;&#x8be2;</from><to>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</to><enabled>Y</enabled> </hop>  
286 - <hop> <from>&#x662f;&#x5426;&#x7684;&#x53d8;&#x6210;&#x6570;&#x5b57;&#x578b;</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2 2</to><enabled>Y</enabled> </hop> 252 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>
287 </order> 253 </order>
288 <step> 254 <step>
289 - <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>  
290 - <type>ValueMapper</type>  
291 - <description/>  
292 - <distribute>Y</distribute>  
293 - <custom_distribution/>  
294 - <copies>1</copies>  
295 - <partitioning>  
296 - <method>none</method>  
297 - <schema_name/>  
298 - </partitioning>  
299 - <field_to_use>supplierName</field_to_use>  
300 - <target_field/>  
301 - <non_match_default/>  
302 - <fields>  
303 - <field>  
304 - <source_value>&#x5df4;&#x58eb;&#x62d3;&#x534e;</source_value>  
305 - <target_value>1</target_value>  
306 - </field>  
307 - <field>  
308 - <source_value>&#x535a;&#x5eb7;</source_value>  
309 - <target_value>2</target_value>  
310 - </field>  
311 - </fields>  
312 - <cluster_schema/>  
313 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
314 - <xloc>709</xloc>  
315 - <yloc>172</yloc>  
316 - <draw>Y</draw>  
317 - </GUI>  
318 - </step>  
319 -  
320 - <step>  
321 - <name>&#x516c;&#x4ea4;&#x4f01;&#x4e1a;&#x4ee3;&#x7801;&#x67e5;&#x8be2;</name>  
322 - <type>DBLookup</type>  
323 - <description/>  
324 - <distribute>Y</distribute>  
325 - <custom_distribution/>  
326 - <copies>1</copies>  
327 - <partitioning>  
328 - <method>none</method>  
329 - <schema_name/>  
330 - </partitioning>  
331 - <connection>bus_control_variable</connection>  
332 - <cache>N</cache>  
333 - <cache_load_all>N</cache_load_all>  
334 - <cache_size>0</cache_size>  
335 - <lookup>  
336 - <schema/>  
337 - <table>bsth_c_business</table>  
338 - <orderby/>  
339 - <fail_on_multiple>N</fail_on_multiple>  
340 - <eat_row_on_failure>N</eat_row_on_failure>  
341 - <key>  
342 - <name>company</name>  
343 - <field>business_name</field>  
344 - <condition>&#x3d;</condition>  
345 - <name2/>  
346 - </key>  
347 - <value>  
348 - <name>business_code</name>  
349 - <rename>businessCode</rename>  
350 - <default/>  
351 - <type>String</type>  
352 - </value>  
353 - </lookup>  
354 - <cluster_schema/>  
355 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
356 - <xloc>839</xloc>  
357 - <yloc>169</yloc>  
358 - <draw>Y</draw>  
359 - </GUI>  
360 - </step>  
361 -  
362 - <step>  
363 <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name> 255 <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
364 <type>ExcelInput</type> 256 <type>ExcelInput</type>
365 <description/> 257 <description/>
@@ -418,7 +310,7 @@ @@ -418,7 +310,7 @@
418 <group/> 310 <group/>
419 </field> 311 </field>
420 <field> 312 <field>
421 - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name> 313 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
422 <type>String</type> 314 <type>String</type>
423 <length>-1</length> 315 <length>-1</length>
424 <precision>-1</precision> 316 <precision>-1</precision>
@@ -430,7 +322,7 @@ @@ -430,7 +322,7 @@
430 <group/> 322 <group/>
431 </field> 323 </field>
432 <field> 324 <field>
433 - <name>&#x8f66;&#x578b;&#x7c7b;&#x522b;</name> 325 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
434 <type>String</type> 326 <type>String</type>
435 <length>-1</length> 327 <length>-1</length>
436 <precision>-1</precision> 328 <precision>-1</precision>
@@ -442,7 +334,7 @@ @@ -442,7 +334,7 @@
442 <group/> 334 <group/>
443 </field> 335 </field>
444 <field> 336 <field>
445 - <name>&#x5ea7;&#x4f4d;&#x6570;</name> 337 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
446 <type>String</type> 338 <type>String</type>
447 <length>-1</length> 339 <length>-1</length>
448 <precision>-1</precision> 340 <precision>-1</precision>
@@ -454,7 +346,7 @@ @@ -454,7 +346,7 @@
454 <group/> 346 <group/>
455 </field> 347 </field>
456 <field> 348 <field>
457 - <name>&#x8f7d;&#x5ba2;&#x6807;&#x51c6;</name> 349 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
458 <type>String</type> 350 <type>String</type>
459 <length>-1</length> 351 <length>-1</length>
460 <precision>-1</precision> 352 <precision>-1</precision>
@@ -466,7 +358,7 @@ @@ -466,7 +358,7 @@
466 <group/> 358 <group/>
467 </field> 359 </field>
468 <field> 360 <field>
469 - <name>&#x6280;&#x672f;&#x901f;&#x5ea6;</name> 361 + <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>
470 <type>String</type> 362 <type>String</type>
471 <length>-1</length> 363 <length>-1</length>
472 <precision>-1</precision> 364 <precision>-1</precision>
@@ -478,7 +370,7 @@ @@ -478,7 +370,7 @@
478 <group/> 370 <group/>
479 </field> 371 </field>
480 <field> 372 <field>
481 - <name>&#x662f;&#x5426;&#x7a7a;&#x8c03;</name> 373 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
482 <type>String</type> 374 <type>String</type>
483 <length>-1</length> 375 <length>-1</length>
484 <precision>-1</precision> 376 <precision>-1</precision>
@@ -489,1644 +381,246 @@ @@ -489,1644 +381,246 @@
489 <decimal/> 381 <decimal/>
490 <group/> 382 <group/>
491 </field> 383 </field>
  384 + </fields>
  385 + <sheets>
  386 + <sheet>
  387 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  388 + <startrow>0</startrow>
  389 + <startcol>0</startcol>
  390 + </sheet>
  391 + </sheets>
  392 + <strict_types>N</strict_types>
  393 + <error_ignored>N</error_ignored>
  394 + <error_line_skipped>N</error_line_skipped>
  395 + <bad_line_files_destination_directory/>
  396 + <bad_line_files_extension>warning</bad_line_files_extension>
  397 + <error_line_files_destination_directory/>
  398 + <error_line_files_extension>error</error_line_files_extension>
  399 + <line_number_files_destination_directory/>
  400 + <line_number_files_extension>line</line_number_files_extension>
  401 + <shortFileFieldName/>
  402 + <pathFieldName/>
  403 + <hiddenFieldName/>
  404 + <lastModificationTimeFieldName/>
  405 + <uriNameFieldName/>
  406 + <rootUriNameFieldName/>
  407 + <extensionFieldName/>
  408 + <sizeFieldName/>
  409 + <spreadsheet_type>JXL</spreadsheet_type>
  410 + <cluster_schema/>
  411 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  412 + <xloc>131</xloc>
  413 + <yloc>58</yloc>
  414 + <draw>Y</draw>
  415 + </GUI>
  416 + </step>
  417 +
  418 + <step>
  419 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>
  420 + <type>InsertUpdate</type>
  421 + <description/>
  422 + <distribute>Y</distribute>
  423 + <custom_distribution/>
  424 + <copies>1</copies>
  425 + <partitioning>
  426 + <method>none</method>
  427 + <schema_name/>
  428 + </partitioning>
  429 + <connection>bus_control_variable</connection>
  430 + <commit>1000</commit>
  431 + <update_bypassed>N</update_bypassed>
  432 + <lookup>
  433 + <schema/>
  434 + <table>bsth_c_cars</table>
  435 + <key>
  436 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  437 + <field>business_code</field>
  438 + <condition>&#x3d;</condition>
  439 + <name2/>
  440 + </key>
  441 + <key>
  442 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  443 + <field>inside_code</field>
  444 + <condition>&#x3d;</condition>
  445 + <name2/>
  446 + </key>
  447 + <value>
  448 + <name>car_gride</name>
  449 + <rename>&#x8f66;&#x724c;&#x53f7;</rename>
  450 + <update>Y</update>
  451 + </value>
  452 + <value>
  453 + <name>inside_code</name>
  454 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  455 + <update>Y</update>
  456 + </value>
  457 + <value>
  458 + <name>car_code</name>
  459 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  460 + <update>Y</update>
  461 + </value>
  462 + <value>
  463 + <name>company</name>
  464 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
  465 + <update>Y</update>
  466 + </value>
  467 + <value>
  468 + <name>business_code</name>
  469 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  470 + <update>Y</update>
  471 + </value>
  472 + <value>
  473 + <name>branche_company</name>
  474 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
  475 + <update>Y</update>
  476 + </value>
  477 + <value>
  478 + <name>branche_company_code</name>
  479 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  480 + <update>Y</update>
  481 + </value>
  482 + <value>
  483 + <name>supplier_name</name>
  484 + <rename>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</rename>
  485 + <update>Y</update>
  486 + </value>
  487 + <value>
  488 + <name>equipment_code</name>
  489 + <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
  490 + <update>Y</update>
  491 + </value>
  492 + </lookup>
  493 + <cluster_schema/>
  494 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  495 + <xloc>516</xloc>
  496 + <yloc>138</yloc>
  497 + <draw>Y</draw>
  498 + </GUI>
  499 + </step>
  500 +
  501 + <step>
  502 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  503 + <type>GetVariable</type>
  504 + <description/>
  505 + <distribute>Y</distribute>
  506 + <custom_distribution/>
  507 + <copies>1</copies>
  508 + <partitioning>
  509 + <method>none</method>
  510 + <schema_name/>
  511 + </partitioning>
  512 + <fields>
492 <field> 513 <field>
493 - <name>&#x6807;&#x51c6;&#x6cb9;&#x8017;&#x28;&#x5f00;&#x7a7a;&#x8c03;&#x29;</name> 514 + <name>filepath_</name>
  515 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
494 <type>String</type> 516 <type>String</type>
495 - <length>-1</length>  
496 - <precision>-1</precision>  
497 - <trim_type>none</trim_type>  
498 - <repeat>N</repeat>  
499 <format/> 517 <format/>
500 <currency/> 518 <currency/>
501 <decimal/> 519 <decimal/>
502 <group/> 520 <group/>
503 - </field>  
504 - <field>  
505 - <name>&#x6807;&#x51c6;&#x6cb9;&#x8017;&#x28;&#x5173;&#x7a7a;&#x8c03;&#x29;</name>  
506 - <type>String</type>  
507 <length>-1</length> 521 <length>-1</length>
508 <precision>-1</precision> 522 <precision>-1</precision>
509 <trim_type>none</trim_type> 523 <trim_type>none</trim_type>
510 - <repeat>N</repeat>  
511 - <format/>  
512 - <currency/>  
513 - <decimal/>  
514 - <group/>  
515 </field> 524 </field>
516 <field> 525 <field>
517 - <name>&#x6709;&#x65e0;&#x4eba;&#x552e;&#x7968;</name> 526 + <name>erroroutputdir_</name>
  527 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
518 <type>String</type> 528 <type>String</type>
519 - <length>-1</length>  
520 - <precision>-1</precision>  
521 - <trim_type>none</trim_type>  
522 - <repeat>N</repeat>  
523 <format/> 529 <format/>
524 <currency/> 530 <currency/>
525 <decimal/> 531 <decimal/>
526 <group/> 532 <group/>
527 - </field>  
528 - <field>  
529 - <name>&#x662f;&#x5426;&#x6709;TV&#x89c6;&#x9891;</name>  
530 - <type>String</type>  
531 <length>-1</length> 533 <length>-1</length>
532 <precision>-1</precision> 534 <precision>-1</precision>
533 <trim_type>none</trim_type> 535 <trim_type>none</trim_type>
534 - <repeat>N</repeat> 536 + </field>
  537 + </fields>
  538 + <cluster_schema/>
  539 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  540 + <xloc>134</xloc>
  541 + <yloc>183</yloc>
  542 + <draw>Y</draw>
  543 + </GUI>
  544 + </step>
  545 +
  546 + <step>
  547 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
  548 + <type>ExcelOutput</type>
  549 + <description/>
  550 + <distribute>Y</distribute>
  551 + <custom_distribution/>
  552 + <copies>1</copies>
  553 + <partitioning>
  554 + <method>none</method>
  555 + <schema_name/>
  556 + </partitioning>
  557 + <header>Y</header>
  558 + <footer>N</footer>
  559 + <encoding/>
  560 + <append>N</append>
  561 + <add_to_result_filenames>Y</add_to_result_filenames>
  562 + <file>
  563 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>
  564 + <extention>xls</extention>
  565 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  566 + <create_parent_folder>N</create_parent_folder>
  567 + <split>N</split>
  568 + <add_date>N</add_date>
  569 + <add_time>N</add_time>
  570 + <SpecifyFormat>N</SpecifyFormat>
  571 + <date_time_format/>
  572 + <sheetname>Sheet1</sheetname>
  573 + <autosizecolums>N</autosizecolums>
  574 + <nullisblank>N</nullisblank>
  575 + <protect_sheet>N</protect_sheet>
  576 + <password>Encrypted </password>
  577 + <splitevery>0</splitevery>
  578 + <usetempfiles>N</usetempfiles>
  579 + <tempdirectory/>
  580 + </file>
  581 + <template>
  582 + <enabled>N</enabled>
  583 + <append>N</append>
  584 + <filename>template.xls</filename>
  585 + </template>
  586 + <fields>
  587 + <field>
  588 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  589 + <type>String</type>
535 <format/> 590 <format/>
536 - <currency/>  
537 - <decimal/>  
538 - <group/>  
539 </field> 591 </field>
540 <field> 592 <field>
541 - <name>&#x662f;&#x5426;&#x6709;LED&#x670d;&#x52a1;&#x5c4f;</name> 593 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
542 <type>String</type> 594 <type>String</type>
543 - <length>-1</length>  
544 - <precision>-1</precision>  
545 - <trim_type>none</trim_type>  
546 - <repeat>N</repeat>  
547 <format/> 595 <format/>
548 - <currency/>  
549 - <decimal/>  
550 - <group/>  
551 </field> 596 </field>
552 <field> 597 <field>
553 - <name>&#x8fd0;&#x8425;&#x72b6;&#x6001;</name>  
554 - <type>String</type>  
555 - <length>-1</length>  
556 - <precision>-1</precision>  
557 - <trim_type>none</trim_type>  
558 - <repeat>N</repeat>  
559 - <format/>  
560 - <currency/>  
561 - <decimal/>  
562 - <group/>  
563 - </field>  
564 - <field>  
565 - <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
566 - <type>String</type>  
567 - <length>-1</length>  
568 - <precision>-1</precision>  
569 - <trim_type>none</trim_type>  
570 - <repeat>N</repeat>  
571 - <format/>  
572 - <currency/>  
573 - <decimal/>  
574 - <group/>  
575 - </field>  
576 - <field>  
577 - <name>&#x53d6;&#x6d88;&#x65e5;&#x671f;</name>  
578 - <type>String</type>  
579 - <length>-1</length>  
580 - <precision>-1</precision>  
581 - <trim_type>none</trim_type>  
582 - <repeat>N</repeat>  
583 - <format/>  
584 - <currency/>  
585 - <decimal/>  
586 - <group/>  
587 - </field>  
588 - <field>  
589 - <name>&#x62a5;&#x5e9f;&#x53f7;</name>  
590 - <type>String</type>  
591 - <length>-1</length>  
592 - <precision>-1</precision>  
593 - <trim_type>none</trim_type>  
594 - <repeat>N</repeat>  
595 - <format/>  
596 - <currency/>  
597 - <decimal/>  
598 - <group/>  
599 - </field>  
600 - <field>  
601 - <name>&#x62a5;&#x5e9f;&#x65e5;&#x671f;</name>  
602 - <type>String</type>  
603 - <length>-1</length>  
604 - <precision>-1</precision>  
605 - <trim_type>none</trim_type>  
606 - <repeat>N</repeat>  
607 - <format/>  
608 - <currency/>  
609 - <decimal/>  
610 - <group/>  
611 - </field>  
612 - <field>  
613 - <name>&#x5907;&#x6ce8;</name>  
614 - <type>String</type>  
615 - <length>-1</length>  
616 - <precision>-1</precision>  
617 - <trim_type>none</trim_type>  
618 - <repeat>N</repeat>  
619 - <format/>  
620 - <currency/>  
621 - <decimal/>  
622 - <group/>  
623 - </field>  
624 - <field>  
625 - <name>&#x8bbe;&#x5907;&#x7f16;&#x53f7;</name>  
626 - <type>String</type>  
627 - <length>-1</length>  
628 - <precision>-1</precision>  
629 - <trim_type>none</trim_type>  
630 - <repeat>N</repeat>  
631 - <format/>  
632 - <currency/>  
633 - <decimal/>  
634 - <group/>  
635 - </field>  
636 - <field>  
637 - <name>&#x5382;&#x724c;&#x578b;&#x53f7;</name>  
638 - <type>String</type>  
639 - <length>-1</length>  
640 - <precision>-1</precision>  
641 - <trim_type>none</trim_type>  
642 - <repeat>N</repeat>  
643 - <format/>  
644 - <currency/>  
645 - <decimal/>  
646 - <group/>  
647 - </field>  
648 - <field>  
649 - <name>&#x5382;&#x724c;&#x578b;&#x53f7;2</name>  
650 - <type>String</type>  
651 - <length>-1</length>  
652 - <precision>-1</precision>  
653 - <trim_type>none</trim_type>  
654 - <repeat>N</repeat>  
655 - <format/>  
656 - <currency/>  
657 - <decimal/>  
658 - <group/>  
659 - </field>  
660 - <field>  
661 - <name>&#x8f66;&#x8f86;&#x7b49;&#x7ea7;&#x6807;&#x51c6;</name>  
662 - <type>String</type>  
663 - <length>-1</length>  
664 - <precision>-1</precision>  
665 - <trim_type>none</trim_type>  
666 - <repeat>N</repeat>  
667 - <format/>  
668 - <currency/>  
669 - <decimal/>  
670 - <group/>  
671 - </field>  
672 - <field>  
673 - <name>&#x51fa;&#x5382;&#x6392;&#x653e;&#x6807;&#x51c6;</name>  
674 - <type>String</type>  
675 - <length>-1</length>  
676 - <precision>-1</precision>  
677 - <trim_type>none</trim_type>  
678 - <repeat>N</repeat>  
679 - <format/>  
680 - <currency/>  
681 - <decimal/>  
682 - <group/>  
683 - </field>  
684 - <field>  
685 - <name>&#x53d1;&#x52a8;&#x673a;&#x53f7;&#x7801;1</name>  
686 - <type>String</type>  
687 - <length>-1</length>  
688 - <precision>-1</precision>  
689 - <trim_type>none</trim_type>  
690 - <repeat>N</repeat>  
691 - <format/>  
692 - <currency/>  
693 - <decimal/>  
694 - <group/>  
695 - </field>  
696 - <field>  
697 - <name>&#x53d1;&#x52a8;&#x673a;&#x53f7;&#x7801;2</name>  
698 - <type>String</type>  
699 - <length>-1</length>  
700 - <precision>-1</precision>  
701 - <trim_type>none</trim_type>  
702 - <repeat>N</repeat>  
703 - <format/>  
704 - <currency/>  
705 - <decimal/>  
706 - <group/>  
707 - </field>  
708 - <field>  
709 - <name>&#x8f66;&#x67b6;&#x53f7;&#x7801;1</name>  
710 - <type>String</type>  
711 - <length>-1</length>  
712 - <precision>-1</precision>  
713 - <trim_type>none</trim_type>  
714 - <repeat>N</repeat>  
715 - <format/>  
716 - <currency/>  
717 - <decimal/>  
718 - <group/>  
719 - </field>  
720 - <field>  
721 - <name>&#x8f66;&#x67b6;&#x53f7;&#x7801;2</name>  
722 - <type>String</type>  
723 - <length>-1</length>  
724 - <precision>-1</precision>  
725 - <trim_type>none</trim_type>  
726 - <repeat>N</repeat>  
727 - <format/>  
728 - <currency/>  
729 - <decimal/>  
730 - <group/>  
731 - </field>  
732 - <field>  
733 - <name>&#x8f66;&#x8f86;&#x7c7b;&#x578b;</name>  
734 - <type>String</type>  
735 - <length>-1</length>  
736 - <precision>-1</precision>  
737 - <trim_type>none</trim_type>  
738 - <repeat>N</repeat>  
739 - <format/>  
740 - <currency/>  
741 - <decimal/>  
742 - <group/>  
743 - </field>  
744 - <field>  
745 - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>  
746 - <type>String</type>  
747 - <length>-1</length>  
748 - <precision>-1</precision>  
749 - <trim_type>none</trim_type>  
750 - <repeat>N</repeat>  
751 - <format/>  
752 - <currency/>  
753 - <decimal/>  
754 - <group/>  
755 - </field>  
756 - <field>  
757 - <name>&#x4fee;&#x6539;&#x65e5;&#x671f;</name>  
758 - <type>String</type>  
759 - <length>-1</length>  
760 - <precision>-1</precision>  
761 - <trim_type>none</trim_type>  
762 - <repeat>N</repeat>  
763 - <format/>  
764 - <currency/>  
765 - <decimal/>  
766 - <group/>  
767 - </field>  
768 - <field>  
769 - <name>&#x662f;&#x5426;&#x673a;&#x52a8;&#x8f66;</name>  
770 - <type>String</type>  
771 - <length>-1</length>  
772 - <precision>-1</precision>  
773 - <trim_type>none</trim_type>  
774 - <repeat>N</repeat>  
775 - <format/>  
776 - <currency/>  
777 - <decimal/>  
778 - <group/>  
779 - </field>  
780 - <field>  
781 - <name>&#x89c6;&#x9891;&#x7f16;&#x53f7;</name>  
782 - <type>String</type>  
783 - <length>-1</length>  
784 - <precision>-1</precision>  
785 - <trim_type>none</trim_type>  
786 - <repeat>N</repeat>  
787 - <format/>  
788 - <currency/>  
789 - <decimal/>  
790 - <group/>  
791 - </field>  
792 - <field>  
793 - <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>  
794 - <type>String</type>  
795 - <length>-1</length>  
796 - <precision>-1</precision>  
797 - <trim_type>none</trim_type>  
798 - <repeat>N</repeat>  
799 - <format/>  
800 - <currency/>  
801 - <decimal/>  
802 - <group/>  
803 - </field>  
804 - <field>  
805 - <name>&#x5206;&#x516c;&#x53f8;</name>  
806 - <type>String</type>  
807 - <length>-1</length>  
808 - <precision>-1</precision>  
809 - <trim_type>none</trim_type>  
810 - <repeat>N</repeat>  
811 - <format/>  
812 - <currency/>  
813 - <decimal/>  
814 - <group/>  
815 - </field>  
816 - </fields>  
817 - <sheets>  
818 - <sheet>  
819 - <name>&#x5de5;&#x4f5c;&#x8868;1</name>  
820 - <startrow>0</startrow>  
821 - <startcol>0</startcol>  
822 - </sheet>  
823 - </sheets>  
824 - <strict_types>N</strict_types>  
825 - <error_ignored>N</error_ignored>  
826 - <error_line_skipped>N</error_line_skipped>  
827 - <bad_line_files_destination_directory/>  
828 - <bad_line_files_extension>warning</bad_line_files_extension>  
829 - <error_line_files_destination_directory/>  
830 - <error_line_files_extension>error</error_line_files_extension>  
831 - <line_number_files_destination_directory/>  
832 - <line_number_files_extension>line</line_number_files_extension>  
833 - <shortFileFieldName/>  
834 - <pathFieldName/>  
835 - <hiddenFieldName/>  
836 - <lastModificationTimeFieldName/>  
837 - <uriNameFieldName/>  
838 - <rootUriNameFieldName/>  
839 - <extensionFieldName/>  
840 - <sizeFieldName/>  
841 - <spreadsheet_type>JXL</spreadsheet_type>  
842 - <cluster_schema/>  
843 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
844 - <xloc>131</xloc>  
845 - <yloc>58</yloc>  
846 - <draw>Y</draw>  
847 - </GUI>  
848 - </step>  
849 -  
850 - <step>  
851 - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>  
852 - <type>SelectValues</type>  
853 - <description/>  
854 - <distribute>Y</distribute>  
855 - <custom_distribution/>  
856 - <copies>1</copies>  
857 - <partitioning>  
858 - <method>none</method>  
859 - <schema_name/>  
860 - </partitioning>  
861 - <fields> <field> <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
862 - <rename>insideCode</rename>  
863 - <length>-2</length>  
864 - <precision>-2</precision>  
865 - </field> <field> <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>  
866 - <rename>carCode</rename>  
867 - <length>-2</length>  
868 - <precision>-2</precision>  
869 - </field> <field> <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>  
870 - <rename>company</rename>  
871 - <length>-2</length>  
872 - <precision>-2</precision>  
873 - </field> <field> <name>&#x5206;&#x516c;&#x53f8;</name>  
874 - <rename>brancheCompany</rename>  
875 - <length>-2</length>  
876 - <precision>-2</precision>  
877 - </field> <field> <name>&#x8f66;&#x724c;&#x53f7;</name>  
878 - <rename>carPlate</rename>  
879 - <length>-2</length>  
880 - <precision>-2</precision>  
881 - </field> <field> <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>  
882 - <rename>supplierName</rename>  
883 - <length>-2</length>  
884 - <precision>-2</precision>  
885 - </field> <field> <name>&#x8bbe;&#x5907;&#x7f16;&#x53f7;</name>  
886 - <rename>equipmentCode</rename>  
887 - <length>-2</length>  
888 - <precision>-2</precision>  
889 - </field> <field> <name>&#x8f66;&#x578b;&#x7c7b;&#x522b;</name>  
890 - <rename>carClass</rename>  
891 - <length>-2</length>  
892 - <precision>-2</precision>  
893 - </field> <field> <name>&#x6280;&#x672f;&#x901f;&#x5ea6;</name>  
894 - <rename>speed</rename>  
895 - <length>-2</length>  
896 - <precision>-2</precision>  
897 - </field> <field> <name>&#x5ea7;&#x4f4d;&#x6570;</name>  
898 - <rename>carSeatnNumber</rename>  
899 - <length>-2</length>  
900 - <precision>-2</precision>  
901 - </field> <field> <name>&#x8f7d;&#x5ba2;&#x6807;&#x51c6;</name>  
902 - <rename>carStandard</rename>  
903 - <length>-2</length>  
904 - <precision>-2</precision>  
905 - </field> <field> <name>&#x6807;&#x51c6;&#x6cb9;&#x8017;&#x28;&#x5f00;&#x7a7a;&#x8c03;&#x29;</name>  
906 - <rename>kburnStandard</rename>  
907 - <length>-2</length>  
908 - <precision>-2</precision>  
909 - </field> <field> <name>&#x6807;&#x51c6;&#x6cb9;&#x8017;&#x28;&#x5173;&#x7a7a;&#x8c03;&#x29;</name>  
910 - <rename>gburnStandard</rename>  
911 - <length>-2</length>  
912 - <precision>-2</precision>  
913 - </field> <field> <name>&#x62a5;&#x5e9f;&#x53f7;</name>  
914 - <rename>scrapCode</rename>  
915 - <length>-2</length>  
916 - <precision>-2</precision>  
917 - </field> <field> <name>&#x5382;&#x724c;&#x578b;&#x53f7;</name>  
918 - <rename>makeCodeOne</rename>  
919 - <length>-2</length>  
920 - <precision>-2</precision>  
921 - </field> <field> <name>&#x5382;&#x724c;&#x578b;&#x53f7;2</name>  
922 - <rename>makeCodeTwo</rename>  
923 - <length>-2</length>  
924 - <precision>-2</precision>  
925 - </field> <field> <name>&#x8f66;&#x8f86;&#x7b49;&#x7ea7;&#x6807;&#x51c6;</name>  
926 - <rename>carGride</rename>  
927 - <length>-2</length>  
928 - <precision>-2</precision>  
929 - </field> <field> <name>&#x51fa;&#x5382;&#x6392;&#x653e;&#x6807;&#x51c6;</name>  
930 - <rename>emissionsStandard</rename>  
931 - <length>-2</length>  
932 - <precision>-2</precision>  
933 - </field> <field> <name>&#x53d1;&#x52a8;&#x673a;&#x53f7;&#x7801;1</name>  
934 - <rename>engineCodeOne</rename>  
935 - <length>-2</length>  
936 - <precision>-2</precision>  
937 - </field> <field> <name>&#x53d1;&#x52a8;&#x673a;&#x53f7;&#x7801;2</name>  
938 - <rename>engineCodeTwo</rename>  
939 - <length>-2</length>  
940 - <precision>-2</precision>  
941 - </field> <field> <name>&#x8f66;&#x67b6;&#x53f7;&#x7801;1</name>  
942 - <rename>carNumberOne</rename>  
943 - <length>-2</length>  
944 - <precision>-2</precision>  
945 - </field> <field> <name>&#x8f66;&#x67b6;&#x53f7;&#x7801;2</name>  
946 - <rename>carNumberTwo</rename>  
947 - <length>-2</length>  
948 - <precision>-2</precision>  
949 - </field> <field> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
950 - <rename>openDate</rename>  
951 - <length>-2</length>  
952 - <precision>-2</precision>  
953 - </field> <field> <name>&#x53d6;&#x6d88;&#x65e5;&#x671f;</name>  
954 - <rename>closeDate</rename>  
955 - <length>-2</length>  
956 - <precision>-2</precision>  
957 - </field> <field> <name>&#x662f;&#x5426;&#x7a7a;&#x8c03;</name>  
958 - <rename>hvacCar</rename>  
959 - <length>-2</length>  
960 - <precision>-2</precision>  
961 - </field> <field> <name>&#x6709;&#x65e0;&#x4eba;&#x552e;&#x7968;</name>  
962 - <rename>ticketType</rename>  
963 - <length>-2</length>  
964 - <precision>-2</precision>  
965 - </field> <field> <name>&#x662f;&#x5426;&#x6709;LED&#x670d;&#x52a1;&#x5c4f;</name>  
966 - <rename>ledScreen</rename>  
967 - <length>-2</length>  
968 - <precision>-2</precision>  
969 - </field> <field> <name>&#x662f;&#x5426;&#x6709;TV&#x89c6;&#x9891;</name>  
970 - <rename>tvVideoType</rename>  
971 - <length>-2</length>  
972 - <precision>-2</precision>  
973 - </field> <field> <name>&#x8f66;&#x8f86;&#x7c7b;&#x578b;</name>  
974 - <rename>carType</rename>  
975 - <length>-2</length>  
976 - <precision>-2</precision>  
977 - </field> <field> <name>&#x662f;&#x5426;&#x673a;&#x52a8;&#x8f66;</name>  
978 - <rename>vehicleStats</rename>  
979 - <length>-2</length>  
980 - <precision>-2</precision>  
981 - </field> <field> <name>&#x8fd0;&#x8425;&#x72b6;&#x6001;</name>  
982 - <rename>operatorsState</rename>  
983 - <length>-2</length>  
984 - <precision>-2</precision>  
985 - </field> <field> <name>&#x5907;&#x6ce8;</name>  
986 - <rename>descriptions</rename>  
987 - <length>-2</length>  
988 - <precision>-2</precision>  
989 - </field> <field> <name>&#x89c6;&#x9891;&#x7f16;&#x53f7;</name>  
990 - <rename>videoCode</rename>  
991 - <length>-2</length>  
992 - <precision>-2</precision>  
993 - </field> <select_unspecified>Y</select_unspecified>  
994 - </fields> <cluster_schema/>  
995 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
996 - <xloc>279</xloc>  
997 - <yloc>59</yloc>  
998 - <draw>Y</draw>  
999 - </GUI>  
1000 - </step>  
1001 -  
1002 - <step>  
1003 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>  
1004 - <type>InsertUpdate</type>  
1005 - <description/>  
1006 - <distribute>Y</distribute>  
1007 - <custom_distribution/>  
1008 - <copies>1</copies>  
1009 - <partitioning>  
1010 - <method>none</method>  
1011 - <schema_name/>  
1012 - </partitioning>  
1013 - <connection>bus_control_variable</connection>  
1014 - <commit>1000</commit>  
1015 - <update_bypassed>N</update_bypassed>  
1016 - <lookup>  
1017 - <schema/>  
1018 - <table>bsth_c_cars</table>  
1019 - <key>  
1020 - <name>businessCode</name>  
1021 - <field>business_code</field>  
1022 - <condition>&#x3d;</condition>  
1023 - <name2/>  
1024 - </key>  
1025 - <key>  
1026 - <name>insideCode</name>  
1027 - <field>inside_code</field>  
1028 - <condition>&#x3d;</condition>  
1029 - <name2/>  
1030 - </key>  
1031 - <value>  
1032 - <name>inside_code</name>  
1033 - <rename>insideCode</rename>  
1034 - <update>Y</update>  
1035 - </value>  
1036 - <value>  
1037 - <name>company</name>  
1038 - <rename>company</rename>  
1039 - <update>Y</update>  
1040 - </value>  
1041 - <value>  
1042 - <name>branche_company</name>  
1043 - <rename>brancheCompany</rename>  
1044 - <update>Y</update>  
1045 - </value>  
1046 - <value>  
1047 - <name>car_plate</name>  
1048 - <rename>carPlate</rename>  
1049 - <update>Y</update>  
1050 - </value>  
1051 - <value>  
1052 - <name>supplier_name</name>  
1053 - <rename>supplierName</rename>  
1054 - <update>Y</update>  
1055 - </value>  
1056 - <value>  
1057 - <name>equipment_code</name>  
1058 - <rename>equipmentCode</rename>  
1059 - <update>Y</update>  
1060 - </value>  
1061 - <value>  
1062 - <name>car_class</name>  
1063 - <rename>carClass</rename>  
1064 - <update>Y</update>  
1065 - </value>  
1066 - <value>  
1067 - <name>speed</name>  
1068 - <rename>speed</rename>  
1069 - <update>Y</update>  
1070 - </value>  
1071 - <value>  
1072 - <name>car_seatn_number</name>  
1073 - <rename>carSeatnNumber</rename>  
1074 - <update>Y</update>  
1075 - </value>  
1076 - <value>  
1077 - <name>car_standard</name>  
1078 - <rename>carStandard</rename>  
1079 - <update>Y</update>  
1080 - </value>  
1081 - <value>  
1082 - <name>car_code</name>  
1083 - <rename>carCode</rename>  
1084 - <update>Y</update>  
1085 - </value>  
1086 - <value>  
1087 - <name>kburn_standard</name>  
1088 - <rename>kburnStandard</rename>  
1089 - <update>Y</update>  
1090 - </value>  
1091 - <value>  
1092 - <name>gburn_standard</name>  
1093 - <rename>gburnStandard</rename>  
1094 - <update>Y</update>  
1095 - </value>  
1096 - <value>  
1097 - <name>scrap_code</name>  
1098 - <rename>scrapCode</rename>  
1099 - <update>Y</update>  
1100 - </value>  
1101 - <value>  
1102 - <name>make_code_one</name>  
1103 - <rename>makeCodeOne</rename>  
1104 - <update>Y</update>  
1105 - </value>  
1106 - <value>  
1107 - <name>make_code_two</name>  
1108 - <rename>makeCodeTwo</rename>  
1109 - <update>Y</update>  
1110 - </value>  
1111 - <value>  
1112 - <name>car_gride</name>  
1113 - <rename>carGride</rename>  
1114 - <update>Y</update>  
1115 - </value>  
1116 - <value>  
1117 - <name>emissions_standard</name>  
1118 - <rename>emissionsStandard</rename>  
1119 - <update>Y</update>  
1120 - </value>  
1121 - <value>  
1122 - <name>engine_code_one</name>  
1123 - <rename>engineCodeOne</rename>  
1124 - <update>Y</update>  
1125 - </value>  
1126 - <value>  
1127 - <name>engine_code_two</name>  
1128 - <rename>engineCodeTwo</rename>  
1129 - <update>Y</update>  
1130 - </value>  
1131 - <value>  
1132 - <name>car_number_one</name>  
1133 - <rename>carNumberOne</rename>  
1134 - <update>Y</update>  
1135 - </value>  
1136 - <value>  
1137 - <name>car_number_two</name>  
1138 - <rename>carNumberTwo</rename>  
1139 - <update>Y</update>  
1140 - </value>  
1141 - <value>  
1142 - <name>open_date</name>  
1143 - <rename>openDate</rename>  
1144 - <update>Y</update>  
1145 - </value>  
1146 - <value>  
1147 - <name>close_date</name>  
1148 - <rename>closeDate</rename>  
1149 - <update>Y</update>  
1150 - </value>  
1151 - <value>  
1152 - <name>hvac_car</name>  
1153 - <rename>hvacCar</rename>  
1154 - <update>Y</update>  
1155 - </value>  
1156 - <value>  
1157 - <name>ticket_type</name>  
1158 - <rename>ticketType</rename>  
1159 - <update>Y</update>  
1160 - </value>  
1161 - <value>  
1162 - <name>led_screen</name>  
1163 - <rename>ledScreen</rename>  
1164 - <update>Y</update>  
1165 - </value>  
1166 - <value>  
1167 - <name>tv_video_type</name>  
1168 - <rename>tvVideoType</rename>  
1169 - <update>Y</update>  
1170 - </value>  
1171 - <value>  
1172 - <name>car_type</name>  
1173 - <rename>carType</rename>  
1174 - <update>Y</update>  
1175 - </value>  
1176 - <value>  
1177 - <name>vehicle_stats</name>  
1178 - <rename>vehicleStats</rename>  
1179 - <update>Y</update>  
1180 - </value>  
1181 - <value>  
1182 - <name>operators_state</name>  
1183 - <rename>operatorsState</rename>  
1184 - <update>Y</update>  
1185 - </value>  
1186 - <value>  
1187 - <name>descriptions</name>  
1188 - <rename>descriptions</rename>  
1189 - <update>Y</update>  
1190 - </value>  
1191 - <value>  
1192 - <name>video_code</name>  
1193 - <rename>videoCode</rename>  
1194 - <update>Y</update>  
1195 - </value>  
1196 - <value>  
1197 - <name>business_code</name>  
1198 - <rename>businessCode</rename>  
1199 - <update>Y</update>  
1200 - </value>  
1201 - </lookup>  
1202 - <cluster_schema/>  
1203 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1204 - <xloc>821</xloc>  
1205 - <yloc>362</yloc>  
1206 - <draw>Y</draw>  
1207 - </GUI>  
1208 - </step>  
1209 -  
1210 - <step>  
1211 - <name>&#x662f;&#x5426;&#x6709;LED&#x670d;&#x52a1;&#x5c4f;</name>  
1212 - <type>ValueMapper</type>  
1213 - <description/>  
1214 - <distribute>Y</distribute>  
1215 - <custom_distribution/>  
1216 - <copies>1</copies>  
1217 - <partitioning>  
1218 - <method>none</method>  
1219 - <schema_name/>  
1220 - </partitioning>  
1221 - <field_to_use>ledScreen</field_to_use>  
1222 - <target_field/>  
1223 - <non_match_default/>  
1224 - <fields>  
1225 - <field>  
1226 - <source_value>&#x662f;</source_value>  
1227 - <target_value>1</target_value>  
1228 - </field>  
1229 - <field>  
1230 - <source_value>&#x5426;</source_value>  
1231 - <target_value>0</target_value>  
1232 - </field>  
1233 - </fields>  
1234 - <cluster_schema/>  
1235 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1236 - <xloc>590</xloc>  
1237 - <yloc>61</yloc>  
1238 - <draw>Y</draw>  
1239 - </GUI>  
1240 - </step>  
1241 -  
1242 - <step>  
1243 - <name>&#x662f;&#x5426;&#x6709;TV&#x89c6;&#x9891;</name>  
1244 - <type>ValueMapper</type>  
1245 - <description/>  
1246 - <distribute>Y</distribute>  
1247 - <custom_distribution/>  
1248 - <copies>1</copies>  
1249 - <partitioning>  
1250 - <method>none</method>  
1251 - <schema_name/>  
1252 - </partitioning>  
1253 - <field_to_use>tvVideoType</field_to_use>  
1254 - <target_field/>  
1255 - <non_match_default/>  
1256 - <fields>  
1257 - <field>  
1258 - <source_value>&#x662f;</source_value>  
1259 - <target_value>1</target_value>  
1260 - </field>  
1261 - <field>  
1262 - <source_value>&#x5426;</source_value>  
1263 - <target_value>0</target_value>  
1264 - </field>  
1265 - </fields>  
1266 - <cluster_schema/>  
1267 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1268 - <xloc>706</xloc>  
1269 - <yloc>61</yloc>  
1270 - <draw>Y</draw>  
1271 - </GUI>  
1272 - </step>  
1273 -  
1274 - <step>  
1275 - <name>&#x662f;&#x5426;&#x7684;&#x53d8;&#x6210;&#x6570;&#x5b57;&#x578b;</name>  
1276 - <type>SelectValues</type>  
1277 - <description/>  
1278 - <distribute>Y</distribute>  
1279 - <custom_distribution/>  
1280 - <copies>1</copies>  
1281 - <partitioning>  
1282 - <method>none</method>  
1283 - <schema_name/>  
1284 - </partitioning>  
1285 - <fields> <select_unspecified>N</select_unspecified>  
1286 - <meta> <name>hvacCar</name>  
1287 - <rename>hvacCar</rename>  
1288 - <type>Integer</type>  
1289 - <length>1</length>  
1290 - <precision>-2</precision>  
1291 - <conversion_mask/>  
1292 - <date_format_lenient>false</date_format_lenient>  
1293 - <date_format_locale/>  
1294 - <date_format_timezone/>  
1295 - <lenient_string_to_number>false</lenient_string_to_number>  
1296 - <encoding/>  
1297 - <decimal_symbol/>  
1298 - <grouping_symbol/>  
1299 - <currency_symbol/>  
1300 - <storage_type/>  
1301 - </meta> <meta> <name>ticketType</name>  
1302 - <rename>ticketType</rename>  
1303 - <type>Integer</type>  
1304 - <length>1</length>  
1305 - <precision>-2</precision>  
1306 - <conversion_mask/>  
1307 - <date_format_lenient>false</date_format_lenient>  
1308 - <date_format_locale/>  
1309 - <date_format_timezone/>  
1310 - <lenient_string_to_number>false</lenient_string_to_number>  
1311 - <encoding/>  
1312 - <decimal_symbol/>  
1313 - <grouping_symbol/>  
1314 - <currency_symbol/>  
1315 - <storage_type/>  
1316 - </meta> <meta> <name>ledScreen</name>  
1317 - <rename>ledScreen</rename>  
1318 - <type>Integer</type>  
1319 - <length>1</length>  
1320 - <precision>-2</precision>  
1321 - <conversion_mask/>  
1322 - <date_format_lenient>false</date_format_lenient>  
1323 - <date_format_locale/>  
1324 - <date_format_timezone/>  
1325 - <lenient_string_to_number>false</lenient_string_to_number>  
1326 - <encoding/>  
1327 - <decimal_symbol/>  
1328 - <grouping_symbol/>  
1329 - <currency_symbol/>  
1330 - <storage_type/>  
1331 - </meta> <meta> <name>tvVideoType</name>  
1332 - <rename>tvVideoType</rename>  
1333 - <type>Integer</type>  
1334 - <length>1</length>  
1335 - <precision>-2</precision>  
1336 - <conversion_mask/>  
1337 - <date_format_lenient>false</date_format_lenient>  
1338 - <date_format_locale/>  
1339 - <date_format_timezone/>  
1340 - <lenient_string_to_number>false</lenient_string_to_number>  
1341 - <encoding/>  
1342 - <decimal_symbol/>  
1343 - <grouping_symbol/>  
1344 - <currency_symbol/>  
1345 - <storage_type/>  
1346 - </meta> </fields> <cluster_schema/>  
1347 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1348 - <xloc>839</xloc>  
1349 - <yloc>61</yloc>  
1350 - <draw>Y</draw>  
1351 - </GUI>  
1352 - </step>  
1353 -  
1354 - <step>  
1355 - <name>&#x662f;&#x5426;&#x7a7a;&#x8c03;&#x8f66;</name>  
1356 - <type>ValueMapper</type>  
1357 - <description/>  
1358 - <distribute>Y</distribute>  
1359 - <custom_distribution/>  
1360 - <copies>1</copies>  
1361 - <partitioning>  
1362 - <method>none</method>  
1363 - <schema_name/>  
1364 - </partitioning>  
1365 - <field_to_use>hvacCar</field_to_use>  
1366 - <target_field/>  
1367 - <non_match_default/>  
1368 - <fields>  
1369 - <field>  
1370 - <source_value>&#x662f;</source_value>  
1371 - <target_value>1</target_value>  
1372 - </field>  
1373 - <field>  
1374 - <source_value>&#x5426;</source_value>  
1375 - <target_value>0</target_value>  
1376 - </field>  
1377 - </fields>  
1378 - <cluster_schema/>  
1379 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1380 - <xloc>388</xloc>  
1381 - <yloc>61</yloc>  
1382 - <draw>Y</draw>  
1383 - </GUI>  
1384 - </step>  
1385 -  
1386 - <step>  
1387 - <name>&#x6709;&#x65e0;&#x4eba;&#x552e;&#x7968;</name>  
1388 - <type>ValueMapper</type>  
1389 - <description/>  
1390 - <distribute>Y</distribute>  
1391 - <custom_distribution/>  
1392 - <copies>1</copies>  
1393 - <partitioning>  
1394 - <method>none</method>  
1395 - <schema_name/>  
1396 - </partitioning>  
1397 - <field_to_use>ticketType</field_to_use>  
1398 - <target_field/>  
1399 - <non_match_default/>  
1400 - <fields>  
1401 - <field>  
1402 - <source_value>&#x662f;</source_value>  
1403 - <target_value>1</target_value>  
1404 - </field>  
1405 - <field>  
1406 - <source_value>&#x5426;</source_value>  
1407 - <target_value>0</target_value>  
1408 - </field>  
1409 - </fields>  
1410 - <cluster_schema/>  
1411 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1412 - <xloc>485</xloc>  
1413 - <yloc>61</yloc>  
1414 - <draw>Y</draw>  
1415 - </GUI>  
1416 - </step>  
1417 -  
1418 - <step>  
1419 - <name>&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;</name>  
1420 - <type>ValueMapper</type>  
1421 - <description/>  
1422 - <distribute>Y</distribute>  
1423 - <custom_distribution/>  
1424 - <copies>1</copies>  
1425 - <partitioning>  
1426 - <method>none</method>  
1427 - <schema_name/>  
1428 - </partitioning>  
1429 - <field_to_use>vehicleStats</field_to_use>  
1430 - <target_field/>  
1431 - <non_match_default/>  
1432 - <fields>  
1433 - <field>  
1434 - <source_value>&#x975e;&#x673a;&#x52a8;&#x8f66;</source_value>  
1435 - <target_value>1</target_value>  
1436 - </field>  
1437 - <field>  
1438 - <source_value>&#x673a;&#x52a8;&#x4e00;&#x961f;</source_value>  
1439 - <target_value>2</target_value>  
1440 - </field>  
1441 - <field>  
1442 - <source_value>&#x673a;&#x52a8;&#x4e8c;&#x961f;</source_value>  
1443 - <target_value>3</target_value>  
1444 - </field>  
1445 - <field>  
1446 - <source_value>&#x673a;&#x52a8;&#x4e09;&#x961f;</source_value>  
1447 - <target_value>4</target_value>  
1448 - </field>  
1449 - <field>  
1450 - <source_value>&#x5907;&#x8f66;</source_value>  
1451 - <target_value>5</target_value>  
1452 - </field>  
1453 - <field>  
1454 - <source_value>&#x62a2;&#x4fee;&#x8f66;</source_value>  
1455 - <target_value>6</target_value>  
1456 - </field>  
1457 - </fields>  
1458 - <cluster_schema/>  
1459 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1460 - <xloc>519</xloc>  
1461 - <yloc>174</yloc>  
1462 - <draw>Y</draw>  
1463 - </GUI>  
1464 - </step>  
1465 -  
1466 - <step>  
1467 - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>  
1468 - <type>GetVariable</type>  
1469 - <description/>  
1470 - <distribute>Y</distribute>  
1471 - <custom_distribution/>  
1472 - <copies>1</copies>  
1473 - <partitioning>  
1474 - <method>none</method>  
1475 - <schema_name/>  
1476 - </partitioning>  
1477 - <fields>  
1478 - <field>  
1479 - <name>filepath_</name>  
1480 - <variable>&#x24;&#x7b;filepath&#x7d;</variable>  
1481 - <type>String</type>  
1482 - <format/>  
1483 - <currency/>  
1484 - <decimal/>  
1485 - <group/>  
1486 - <length>-1</length>  
1487 - <precision>-1</precision>  
1488 - <trim_type>none</trim_type>  
1489 - </field>  
1490 - <field>  
1491 - <name>erroroutputdir_</name>  
1492 - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>  
1493 - <type>String</type>  
1494 - <format/>  
1495 - <currency/>  
1496 - <decimal/>  
1497 - <group/>  
1498 - <length>-1</length>  
1499 - <precision>-1</precision>  
1500 - <trim_type>none</trim_type>  
1501 - </field>  
1502 - </fields>  
1503 - <cluster_schema/>  
1504 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1505 - <xloc>134</xloc>  
1506 - <yloc>183</yloc>  
1507 - <draw>Y</draw>  
1508 - </GUI>  
1509 - </step>  
1510 -  
1511 - <step>  
1512 - <name>&#x8425;&#x8fd0;&#x72b6;&#x6001;</name>  
1513 - <type>ValueMapper</type>  
1514 - <description/>  
1515 - <distribute>Y</distribute>  
1516 - <custom_distribution/>  
1517 - <copies>1</copies>  
1518 - <partitioning>  
1519 - <method>none</method>  
1520 - <schema_name/>  
1521 - </partitioning>  
1522 - <field_to_use>operatorsState</field_to_use>  
1523 - <target_field/>  
1524 - <non_match_default/>  
1525 - <fields>  
1526 - <field>  
1527 - <source_value>&#x8425;&#x8fd0;</source_value>  
1528 - <target_value>1</target_value>  
1529 - </field>  
1530 - <field>  
1531 - <source_value>&#x505c;&#x8fd0;</source_value>  
1532 - <target_value>2</target_value>  
1533 - </field>  
1534 - <field>  
1535 - <source_value>&#x6302;&#x5931;</source_value>  
1536 - <target_value>3</target_value>  
1537 - </field>  
1538 - <field>  
1539 - <source_value>&#x8fc1;&#x51fa;&#xff08;&#x8fc7;&#x6237;&#xff09;</source_value>  
1540 - <target_value>4</target_value>  
1541 - </field>  
1542 - <field>  
1543 - <source_value>&#x8fc1;&#x51fa;&#xff08;&#x8f6c;&#x7c4d;&#xff09;</source_value>  
1544 - <target_value>5</target_value>  
1545 - </field>  
1546 - <field>  
1547 - <source_value>&#x62a5;&#x5e9f;</source_value>  
1548 - <target_value>6</target_value>  
1549 - </field>  
1550 - <field>  
1551 - <source_value>&#x6b47;&#x4e1a;</source_value>  
1552 - <target_value>7</target_value>  
1553 - </field>  
1554 - <field>  
1555 - <source_value>&#x6ce8;&#x9500;</source_value>  
1556 - <target_value>8</target_value>  
1557 - </field>  
1558 - <field>  
1559 - <source_value>&#x6d4b;&#x8bd5;</source_value>  
1560 - <target_value>9</target_value>  
1561 - </field>  
1562 - <field>  
1563 - <source_value>&#x5176;&#x4ed6;</source_value>  
1564 - <target_value>10</target_value>  
1565 - </field>  
1566 - </fields>  
1567 - <cluster_schema/>  
1568 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1569 - <xloc>615</xloc>  
1570 - <yloc>173</yloc>  
1571 - <draw>Y</draw>  
1572 - </GUI>  
1573 - </step>  
1574 -  
1575 - <step>  
1576 - <name>&#x8f66;&#x8f86;&#x7c7b;&#x578b;</name>  
1577 - <type>ValueMapper</type>  
1578 - <description/>  
1579 - <distribute>Y</distribute>  
1580 - <custom_distribution/>  
1581 - <copies>1</copies>  
1582 - <partitioning>  
1583 - <method>none</method>  
1584 - <schema_name/>  
1585 - </partitioning>  
1586 - <field_to_use>carType</field_to_use>  
1587 - <target_field/>  
1588 - <non_match_default/>  
1589 - <fields>  
1590 - <field>  
1591 - <source_value>&#x8425;&#x8fd0;&#x8f66;</source_value>  
1592 - <target_value>1</target_value>  
1593 - </field>  
1594 - <field>  
1595 - <source_value>&#x5305;&#x8f66;</source_value>  
1596 - <target_value>2</target_value>  
1597 - </field>  
1598 - <field>  
1599 - <source_value>&#x5b66;&#x6821;&#x73ed;&#x8f66;</source_value>  
1600 - <target_value>3</target_value>  
1601 - </field>  
1602 - <field>  
1603 - <source_value>&#x516c;&#x53f8;&#x73ed;&#x8f66;</source_value>  
1604 - <target_value>4</target_value>  
1605 - </field>  
1606 - <field>  
1607 - <source_value>&#x5f85;&#x62a5;&#x5e9f;&#x8f66;</source_value>  
1608 - <target_value>5</target_value>  
1609 - </field>  
1610 - <field>  
1611 - <source_value>&#x5907;&#x8f66;</source_value>  
1612 - <target_value>6</target_value>  
1613 - </field>  
1614 - <field>  
1615 - <source_value>&#x6d4b;&#x8bd5;&#x8bbe;&#x5907;</source_value>  
1616 - <target_value>7</target_value>  
1617 - </field>  
1618 - </fields>  
1619 - <cluster_schema/>  
1620 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1621 - <xloc>521</xloc>  
1622 - <yloc>275</yloc>  
1623 - <draw>Y</draw>  
1624 - </GUI>  
1625 - </step>  
1626 -  
1627 - <step>  
1628 - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>  
1629 - <type>Constant</type>  
1630 - <description/>  
1631 - <distribute>Y</distribute>  
1632 - <custom_distribution/>  
1633 - <copies>1</copies>  
1634 - <partitioning>  
1635 - <method>none</method>  
1636 - <schema_name/>  
1637 - </partitioning>  
1638 - <fields>  
1639 - <field>  
1640 - <name>carCode</name>  
1641 - <type>String</type>  
1642 - <format/>  
1643 - <currency/>  
1644 - <decimal/>  
1645 - <group/>  
1646 - <nullif>1</nullif>  
1647 - <length>-1</length>  
1648 - <precision>-1</precision>  
1649 - <set_empty_string>N</set_empty_string>  
1650 - </field>  
1651 - </fields>  
1652 - <cluster_schema/>  
1653 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1654 - <xloc>820</xloc>  
1655 - <yloc>272</yloc>  
1656 - <draw>Y</draw>  
1657 - </GUI>  
1658 - </step>  
1659 -  
1660 - <step>  
1661 - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>  
1662 - <type>ExcelOutput</type>  
1663 - <description/>  
1664 - <distribute>Y</distribute>  
1665 - <custom_distribution/>  
1666 - <copies>1</copies>  
1667 - <partitioning>  
1668 - <method>none</method>  
1669 - <schema_name/>  
1670 - </partitioning>  
1671 - <header>Y</header>  
1672 - <footer>N</footer>  
1673 - <encoding/>  
1674 - <append>N</append>  
1675 - <add_to_result_filenames>Y</add_to_result_filenames>  
1676 - <file>  
1677 - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>  
1678 - <extention>xls</extention>  
1679 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
1680 - <create_parent_folder>N</create_parent_folder>  
1681 - <split>N</split>  
1682 - <add_date>N</add_date>  
1683 - <add_time>N</add_time>  
1684 - <SpecifyFormat>N</SpecifyFormat>  
1685 - <date_time_format/>  
1686 - <sheetname>Sheet1</sheetname>  
1687 - <autosizecolums>N</autosizecolums>  
1688 - <nullisblank>N</nullisblank>  
1689 - <protect_sheet>N</protect_sheet>  
1690 - <password>Encrypted </password>  
1691 - <splitevery>0</splitevery>  
1692 - <usetempfiles>N</usetempfiles>  
1693 - <tempdirectory/>  
1694 - </file>  
1695 - <template>  
1696 - <enabled>N</enabled>  
1697 - <append>N</append>  
1698 - <filename>template.xls</filename>  
1699 - </template>  
1700 - <fields>  
1701 - <field>  
1702 - <name>insideCode</name>  
1703 - <type>String</type>  
1704 - <format/>  
1705 - </field>  
1706 - <field>  
1707 - <name>company</name>  
1708 - <type>String</type>  
1709 - <format/>  
1710 - </field>  
1711 - <field>  
1712 - <name>brancheCompany</name>  
1713 - <type>String</type>  
1714 - <format/>  
1715 - </field>  
1716 - <field>  
1717 - <name>carPlate</name>  
1718 - <type>String</type>  
1719 - <format/>  
1720 - </field>  
1721 - <field>  
1722 - <name>supplierName</name>  
1723 - <type>String</type>  
1724 - <format/>  
1725 - </field>  
1726 - <field>  
1727 - <name>equipmentCode</name>  
1728 - <type>String</type>  
1729 - <format/>  
1730 - </field>  
1731 - <field>  
1732 - <name>carClass</name>  
1733 - <type>String</type>  
1734 - <format/>  
1735 - </field>  
1736 - <field>  
1737 - <name>speed</name>  
1738 - <type>String</type>  
1739 - <format/>  
1740 - </field>  
1741 - <field>  
1742 - <name>carSeatnNumber</name>  
1743 - <type>String</type>  
1744 - <format/>  
1745 - </field>  
1746 - <field>  
1747 - <name>carStandard</name>  
1748 - <type>String</type>  
1749 - <format/>  
1750 - </field>  
1751 - <field>  
1752 - <name>kburnStandard</name>  
1753 - <type>String</type>  
1754 - <format/>  
1755 - </field>  
1756 - <field>  
1757 - <name>gburnStandard</name>  
1758 - <type>String</type>  
1759 - <format/>  
1760 - </field>  
1761 - <field>  
1762 - <name>scrapCode</name>  
1763 - <type>String</type>  
1764 - <format/>  
1765 - </field>  
1766 - <field>  
1767 - <name>makeCodeOne</name>  
1768 - <type>String</type>  
1769 - <format/>  
1770 - </field>  
1771 - <field>  
1772 - <name>makeCodeTwo</name>  
1773 - <type>String</type>  
1774 - <format/>  
1775 - </field>  
1776 - <field>  
1777 - <name>carGride</name>  
1778 - <type>String</type>  
1779 - <format/>  
1780 - </field>  
1781 - <field>  
1782 - <name>emissionsStandard</name>  
1783 - <type>String</type>  
1784 - <format/>  
1785 - </field>  
1786 - <field>  
1787 - <name>engineCodeOne</name>  
1788 - <type>String</type>  
1789 - <format/>  
1790 - </field>  
1791 - <field>  
1792 - <name>engineCodeTwo</name>  
1793 - <type>String</type>  
1794 - <format/>  
1795 - </field>  
1796 - <field>  
1797 - <name>carNumberOne</name>  
1798 - <type>String</type>  
1799 - <format/>  
1800 - </field>  
1801 - <field>  
1802 - <name>carNumberTwo</name>  
1803 - <type>String</type>  
1804 - <format/>  
1805 - </field>  
1806 - <field>  
1807 - <name>openDate</name>  
1808 - <type>String</type>  
1809 - <format/>  
1810 - </field>  
1811 - <field>  
1812 - <name>closeDate</name>  
1813 - <type>String</type>  
1814 - <format/>  
1815 - </field>  
1816 - <field>  
1817 - <name>hvacCar</name>  
1818 - <type>Integer</type>  
1819 - <format/>  
1820 - </field>  
1821 - <field>  
1822 - <name>ticketType</name>  
1823 - <type>Integer</type>  
1824 - <format/>  
1825 - </field>  
1826 - <field>  
1827 - <name>ledScreen</name>  
1828 - <type>Integer</type>  
1829 - <format/>  
1830 - </field>  
1831 - <field>  
1832 - <name>tvVideoType</name>  
1833 - <type>Integer</type>  
1834 - <format/>  
1835 - </field>  
1836 - <field>  
1837 - <name>carType</name>  
1838 - <type>String</type>  
1839 - <format/>  
1840 - </field>  
1841 - <field>  
1842 - <name>vehicleStats</name>  
1843 - <type>String</type>  
1844 - <format/>  
1845 - </field>  
1846 - <field>  
1847 - <name>operatorsState</name>  
1848 - <type>String</type>  
1849 - <format/>  
1850 - </field>  
1851 - <field>  
1852 - <name>descriptions</name>  
1853 - <type>String</type>  
1854 - <format/>  
1855 - </field>  
1856 - <field>  
1857 - <name>videoCode</name>  
1858 - <type>String</type>  
1859 - <format/>  
1860 - </field>  
1861 - <field>  
1862 - <name>businessCode</name>  
1863 - <type>String</type>  
1864 - <format/>  
1865 - </field>  
1866 - <field>  
1867 - <name>carCode</name>  
1868 - <type>String</type>  
1869 - <format/>  
1870 - </field>  
1871 - <field>  
1872 - <name>error_count</name>  
1873 - <type>Integer</type>  
1874 - <format/>  
1875 - </field>  
1876 - <field>  
1877 - <name>error_desc</name>  
1878 - <type>String</type>  
1879 - <format/>  
1880 - </field>  
1881 - <field>  
1882 - <name>error_column1</name>  
1883 - <type>String</type>  
1884 - <format/>  
1885 - </field>  
1886 - <field>  
1887 - <name>error_column2</name>  
1888 - <type>String</type>  
1889 - <format/>  
1890 - </field>  
1891 - </fields>  
1892 - <custom>  
1893 - <header_font_name>arial</header_font_name>  
1894 - <header_font_size>10</header_font_size>  
1895 - <header_font_bold>N</header_font_bold>  
1896 - <header_font_italic>N</header_font_italic>  
1897 - <header_font_underline>no</header_font_underline>  
1898 - <header_font_orientation>horizontal</header_font_orientation>  
1899 - <header_font_color>black</header_font_color>  
1900 - <header_background_color>none</header_background_color>  
1901 - <header_row_height>255</header_row_height>  
1902 - <header_alignment>left</header_alignment>  
1903 - <header_image/>  
1904 - <row_font_name>arial</row_font_name>  
1905 - <row_font_size>10</row_font_size>  
1906 - <row_font_color>black</row_font_color>  
1907 - <row_background_color>none</row_background_color>  
1908 - </custom>  
1909 - <cluster_schema/>  
1910 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1911 - <xloc>633</xloc>  
1912 - <yloc>364</yloc>  
1913 - <draw>Y</draw>  
1914 - </GUI>  
1915 - </step>  
1916 -  
1917 - <step>  
1918 - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2 2</name>  
1919 - <type>ExcelOutput</type>  
1920 - <description/>  
1921 - <distribute>Y</distribute>  
1922 - <custom_distribution/>  
1923 - <copies>1</copies>  
1924 - <partitioning>  
1925 - <method>none</method>  
1926 - <schema_name/>  
1927 - </partitioning>  
1928 - <header>Y</header>  
1929 - <footer>N</footer>  
1930 - <encoding/>  
1931 - <append>N</append>  
1932 - <add_to_result_filenames>Y</add_to_result_filenames>  
1933 - <file>  
1934 - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;2</name>  
1935 - <extention>xls</extention>  
1936 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
1937 - <create_parent_folder>N</create_parent_folder>  
1938 - <split>N</split>  
1939 - <add_date>N</add_date>  
1940 - <add_time>N</add_time>  
1941 - <SpecifyFormat>N</SpecifyFormat>  
1942 - <date_time_format/>  
1943 - <sheetname>Sheet1</sheetname>  
1944 - <autosizecolums>N</autosizecolums>  
1945 - <nullisblank>N</nullisblank>  
1946 - <protect_sheet>N</protect_sheet>  
1947 - <password>Encrypted </password>  
1948 - <splitevery>0</splitevery>  
1949 - <usetempfiles>N</usetempfiles>  
1950 - <tempdirectory/>  
1951 - </file>  
1952 - <template>  
1953 - <enabled>N</enabled>  
1954 - <append>N</append>  
1955 - <filename>template.xls</filename>  
1956 - </template>  
1957 - <fields>  
1958 - <field>  
1959 - <name>insideCode</name>  
1960 - <type>String</type>  
1961 - <format/>  
1962 - </field>  
1963 - <field>  
1964 - <name>carCode</name>  
1965 - <type>String</type>  
1966 - <format/>  
1967 - </field>  
1968 - <field>  
1969 - <name>company</name>  
1970 - <type>String</type>  
1971 - <format/>  
1972 - </field>  
1973 - <field>  
1974 - <name>brancheCompany</name>  
1975 - <type>String</type>  
1976 - <format/>  
1977 - </field>  
1978 - <field>  
1979 - <name>carPlate</name>  
1980 - <type>String</type>  
1981 - <format/>  
1982 - </field>  
1983 - <field>  
1984 - <name>supplierName</name>  
1985 - <type>String</type>  
1986 - <format/>  
1987 - </field>  
1988 - <field>  
1989 - <name>equipmentCode</name>  
1990 - <type>String</type>  
1991 - <format/>  
1992 - </field>  
1993 - <field>  
1994 - <name>carClass</name>  
1995 - <type>String</type>  
1996 - <format/>  
1997 - </field>  
1998 - <field>  
1999 - <name>speed</name>  
2000 - <type>String</type>  
2001 - <format/>  
2002 - </field>  
2003 - <field>  
2004 - <name>carSeatnNumber</name>  
2005 - <type>String</type>  
2006 - <format/>  
2007 - </field>  
2008 - <field>  
2009 - <name>carStandard</name>  
2010 - <type>String</type>  
2011 - <format/>  
2012 - </field>  
2013 - <field>  
2014 - <name>kburnStandard</name>  
2015 - <type>String</type>  
2016 - <format/>  
2017 - </field>  
2018 - <field>  
2019 - <name>gburnStandard</name>  
2020 - <type>String</type>  
2021 - <format/>  
2022 - </field>  
2023 - <field>  
2024 - <name>scrapCode</name>  
2025 - <type>String</type>  
2026 - <format/>  
2027 - </field>  
2028 - <field>  
2029 - <name>makeCodeOne</name>  
2030 - <type>String</type>  
2031 - <format/>  
2032 - </field>  
2033 - <field>  
2034 - <name>makeCodeTwo</name>  
2035 - <type>String</type>  
2036 - <format/>  
2037 - </field>  
2038 - <field>  
2039 - <name>carGride</name>  
2040 - <type>String</type>  
2041 - <format/>  
2042 - </field>  
2043 - <field>  
2044 - <name>emissionsStandard</name>  
2045 - <type>String</type>  
2046 - <format/>  
2047 - </field>  
2048 - <field>  
2049 - <name>engineCodeOne</name>  
2050 - <type>String</type>  
2051 - <format/>  
2052 - </field>  
2053 - <field>  
2054 - <name>engineCodeTwo</name>  
2055 - <type>String</type>  
2056 - <format/>  
2057 - </field>  
2058 - <field>  
2059 - <name>carNumberOne</name>  
2060 - <type>String</type>  
2061 - <format/>  
2062 - </field>  
2063 - <field>  
2064 - <name>carNumberTwo</name>  
2065 - <type>String</type>  
2066 - <format/>  
2067 - </field>  
2068 - <field>  
2069 - <name>openDate</name>  
2070 - <type>String</type>  
2071 - <format/>  
2072 - </field>  
2073 - <field>  
2074 - <name>closeDate</name>  
2075 - <type>String</type>  
2076 - <format/>  
2077 - </field>  
2078 - <field>  
2079 - <name>hvacCar</name>  
2080 - <type>String</type>  
2081 - <format/>  
2082 - </field>  
2083 - <field>  
2084 - <name>ticketType</name>  
2085 - <type>String</type>  
2086 - <format/>  
2087 - </field>  
2088 - <field>  
2089 - <name>ledScreen</name>  
2090 - <type>String</type>  
2091 - <format/>  
2092 - </field>  
2093 - <field>  
2094 - <name>tvVideoType</name>  
2095 - <type>String</type>  
2096 - <format/>  
2097 - </field>  
2098 - <field>  
2099 - <name>carType</name>  
2100 - <type>String</type>  
2101 - <format/>  
2102 - </field>  
2103 - <field>  
2104 - <name>vehicleStats</name> 598 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
2105 <type>String</type> 599 <type>String</type>
2106 <format/> 600 <format/>
2107 </field> 601 </field>
2108 <field> 602 <field>
2109 - <name>operatorsState</name> 603 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
2110 <type>String</type> 604 <type>String</type>
2111 <format/> 605 <format/>
2112 </field> 606 </field>
2113 <field> 607 <field>
2114 - <name>descriptions</name> 608 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
2115 <type>String</type> 609 <type>String</type>
2116 <format/> 610 <format/>
2117 </field> 611 </field>
2118 <field> 612 <field>
2119 - <name>videoCode</name> 613 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
2120 <type>String</type> 614 <type>String</type>
2121 <format/> 615 <format/>
2122 </field> 616 </field>
2123 <field> 617 <field>
2124 - <name>&#x4fee;&#x6539;&#x65e5;&#x671f;</name> 618 + <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>
2125 <type>String</type> 619 <type>String</type>
2126 <format/> 620 <format/>
2127 </field> 621 </field>
2128 <field> 622 <field>
2129 - <name>&#x62a5;&#x5e9f;&#x65e5;&#x671f;</name> 623 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
2130 <type>String</type> 624 <type>String</type>
2131 <format/> 625 <format/>
2132 </field> 626 </field>
@@ -2170,8 +664,8 @@ @@ -2170,8 +664,8 @@
2170 </custom> 664 </custom>
2171 <cluster_schema/> 665 <cluster_schema/>
2172 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 666 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
2173 - <xloc>971</xloc>  
2174 - <yloc>63</yloc> 667 + <xloc>328</xloc>
  668 + <yloc>140</yloc>
2175 <draw>Y</draw> 669 <draw>Y</draw>
2176 </GUI> 670 </GUI>
2177 </step> 671 </step>
@@ -2189,18 +683,6 @@ @@ -2189,18 +683,6 @@
2189 <max_pct_errors/> 683 <max_pct_errors/>
2190 <min_pct_rows/> 684 <min_pct_rows/>
2191 </error> 685 </error>
2192 - <error>  
2193 - <source_step>&#x662f;&#x5426;&#x7684;&#x53d8;&#x6210;&#x6570;&#x5b57;&#x578b;</source_step>  
2194 - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2 2</target_step>  
2195 - <is_enabled>Y</is_enabled>  
2196 - <nr_valuename>error_count</nr_valuename>  
2197 - <descriptions_valuename>error_desc</descriptions_valuename>  
2198 - <fields_valuename>error_column1</fields_valuename>  
2199 - <codes_valuename>error_column2</codes_valuename>  
2200 - <max_errors/>  
2201 - <max_pct_errors/>  
2202 - <min_pct_rows/>  
2203 - </error>  
2204 </step_error_handling> 686 </step_error_handling>
2205 <slave-step-copy-partition-distribution> 687 <slave-step-copy-partition-distribution>
2206 </slave-step-copy-partition-distribution> 688 </slave-step-copy-partition-distribution>