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 2  
3 3  
4 4 import java.util.Date;
  5 +import java.util.HashMap;
  6 +import java.util.List;
5 7 import java.util.Map;
6 8  
7 9 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -31,9 +33,9 @@ public class CwjyController extends BaseController<Cwjy, Integer>{
31 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 39 map.put("curPage", map.get("page").toString());
38 40 map.put("pageData","10");
39 41 pagequery=service.Pagequery(map);
... ... @@ -56,9 +58,15 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
56 58 * @throws
57 59 */
58 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 16 import org.springframework.data.domain.PageRequest;
17 17 import org.springframework.data.domain.Sort;
18 18 import org.springframework.data.domain.Sort.Direction;
  19 +import org.springframework.web.bind.annotation.PathVariable;
19 20 import org.springframework.web.bind.annotation.RequestMapping;
20 21 import org.springframework.web.bind.annotation.RequestMethod;
21 22 import org.springframework.web.bind.annotation.RequestParam;
... ... @@ -196,6 +197,17 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
196 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 211 @RequestMapping(value="/oilListMonth")
200 212 public List<Ylb> oilListMonth(@RequestParam String line,@RequestParam String date){
201 213 return yblService.oilListMonth(line, date);
... ... @@ -219,17 +231,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
219 231 sdfSimple = new SimpleDateFormat("yyyyMMdd");
220 232 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
221 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 235 // (new CustomerSpecs<Ylb>(map)).iterator();
234 236 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
235 237 for (Ylb y : ylb) {
... ... @@ -245,12 +247,28 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
245 247 m.put("czyl", y.getCzyl());
246 248 m.put("jzyl", y.getJzyl());
247 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 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 270 m.put("sh", y.getSh());
252 271 m.put("zlc", y.getZlc());
253   - m.put("yhlx", y.getYhlx());
254 272 m.put("bglyh", y.getBglyh());
255 273 resList.add(m);
256 274 }
... ... @@ -258,7 +276,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
258 276 listI.add(resList.iterator());
259 277 String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
260 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 280 } catch (Exception e) {
263 281 e.printStackTrace();
264 282 }
... ...
src/main/java/com/bsth/controller/oil/YlxxbController.java
1 1 package com.bsth.controller.oil;
2 2  
  3 +import java.util.HashMap;
3 4 import java.util.Map;
4 5  
5 6 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -33,9 +34,15 @@ public class YlxxbController extends BaseController&lt;Ylxxb, Integer&gt;{
33 34 * @param map
34 35 * @return
35 36 */
36   - @RequestMapping(value = "/check",method = RequestMethod.GET)
  37 + @RequestMapping(value = "/check",method = RequestMethod.POST)
37 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 46 return list;
40 47 }
41 48 }
... ...
src/main/java/com/bsth/controller/report/ReportController.java
... ... @@ -108,4 +108,9 @@ public class ReportController {
108 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 import com.bsth.data.schedule.DayOfSchedule;
7 7 import com.bsth.entity.realcontrol.ChildTaskPlan;
8 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 12 import org.springframework.beans.factory.annotation.Autowired;
10 13 import org.springframework.stereotype.Component;
11 14  
... ... @@ -18,6 +21,10 @@ public class CorrectSignalHandle extends SignalHandle {
18 21  
19 22 @Autowired
20 23 DayOfSchedule dayOfSchedule;
  24 + @Autowired
  25 + DirectiveService directiveService;
  26 +
  27 + Logger logger = LoggerFactory.getLogger(this.getClass());
21 28  
22 29 @Override
23 30 public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) {
... ... @@ -41,6 +48,11 @@ public class CorrectSignalHandle extends SignalHandle {
41 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 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 235  
236 236 //下发调度指令
237 237 directiveService.send60Dispatch(next, doneSum, "到站@系统");
  238 +
  239 + //套跑 -下发线路切换指令
  240 + if(!next.getXlBm().equals(sch.getXlBm()))
  241 + directiveService.lineChange(next.getClZbh(), next.getXlBm(), "套跑@系统");
238 242 }
239 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 2  
3 3 import com.bsth.entity.schedule.BEntity;
4 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5 +import org.hibernate.annotations.Formula;
5 6  
6 7 import javax.persistence.*;
7 8 import java.io.Serializable;
... ... @@ -47,6 +48,10 @@ public class Cars extends BEntity implements Serializable {
47 48 /** 分公司 */
48 49 private String brancheCompany;
49 50  
  51 + /** 组合公司分公司编码 */
  52 + @Formula(" concat(business_code, '_', branche_company_code) ")
  53 + private String cgsbm;
  54 +
50 55 /** 车辆编码(TODO:在原系统里没有,这里暂时留着) */
51 56 @Column(nullable = false)
52 57 private String carCode;
... ... @@ -499,4 +504,12 @@ public class Cars extends BEntity implements Serializable {
499 504 public void setXlmc(String xlmc) {
500 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 2  
3 3 import com.bsth.entity.schedule.BEntity;
4 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5 +import org.hibernate.annotations.Formula;
5 6  
6 7 import javax.persistence.*;
7 8  
... ... @@ -39,6 +40,10 @@ public class Personnel extends BEntity {
39 40 private String brancheCompany;
40 41 /** 分公司编码 */
41 42 private String brancheCompanyCode;
  43 + /** 组合公司分公司编码 */
  44 + @Formula(" concat(company_code, '_', branche_company_code) ")
  45 + private String cgsbm;
  46 +
42 47 /** 工号 */
43 48 @Column(nullable = false)
44 49 private String jobCode;
... ... @@ -218,4 +223,12 @@ public class Personnel extends BEntity {
218 223 public void setDescriptions(String descriptions) {
219 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 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 96 @Query(value="select jzl,yh,sh from Ylb s "
80 97 + " where to_days(?1)=to_days(s.rq) "
81 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 731  
732 732 @Override
733 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 745 String sql="select t.schedule_date_str,"
735 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 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 752 + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name) t"
741 753 + " left join (select * from bsth_c_ylb y where "
742 754 + " to_days(y.rq)=to_days('"+map.get("date").toString()+"') "
743 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 758 + " ) x"
747 759 + " on t.cl_zbh = x.nbbm ";
748 760  
749   - System.out.println(new Date());
750 761 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() {
751 762 @Override
752 763 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException {
... ...
src/main/java/com/bsth/service/oil/CwjyService.java
1 1 package com.bsth.service.oil;
2 2  
3 3  
  4 +import java.util.List;
4 5 import java.util.Map;
5 6  
6 7 import com.bsth.entity.oil.Cwjy;
... ... @@ -9,8 +10,8 @@ import com.bsth.service.BaseService;
9 10 import com.bsth.util.PageObject;
10 11  
11 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 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 23 List<Ylb> listYlb(Map<String, Object> map);
24 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 9 public interface YlxxbService extends BaseService<Ylxxb, Integer>{
10 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 6 import java.text.SimpleDateFormat;
7 7 import java.util.ArrayList;
8 8 import java.util.Arrays;
  9 +import java.util.Date;
9 10 import java.util.HashMap;
10 11 import java.util.List;
11 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 19 import org.springframework.beans.factory.annotation.Autowired;
14 20 import org.springframework.jdbc.core.JdbcTemplate;
15 21 import org.springframework.jdbc.core.RowMapper;
16 22 import org.springframework.stereotype.Service;
17 23  
  24 +import com.alibaba.fastjson.JSONArray;
  25 +import com.alibaba.fastjson.JSONObject;
18 26 import com.bsth.common.ResponseCode;
19 27 import com.bsth.entity.oil.Cwjy;
  28 +import com.bsth.entity.oil.Cyl;
20 29 import com.bsth.entity.oil.Ylxxb;
21 30 import com.bsth.repository.oil.CwjyRepository;
22 31 import com.bsth.repository.oil.YlxxbRepository;
... ... @@ -35,8 +44,8 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
35 44  
36 45 @Autowired
37 46 JdbcTemplate jdbcTemplate;
38   -
39   - @SuppressWarnings("unchecked")
  47 + Logger logger = LoggerFactory.getLogger(this.getClass());
  48 + /*@SuppressWarnings("unchecked")
40 49 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) {
41 50 int page=Integer.parseInt(map.get("page").toString());
42 51 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -129,7 +138,7 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
129 138 return t;
130 139 }
131 140 });
132   - /*List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
  141 + List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
133 142 for (int i = 0; i < list.size(); i++) {
134 143 Ylxxb y=new Ylxxb();
135 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 157 e.printStackTrace();
149 158 }
150 159 yList.add(y);
151   - }*/
  160 + }
152 161 PageHelper pageHelper = new PageHelper(listsize, map);
153 162 pageHelper.getMap();
154 163 PageObject<Ylxxb> pageObject=pageHelper.getPageObject();
155 164 pageObject.setDataList(yList);
156 165 return pageObject;
157   - }
  166 + }*/
158 167  
159 168 @Override
160 169 public Ylxxb bynbbm(Map<String, Object> map) {
... ... @@ -188,28 +197,112 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
188 197 return y;
189 198 }
190 199  
  200 + @Transactional
191 201 @Override
192   - public Map<String, Object> savejzl(Ylxxb t) {
  202 + public Map<String, Object> savejzl(Map<String, Object> maps) throws Exception {
193 203 // TODO Auto-generated method stub
194 204 Map<String, Object> map=new HashMap<String,Object>();
195 205 try {
196 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 256 map.put("status", ResponseCode.SUCCESS);
  257 +
207 258 } catch (Exception e) {
208 259 map.put("status", ResponseCode.ERROR);
209   - e.printStackTrace();
  260 + logger.error("save erro.", e);
  261 + throw e;
210 262 // TODO: handle exception
211 263 }
212 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 30 import com.bsth.common.ResponseCode;
31 31 import com.bsth.data.BasicData;
32 32 import com.bsth.entity.Cars;
  33 +import com.bsth.entity.Line;
33 34 import com.bsth.entity.oil.Cyl;
34 35 import com.bsth.entity.oil.Ylb;
35 36 import com.bsth.entity.oil.Ylxxb;
... ... @@ -134,11 +135,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
134 135 Ylb ylb=ylListBe.get(i);
135 136 if(map.get("clZbh").toString().equals(ylb.getNbbm())){
136 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 177 t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
179 178 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
180 179 t.setRq(sdf.parse(rq));
  180 + t.setCreatetime(dNow);
181 181 repository.save(t);
182 182  
183 183 }
... ... @@ -202,6 +202,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
202 202 public Map<String, Object> obtain(Map<String, Object> map2) throws Exception{
203 203 Map<String, Object> newMap = new HashMap<String, Object>();
204 204 try {
  205 + Date date=new Date();
205 206 List<Cars> carsList = carsRepository.findCars();
206 207 Map<String, Boolean> carsMap = new HashMap<String, Boolean>();
207 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 270 for (int i = 0; i < ylListBe.size(); i++) {
270 271 Ylb ylb = ylListBe.get(i);
271 272 if (map.get("clZbh").toString().equals(ylb.getNbbm())) {
272   - if(ylb.getJzyl()>0){
  273 + if(ylb.getJzyl()>=0){
273 274 t.setCzyl(ylb.getJzyl());
274 275 fage = false;
275 276 break;
... ... @@ -281,7 +282,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
281 282 for (int y = 0; y < clyList.size(); y++) {
282 283 Cyl cyl = clyList.get(y);
283 284 if (map.get("clZbh").toString().equals(cyl.getNbbm())) {
284   - if(cyl.getCyl()>0){
  285 + if(cyl.getCyl()>=0){
285 286 t.setCzyl(cyl.getCyl());
286 287 fage = false;
287 288 break;
... ... @@ -312,12 +313,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
312 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 317 t.setJzl(jzl);
322 318 t.setNbbm(map.get("clZbh").toString());
323 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 325 t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString());
330 326 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
331 327 t.setRq(sdf.parse(rq));
  328 + t.setCreatetime(date);
332 329 if(type.equals("add")){
333 330 addList.add(t);
334 331 }else{
... ... @@ -385,8 +382,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
385 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 385 Map<String, Object> newMap=new HashMap<String,Object>();
391 386 Map<String, Object> map2=new HashMap<String,Object>();
392 387 try {
... ... @@ -456,7 +451,10 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
456 451 nextJzyl=ylxs;
457 452 } else {
458 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 458 nextJzyl =Arith.sub( Arith.add(t.getJzl(),nextJzyl),yh);
461 459 long l=Math.round(nextJzyl);
462 460 double ylxs=l*100/100;
... ... @@ -466,16 +464,21 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
466 464 t.setJzyl(ylxs);
467 465 nextJzyl= ylxs;
468 466 }
469   -
470 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 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 482 } catch (Exception e) {
480 483 map2.put("status", ResponseCode.ERROR);
481 484 logger.error("save erro.", e);
... ... @@ -647,9 +650,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
647 650 // xlbm=map.get("xlbm_like").toString();
648 651 // }
649 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 661 try{
651 662 //获取车辆存油信息
652   - List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
  663 +
653 664 String rq=map.get("rq").toString();
654 665 String xlbm="";
655 666 if(map.get("xlbm_like")!=null){
... ... @@ -667,6 +678,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
667 678 if(map.get("nbbm_eq")!=null){
668 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 683 List<Ylb> ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
671 684 List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm);
672 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 694 }
682 695  
683 696 if(fage){
  697 + Cyl cyl=null;
684 698 Ylb t=new Ylb();
685 699 t.setNbbm(y1.getNbbm());
686 700 t.setRq(y1.getYyrq());
687 701 t.setJsy(y1.getJsy());
688 702 t.setJzl(y1.getJzl());
689 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 749 newMap.put("status", ResponseCode.SUCCESS);
... ... @@ -862,23 +917,52 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
862 917 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
863 918 }
864 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 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 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 966 if(stringList.size()>0){
883 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 978 // TODO Auto-generated method stub
895 979 Map<String, Object> newMap=new HashMap<String,Object>();
896 980 try{
  981 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
897 982 String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString());
898 983 JSONArray jsonArray=JSONArray.parseArray(json);
899 984 JSONObject jsonObject;
900   -
  985 + // 获取车辆存油信息
  986 + List<Cyl> cylList = cylRepository.obtainCyl("","");
901 987 for (int i = 0; i < jsonArray.size(); i++) {
902 988 // Ylb t=new Ylb();
903 989 jsonObject=jsonArray.getJSONObject(i);
... ... @@ -910,6 +996,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
910 996 String rylx =jsonObject.getString("rylx");
911 997 int yhlx =jsonObject.getIntValue("yhlx");
912 998 Integer id =jsonObject.getInteger("id");
  999 + String nbbm =jsonObject.getString("nbbm");
  1000 + String rq=jsonObject.getString("rq");
913 1001 double yh = Arith.sub(Arith.add(czyl, jzl), jzyl);
914 1002 /*t.setJzyl(jzyl);
915 1003 t.setSh(sh);
... ... @@ -918,6 +1006,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
918 1006 t.setRylx(rylx);
919 1007 t.setId(jsonObject.getInteger("id"));*/
920 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 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 1083 Double zyl = 0.0;
987 1084 Double nextJzyl = 0.0;
988 1085 // 车的,进,出油量及耗油
989   - Map<String, Object> cylMapAdd=new HashMap<String,Object>();
990   - List<Cyl> cylListAdd=new ArrayList<Cyl>();
991 1086 for (int i = 0; i < iterator2.size(); i++) {
992 1087 Ylb t = iterator2.get(i);
993 1088 if (t.getJcsx() == 1) {
... ... @@ -1029,9 +1124,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1029 1124 nextJzyl=ylxs;
1030 1125 }
1031 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 1137 newMap.put("status", ResponseCode.SUCCESS);
1037 1138 }
... ... @@ -1052,9 +1153,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1052 1153 String jsy =map.get("jsy").toString();
1053 1154 String xlbm=map.get("xlbm").toString();
1054 1155 List<Ylb> list= repository.checkYlb(rq, nbbm, jsy,xlbm,"nbbm");
1055   - String type="";
  1156 + String type="1";
1056 1157 if(list.size()>0){
1057   - type="cunzai";
  1158 + type="0";
1058 1159 }
1059 1160 return type;
1060 1161 }
... ... @@ -1070,17 +1171,51 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1070 1171 String jhsj=t.getJhsj();
1071 1172 String jsy=t.getJsy();
1072 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 1179 if(list.size()>0){
1075 1180 for (int i = 0; i < list.size(); i++) {
1076 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 1195 map.put("status", ResponseCode.SUCCESS);
1083 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 9 import java.util.List;
10 10 import java.util.Map;
11 11  
  12 +import javax.transaction.Transactional;
  13 +
  14 +import org.apache.commons.lang3.StringEscapeUtils;
12 15 import org.slf4j.Logger;
13 16 import org.slf4j.LoggerFactory;
14 17 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -16,6 +19,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
16 19 import org.springframework.jdbc.core.RowMapper;
17 20 import org.springframework.stereotype.Service;
18 21  
  22 +import com.alibaba.fastjson.JSONArray;
  23 +import com.alibaba.fastjson.JSONObject;
19 24 import com.bsth.common.ResponseCode;
20 25 import com.bsth.entity.excep.Offline;
21 26 import com.bsth.entity.oil.Ylb;
... ... @@ -44,12 +49,27 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
44 49 String rq=map.get("yyrq").toString();
45 50 String gsdm=map.get("gsdm_like").toString();
46 51 String fgsdm=map.get("fgsdm_like").toString();
47   -
  52 + /*
48 53 String sql=" select x.*,y.jsy as ldgh,y.fgsdm as fgsdm from bsth_c_ylxxb x "
49 54 + " left join bsth_c_ylb y on x.nbbm = y.nbbm and x.jsy !=y.jsy "
50 55 + " where DATE_FORMAT(y.rq,'%Y-%m-%d')='"+rq+"' and y.ssgsdm='"+gsdm+"' "
51 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 74 //根具条件查询指定日期Ylxxb的数据
55 75 // List<Ylxxb> iterator=repository.checkYlxx(rq,gsdm);
... ... @@ -114,21 +134,33 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
114 134 pageObject.setDataList(list);
115 135 return pageObject;
116 136 }
117   -
  137 + @Transactional
118 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 140 Map<String, Object> newMap=new HashMap<String,Object>();
121 141 // TODO Auto-generated method stub
122 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 159 newMap.put("status", ResponseCode.SUCCESS);
129 160 }catch(Exception e){
130 161 newMap.put("status", ResponseCode.ERROR);
131 162 logger.error("save erro.", e);
  163 + throw e;
132 164 }
133 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 89  
90 90 @Autowired
91 91 SectionRouteService sectionRouteService;
  92 +
  93 + @Autowired
  94 + CulateMileageService culateMieageService;
92 95  
93 96 /*@Autowired
94 97 BorrowCenter borrowCenter;*/
... ... @@ -1576,10 +1579,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1576 1579 listSchedule.add(s);
1577 1580 //计算营运里程,空驶里程
1578 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 1586 ScheduleRealInfo t = new ScheduleRealInfo();
1582   - ChildTaskPlan childTaskPlan = it.next();
  1587 + ChildTaskPlan childTaskPlan = listit.get(j);
1583 1588 if (childTaskPlan.isDestroy()) {
1584 1589 t.setFcsjActual("");
1585 1590 t.setZdsjActual("");
... ... @@ -3045,12 +3050,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3045 3050 String jName = yesterdayDataList.get(x).get("jGh").toString();
3046 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 3054 double addMileage = 0, remMileage = 0;
3050 3055 Map<String, Object> map = new HashMap<String, Object>();
3051 3056 boolean fage = true;
3052 3057 String company="";
3053 3058 String bCompany="";
  3059 + List<ScheduleRealInfo> listS=new ArrayList<ScheduleRealInfo>();
3054 3060 for (ScheduleRealInfo scheduleRealInfo : lists) {
3055 3061 if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)){
3056 3062 if (fage) {
... ... @@ -3059,7 +3065,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3059 3065 bCompany=scheduleRealInfo.getFgsBm();
3060 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 3126 }
3119 3127 }
3120 3128 }
3121   - }
  3129 + }*/
3122 3130 }
3123 3131 }
  3132 +
3124 3133 yesterdayDataList.get(x).put("company", company);
3125 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 3146 for (int i = 0; i < yesterdayDataList.size(); i++) {
3133 3147 if (i == 0) {
... ...
src/main/java/com/bsth/service/report/ReportService.java
... ... @@ -38,4 +38,6 @@ public interface ReportService {
38 38 List<Map<String, Object>> lineList();
39 39  
40 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 221 if (!(scheduleRealInfo.getBcType().equals("in")
222 222 || scheduleRealInfo.getBcType().equals("out"))) {
223 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 248 }else{
235 249 ljbc++;
... ... @@ -327,37 +341,24 @@ public class CulateMileageServiceImpl implements CulateMileageService{
327 341 || scheduleRealInfo.getBcType().equals("out"))) {
328 342 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
329 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 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 362 if(item.equals("zgf")){
362 363 if(fcsj>=zgf1 && fcsj<=zgf2){
363 364 sjbc++;
... ... @@ -369,19 +370,47 @@ public class CulateMileageServiceImpl implements CulateMileageService{
369 370 }else{
370 371 sjbc++;
371 372 }
  373 +
372 374 }
373   -
374 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 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 25  
26 26 import com.bsth.data.BasicData;
27 27 import com.bsth.entity.Line;
  28 +import com.bsth.entity.Personnel;
28 29 import com.bsth.entity.StationRoute;
29 30 import com.bsth.entity.excep.ArrivalInfo;
30 31 import com.bsth.entity.oil.Ylb;
... ... @@ -1384,4 +1385,47 @@ public class ReportServiceImpl implements ReportService{
1384 1385 }
1385 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 import com.bsth.repository.BusinessRepository;
7 7 import com.bsth.repository.LineRepository;
8 8 import com.bsth.repository.schedule.*;
  9 +import com.bsth.service.schedule.SchedulePlanRuleResultService;
9 10 import com.bsth.service.schedule.SchedulePlanService;
10 11 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input;
11 12 import com.bsth.service.schedule.rules.plan.PlanResult;
... ... @@ -51,6 +52,10 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
51 52 private EmployeeConfigInfoRepository employeeConfigInfoRepository;
52 53 @Autowired
53 54 private BusinessRepository businessRepository;
  55 + @Autowired
  56 + private SchedulePlanRuleResultService schedulePlanRuleResultService;
  57 + @Autowired
  58 + private SchedulePlanRuleResultRepository schedulePlanRuleResultRepository;
54 59  
55 60 /** 日志记录器 */
56 61 private Logger logger = LoggerFactory.getLogger(SchedulePlanServiceImpl.class);
... ... @@ -84,6 +89,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
84 89 // 设置gloable对象,在drl中通过别名使用
85 90 session.setGlobal("scheduleResult", scheduleResults_output);
86 91 session.setGlobal("log", logger); // 设置日志
  92 + session.setGlobal("schedulePlanRuleResultRepository", schedulePlanRuleResultRepository);
87 93  
88 94 // 载入数据
89 95 session.insert(scheduleCalcuParam_input);
... ... @@ -229,6 +235,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
229 235 schedulePlan.getSchedulePlanInfoList().addAll(planResult.getSchedulePlanInfos());
230 236 super.save(schedulePlan);
231 237  
  238 + schedulePlanRuleResultService.bulkSave(scheduleResults_output.getSchedulePlanRuleResults());
  239 +
232 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 12 /** 结束计算日期 */
13 13 private DateTime toDate;
14 14  
  15 + /** 线路Id */
  16 + private String xlId;
  17 +
  18 + /** 排班计划实体 */
  19 + private SchedulePlan schedulePlan;
  20 +
15 21 public ScheduleCalcuParam_input() {}
16 22  
17 23 public ScheduleCalcuParam_input(SchedulePlan schedulePlan) {
18 24 this.fromDate = new DateTime((schedulePlan.getScheduleFromTime()));
19 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 31 public DateTime getFromDate() {
... ... @@ -35,4 +44,19 @@ public class ScheduleCalcuParam_input {
35 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 1 package com.bsth.service.schedule.rules.shiftloop;
2 2  
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
3 4 import org.apache.commons.lang3.StringUtils;
4 5  
5 6 import java.util.*;
... ... @@ -11,6 +12,17 @@ public class ScheduleResults_output {
11 12 /** 输出列表 */
12 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 26 public List<ScheduleResult_output> getResults() {
15 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 36 /** 车辆翻版(周一到周日是否启用) */
37 37 private List<Boolean> weekdays = new ArrayList<>();
38 38  
  39 + /** 关联的原始规则 */
  40 + private ScheduleRule1Flat self;
  41 +
39 42 public ScheduleRule_input() {}
40 43  
41 44 public ScheduleRule_input(ScheduleRule1Flat scheduleRule1Flat) {
... ... @@ -74,6 +77,8 @@ public class ScheduleRule_input {
74 77 weekdays.add(false);
75 78 }
76 79 }
  80 +
  81 + this.self = scheduleRule1Flat;
77 82 }
78 83  
79 84 public String getRuleId() {
... ... @@ -147,4 +152,12 @@ public class ScheduleRule_input {
147 152 public void setXlId(String xlId) {
148 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 14 private String xlId;
15 15 /** 时刻表Id */
16 16 private String ttInfoId;
  17 + /** 时刻表名字 */
  18 + private String ttInfoName;
17 19  
18 20 public DateTime getDateTime() {
19 21 return dateTime;
... ... @@ -46,4 +48,12 @@ public class LpInfoResult_output {
46 48 public void setTtInfoId(String ttInfoId) {
47 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 66 lpInfoResult_output.setLpId(String.valueOf(ttInfoDetail.getLp().getId()));
67 67 lpInfoResult_output.setXlId(String.valueOf(ttInfoDetail.getXl().getId()));
68 68 lpInfoResult_output.setTtInfoId(String.valueOf(ttInfoDetail.getTtinfo().getId()));
  69 + lpInfoResult_output.setTtInfoName(ttInfoDetail.getTtinfo().getName());
69 70  
70 71 lpInfoResultsData.lpInfoResult_outputMap.put(
71 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 6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
7 7 #DATABASE
8 8 spring.jpa.database= MYSQL
9   -spring.jpa.show-sql= false
  9 +spring.jpa.show-sql= true
10 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 12 spring.datasource.username= root
13   -spring.datasource.password= root
  13 +spring.datasource.password=
14 14 #DATASOURCE
15 15 spring.datasource.max-active=100
16 16 spring.datasource.max-idle=8
... ...
src/main/resources/datatools/ktrs/carsDataInput.ktr
... ... @@ -84,27 +84,6 @@
84 84 <is_key_private>N</is_key_private>
85 85 </info>
86 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 87 </notepads>
109 88 <connection>
110 89 <name>bus_control_variable</name>
... ... @@ -268,98 +247,11 @@
268 247 </attributes>
269 248 </connection>
270 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 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 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 253 </order>
288 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 255 <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
364 256 <type>ExcelInput</type>
365 257 <description/>
... ... @@ -418,7 +310,7 @@
418 310 <group/>
419 311 </field>
420 312 <field>
421   - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
  313 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
422 314 <type>String</type>
423 315 <length>-1</length>
424 316 <precision>-1</precision>
... ... @@ -430,7 +322,7 @@
430 322 <group/>
431 323 </field>
432 324 <field>
433   - <name>&#x8f66;&#x578b;&#x7c7b;&#x522b;</name>
  325 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
434 326 <type>String</type>
435 327 <length>-1</length>
436 328 <precision>-1</precision>
... ... @@ -442,7 +334,7 @@
442 334 <group/>
443 335 </field>
444 336 <field>
445   - <name>&#x5ea7;&#x4f4d;&#x6570;</name>
  337 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
446 338 <type>String</type>
447 339 <length>-1</length>
448 340 <precision>-1</precision>
... ... @@ -454,7 +346,7 @@
454 346 <group/>
455 347 </field>
456 348 <field>
457   - <name>&#x8f7d;&#x5ba2;&#x6807;&#x51c6;</name>
  349 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
458 350 <type>String</type>
459 351 <length>-1</length>
460 352 <precision>-1</precision>
... ... @@ -466,7 +358,7 @@
466 358 <group/>
467 359 </field>
468 360 <field>
469   - <name>&#x6280;&#x672f;&#x901f;&#x5ea6;</name>
  361 + <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>
470 362 <type>String</type>
471 363 <length>-1</length>
472 364 <precision>-1</precision>
... ... @@ -478,7 +370,7 @@
478 370 <group/>
479 371 </field>
480 372 <field>
481   - <name>&#x662f;&#x5426;&#x7a7a;&#x8c03;</name>
  373 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
482 374 <type>String</type>
483 375 <length>-1</length>
484 376 <precision>-1</precision>
... ... @@ -489,1644 +381,246 @@
489 381 <decimal/>
490 382 <group/>
491 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 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 516 <type>String</type>
495   - <length>-1</length>
496   - <precision>-1</precision>
497   - <trim_type>none</trim_type>
498   - <repeat>N</repeat>
499 517 <format/>
500 518 <currency/>
501 519 <decimal/>
502 520 <group/>
503   - </field>
504   - <field>
505   - <name>&#x6807;&#x51c6;&#x6cb9;&#x8017;&#x28;&#x5173;&#x7a7a;&#x8c03;&#x29;</name>
506   - <type>String</type>
507 521 <length>-1</length>
508 522 <precision>-1</precision>
509 523 <trim_type>none</trim_type>
510   - <repeat>N</repeat>
511   - <format/>
512   - <currency/>
513   - <decimal/>
514   - <group/>
515 524 </field>
516 525 <field>
517   - <name>&#x6709;&#x65e0;&#x4eba;&#x552e;&#x7968;</name>
  526 + <name>erroroutputdir_</name>
  527 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
518 528 <type>String</type>
519   - <length>-1</length>
520   - <precision>-1</precision>
521   - <trim_type>none</trim_type>
522   - <repeat>N</repeat>
523 529 <format/>
524 530 <currency/>
525 531 <decimal/>
526 532 <group/>
527   - </field>
528   - <field>
529   - <name>&#x662f;&#x5426;&#x6709;TV&#x89c6;&#x9891;</name>
530   - <type>String</type>
531 533 <length>-1</length>
532 534 <precision>-1</precision>
533 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 590 <format/>
536   - <currency/>
537   - <decimal/>
538   - <group/>
539 591 </field>
540 592 <field>
541   - <name>&#x662f;&#x5426;&#x6709;LED&#x670d;&#x52a1;&#x5c4f;</name>
  593 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
542 594 <type>String</type>
543   - <length>-1</length>
544   - <precision>-1</precision>
545   - <trim_type>none</trim_type>
546   - <repeat>N</repeat>
547 595 <format/>
548   - <currency/>
549   - <decimal/>
550   - <group/>
551 596 </field>
552 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 599 <type>String</type>
2106 600 <format/>
2107 601 </field>
2108 602 <field>
2109   - <name>operatorsState</name>
  603 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
2110 604 <type>String</type>
2111 605 <format/>
2112 606 </field>
2113 607 <field>
2114   - <name>descriptions</name>
  608 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
2115 609 <type>String</type>
2116 610 <format/>
2117 611 </field>
2118 612 <field>
2119   - <name>videoCode</name>
  613 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
2120 614 <type>String</type>
2121 615 <format/>
2122 616 </field>
2123 617 <field>
2124   - <name>&#x4fee;&#x6539;&#x65e5;&#x671f;</name>
  618 + <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>
2125 619 <type>String</type>
2126 620 <format/>
2127 621 </field>
2128 622 <field>
2129   - <name>&#x62a5;&#x5e9f;&#x65e5;&#x671f;</name>
  623 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
2130 624 <type>String</type>
2131 625 <format/>
2132 626 </field>
... ... @@ -2170,8 +664,8 @@
2170 664 </custom>
2171 665 <cluster_schema/>
2172 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 669 <draw>Y</draw>
2176 670 </GUI>
2177 671 </step>
... ... @@ -2189,18 +683,6 @@
2189 683 <max_pct_errors/>
2190 684 <min_pct_rows/>
2191 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 686 </step_error_handling>
2205 687 <slave-step-copy-partition-distribution>
2206 688 </slave-step-copy-partition-distribution>
... ...