package com.mandi.webservice.service.impl; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.mandi.basicconfig.mapper.FdRepertoryNexusMapper; import com.mandi.basicconfig.mapper.NczsjMapper; import com.mandi.basicconfig.persist.*; import com.mandi.common.JSONobj; import com.mandi.common.Jacksonmethod; import com.mandi.common.ParamFileter.BigDecimalfiter; import com.mandi.common.SpringContext; import com.mandi.common.Wxhtmethod; import com.mandi.dao.common.ObjectResult; import com.mandi.dao.common.PageResult; import com.mandi.fendan.mapper.*; import com.mandi.fendan.persist.*; import com.mandi.fendan.util.Contants; import com.mandi.fendan.util.ConvertTool; import com.mandi.fendan.util.ThreadPoolUtil; import com.mandi.fendan.util.persist.Serviceenum; import com.mandi.fendan.util.persist.WaitXSTDMX; import com.mandi.fendan.util.persist.Yktbsitem; import com.mandi.servlet.file.impl.FileLoadImpl; import com.mandi.webservice.service.IFdXSTDService; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @Service public class FdXSTDService implements IFdXSTDService{ @Resource private Fd_XSTDMapper tdper; @Resource private Fd_XSTDMXMapper tdmxper; @Resource private Fd_YKTMapper yktper; @Resource private VehicleXSTDMapper vhxper; @Resource private Fd_VehicleMapper vhper; @Resource private NczsjMapper zsjper; @Resource private Fd_BsheetMapper fbper; @Resource private Fd_CompanyMapper cmper; @Resource private Fd_GbxstdMapper gbper; @Resource private Fd_GbxstdmxMapper gbmxper; @Resource private BusinessMapper bsper; @Resource private BsheetEcgbMapper beper; @Resource private FdRepertoryNexusMapper reNxPer; private Logger log= Logger.getLogger(FileLoadImpl.class); public static Boolean refreshMsLedLock = false; public static Boolean refreshYrLedLock = false; public static Boolean refreshKjLedLock = false; @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> saveFd_xstd(String dataArr) throws Exception { ObjectResult<Boolean> orr=new ObjectResult<Boolean>(); JsonArray ja=null; try { JsonParser jp=new JsonParser(); ja=jp.parse(dataArr).getAsJsonArray(); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,傿•°ä¸æ˜¯json数组ï¼"); } if(ja!=null){ for (JsonElement je : ja) { JsonObject jo=je.getAsJsonObject(); JsonObject objJo=null; JsonArray tdmxArr=null; try { objJo=jo.getAsJsonObject("head"); tdmxArr=jo.getAsJsonArray("body"); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,æ•°æ®æ ¼å¼ä¸æ£ç¡®ï¼"); } String ztbz=JSONobj.getstring(objJo, "td_ztbz"); Fd_XSTD xstd=new Fd_XSTD(); xstd=JSONobj.getobj(objJo, xstd); if("01".equals(ztbz)){ xstd.setTd_ztbz(2); }else if("02".equals(ztbz)){ xstd.setTd_ztbz(1); }else if("03".equals(ztbz)){ xstd.setTd_ztbz(3); }else{ xstd.setTd_ztbz(1); } //明细业务å•å…ƒ String mxywyd=""; //æ ¹æ®ä»“åº“æŸ¥æ‰¾å¯¹åº”çš„åŽ‚åŒºç¼–å· String ckNo="";//æ˜Žç»†ä»“åº“ç¼–å· Ncywdy cn=this.zsjper.getNcywdybyCode(xstd.getTd_ywdybh()); //系统部门找ä¸åˆ°ä¸åšå¤„ç† if(cn==null||cn.getYktCode()==null||StringUtils.isEmpty(cn.getYktCode())){ continue; } Ncworker ncw=this.zsjper.getNcworkerbyCode(xstd.getTd_zdr()); Ncdepart ncd=this.zsjper.getNcdepartbyCode(xstd.getTd_bmbh()); if(ncw!=null) xstd.setTd_zdrmc(ncw.getName()); if(ncd!=null) xstd.setTd_bmmc(ncd.getName()); int td_wfdsl=0;//æœªåˆ†å•æ•°é‡ double td_wfdzl=0;//未分å•é‡é‡ String td_tdls=xstd.getTd_tdls();//æå•æµæ°´å· for (int i = 0; i < tdmxArr.size(); i++) { objJo=tdmxArr.get(i).getAsJsonObject(); String h=JSONobj.getstring(objJo, "h"); String k=JSONobj.getstring(objJo, "k"); String c=JSONobj.getstring(objJo, "c"); Fd_XSTDMX xstdmx=new Fd_XSTDMX(); xstdmx=JSONobj.getobj(objJo,xstdmx); double mz=xstdmx.getTdmx_mz(); xstdmx.setTdmx_ggxh((h==null?"C":h)+"*"+(k==null?"C":k)+"*"+(c==null?"C":c)); if(StringUtils.isEmpty(td_tdls)){ td_tdls=xstdmx.getTdmx_tdls(); } if(StringUtils.isBlank(mxywyd)){ cn=this.zsjper.getNcywdybyCode(xstdmx.getTdmx_fhzz()); //系统部门找ä¸åˆ°ä¸åšå¤„ç† if(cn!=null && StringUtils.isNotBlank(cn.getYktCode())){ mxywyd=xstdmx.getTdmx_fhzz(); }else{ continue; } if(StringUtils.isBlank(ckNo)) { Ncck ck=this.zsjper.getNcckbyPkid(xstdmx.getTdmx_ck()); if(ck!=null) ckNo=ck.getCode(); } } //有上次已装车记录 Fd_XSTDMX ccr=this.tdmxper.get(xstdmx.getTdmx_tdfl()); if(ccr!=null&&ccr.getTdmx_zcbz()>0){ continue; }else{ if(ccr!=null){ this.tdmxper.del(xstdmx.getTdmx_tdfl()); } } if(Contants.NcNosend.equals(mxywyd)){ this.tdmxper.delbyTDLS(xstd.getTd_tdls()); this.tdper.del(xstd.getTd_tdls()); break; } this.tdmxper.insert(xstdmx); //如果这次推过æ¥çš„æ˜¯å…³é—çš„ 明细ä¿å˜ 表头ä¸å¢žåŠ æœªåˆ†å•æ•°é‡ if(xstdmx.getTdmx_gbbz()==0){ td_wfdsl++; td_wfdzl+=mz; } } if(!Contants.NcNosend.equals(mxywyd)){ //获å–生æˆåŽ‚åŒºç¼–å· FdRepertoryNexus renx=this.reNxPer.getbyckNoAndYwdyNo(ckNo,mxywyd); if(renx!=null) xstd.setTd_cqNo(renx.getSdepartNo()); xstd.setTd_wfdsl(td_wfdsl); xstd.setTd_wfdzl(td_wfdzl); xstd.setTd_ywdybh(mxywyd); this.tdper.insert(xstd); } } } orr.setCode(0); orr.setErrmsg("新增æˆåŠŸï¼"); return orr; } @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> delFd_xstd(String dataArr) throws Exception { ObjectResult<Boolean> orr=new ObjectResult<Boolean>(); JsonArray ja=null; try { JsonParser jp=new JsonParser(); ja=jp.parse(dataArr).getAsJsonArray(); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,傿•°ä¸æ˜¯json数组ï¼"); } if(ja!=null){ for (JsonElement je : ja) { JsonObject jo=je.getAsJsonObject(); JsonObject objJo=null; try { objJo=jo.getAsJsonObject("head"); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,æ•°æ®æ ¼å¼ä¸æ£ç¡®ï¼"); } String td_tdls=JSONobj.getstring(objJo, "td_tdls"); if(StringUtils.isBlank(td_tdls)){ throw new Exception("æ•°æ®è§£æžé”™è¯¯,æå•æµæ°´å·ä¸èƒ½ä¸ºç©ºï¼"); } Fd_XSTD td_xstd=this.tdper.get(td_tdls); if(td_xstd!=null){ int c=this.tdmxper.getbytdlswithZCorFD(td_tdls); if(c>0){ throw new Exception("å‘è´§å•:"+td_xstd.getTd_tdbh()+" å·²ç»åˆ†å•或装车,ä¸èƒ½åˆ 除ï¼"); } // //åªåˆ é™¤æ ‡å¿—æ˜¯æœªè£…è½¦çš„ this.tdmxper.delbyTDLS(td_tdls); this.tdper.del(td_tdls); this.gbper.del(td_xstd.getTd_tdbh()); this.gbmxper.del(td_xstd.getTd_tdbh()); } } } orr.setCode(0); orr.setErrmsg("åˆ é™¤æˆåŠŸï¼"); return orr; } @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> closeFd_xstd(String dataArr) throws Exception { ObjectResult<Boolean> orr=new ObjectResult<Boolean>(); JsonArray ja=null; try { JsonParser jp=new JsonParser(); ja=jp.parse(dataArr).getAsJsonArray(); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,傿•°ä¸æ˜¯json数组ï¼"); } if(ja!=null){ for (JsonElement je : ja) { JsonObject jo=je.getAsJsonObject(); JsonObject objJo=null; JsonArray tdmxArr=null; try { objJo=jo.getAsJsonObject("head"); tdmxArr=jo.getAsJsonArray("body"); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,æ•°æ®æ ¼å¼ä¸æ£ç¡®ï¼"); } //æå•æµæ°´å· String td_tdls=objJo.get("td_tdls")==null?"":objJo.get("td_tdls").getAsString(); Fd_XSTD xstd=this.tdper.get(td_tdls); if(xstd!=null){ for (int i = 0; i < tdmxArr.size(); i++) { objJo=tdmxArr.get(i).getAsJsonObject(); String tdmx_tdfl=objJo.get("tdmx_tdfl")==null?"":objJo.get("tdmx_tdfl").getAsString(); String sfckgb=objJo.get("sfckgb")==null?"":objJo.get("sfckgb").getAsString(); Fd_XSTDMX tdmx=this.tdmxper.get(tdmx_tdfl); if(tdmx!=null&&tdmx.getTdmx_gbbz()==0){ tdmx.setTdmx_gbbz(1); this.tdmxper.updateGB(tdmx); // if(tdmx.getTdmx_zcbz()!=0){ // continue; // } if(tdmx.getTdmx_fdbz()!=0){ //å·²åˆ†å•æœªè£…车 if("N".equals(sfckgb)){ if(tdmx.getTdmx_zcbz()==0){ throw new Exception("æå•明细:批次å·ï¼š"+tdmx.getTdmx_pch()+" å·²åˆ†å•æœªè£…车,请è”系物æµå…¬å¸å–消分å•ï¼"); } } } // if(tdmx.getTdmx_zcbz()!=0){ // throw new Exception("æå•æµæ°´å·ï¼š"+xstd.getTd_tdls()+" 已扫ç 装车,ä¸èƒ½å…³é—ï¼"); // } if(tdmx.getTdmx_fdbz()==0){ xstd.setTd_wfdsl(xstd.getTd_wfdsl()-1); xstd.setTd_wfdzl(xstd.getTd_wfdzl()-tdmx.getTdmx_mz()); this.tdper.updateFD(xstd); }else{ if(tdmx.getTdmx_zcbz()==0){ tdmx.setTdmx_fdywbh(null); tdmx.setTdmx_fdwlgsbh(null); tdmx.setTdmx_fdbz(0); tdmx.setTdmx_fdcph(null); this.tdmxper.updateFD(tdmx); } } //这个关é—记录表示的是一å¡é€šé‡Œçš„关闿“作 Fd_Gbxstdmx gbmx=this.gbmxper.get(tdmx_tdfl); if(gbmx!=null){ Fd_Gbxstd gb=this.gbper.get(xstd.getTd_tdbh()); if(gb!=null){ gb.setTd_gbsl(gb.getTd_gbsl()-1); gb.setTd_gbzl(BigDecimalfiter.sub(gb.getTd_gbzl(),tdmx.getTdmx_mz())); this.gbper.update(gb); } this.gbmxper.delbyId(tdmx_tdfl); } } } } } } orr.setCode(0); orr.setErrmsg("关闿ˆåŠŸï¼"); return orr; } @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> openFd_xstd(String dataArr) throws Exception { ObjectResult<Boolean> orr=new ObjectResult<Boolean>(); JsonArray ja=null; try { JsonParser jp=new JsonParser(); ja=jp.parse(dataArr).getAsJsonArray(); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,傿•°ä¸æ˜¯json数组ï¼"); } if(ja!=null){ for (JsonElement je : ja) { JsonObject jo=je.getAsJsonObject(); JsonObject objJo=null; JsonArray tdmxArr=null; try { objJo=jo.getAsJsonObject("head"); tdmxArr=jo.getAsJsonArray("body"); } catch (Exception e) { throw new Exception("æ•°æ®è§£æžé”™è¯¯,æ•°æ®æ ¼å¼ä¸æ£ç¡®ï¼"); } //æå•æµæ°´å· String td_tdls=objJo.get("td_tdls")==null?"":objJo.get("td_tdls").getAsString(); Fd_XSTD xstd=this.tdper.get(td_tdls); if(xstd!=null){ for (int i = 0; i < tdmxArr.size(); i++) { objJo=tdmxArr.get(i).getAsJsonObject(); String tdmx_tdfl=objJo.get("tdmx_tdfl")==null?"":objJo.get("tdmx_tdfl").getAsString(); Fd_XSTDMX tdmx=this.tdmxper.get(tdmx_tdfl); if(tdmx!=null&&tdmx.getTdmx_gbbz()==1){ tdmx.setTdmx_gbbz(0); this.tdmxper.updateGB(tdmx); if(tdmx.getTdmx_fdbz()==0){ xstd.setTd_wfdsl(xstd.getTd_wfdsl()+1); xstd.setTd_wfdzl(xstd.getTd_wfdzl()+tdmx.getTdmx_mz()); this.tdper.updateFD(xstd); } } } } } } orr.setCode(0); orr.setErrmsg("打开æˆåŠŸï¼"); return orr; } @Override @Transactional(rollbackFor=Exception.class) public PageResult<Map<String, Object>> addZCMX(String cardID,String yktywdh, JsonArray dataArr) throws Exception { PageResult<Map<String, Object>> prr=new PageResult<Map<String,Object>>(); List<Map<String, Object>> relist=new ArrayList<Map<String,Object>>(); if(StringUtils.isEmpty(yktywdh)){ prr.setCode(1); prr.setErrmsg("傿•°ï¼šä¸€å¡é€šä¸šåŠ¡å•å·ä¸ºç©ºï¼"); return prr; } //æ ¹æ®å¡å·åˆ¤æ–分å•ä¿¡æ¯ //å¾ªçŽ¯æ‰¹æ¬¡å· å¦‚æžœæ²¡æœ‰åˆ†å• ä¿®æ”¹ä¸ºåˆ†å•和装车 Fd_Bsheet fdb=this.fbper.getbybsNo(StringUtils.isNotBlank(yktywdh)?yktywdh:""); String vehicleId=""; if(fdb==null){ prr.setCode(1); prr.setErrmsg("一å¡é€šä¸šåС啿œªæ‰¾åˆ°ï¼Œè¯·ç¡®è®¤å•å·æ˜¯å¦æ£ç¡®ï¼"); return prr; } if (fdb.getStatus() != Serviceenum.在办) { prr.setCode(2); prr.setErrmsg("一å¡é€šä¸šåŠ¡å•䏿˜¯åœ¨åŠžçŠ¶æ€,系统ä¸åšå¤„ç†ï¼"); return prr; } if (StringUtils.isBlank(cardID)) { prr.setCode(1); prr.setErrmsg("傿•°ï¼šä¸€å¡é€šå¡å·ä¸ºç©ºï¼"); return prr; } if (dataArr == null) { prr.setCode(1); prr.setErrmsg("傿•°ï¼šæ‰¹æ¬¡å·ä¸ºç©ºï¼"); return prr; } Map<String, Object> mp = this.yktper.getcardinuse(cardID); if (mp == null) { throw new Exception("å¡å·ä¸æ£ç¡®æœªæ‰¾åˆ°åœ¨ç”¨å¡ï¼"); } vehicleId = mp.get("numberplates") == null ? "" : mp.get("numberplates").toString(); if (!vehicleId.equals(fdb.getVehicleId())) { prr.setCode(1); prr.setErrmsg("傿•°ï¼šå¡å·å…³è”的车牌å·å’Œä¸šåŠ¡å•å…³è”的车牌å·ä¸ä¸€è‡´"); return prr; } // yktywdh = fdb.getBsNo(); int wcnum=this.bsper.getweightDoc(vehicleId, fdb.getBsNo()); if(wcnum<=0){ prr.setCode(1); prr.setErrmsg("车辆:"+vehicleId+" 未找到过磅å•,请先过磅ï¼"); return prr; } yktywdh=fdb.getBsNo(); //是å¦éƒ‘州厂区 boolean iszz=false; //检查是å¦è£…è½¦å®Œæˆ Map<String, Object> mmr=this.bsper.selectTaskTime(fdb.getBsNo()); try { if(mmr!=null&&mmr.get("zcWc")!=null&&Boolean.valueOf(mmr.get("zcWc").toString())) { prr.setCode(1); prr.setErrmsg("è”ç³»æˆå“åº“åŠžå…¬å®¤å–æ¶ˆè£…车完æˆï¼"); return prr; } } catch (Exception e) { } String currPch="";// 当剿‰¹æ¬¡å· List<String> pchList = new ArrayList<>(); //ç¬¬ä¸€æ¬¡æ·»åŠ è£…å¸è®°å½•å‘é€è£…è½¦ä¿¡æ¯ int sfzc=this.fbper.getbsitembyNo(fdb.getBsNo()); if(sfzc<=0) { //å‘é€å¾®ä¿¡å…¬ä¼—å·æé†’ä¿¡æ¯ String url=Contants.yktLocalAdd+"/routine/sendZcMsg.htm"; Map<String, String> paramMp=new HashMap<String, String>(); mp.put("sdepartNo", fdb.getSdepartNo()); mp.put("vehicleId", vehicleId); mp.put("businessNo", fdb.getBsNo()); Wxhtmethod.postJson(url, paramMp); } // 现场过完毛é‡åŽå‡ºçŽ°æ‰«ç è£…è½¦çš„ï¼Œå¿…é¡»é‡æ–°è¿‡ç£… int grossNum=this.bsper.getgrosstDoc(vehicleId, fdb.getBsNo()); List tdmxPchList = new ArrayList(); for (JsonElement je : dataArr) { JsonObject jo=je.getAsJsonObject(); String tdmx_pch = jo.get("tdmx_pch").getAsString(); tdmxPchList.add(tdmx_pch); } if("08".equals(fdb.getSdepartNo())) { // åªæ˜¯ä¹‰ç‘žåŽ‚åŒºæœ‰æ•ˆ // 检查是å¦å½“å‰åŒºåŸŸå·²ç»æŽ’队 Map paramMap = new HashMap(); paramMap.put("vehicleId", vehicleId); paramMap.put("tdmxPchList", tdmxPchList); String jsonStr = Jacksonmethod.tojson(paramMap, false); JsonObject jsonObject = Wxhtmethod.postJsonStr(Contants.yr_canDoScanUrl, jsonStr); if (jsonObject.get("code").getAsInt() != 0) { prr.setCode(1); prr.setErrmsg(jsonObject.get("errmsg").getAsString()); return prr; } } for (JsonElement je : dataArr) { JsonObject jo=je.getAsJsonObject(); String tdmx_pch = jo.get("tdmx_pch").getAsString(); // Fd_XSTDMX tdmx=this.tdmxper.getbyPCH(tdmx_pch); Fd_XSTDMX tdmx=this.tdmxper.getbyPCHONE(tdmx_pch,vehicleId); if(tdmx==null){ prr.setCode(1); prr.setErrmsg("车辆:"+vehicleId+"没有该明细的分å•记录或已关é—,ä¸èƒ½æ·»åŠ è£…è½¦ï¼"); return prr; } // 下é¢éƒ¨åˆ†æ³¨é‡ŠæŽ‰ï¼Œæ”¹ä¸ºsqlè¯å¥ä¸åˆ¤æ–是å¦ä¸ºæœªå…³é— /*if(tdmx.getTdmx_gbbz()!=0){ prr.setCode(1); prr.setErrmsg("明细:"+tdmx.getTdmx_pch()+" 在NC是已关é—状æ€ï¼Œä¸èƒ½æ·»åŠ è£…è½¦ï¼"); return prr; }*/ // boolean booff=false; // if(tdmx.getTdmx_zcbz()!=0){ // booff=true; // throw new Exception("批次å·ï¼š"+tdmx_pch+" å·²ç»æäº¤è£…è½¦ï¼Œä¸èƒ½é‡å¤æäº¤è£…车ï¼"); // } Fd_XSTD xstd=this.tdper.get(tdmx.getTdmx_tdls()); if(Contants.nc_ywdy_ZZ.equals(xstd.getTd_cqNo())&&!iszz){ iszz=true; } Vehicle_XSTD vxs=this.vhxper.getVhicleByIDs(vehicleId, xstd.getTd_tdbh()); if(vxs==null) { prr.setCode(1); prr.setErrmsg("未找到é…车关è”记录,ä¸èƒ½æ·»åŠ è£…è½¦ï¼"); return prr; } //修改æå•çš„æœªåˆ†å•æ•°é‡å’Œé‡é‡ //修改æå•vehicle_XSTD表 Fd_Company fdc=null; //是å¦åˆ†å• if(tdmx.getTdmx_fdbz()==0){ fdc=this.cmper.getByCompanyNo(vxs.getCompanyNo()); tdmx.setTdmx_fdbz(1); tdmx.setTdmx_fdcph(vehicleId); tdmx.setTdmx_fdywbh(yktywdh); tdmx.setTdmx_fdwlgsbh(vxs.getCompanyNo()); xstd.setTd_wfdsl(xstd.getTd_wfdsl()-1); xstd.setTd_wfdzl(xstd.getTd_wfdzl()-tdmx.getTdmx_mz()); this.tdper.updateFD(xstd); vxs.setFd_num(vxs.getFd_num()+1); vxs.setFd_weight(vxs.getFd_weight()+tdmx.getTdmx_mz()); this.vhxper.updatewithIDs(vxs); }else { fdc=this.cmper.getByCompanyNo(tdmx.getTdmx_fdwlgsbh()); } tdmx.setTdmx_zcbz(1); tdmx.setTdmx_zccph(vehicleId); tdmx.setTdmx_zcwlgsName(fdc.getName()); tdmx.setTdmx_zcdriver(fdb.getDriver()); tdmx.setTdmx_zcphone(fdb.getPhone()); this.tdmxper.updateZCnoFD(tdmx); WaitXSTDMX wx=this.fbper.getWaittdmx(tdmx.getTdmx_tdls(), tdmx.getTdmx_tdfl()); this.fbper.delbsitem(tdmx.getTdmx_pch(), fdb.getBsNo()); Yktbsitem bsi=new Yktbsitem(); bsi.setId(UUID.randomUUID()+""); bsi.setBussinessNo(fdb.getBsNo()); bsi.setName(wx.getTdmx_wlmc()); bsi.setMaterielNo(tdmx.getTdmx_wlbh()); bsi.setNorms(wx.getTdmx_ggxh()); bsi.setUnitname("Kg"); bsi.setNum(1); bsi.setWeight(BigDecimalfiter.mulcon(tdmx.getTdmx_jz(), 1000, Contants.scale)); bsi.setPrice(0); bsi.setPreweight(BigDecimalfiter.mulcon(tdmx.getTdmx_jz(), 1000, Contants.scale)); bsi.setPici(tdmx.getTdmx_pch()); bsi.setHejin(wx.getTdmx_hjzt()); bsi.setGross(BigDecimalfiter.mulcon(tdmx.getTdmx_mz(), 1000, Contants.scale)); bsi.setTaotongWeight(0); bsi.setMoney(0); bsi.setCdepart(""); bsi.setCdepartid(0); bsi.setCname(""); bsi.setCreateid(""); bsi.setCtime(new Date()); bsi.setLoadbuild(false); bsi.setFachang(false); bsi.setFachang(true); bsi.setFcnum(0); if(StringUtils.isBlank(xstd.getTd_fpbh())){ bsi.setRecompany(wx.getTdmx_shdw()); }else{ bsi.setRecompany( ConvertTool.covertToCustoms(xstd.getTd_ywdybh()) ); } bsi.setReID(""); bsi.setDecompany(ConvertTool.ncCovertToFactoryName(xstd.getTd_ywdybh())); bsi.setDeID(""); bsi.setFrombatch("ERP系统"); bsi.setForshowindx(1); bsi.setReserved11(0); bsi.setReserved12(0); bsi.setReserved13(0); bsi.setJsnum(0); this.fbper.insertbsitem(bsi); Map<String, Object> remp=new HashMap<String, Object>(); remp.put("tdmx_pch",tdmx.getTdmx_pch()); remp.put("td_tdls",tdmx.getTdmx_tdls()); remp.put("tdmx_tdfl",tdmx.getTdmx_tdfl()); relist.add(remp); currPch = tdmx.getTdmx_pch(); pchList.add(tdmx.getTdmx_pch()); } if(grossNum>0) { Map<String, Object> xstm=new HashMap<String, Object>(); xstm.put("canCm",false); xstm.put("businessNo",fdb.getBsNo()); this.bsper.updateCanCm(xstm); this.bsper.updatecanFb(vehicleId, fdb.getBsNo()); } //如果是郑州的销售业务å•åˆ é™¤æŽ’é˜Ÿä¿¡æ¯ if(iszz){ int ca=this.bsper.getvehicleQ(vehicleId); if(ca>0){ // this.bsper.delvehicleQ(vehicleId); //åˆ é™¤è½¦è¾†æŽ’é˜Ÿä¿¡æ¯ String url=Contants.yktLocalAdd+"/search/vehicleQueue/delItem.htm"; Map<String, String> paramMp=new HashMap<String, String>(); mp.put("vehicleID", vehicleId); Wxhtmethod.postJson(url, paramMp); } } // æ¤å¤„异æ¥è§¦å‘一下明晟å‘车 if("06".equals(fdb.getSdepartNo())) { final String pch = currPch; final String finalVehicleId = vehicleId; ThreadPoolUtil.getInstance().execute(()->{ Map paramMap = new HashMap(); paramMap.put("vehicleId", finalVehicleId); paramMap.put("tdmxPchList", tdmxPchList); String jsonStr = Jacksonmethod.tojson(paramMap, false); JsonObject jsonObject = Wxhtmethod.postJsonStr(Contants.ms_DoScanUrl, jsonStr); if (jsonObject.get("code").getAsInt() != 0) { prr.setCode(1); prr.setErrmsg(jsonObject.get("errmsg").getAsString()); // return prr; } }); // 延迟1.5秒执行,ä¿è¯æ•°æ®æ‰§è¡Œå®Œäº† ThreadPoolUtil.getInstance().execute(()->{ synchronized (FdXSTDService.refreshMsLedLock) { if (FdXSTDService.refreshMsLedLock) { // 系统ç¹å¿™ log.info(finalVehicleId + "" + pch + "系统ç¹å¿™ï¼"); return; } } try { synchronized (FdXSTDService.refreshMsLedLock) { FdXSTDService.refreshMsLedLock = true; } sendToMsLed(pch); } catch (Exception e) { log.error("出现异常:"+ e.getMessage(),e); } finally { synchronized (FdXSTDService.refreshMsLedLock) { FdXSTDService.refreshMsLedLock = false; } } },1500); } if("08".equals(fdb.getSdepartNo())) { final String cph = currPch; ThreadPoolUtil.getInstance().execute(()->{ // 这个地方ä¸å†è¯·æ±‚ /*Map scanCodeParamMap = new HashMap(); scanCodeParamMap.put("pch",cph); Wxhtmethod.post(Contants.yr_scanCodeNoticeUrl, scanCodeParamMap);*/ try { synchronized (FdXSTDService.refreshYrLedLock) { if (FdXSTDService.refreshYrLedLock) { // 系统ç¹å¿™ return ; } FdXSTDService.refreshYrLedLock = true; } sendToYrLed(cph); } catch (Exception e) { log.error(e); } finally { synchronized (FdXSTDService.refreshYrLedLock) { FdXSTDService.refreshYrLedLock = false; } } }); } else if("04".equals(fdb.getSdepartNo())) { // 科技 final String cph = currPch; ThreadPoolUtil.getInstance().execute(()->{ try { synchronized (FdXSTDService.refreshKjLedLock) { if (FdXSTDService.refreshKjLedLock) { // 系统ç¹å¿™ return ; } FdXSTDService.refreshKjLedLock = true; } sendToKjLed(cph); } catch (Exception e) { log.error(e); } finally { synchronized (FdXSTDService.refreshKjLedLock) { FdXSTDService.refreshKjLedLock = false; } } }); } prr.setCode(0); prr.setErrmsg("装车æ“作æˆåŠŸï¼"); prr.setList(relist); return prr; } /** * 挪到一å¡é€š * @param currPch 当剿‰¹æ¬¡å· */ public void sendToMsLed(String currPch){ //A区 76-86 + 99-1 //B区 14-33 + 99-2 //C区 53-67 + 99-3 // 2024年改 //A区 73-88 + 99-1 + 40-45 //B区 14-27 + 99-2 + 46-49 //C区 50-65 + 99-3 //D区 28-39 + 69-72 + 89-98 log.info("LED-ABC当剿‰«ç 批次å·ï¼š" + currPch); List<Map> totalList = tdmxper.getHwList("06"); // èŽ·å–æ˜Žæ™Ÿæ‰€æœ‰åœ¨åŠžä¸šåŠ¡å•çš„ä¿¡æ¯ log.info("LED-ABC获å–ä¿¡æ¯æ¡æ•°ï¼š" + totalList.size()); Map<String,List<Map>> ywbhListMap = new HashMap<>(); for (Map map : totalList) { String ywdw = (String) map.get("tdmx_fdywbh"); if(ywdw == null) { log.info("出现业务å•å·ä¸ºnull的情况:" + Jacksonmethod.tojson(map,false)); continue; } if(ywbhListMap.get(ywdw) == null) { ywbhListMap.put(ywdw, new ArrayList<>()); } ywbhListMap.get(ywdw).add(map); } String str1 = " è½¦å· A区 B区 C区" + "\r\n", str2=""; //"(车牌å·)\\-(A区已装车)/(A区总计)\\-(B区已装车)/(B区总计)\\-(C区已装车)/(C区总计)\\r\\n"; String formatStr = "%s %s/%s %s/%s %s/%s\r\n"; // åªæœ‰1个区 Map speakParam = new HashMap(1); for (Map.Entry<String, List<Map>> entry : ywbhListMap.entrySet()) { // é历æ¯ä¸ªä¸šåŠ¡å•çš„ // 当å‰è£…车Aã€Bã€C区; D区åªå‚与记录,ä¸å‚与LED显示和è¯è¨€æ’报 boolean currA = false,currB = false, currC = false, currD = false; boolean hasZcwc = false; // ä¿è¯å·²ç»å®Œæˆäº† String ywhb = entry.getKey(); List<Map> vehicleIdTotalList = entry.getValue(); // æ€»è®¡ä¿¡æ¯ Map<String, Integer> totalAbcMap = new HashMap(3); totalAbcMap.put("A", 0); totalAbcMap.put("B", 0); totalAbcMap.put("C", 0); /* å·²è£…ä¿¡æ¯ */ Map<String, Integer> abcMap = new HashMap(3); abcMap.put("A", 0); abcMap.put("B", 0); abcMap.put("C", 0); String cph = ""; // è½¦ç‰Œå· for (Map map : vehicleIdTotalList) { String hw = (String) map.get("tdmx_hwmc"); String pch = (String) map.get("tdmx_pch"); if(StringUtils.isBlank(cph)) cph = (String) map.get("tdmx_fdcph"); Integer zcbz = (Integer) map.get("tdmx_zcbz"); String hh = hw.replaceAll("\\-.*",""); hh = hh.substring(hh.length()-2); // å–æœ€åŽä¸¤ä½ int num = Integer.parseInt(hh); if (num >= 73 && num <= 88 || hw.lastIndexOf("99-1") >= 0) { // A区 totalAbcMap.put("A",totalAbcMap.get("A") + 1); if (zcbz != null && zcbz == 1) { // è£…è½¦å®Œæˆ abcMap.put("A", abcMap.get("A") + 1); hasZcwc = true; } if(pch.equals(currPch)) { currA = true; currB = false;currC =false;currD=false; } } else if (num >= 14 && num <= 27 || hw.lastIndexOf("99-2") >= 0) { // B区 totalAbcMap.put("B", totalAbcMap.get("B") + 1); if (zcbz != null && zcbz == 1) { abcMap.put("B", abcMap.get("B") + 1); hasZcwc = true; } if(pch.equals(currPch)) { currA = false; currB = true;currC =false;currD=false; } } else if (num >= 50 && num <= 65 || hw.lastIndexOf("99-3") >= 0) { // C区 totalAbcMap.put("C", totalAbcMap.get("C") + 1); if (zcbz != null && zcbz == 1) { abcMap.put("C", abcMap.get("C") + 1); hasZcwc = true; } if(pch.equals(currPch)) { currA = false; currB = false; currC =true; currD=false; } } else if(num>=28 && num<=39 || (num>=69 && num<=72) || (num>=89 && num<=98)) { if(pch.equals(currPch)) { currA = false; currB = false;currC =false;currD=true; } } } // if (!hasZcwc) continue; //没有装车完æˆçš„也跳过 /*if (!(currA || currB || currC) && abcMap.get("A") + abcMap.get("B") + abcMap.get("C") == totalAbcMap.get("A") + totalAbcMap.get("B") + totalAbcMap.get("C")) { // éžå½“å‰è½¦ç‰Œå·ï¼Œå·²ç»è£…车完æˆä½†æ˜¯æœªå‡ºåŽ‚ continue; }*/ if(totalAbcMap.get("B")==0 && totalAbcMap.get("C")==0 && totalAbcMap.get("A")==0) { continue; } str2 += String.format(formatStr, cph, fillWithZero(abcMap.get("A")), fillWithZero(totalAbcMap.get("A")), fillWithZero(abcMap.get("B")), fillWithZero(totalAbcMap.get("B")), fillWithZero(abcMap.get("C")), fillWithZero(totalAbcMap.get("C"))); log.info(ywhb + "投å±å‡†å¤‡å®Œæˆï¼Œå¼€å§‹å‡†å¤‡è¯éŸ³ã€‚"); // 开始准备è¯éŸ³ int total = 0; if(currA && abcMap.get("A") == totalAbcMap.get("A") && totalAbcMap.get("A")>0) { // 当å‰è½¦åœ¨AåŒºè£…è½¦å®Œæˆ total = totalAbcMap.get("A"); } if(currB && abcMap.get("B") == totalAbcMap.get("B") && totalAbcMap.get("B")>0) {// 当å‰è½¦åœ¨BåŒºè£…è½¦å®Œæˆ total = totalAbcMap.get("B"); } if(currC && abcMap.get("C") == totalAbcMap.get("C") && totalAbcMap.get("C")>0) {// 当å‰è½¦åœ¨CåŒºè£…è½¦å®Œæˆ total = totalAbcMap.get("C"); } try { String speakTxt = startToSpeak(cph,total,abcMap,totalAbcMap); if(StringUtils.isNotBlank(speakTxt)) { log.info("SpeakTxt:"+ speakTxt); speakParam.put("SpeakTxt", speakTxt); } }catch (Exception e){ log.error("准备è¯éŸ³å‡ºé”™ï¼" + e.getMessage(),e); } // 准备è¯éŸ³ç»“æŸ // å•辆车的å•个业务å•的信æ¯ç»“æŸ } if(StringUtils.isBlank(str2)) { str2 = "æ— è½¦è¾†"; } Map paramMap = new HashMap(); paramMap.put("strTitle",str1); paramMap.put("strContent",str2); try { log.info("LED-ABC webServiceAddrss:"+Contants.msLedServiceAddr+"st1::" +str1+";;;;;str2::"+str2); String re = Wxhtmethod.post(Contants.msLedServiceAddr + "/SendLED",paramMap); log.info("LED-ABC result:"+re); // è¯éŸ³åªæ’ä¸€æ¡ String re1 = Wxhtmethod.post(Contants.msLedServiceAddr + "/Speak",speakParam); }catch (Exception e){} } /** * 准备è¯éŸ³ ,挪到一å¡é€š * @param cph è½¦ç‰Œå· * @param total 当å‰åŒºæ€»æ•° * @param abcMap Aã€Bã€C为key的区已装数目 * @param totalAbcMap Aã€Bã€C为key的区总数 * @return */ String startToSpeak(String cph, int total,Map<String,Integer> abcMap,Map<String,Integer> totalAbcMap) { String speakTxt=null ; if(total > 0) { // æ’æ”¾è¯éŸ³ï¼Œè¯·ç¦»å¼€åŒºåŸŸ String speakTxtFormatStr1 = "车å·%s ,装货%d件已完æˆï¼Œè¯·å¸æœºæ¸…点货物åŽå°½å¿«é©¶ç¦»è£…货区。"; // åªæœ‰2个区 String speakTxtFormatStr2 = "车å·%s,%s区装货%d件已全部扫æå®Œæˆï¼Œè¯·å¸æœºæ¸…点货物åŽåŽ»%s区装货。"; // åªæœ‰3个区 String speakTxtFormatStr3 = "车å·%s,%s区装货%d件已全部扫æå®Œæˆï¼Œè¯·å¸æœºæ¸…点货物åŽåŽ»%s区%s区装货。"; if( (abcMap.get("A")>0 && totalAbcMap.get("B")==0 && totalAbcMap.get("C")==0) || (abcMap.get("B")>0 && totalAbcMap.get("A")==0 && totalAbcMap.get("C")==0) || (abcMap.get("C")>0 && totalAbcMap.get("B")==0 && totalAbcMap.get("D")==0) ) { // åªæœ‰ä¸€ä¸ªåŒºåŸŸæœ‰è´§ç‰© speakTxt= String.format(speakTxtFormatStr1, cph, total); }else if(totalAbcMap.get("A")>0 && totalAbcMap.get("B")>0 && (totalAbcMap.get("C")==0 || totalAbcMap.get("C") == abcMap.get("C"))){ // AB都有货 CåŒºå·²å®Œæˆ–æ— è´§ if(totalAbcMap.get("C")>0 && abcMap.get("A")< totalAbcMap.get("A") && abcMap.get("B")< totalAbcMap.get("B")) { // C装完AB未装完 speakTxt= String.format(speakTxtFormatStr3, cph,"C", total,"A","B"); } else if(abcMap.get("A")== totalAbcMap.get("A") && abcMap.get("B")< totalAbcMap.get("B")) { //A完B未完 speakTxt = String.format(speakTxtFormatStr2, cph, "A", total, "B"); }else if(abcMap.get("B")== totalAbcMap.get("B") && abcMap.get("A")< totalAbcMap.get("A")) {//B完A未完 speakTxt = String.format(speakTxtFormatStr2, cph, "B", total, "A"); }else { // 全部装完 speakTxt= String.format(speakTxtFormatStr1, cph, total); } }else if(totalAbcMap.get("C")>0 && totalAbcMap.get("B")>0 && (totalAbcMap.get("A")==0 || totalAbcMap.get("A") == abcMap.get("A")) ){ //BC有货 AåŒºå·²å®Œæˆ–æ— è´§ if(totalAbcMap.get("A")>0 && abcMap.get("C")< totalAbcMap.get("C") && abcMap.get("B")< totalAbcMap.get("B")) { // A装完BC未装完 speakTxt= String.format(speakTxtFormatStr3, cph,"A", total,"B","C"); } else if(abcMap.get("C")== totalAbcMap.get("C") && abcMap.get("B")< totalAbcMap.get("B")) { // C完B未装完 speakTxt = String.format(speakTxtFormatStr2, cph, "C", total, "B"); }else if(abcMap.get("B")== totalAbcMap.get("B") && abcMap.get("C")< totalAbcMap.get("C")) {// B完C未装完 speakTxt = String.format(speakTxtFormatStr2, cph, "B", total, "C"); }else { // 全部装完 speakTxt= String.format(speakTxtFormatStr1, cph, total); } }else if (totalAbcMap.get("A")>0 && totalAbcMap.get("C")>0 && (totalAbcMap.get("B")==0 || totalAbcMap.get("B") == abcMap.get("B")) ) { //AC有货 if(totalAbcMap.get("B")>0 && abcMap.get("A")< totalAbcMap.get("A") && abcMap.get("C")< totalAbcMap.get("C")) { speakTxt= String.format(speakTxtFormatStr3, cph,"B", total,"A","C"); } else if(abcMap.get("A")== totalAbcMap.get("A") && abcMap.get("C")< totalAbcMap.get("C")) { // A装完C未装完 speakTxt = String.format(speakTxtFormatStr2, cph, "A", total, "C"); }else if(abcMap.get("C")== totalAbcMap.get("C") && abcMap.get("A")< totalAbcMap.get("A")) {// C装完A未装完 speakTxt = String.format(speakTxtFormatStr2, cph, "C", total, "A"); }else { // 全部装完 speakTxt= String.format(speakTxtFormatStr1, cph, total); } }else if(totalAbcMap.get("A")>0 && totalAbcMap.get("B")>0 && totalAbcMap.get("C")>0) { // 3åŒºéƒ½æœ‰è´§ç‰©ï¼Œä¸”åªæœ‰ä¸€ä¸ªå–装完了 if(abcMap.get("A")>0 && abcMap.get("B")<totalAbcMap.get("B") && abcMap.get("C")<totalAbcMap.get("C")) { speakTxt= String.format(speakTxtFormatStr3, cph,"A", total,"B","C"); } else if(abcMap.get("B")>0 && abcMap.get("C")==0 && abcMap.get("A")==0) { speakTxt= String.format(speakTxtFormatStr3, cph,"B", total,"A","C"); } else if(abcMap.get("C")>0 && abcMap.get("A")==0 && abcMap.get("B")==0) { speakTxt= String.format(speakTxtFormatStr3, cph,"C", total,"A","B"); } else { // 全部装完 speakTxt= String.format(speakTxtFormatStr1, cph, total); } } else { speakTxt= String.format(speakTxtFormatStr1, cph, total); } } return speakTxt; } @Override public void sendToYrLed(String currPch) { // çŠ¶æ€ ä¸€ç£…åŽï¼Œå¾…装;PDA扫ç 在装; äºŒæ¬¡è¿‡ç£…åŽæ¶ˆå¤± // 装车区 两个汉å—åŠ ä¸¤ä¸ªè‹±æ–‡æˆ–æ•°å— String strTitle="åºå· è½¦å· è£…è½¦åŒº 状æ€\r\n"; String strContent = ""; String contentFormatStr = "%s %s %s %s\r\n"; List<Map> list = tdmxper.yRZcList("08"); int index = 1; for (Map map : list) { String numberplates = (String) map.get("numberplates"); // è½¦ç‰Œå· String zcWz = (String) map.get("zcWz"); // 装车ä½ç½® if(StringUtils.isNotBlank(zcWz)){ zcWz = zcWz.substring(0,4); } else { // 空是6个ä½ç½® zcWz = " "; } String zcStatus = (String) map.get("zcStatus"); // 装车ä½ç½® 在办/待办 strContent += String.format(contentFormatStr, fillWithZero(index++), numberplates, zcWz, zcStatus); } Map paramMap = new HashMap(); paramMap.put("strTitle",strTitle); paramMap.put("strContent",strContent); Wxhtmethod.post(Contants.yr_zcLedUrl + "/SendLED",paramMap); log.info("yr_zcLedUrl: " + Contants.yr_zcLedUrl + ";title:" + strTitle + ",content:" + strContent); } @Override public void sendToKjLed(String currPch) { // çŠ¶æ€ ä¸€ç£…åŽï¼Œå¾…装;PDA扫ç 在装; äºŒæ¬¡è¿‡ç£…åŽæ¶ˆå¤± // 装车区 两个汉å—åŠ ä¸¤ä¸ªè‹±æ–‡æˆ–æ•°å— String strTitle="åºå· è½¦å· è£…è½¦åŒº 状æ€\r\n"; String strContent = ""; String contentFormatStr = "%s %s %s %s\r\n"; List<Map> list = tdmxper.yRZcList("04"); int index = 1; for (Map map : list) { String numberplates = (String) map.get("numberplates"); // è½¦ç‰Œå· String zcWz = (String) map.get("zcWz"); // 装车ä½ç½® if(StringUtils.isNotBlank(zcWz)) { zcWz = zcWz.substring(0,4); } else { // 空是6个ä½ç½® zcWz = " "; } String zcStatus = (String) map.get("zcStatus"); // 装车ä½ç½® 在办/待办 strContent += String.format(contentFormatStr, fillWithZero(index++), numberplates, zcWz, zcStatus); } Map paramMap = new HashMap(); paramMap.put("strTitle",strTitle); paramMap.put("strContent",strContent); String re = Wxhtmethod.post(Contants.kj_zcLedUrl + "/SendLED",paramMap); log.info("回å¤ï¼š" + re +";kj_zcLedUrl: " + Contants.kj_zcLedUrl + ";title:" + strTitle + ",content:" + strContent); } String fillWithZero(int str){ String s; if(str<10 && str>=0) s= "0" + str; else s=String.valueOf(str); return s; } @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> delZCMX(String cardID, String yktywdh,JsonArray dataArr) throws Exception { ObjectResult<Boolean> orr=new ObjectResult<Boolean>(); //æ ¹æ®å¡å·åˆ¤æ–分å•ä¿¡æ¯ //å¾ªçŽ¯æ‰¹æ¬¡å· å¦‚æžœæ²¡æœ‰åˆ†å• ä¿®æ”¹ä¸ºåˆ†å•和装车 Fd_Bsheet fdb=this.fbper.getbybsNo(StringUtils.isNotBlank(yktywdh)?yktywdh:""); String vehicleId=""; if(fdb==null){ orr.setCode(1); orr.setErrmsg("一å¡é€šä¸šåС啿œªæ‰¾åˆ°ï¼Œè¯·ç¡®è®¤å•å·æ˜¯å¦æ£ç¡®ï¼"); return orr; }else{ if(fdb.getStatus()!=Serviceenum.在办){ orr.setCode(1); orr.setErrmsg("一å¡é€šä¸šåŠ¡å•䏿˜¯åœ¨åŠžçŠ¶æ€,系统ä¸åšå¤„ç†ï¼"); return orr; } if(StringUtils.isBlank(cardID)){ orr.setCode(1); orr.setErrmsg("傿•°ï¼šä¸€å¡é€šå¡å·ä¸ºç©ºï¼"); return orr; } if(dataArr==null){ orr.setCode(1); orr.setErrmsg("傿•°ï¼šæ‰¹æ¬¡å·ä¸ºç©ºï¼"); return orr; } Map<String, Object> mp=this.yktper.getcardinuse(cardID); if(mp==null){ throw new Exception("å¡å·ä¸æ£ç¡®æœªæ‰¾åˆ°åœ¨ç”¨å¡ï¼"); } vehicleId=mp.get("numberplates")==null?"":mp.get("numberplates").toString(); if(!vehicleId.equals(fdb.getVehicleId())){ orr.setCode(1); orr.setErrmsg("傿•°ï¼šå¡å·å…³è”的车牌å·å’Œä¸šåŠ¡å•å…³è”的车牌å·ä¸ä¸€è‡´"); return orr; } yktywdh=fdb.getBsNo(); } //检查是å¦è£…è½¦å®Œæˆ Map<String, Object> mmr=this.bsper.selectTaskTime(fdb.getBsNo()); try { if(mmr!=null&&mmr.get("zcWc")!=null&&Boolean.valueOf(mmr.get("zcWc").toString())) { orr.setCode(1); orr.setErrmsg("è”ç³»æˆå“åº“åŠžå…¬å®¤å–æ¶ˆè£…车完æˆï¼"); return orr; } } catch (Exception e) { } // Fd_Bsheet nr=this.fbper.getbyVehicleId(vehicleId, Serviceenum.在办); // if(nr==null){ // orr.setCode(1); // orr.setErrmsg("å¡å·ï¼š"+cardID+" 未找到在办销售å‘è´§å•ï¼"); // return orr; // } // Fd_Vehicle fdv=this.vhper.getByVehicleId(vehicleId); // if(fdv==null){ // orr.setCode(1); // orr.setErrmsg("车牌å·ï¼š"+cardID+" 未录入车辆信æ¯ï¼"); // return orr; // } //现场过完毛é‡åŽå‡ºçŽ°æ‰«ç è£…è½¦çš„ï¼Œå¿…é¡»é‡æ–°è¿‡ç£… int grossNum=this.bsper.getgrosstDoc(vehicleId, fdb.getBsNo()); if(grossNum>0) { Map<String, Object> xstm=new HashMap<String, Object>(); xstm.put("canCm",false); xstm.put("businessNo",fdb.getBsNo()); this.bsper.updateCanCm(xstm); this.bsper.updatecanFb(vehicleId, fdb.getBsNo()); } for (JsonElement je : dataArr) { JsonObject jo=je.getAsJsonObject(); String tdmx_pch=jo.get("tdmx_pch").getAsString(); // Fd_XSTDMX tdmx=this.tdmxper.getbyPCH(tdmx_pch); Fd_XSTDMX tdmx=this.tdmxper.getbyPCHONE(tdmx_pch,vehicleId); if(tdmx == null) { String errMsg = "一å¡é€šå¸è½¦å¤±è´¥ï¼Œè¯·æŸ¥çœ‹ã€" + tdmx_pch +"ã€‘å‡ºåº“å…³é—æ ‡å¿—ï¼"; throw new Exception(errMsg); } // if(tdmx.getTdmx_zcbz()!=1){ //// throw new Exception("批次å·ï¼š"+tdmx_pch+" å·²ç»æäº¤è£…è½¦ï¼Œä¸èƒ½é‡å¤æäº¤è£…车ï¼"); // continue; // } // Fd_XSTD xstd=this.tdper.get(tdmx.getTdmx_tdls()); // if(xstd==null){ // continue; // } //修改Fd_Bsheetitem表 è¿™å¼ è¡¨åŽ»æŽ‰äº† this.fbper.delbsitem(tdmx.getTdmx_pch(), yktywdh); // //修改一å¡é€šæ˜Žç»†è¡¨bsitem // if(tdmx.getTdmx_zcbz()==0){ // continue; // } tdmx.setTdmx_zcbz(0); tdmx.setTdmx_zccph(null); tdmx.setTdmx_zcdriver(null); tdmx.setTdmx_zcphone(null); tdmx.setTdmx_zcwlgsName(null); this.tdmxper.updateZCnoFD(tdmx); } orr.setCode(0); orr.setErrmsg("å–æ¶ˆè£…车æ“作æˆåŠŸï¼"); return orr; } @Override public ObjectResult<Map<String, Object>> getcInfo(String cardID) { ObjectResult<Map<String, Object>> orr=new ObjectResult<Map<String,Object>>(); Map<String, Object> rem=new HashMap<String, Object>(); Map<String, Object> mp=this.yktper.getcardinuse(cardID); if(mp==null){ orr.setCode(1); orr.setErrmsg("å¡å·ä¸æ£ç¡®æœªæ‰¾åˆ°åœ¨ç”¨å¡ï¼"); return orr; } String vehicleId=mp.get("numberplates")==null?"":mp.get("numberplates").toString(); String type = (String)mp.get("type"); String sdepartNo = null; if(type.equals("外æ¥è½¦è¾†å¡")) { sdepartNo = (String) mp.get("sdepartNo"); } List<Fd_Bsheet> fd_bList = this.fbper.getListbyVehicleId(vehicleId, Serviceenum.在办); if (fd_bList == null||fd_bList.isEmpty()) { orr.setCode(1); orr.setErrmsg("车辆未找到在办分å•ï¼"); return orr; } Fd_Bsheet fd_b=null; if(fd_bList.size()>1) { for (Fd_Bsheet fd_Bsheet : fd_bList) { int wd=this.bsper.getweightDoc(vehicleId, fd_Bsheet.getBsNo()); if(wd>0) { fd_b=fd_Bsheet; break; } } if(fd_b==null) { orr.setCode(1); orr.setErrmsg("车辆:"+vehicleId+" 当å‰ä¸šåŠ¡æœªæ‰¾åˆ°ç»‘å®šçš„è¿‡ç£…å•,请先过磅或者é‡ç»‘磅å•ï¼"); return orr; } }else { fd_b=fd_bList.get(0); int wcnum=this.bsper.getweightDoc(vehicleId, fd_b.getBsNo()); if(wcnum<=0){ orr.setCode(1); orr.setErrmsg("车辆:"+vehicleId+" 当å‰ä¸šåŠ¡æœªæ‰¾åˆ°ç»‘å®šçš„è¿‡ç£…å•,请先过磅或者é‡ç»‘磅å•ï¼"); return orr; } } // 改æˆä½¿ç”¨åœ¨ç”¨å¡çš„å¡å·ã€è½¦ç‰Œå·ç ã€åŽ‚åŒºæ¥ç¡®è®¤æ˜¯å¦æœ‰é”€å”®çš„ä¸šåŠ¡å• btid=3 businesstype00002 String businessNo = bsper.getBusinessNoByCardNo(cardID,vehicleId,sdepartNo); if(StringUtils.isBlank(businessNo)) { orr.setCode(1); orr.setErrmsg("未找到该å¡çš„在办业务å•ï¼"); return orr; } // List<Vehicle_XSTD> vxl=this.vhxper.getlistbyVehicleId(vehicleId); List<Vehicle_XSTD> vxl= this.vhxper.getlistbyVehicleIdandbsNoGp(vehicleId, businessNo); List<Map<String, Object>> datamp=new ArrayList<Map<String, Object>>(); Map<String,Fd_XSTD> xstdMap = new HashMap(); // 缓å˜Fd_XSTD,é¿å…多查 for (Vehicle_XSTD vx : vxl) { String tdbh=vx.getXstdNo(); Fd_XSTD td=this.tdper.getbyTDBH(tdbh); String wlgsbh=vx.getCompanyNo(); Fd_Company fd_c=this.cmper.getByCompanyNo(wlgsbh); Map<String, Object> tdm=new HashMap<String, Object>(); if(fd_c!=null){ tdm.put("td_wlgs", fd_c.getName());//物æµå…¬å¸ }else{ tdm.put("td_wlgs", "");//物æµå…¬å¸ } if(td==null){ continue; } // List<Fd_XSTDMX> tdmxl=this.tdmxper.getbytdls(td.getTd_tdls()); List<Fd_XSTDMX> tdmxl= tdmxper.getListByTdlsAndCph(td.getTd_tdls(),vehicleId); if(tdmxl==null||tdmxl.size()<=0){ continue; } Map<String, Object> mm=new HashMap<String, Object>(); tdm.put("td_tdbh", td.getTd_tdbh()); tdm.put("td_tdls", td.getTd_tdls()); tdm.put("td_jylx", td.getTd_jylx()); Fd_XSTD fd_xstd = xstdMap.get(td.getTd_tdbh()); if(xstdMap.get(td.getTd_tdbh())==null) { // ä¿è¯åŒä¸€ä¸ªæå•åªæŸ¥ä¸€é fd_xstd = tdper.getbyttdbh(td.getTd_tdbh()); } //å¢žåŠ å®¢æˆ·åç§° 备注 if(StringUtils.isBlank(fd_xstd.getTd_fpbh())){ Nckh nckh = zsjper.getNckhbyCode(fd_xstd.getTd_khbh());// 客户ä¸å˜åœ¨çš„特殊情况是ä¸åº”该å˜åœ¨çš„ï¼Œä»¥é˜²ä¸‡ä¸€ï¼ŒåŠ åˆ¤ç©ºã€‚ tdm.put("td_khmc",nckh!=null?nckh.getName():""); }else { String name = ConvertTool.covertToCustoms(fd_xstd.getTd_ywdybh()); tdm.put("td_khmc", name); } tdm.put("td_bz",fd_xstd.getTd_bz()); mm.put("td", tdm); mm.put("tdmx", tdmxl); datamp.add(mm); } rem.put("cph", vehicleId); rem.put("sjmc", fd_b.getDriver()); rem.put("dh", fd_b.getPhone()); // rem.put("sjmc", fdv.getDriver()); // rem.put("dh", fdv.getPhone()); rem.put("ywdh", fd_b.getBsNo()); rem.put("respcode", 111); rem.put("data", datamp); //修改装车记录 Map<String, Object> mr=this.bsper.selectTaskTime(fd_b.getBsNo()); if(mr!=null) { if(mr.get("firstzxhtime")!=null) { mr.put("lastzxhtime", new Date()); }else { mr.put("firstzxhtime", new Date()); } this.bsper.updateTaskTime(mr); }else { orr.setCode(1); orr.setErrmsg("未找到装车记录"); return orr; } orr.setCode(0); orr.setItem(rem); return orr; } @Override public ObjectResult<Map<String, Object>> getxstdInfo(String xstdNo) { ObjectResult<Map<String, Object>> orr=new ObjectResult<Map<String,Object>>(); Fd_XSTD xstd=this.tdper.getbyTDBH(xstdNo); if(xstd==null){ orr.setCode(1); orr.setErrmsg("æå•未找到ï¼"); return orr; } Map<String, Object> rm=new HashMap<String, Object>(); List<Fd_XSTDMX> tdmxlist=this.tdmxper.getListbytdls(xstd.getTd_tdls()); rm.put("code", 0); rm.put("item", xstd); rm.put("itemList", tdmxlist); orr.setCode(0); orr.setItem(rm); return orr; } @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> savewdControl(JsonArray dataArr)throws Exception { ObjectResult<Boolean> orr=new ObjectResult<Boolean>(); if(dataArr==null){ orr.setCode(0); orr.setErrmsg("æ·»åŠ è¿‡ç£…æŽ§åˆ¶æˆåŠŸï¼"); return orr; } for (JsonElement je : dataArr) { JsonObject jo=je.getAsJsonObject(); String bsNo=jo.get("yktywdh").getAsString(); BsheetEcgb be=this.beper.getbyNo(bsNo); if(be==null){ be=new BsheetEcgb(); be.setBsNo(bsNo); be.setCtime(new Date()); be.setCname("ç”Ÿäº§ç³»ç»Ÿæ·»åŠ "); be.setSate(1); this.beper.insert(be); } } orr.setCode(0); orr.setErrmsg("æ·»åŠ è¿‡ç£…æŽ§åˆ¶æˆåŠŸï¼"); return orr; } }