12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903 |
- package com.behosoft.lis.wms.orders.service;
- import com.behosoft.edi.common.EdiConst;
- import com.behosoft.edi.dtomodel.common.FetchMailNoRequestDto;
- import com.behosoft.edi.dtomodel.common.FetchMailNoResponseDto;
- import com.behosoft.framework.component.TransactionHelper;
- import com.behosoft.framework.component.TransactionHelper.TxCallBack;
- import com.behosoft.framework.web.exception.AjaxException;
- import com.behosoft.framework.web.exception.CommonException;
- import com.behosoft.framework.web.service.ManagementService;
- import com.behosoft.lis.BusinessConstants;
- import com.behosoft.lis.bc.provinceCityCompare.service.ProvinceCityCompareService;
- import com.behosoft.lis.common.service.GlobalPostCodeSettingService;
- import com.behosoft.lis.context.BusinessSessionContext;
- import com.behosoft.lis.crm.customer.service.CustomerCachedService;
- import com.behosoft.lis.crm.customer.service.CustomerService;
- import com.behosoft.lis.crm.transceiver.service.TransceiverService;
- import com.behosoft.lis.crm.vender.service.VenderService;
- import com.behosoft.lis.data.packagingMaterial.service.PackagingMaterialService;
- import com.behosoft.lis.data.warehouse.service.WarehouseService;
- import com.behosoft.lis.edi.bigcustomer.service.BigCustomerService;
- import com.behosoft.lis.edi.ws.callediws.GetMailNoService;
- import com.behosoft.lis.model.bo.*;
- import com.behosoft.lis.model.vo.*;
- import com.behosoft.lis.oms.deliveryoutbound.service.DeliveryOutboundService;
- import com.behosoft.lis.oms.deliveryoutbounddetail.service.DeliveryOutboundDetailService;
- import com.behosoft.lis.oms.returnoutbounddetail.service.ReturnOutboundDetailService;
- import com.behosoft.lis.own.goodManage.service.OwnGoodManageService;
- import com.behosoft.lis.sys.item.service.ItemService;
- import com.behosoft.lis.sys.user.service.UserCustomerService;
- import com.behosoft.lis.sys.user.service.UserWarehouseService;
- import com.behosoft.lis.util.IdGenerator;
- import com.behosoft.lis.util.ListUtils;
- import com.behosoft.lis.wms.abnormaldeliverydocument.service.AbnormalDeliveryDocumentService;
- import com.behosoft.lis.wms.orderswave.service.OrdersWaveService;
- import com.behosoft.lis.wms.pickList.service.PickListService;
- import com.behosoft.lis.wms.pickListDetail.service.PickListDetailService;
- import com.behosoft.lis.wms.replenishmentDetail.service.ReplenishmentDetailService;
- import com.behosoft.util.DataUtils;
- import com.behosoft.util.DateUtils;
- import com.behosoft.util.HttpUtils;
- import com.wondersgroup.framework.util.CollectionUtils;
- import com.wondersgroup.saas.access.dao.impl.ExtendedJdbcDao;
- import com.wondersgroup.saas.access.mapper.QueryContext;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import org.apache.commons.beanutils.BeanUtilsBean;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.text.SimpleDateFormat;
- import java.util.*;
- @Service
- public class OrdersService extends ManagementService {
- private final Log logger = LogFactory.getLog(getClass());
- public static final Integer WMS_ORDERS_STATUS_FORZEN = 5200;//出货单冻结
- public static final Integer WMS_ORDERS_STATUS_NEW = 5201;//出货单新记录
- public static final Integer WMS_ORDERS_STATUS_OUTING = 5202;//出货中
- public static final Integer WMS_ORDERS_STATUS_OUTTED = 5203;//已出货
- public static final Integer WMS_ORDERS_STATUS_CANCLED = 5204;//已经取消
- public static final Integer WMS_ORDERS_BACK_STATUS_START = 48001;//订单未追回
-
- /**
- * 未分配,未拣货,未包装,未发运
- */
- public static final int WMS_ORDERS_TASK_NEW = 0;
- /**
- * 部分未分配,部分拣货,未包装,部分发运
- */
- public static final int WMS_ORDERS_TASK_PART = 1;
- /**
- * 已分配,已拣货,已包装,已发运
- */
- public static final int WMS_ORDERS_TASK_ALL = 2;
- public static final Long ORDERS_OUT_TYPE_DELIVERYOUTBOUND = 2401L;// 出库类型,自提
- public static final Long ORDERS_OUT_TYPE_TRANSFER = 2402L;// 出库类型,送货上门
- @Autowired
- private VenderService venderService;
- @Autowired
- private CustomerService customerService;
- @Autowired
- private TransceiverService transceiverService;
- @Autowired
- private WarehouseService warehouseService;
- @Autowired
- private OrdersDetailService ordersDetailService;
- @Autowired
- private DeliveryOutboundDetailService deliveryOutboundDetailService;
- @Autowired
- private ReturnOutboundDetailService returnOutboundDetailService;
- @Autowired
- private AllocateInventoryService allocateInventoryService;
- @Autowired
- private UserCustomerService userCustomerService;
- @Autowired
- private UserWarehouseService userWarehouseService;
- @Autowired
- private OrdersWaveService ordersWaveService;
-
- @Autowired
- private GlobalPostCodeSettingService globalPostCodeSettingService;
-
- @Autowired
- private OwnGoodManageService ownGoodManageService;
-
- @Autowired
- private ItemService itemService;
-
- @Autowired
- private PackagingMaterialService packagingMaterialService;
-
- @Autowired
- private ReplenishmentDetailService replenishmentDetailService;
-
- @Autowired
- private BigCustomerService bigCustomerService;
-
- @Autowired
- private GetMailNoService getMailNoService;
-
- @Autowired
- private CustomerCachedService customerCachedService;
-
- @Autowired
- private DeliveryOutboundService deliveryOutboundService;
-
- @Autowired
- private AbnormalDeliveryDocumentService abnormalDeliveryDocumentService;
-
- @Autowired
- private ProvinceCityCompareService provinceCityCompareService;
-
- @Autowired
- private PickListDetailService pickListDetailService;
-
- @Autowired
- private PickListService pickListService;
-
- private void resetOrderInfo(Orders orders) {
- // 补充货主信息
- CustomerVO customer = customerService.getCustomerById(orders.getCustomerId());
- orders.setCustomerCode(customer.getCustomerCode());
- orders.setCustomerName(customer.getCustomerName());
- // 补充承运商信息
- VenderVO vender = venderService.getVenderById(orders.getCarrierId());
- orders.setCarrierCode(vender.getVenderCode());
- orders.setCarrierName(vender.getVenderName());
- // 补充收货人信息
- TransceiverVO receiver = transceiverService.getTransceiverVOById(orders.getReceiverId());
- orders.setReceiverName(receiver.getTransceiverName());
- orders.setReceiverCode(receiver.getTransceiverCode());
- // 补充仓库信息
- WarehouseVO warehouse = warehouseService.getEntity(orders.getWarehouseId());
- orders.setWarehouseName(warehouse.getWarehouseName());
- }
- @Transactional
- public void saveOrders(Orders orders) {
- // ORDER_STATUS ASSIGNED_STATUS PICK_STATUS PACKING_STATUS DELIVERY_STATUS
- orders.setOrderStatus(WMS_ORDERS_STATUS_NEW);
- orders.setAssignedStatus(OrdersService.WMS_ORDERS_TASK_NEW);
- orders.setPickStatus(OrdersService.WMS_ORDERS_TASK_NEW);
- orders.setPackingStatus(OrdersService.WMS_ORDERS_TASK_NEW);
- orders.setDeliveryStatus(OrdersService.WMS_ORDERS_TASK_NEW);
- orders.setTagId("T" + orders.getOrderId());
- orders.setDeleteFlag(0);
- orders.setBusinessLockFlag(0);
- resetOrderInfo(orders);
- this.saveEntity(orders);
- }
- @Transactional
- public void updateOrders(Orders orders) {
- resetOrderInfo(orders);
- this.updateEntity(orders);
- }
- /**
- * 订单暂挂
- *
- * @param idArray
- */
- @Transactional
- public int pauseOrders(JSONArray idArray, String loginName) {
- String sql =
- "update wms_orders set ORDER_STATUS=" + WMS_ORDERS_STATUS_FORZEN
- + ", UPDATE_TIME = :updateTime, UPDATED_BY = '" + loginName + "', UPDATE_METHOD = '"
- + BusinessConstants.PROCESS_MODE_WEB + "' where ORDER_ID in(:id) ";
-
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("id", idArray);
- map.put("updateTime", new Date());
- return this.daoFactory.getJdbcDao().update(sql, map);
- }
- /**
- * 订单暂挂取消
- *
- * @param idArray
- */
- @Transactional
- public int canclePauseOrders(JSONArray idArray, String loginName) {
- String sql =
- "update wms_orders set ORDER_STATUS=" + WMS_ORDERS_STATUS_NEW
- + ", UPDATE_TIME = :updateTime, UPDATED_BY = '" + loginName + "', UPDATE_METHOD = '"
- + BusinessConstants.PROCESS_MODE_WEB + "' where ORDER_ID in(:id) ";
-
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("id", idArray);
- map.put("updateTime", new Date());
- return this.daoFactory.getJdbcDao().update(sql, map);
- }
- @Transactional
- public void genOrdersFromDeliveryOutbound(List<DeliveryOutbound> deliveryOutbounds) {
- if (ListUtils.isBlank(deliveryOutbounds)) {
- return;
- }
- List<DeliveryOutboundDetail> allDetails = new ArrayList<DeliveryOutboundDetail>();
-
- for (DeliveryOutbound deliveryOutbound : deliveryOutbounds) {
- if (BusinessConstants.BOOLEAN_FALSE.equals(deliveryOutbound.getDeleteFlag())) {
- Orders orders = new Orders();
- String orderId = IdGenerator.getOrdersId();
- String accountId = deliveryOutbound.getAccountId();
- String warehouseId = deliveryOutbound.getWarehouseId();
- Double cube = deliveryOutbound.getCube();
- Double weight = deliveryOutbound.getWeight();
- String deliveryOutboundId = deliveryOutbound.getDeliveryOutboundId();
- orders.setOrderId(orderId);
- orders.setTagId("T" + orders.getOrderId());
- orders.setAccountId(accountId);// 账户编号
- orders.setCustomerId(deliveryOutbound.getCustomerId());// 货主编号
- orders.setCustomerName(deliveryOutbound.getCustomerName());// 货主名称
- orders.setCustomerCode(deliveryOutbound.getCustomerCode());// 货主代码
- orders.setWarehouseId(warehouseId);// 仓库编号
- orders.setWarehouseName(deliveryOutbound.getWarehouseName());// 仓库名称
- orders.setSalesPlatform(deliveryOutbound.getSalesPlatform());// 销售平台
- orders.setOrderInvilidTime(deliveryOutbound.getOrderInvilidTime());// 订单失效时间
- orders.setOutboundOrderId(deliveryOutboundId);// 出库订单ID
- orders.setOutboundKind(2301L);// 出库订单类型
- orders.setOutType(deliveryOutbound.getOutType());// 出库类型
- orders.setDeliveryType(deliveryOutbound.getDeliveryType());// 送货方式
- orders.setCustomerRefferenceId(deliveryOutbound.getCustomerRefferenceId());// 客户订单号
- orders.setOrderDealType(deliveryOutbound.getOrderDealType());// 订单处理类型
- orders.setOrderStatus(WMS_ORDERS_STATUS_NEW);// 订单状态
- orders.setDeliveryStatus(WMS_ORDERS_TASK_NEW);// 发运状态
- orders.setPackingStatus(WMS_ORDERS_TASK_NEW);// 包装状态
- orders.setPickStatus(WMS_ORDERS_TASK_NEW);// 拣货状态
- orders.setAssignedStatus(WMS_ORDERS_TASK_NEW);// 分配状态
- // 包装完成时间
- // 出货结案时间
- // 发货单提货时间
- // 计划发货时间
- // 实际发货时间
- // 预期到达时间
- // 实际到达时间
- // 签收时间
- // 回单时间
- orders.setDetailCount(deliveryOutbound.getDetailCount());// 明细数量
- orders.setExpectedSendQuantity(deliveryOutbound.getExpectedSendQuantity());// 预期发货数量
- orders.setAssignedQuantity(0d);// 已分配数量
- orders.setDeliveredQuantity(0d);// 发货数量
- orders.setPickedQuantity(0d);// 已拣货数量
- orders.setPackingQuantity(0d);// 已装箱量
- // 订单拣货序号
- // 是否拆单拣货
- orders.setTotalFee(deliveryOutbound.getTotalFee());// 价值
- orders.setLogisticsFee(deliveryOutbound.getLogisticsFee());// 物流费用
- orders.setCollectionFlag(deliveryOutbound.getCollectionFlag());// 代收货款
- orders.setWeight(weight);// 重量
- orders.setBulk(cube);// 体积
- // 件数
- // 拣货单号
- // 发货单号
- // 备注
- // 未分配成功标志
- orders.setDriver(deliveryOutbound.getDriver());// 司机
- orders.setTruckNumber(deliveryOutbound.getTruckNumber());// 车辆号码
- orders.setDeliveryScore(deliveryOutbound.getDeliveryScore());// 送货评分
- orders.setDrliverPhone(deliveryOutbound.getDrliverPhone());// 司机联系方式
- orders.setIndentityCard(deliveryOutbound.getIndentityCard());// 身份证
- orders.setCarrierTrackingNumber(deliveryOutbound.getCarrierTrackingNumber());// 承运单号
- orders.setCarrierId(deliveryOutbound.getCarrierId());// 承运商编号
- orders.setCarrierCode(deliveryOutbound.getCarrierCode());// 承运商代码
- orders.setCarrierName(deliveryOutbound.getCarrierName());// 承运商名称
- orders.setReceiverId(deliveryOutbound.getReceiverId());// 收货人编号
- orders.setReceiverCode(deliveryOutbound.getReceiverCode());// 收货人代码
- orders.setReceiverName(deliveryOutbound.getReceiverName());// 收货人名称
- orders.setToTransceiverAddressId(deliveryOutbound.getToTransceiverAddressId());// 收货地址编号
- orders.setReceiverCountry(deliveryOutbound.getReceiverCountry());// 收货国家
- orders.setReceiverProvince(deliveryOutbound.getReceiverProvince());// 收货省
- orders.setReceiverCity(deliveryOutbound.getReceiverCity());// 收货市
- orders.setReceiverDistrict(deliveryOutbound.getReceiverDistrict());// 收货县
- orders.setReceiverStreet(deliveryOutbound.getReceiverStreet());// 收货街道
-
- if(null == deliveryOutbound.getReceiverZipcode() || "".equals(deliveryOutbound.getReceiverZipcode())){
- orders.setReceiverZipcode(globalPostCodeSettingService.getPostCodeForPlace(deliveryOutbound.getReceiverProvince(), deliveryOutbound.getReceiverCity(), deliveryOutbound.getReceiverDistrict(), deliveryOutbound.getReceiverStreet()));// 收货邮编
- }
- else{
- orders.setReceiverZipcode(deliveryOutbound.getReceiverZipcode());
- }
- orders.setReceiverContactor(deliveryOutbound.getReceiverContactor());// 收货联系人
- orders.setReceiverContactorPhone(deliveryOutbound.getReceiverContactorPhone());// 收货联系人电话
- orders.setReceiverContactorMobile(deliveryOutbound.getReceiverContactorMobile());// 收货联系人手机
- orders.setOwnGoodFlag(deliveryOutbound.getOwnGoodFlag());// 自有货品标记
- orders.setOwnGoodInboundNo(deliveryOutbound.getOwnGoodInboundNo());// 自有货品入库单号
- if(BusinessConstants.BOOLEAN_TRUE.equals(deliveryOutbound.getOwnGoodFlag())) {
- OwnGoodManage ownGoodManage = ownGoodManageService.getEntityById(deliveryOutbound.getOwnGoodInboundNo(), OwnGoodManage.class);
- if(ownGoodManage != null) {
- orders.setOwnWeight(ownGoodManage.getWeight());// 自有重量
- orders.setOwnCube(ownGoodManage.getCube());// 自有体积
- }
- }
- if (BusinessConstants.BOOLEAN_TRUE.equals(deliveryOutbound.getDetailCount())) {// 单订单单件标示
- orders.setSingleFlag(BusinessConstants.BOOLEAN_TRUE);
- }
- else {
- orders.setSingleFlag(BusinessConstants.BOOLEAN_FALSE);
- }
- orders.setSystemFrom(deliveryOutbound.getSystemFrom());// 系统标示
- orders.setBusinessLockFlag(BusinessConstants.BOOLEAN_FALSE);// 系统锁定标记
- orders.setPickType(deliveryOutbound.getPickType());// 拣货方式
- // 收货公司
- orders.setOrderRoute(deliveryOutbound.getOrderRoute());// 路向
- // 补充的字段
- orders.setPayType(deliveryOutbound.getPayType());// 付款方式
- orders.setIndentDate(deliveryOutbound.getIndentDate());
- orders.setPayCash(deliveryOutbound.getPayCash());
- orders.setPreFund(deliveryOutbound.getPreFund());
- orders.setPreAdvance(deliveryOutbound.getPreAdvance());
- orders.setPayAdvance2(deliveryOutbound.getPayAdvance2());
- orders.setTransPay(deliveryOutbound.getTransPay());
- orders.setStaffName(deliveryOutbound.getStaffName());
- orders.setTotalCost(deliveryOutbound.getTotalCost());
- orders.setPay(deliveryOutbound.getPay());
- orders.setPoints(deliveryOutbound.getPoints());
- orders.setSalesCash(deliveryOutbound.getSalesCash());
- orders.setAllPrefund(deliveryOutbound.getAllPrefund());
- orders.setCuPreFund(deliveryOutbound.getCuPreFund());
- orders.setMedianamePrint(deliveryOutbound.getMedianamePrint());
- orders.setMedianame(deliveryOutbound.getMedianame());
- orders.setListPrint(deliveryOutbound.getListPrint());
- orders.setInvoicePrint(deliveryOutbound.getInvoicePrint());
- orders.setRolegrouptype(deliveryOutbound.getRolegrouptype());
- orders.setSpare1(deliveryOutbound.getSpare1());
- orders.setSpare2(deliveryOutbound.getSpare2());
- orders.setSpare3(deliveryOutbound.getSpare3());
- orders.setSpare4(deliveryOutbound.getSpare4());
- orders.setSpare5(deliveryOutbound.getSpare5());
- orders.setSpare6(deliveryOutbound.getSpare6());
- orders.setSpare7(deliveryOutbound.getSpare7());
- orders.setSpare8(deliveryOutbound.getSpare8());
- orders.setSpare9(deliveryOutbound.getSpare9());
- orders.setSpare10(deliveryOutbound.getSpare10());
- orders.setCustomerOrderId(deliveryOutbound.getCustomerOrderId());// 客户订单ID
- orders.setCustomerRefferenceGuid(deliveryOutbound.getCustomerRefferenceGuid());
- // 是否允许拆分
- //orders.setIsSplitePicking(deliveryOutbound.getLotsAllowed());
- orders.setLotsAllowed( deliveryOutbound.getLotsAllowed() );
-
- // 默认分配数量0
- orders.setAssignedQuantity(0D);
- orders.setInvoiceAmount(deliveryOutbound.getInvoiceAmount() );
- orders.setInvoiceProject(deliveryOutbound.getInvoiceProject());
- orders.setInvoiceTitle(deliveryOutbound.getInvoiceTitle());
- orders.setIsSpecialInvoice(deliveryOutbound.getIsSpecialInvoice());
- orders.setOrderMemo(deliveryOutbound.getDescription());//备注
- orders.setIsProhibited(deliveryOutbound.getIsProhibited());//是否禁航
-
- //设置COD信息
- orders.setCodVenderId(deliveryOutbound.getCodVenderId());
- orders.setCodVenderCode(deliveryOutbound.getCodVenderCode());
- orders.setCodVenderName(deliveryOutbound.getCodVenderName());
-
- //获取推荐包材信息
- PackagingMaterialVO recommendPackagingMaterial = packagingMaterialService.findRecommendPackagingMaterial(accountId, Long.getLong(warehouseId), cube, weight);
- if(recommendPackagingMaterial != null) {
- orders.setPackagingMaterialId(recommendPackagingMaterial.getId());
- orders.setPackagingMaterialCode(recommendPackagingMaterial.getPackagingMaterialCode());
- orders.setPackagingMaterialName(recommendPackagingMaterial.getPackagingMaterialName());
- }
-
- // 市移动需求,新增以下四个字段
- orders.setIsPrint(deliveryOutbound.getIsPrint());
- orders.setIsDelivery(deliveryOutbound.getIsDelivery());
- orders.setIsReturn(deliveryOutbound.getIsReturn());
- orders.setIsInProvince(deliveryOutbound.getIsInProvince());
- orders.setReturnNumber(deliveryOutbound.getReturnNumber());
-
- if (null != deliveryOutbound.getInvoiceAmount() && deliveryOutbound.getInvoiceAmount().intValue() > 0){
- orders.setPrintInvoiceFlag("是");
- }
- else{
- orders.setPrintInvoiceFlag("否");
- }
- orders.setReceiverCompany(deliveryOutbound.getReceiverCompany());
- orders.setOrderCategory(deliveryOutbound.getOrderCategory());
-
- this.saveEntity(orders);
- List<DeliveryOutboundDetail> deliveryOutboundDetails =
- deliveryOutboundDetailService.listBy(deliveryOutboundId, accountId);
- allDetails.addAll(deliveryOutboundDetails);
- long i = 1;
- for (DeliveryOutboundDetail deliveryOutboundDetail : deliveryOutboundDetails) {
- if (BusinessConstants.BOOLEAN_FALSE.equals(deliveryOutboundDetail.getDeleteFlag())) {
- OrdersDetail ordersDetail = new OrdersDetail();
- ordersDetail.setOrderLineNo(i++);
- ordersDetail.setOrderId(orderId);// 出货单ID
- ordersDetail.setCustomerOrderLineNo(deliveryOutboundDetail.getCustomerOrderLineNo());// 客户订单行号
- // 订单行号
- ordersDetail.setItemId(deliveryOutboundDetail.getItemId());// 产品ID
- ordersDetail.setItemCode(deliveryOutboundDetail.getItemCode());// 产品代码
- ordersDetail.setItemName(deliveryOutboundDetail.getItemName());// 产品名称
- ordersDetail.setUnits(deliveryOutboundDetail.getUnits());// 单位
- ordersDetail.setWeight(deliveryOutboundDetail.getWeight());// 重量
- ordersDetail.setAccountId(deliveryOutboundDetail.getAccountId());// 账户编号
- ordersDetail.setCustomerId(deliveryOutboundDetail.getCustomerId());// 客户编号
- ordersDetail.setCustomerName(deliveryOutboundDetail.getCustomerName());// 客户名称
- ordersDetail.setCustomerCode(deliveryOutboundDetail.getCustomerCode());// 客户代码
- ordersDetail.setWarehouseId(deliveryOutboundDetail.getWarehouseId());// 仓库编号
- ordersDetail.setWarehouseName(deliveryOutboundDetail.getWarehouseName());// 仓库名称
- ordersDetail.setRelationedCustomerId(deliveryOutboundDetail.getRelationedCustomerId());// 客户关系人编号
- ordersDetail.setRelationedCustomerCode(deliveryOutboundDetail.getRelationedCustomerCode());// 客户关系人代码
- ordersDetail.setRelationedCustomerName(deliveryOutboundDetail.getRelationedCustomerName());// 客户关系人名称
- ordersDetail.setCustomerRefferenceId(deliveryOutbound.getCustomerRefferenceId());// 客户订单号
- ordersDetail.setBulk(deliveryOutboundDetail.getCube());// 体积
- ordersDetail.setNormalFlag(deliveryOutboundDetail.getNormalFlag());// 产品形态
- ordersDetail.setExpectedItemQuantity(deliveryOutboundDetail.getExpectedSendQuantity());// 预计发货数量
- ordersDetail.setAssignedQuantity(0d);// 已分配数量
- ordersDetail.setDeliveredQuantity(0d);// 已发运数量
- ordersDetail.setPickedQuantity(0d);// 已拣货数量
- ordersDetail.setPackingQuantity(0d);// 已装箱数量
- ordersDetail.setLotNumber(deliveryOutboundDetail.getLotNumber());// 批次号
- ItemVO itemVO = itemService.getItemVOByItemId(deliveryOutboundDetail.getItemId());
- if(itemVO != null) {
- ordersDetail.setItemSupplierId(itemVO.getTransceiverId());// 供应商编号
- ordersDetail.setItemSupplierCode(itemVO.getTransceiverCode());// 供应商代码
- ordersDetail.setItemSupplierName(itemVO.getTransceiverName());// 供应商名称
- }
- // 备注
- ordersDetail.setOutboundOrderId(deliveryOutboundId);// 出库订单ID
- ordersDetail.setOutboundKind(2301L);// 出库订单类型
- ordersDetail.setOutboundOrderDetailId(deliveryOutboundDetail.getId());//出库订单明细编号
- ordersDetail.setPrice(deliveryOutboundDetail.getPrice());// 销售单价
- ordersDetail.setTotalFee(deliveryOutboundDetail.getTotalFee());// 价值
- ordersDetail.setItemGroupId(deliveryOutboundDetail.getItemGroupId());
- ordersDetail.setItemGroupCode(deliveryOutboundDetail.getItemGroupCode());
- ordersDetail.setItemGroupName(deliveryOutboundDetail.getItemGroupName());
- // 补充的字段
- ordersDetail.setSpare1(deliveryOutboundDetail.getSpare1());
- ordersDetail.setSpare2(deliveryOutboundDetail.getSpare2());
- ordersDetail.setSpare3(deliveryOutboundDetail.getSpare3());
- ordersDetail.setSpare4(deliveryOutboundDetail.getSpare4());
- ordersDetail.setSpare5(deliveryOutboundDetail.getSpare5());
- ordersDetail.setSpare6(deliveryOutboundDetail.getSpare6());
- ordersDetail.setSpare7(deliveryOutboundDetail.getSpare7());
- ordersDetail.setSpare8(deliveryOutboundDetail.getSpare8());
- ordersDetail.setSpare9(deliveryOutboundDetail.getSpare9());
- ordersDetail.setSpare10(deliveryOutboundDetail.getSpare10());
- ordersDetail.setSpecification(deliveryOutboundDetail.getSpecification());
- ordersDetail.setIsAssignSequence(deliveryOutboundDetail.getIsAssignSequence());
- ordersDetail.setSequenceId(deliveryOutboundDetail.getSequenceId());
- ordersDetail.setLocationId(deliveryOutboundDetail.getLocationId());
- ordersDetail.setLocationName(deliveryOutboundDetail.getLocationName());
- ordersDetail.setCoding(deliveryOutboundDetail.getCoding());
- ordersDetailService.saveEntity(ordersDetail);
- }
- }
- }
- }
-
- replenishmentDetailService.sendStockOutMessageBydeliveryOutBoundConfirm(allDetails);
-
- }
- @Transactional
- public void genOrdersFromReturnOutbound(List<ReturnOutbound> returnOutbounds) {
- if (returnOutbounds == null || returnOutbounds.isEmpty()) {
- return;
- }
- for (ReturnOutbound returnOutbound : returnOutbounds) {
- if (BusinessConstants.BOOLEAN_FALSE.equals(returnOutbound.getDeleteFlag())) {
- Orders orders = new Orders();
- String orderId = IdGenerator.getOrdersId();
- String accountId = returnOutbound.getAccountId();
- String warehouseId = returnOutbound.getWarehouseId();
- Double weight = returnOutbound.getWeight();
- Double cube = returnOutbound.getCube();
- String returnOutboundId = returnOutbound.getReturnOutboundId();
- orders.setOrderId(orderId);
- orders.setAccountId(accountId);// 账户编号
- orders.setCustomerId(returnOutbound.getCustomerId());// 货主编号
- orders.setCustomerName(returnOutbound.getCustomerName());// 货主名称
- orders.setCustomerCode(returnOutbound.getCustomerCode());// 货主代码
- orders.setWarehouseId(warehouseId);// 仓库编号
- orders.setWarehouseName(returnOutbound.getWarehouseName());// 仓库名称
- orders.setSalesPlatform(returnOutbound.getSalesPlatform());// 销售平台
- // 订单失效时间
- orders.setOutboundOrderId(returnOutboundId);// 出库订单ID
- orders.setOutboundKind(2303L);// 出库订单类型
- orders.setOutType("2401");// 出库类型????
- orders.setDeliveryType(returnOutbound.getDeliveryType());// 送货方式
- orders.setCustomerRefferenceId(returnOutbound.getCustomerRefferenceId());// 客户订单号
- orders.setOrderDealType(returnOutbound.getOrderDealType());// 订单处理类型
- orders.setOrderStatus(WMS_ORDERS_STATUS_NEW);// 订单状态
- orders.setDeliveryStatus(WMS_ORDERS_TASK_NEW);// 发运状态
- orders.setPackingStatus(WMS_ORDERS_TASK_NEW);// 包装状态
- orders.setPickStatus(WMS_ORDERS_TASK_NEW);// 拣货状态
- orders.setAssignedStatus(WMS_ORDERS_TASK_NEW);// 分配状态
- // 包装完成时间
- // 出货结案时间
- // 发货单提货时间
- // 计划发货时间
- // 实际发货时间
- // 预期到达时间
- // 实际到达时间
- // 签收时间
- // 回单时间
- Integer detailCount = returnOutbound.getDetailCount();
- orders.setDetailCount(detailCount);// 明细数量
- orders.setExpectedSendQuantity(returnOutbound.getExpectedSendQuantity());// 预期发货数量
- orders.setAssignedQuantity(0d);// 已分配数量
- orders.setDeliveredQuantity(0d);// 发货数量
- orders.setPickedQuantity(0d);// 已拣货数量
- orders.setPackingQuantity(0d);// 已装箱量
- // 订单拣货序号
- // 是否拆单拣货
- orders.setTotalFee(returnOutbound.getTotalFee());// 价值
- orders.setLogisticsFee(returnOutbound.getLogisticsFee());// 物流费用
- orders.setCollectionFlag(returnOutbound.getCollectionFlag());// 代收货款
- orders.setWeight(weight);// 重量
- orders.setBulk(cube);// 体积
- // 件数
- // 拣货单号
- // 发货单号
- // 备注
- // 未分配成功标志
- orders.setDriver(returnOutbound.getDriver());// 司机
- orders.setTruckNumber(returnOutbound.getTruckNumber());// 车辆号码
- orders.setDeliveryScore(returnOutbound.getDeliveryScore());// 送货评分
- orders.setDrliverPhone(returnOutbound.getDrliverPhone());// 司机联系方式
- orders.setIndentityCard(returnOutbound.getIndentityCard());// 身份证
- orders.setCarrierTrackingNumber(returnOutbound.getCarrierTrackingNumber());// 承运单号
- orders.setCarrierId(returnOutbound.getCarrierId());// 承运商编号
- orders.setCarrierCode(returnOutbound.getCarrierCode());// 承运商代码
- orders.setCarrierName(returnOutbound.getCarrierName());// 承运商名称
- orders.setReceiverId(returnOutbound.getReceiverId());// 收货人编号
- orders.setReceiverCode(returnOutbound.getReceiverCode());// 收货人代码
- orders.setReceiverName(returnOutbound.getReceiverName());// 收货人名称
- orders.setToTransceiverAddressId(returnOutbound.getToTransceiverAddressId());// 收货地址编号
- orders.setReceiverCountry(returnOutbound.getReceiverCountry());// 收货国家
- orders.setReceiverProvince(returnOutbound.getReceiverProvince());// 收货省
- orders.setReceiverCity(returnOutbound.getReceiverCity());// 收货市
- orders.setReceiverDistrict(returnOutbound.getReceiverDistrict());// 收货县
- orders.setReceiverStreet(returnOutbound.getReceiverStreet());// 收货街道
- orders.setReceiverZipcode(globalPostCodeSettingService.getPostCodeForPlace(returnOutbound.getReceiverProvince(), returnOutbound.getReceiverCity(), returnOutbound.getReceiverDistrict(), returnOutbound.getReceiverStreet()));// 收货邮编
- orders.setReceiverContactor(returnOutbound.getReceiverContactor());// 收货联系人
- orders.setReceiverContactorPhone(returnOutbound.getReceiverContactorPhone());// 收货联系人电话
- orders.setReceiverContactorMobile(returnOutbound.getReceiverContactorMobile());// 收货联系人手机
- // 自有货品标记
- // 自有货品入库单号
- // 自有重量
- // 自有体积
- if(BusinessConstants.BOOLEAN_TRUE.equals(detailCount)) {
- orders.setSingleFlag(BusinessConstants.BOOLEAN_TRUE);// 单订单单件标示
- } else {
- orders.setSingleFlag(BusinessConstants.BOOLEAN_FALSE);
- }
- orders.setSystemFrom(returnOutbound.getSystemFrom());// 系统标示
- // 付款方式
- orders.setBusinessLockFlag(BusinessConstants.BOOLEAN_FALSE);// 系统锁定标记
- orders.setPickType(returnOutbound.getPickType());// 拣货方式
- // 收货公司
- orders.setOrderRoute(returnOutbound.getOrderRoute());// 路向// 路向
-
- //获取推荐包材信息
- PackagingMaterialVO recommendPackagingMaterial = packagingMaterialService.findRecommendPackagingMaterial(accountId, Long.getLong(warehouseId), cube, weight);
- if(recommendPackagingMaterial != null) {
- orders.setPackagingMaterialId(recommendPackagingMaterial.getId());
- orders.setPackagingMaterialCode(recommendPackagingMaterial.getPackagingMaterialCode());
- orders.setPackagingMaterialName(recommendPackagingMaterial.getPackagingMaterialName());
- }
- this.saveEntity(orders);
- List<ReturnOutboundDetail> returnOutboundDetails =
- returnOutboundDetailService.listBy(returnOutboundId, accountId);
- long i = 1;
- for (ReturnOutboundDetail returnOutboundDetail : returnOutboundDetails) {
- if (BusinessConstants.BOOLEAN_FALSE.equals(returnOutboundDetail.getDeleteFlag())) {
- OrdersDetail ordersDetail = new OrdersDetail();
- ordersDetail.setOrderLineNo(i ++);
- ordersDetail.setOrderId(orderId);// 出货单ID
- ordersDetail.setCustomerOrderLineNo(returnOutboundDetail.getCustomerOrderLineNo());// 客户订单行号
- // 订单行号
- ordersDetail.setItemId(returnOutboundDetail.getItemId());// 产品ID
- ordersDetail.setItemCode(returnOutboundDetail.getItemCode());// 产品代码
- ordersDetail.setItemName(returnOutboundDetail.getItemName());// 产品名称
- ordersDetail.setUnits(returnOutboundDetail.getUnits());// 单位
- ordersDetail.setWeight(returnOutboundDetail.getWeight());// 重量
- ordersDetail.setAccountId(returnOutboundDetail.getAccountId());// 账户编号
- ordersDetail.setCustomerId(returnOutboundDetail.getCustomerId());// 客户编号
- ordersDetail.setCustomerName(returnOutboundDetail.getCustomerName());// 客户名称
- ordersDetail.setCustomerCode(returnOutboundDetail.getCustomerCode());// 客户代码
- ordersDetail.setWarehouseId(returnOutboundDetail.getWarehouseId());// 仓库编号
- ordersDetail.setWarehouseName(returnOutboundDetail.getWarehouseName());// 仓库名称
- ordersDetail.setRelationedCustomerId(returnOutboundDetail.getRelationedCustomerId());// 客户关系人编号
- ordersDetail.setRelationedCustomerCode(returnOutboundDetail.getRelationedCustomerCode());// 客户关系人代码
- ordersDetail.setRelationedCustomerName(returnOutboundDetail.getRelationedCustomerName());// 客户关系人名称
- ordersDetail.setCustomerRefferenceId(returnOutbound.getCustomerRefferenceId());// 客户订单号
- ordersDetail.setBulk(returnOutboundDetail.getCube());// 体积
- ordersDetail.setNormalFlag(returnOutboundDetail.getNormalFlag());// 产品形态
- ordersDetail.setExpectedItemQuantity(returnOutboundDetail.getExpectedSendQuantity());// 预计发货数量
- ordersDetail.setAssignedQuantity(0d);// 已分配数量
- ordersDetail.setDeliveredQuantity(0d);// 已发运数量
- ordersDetail.setPickedQuantity(0d);// 已拣货数量
- ordersDetail.setPackingQuantity(0d);// 已装箱数量
- ordersDetail.setLotNumber(returnOutboundDetail.getLotNumber());// 批次号
- ItemVO itemVO = itemService.getItemVOByItemId(returnOutboundDetail.getItemId());
- if(itemVO != null) {
- ordersDetail.setItemSupplierId(itemVO.getTransceiverId());// 供应商编号
- ordersDetail.setItemSupplierCode(itemVO.getTransceiverCode());// 供应商代码
- ordersDetail.setItemSupplierName(itemVO.getTransceiverName());// 供应商名称
- }
- // 备注
- ordersDetail.setOutboundOrderId(returnOutboundId);// 出库订单ID
- ordersDetail.setOutboundKind(2303L);// 出库订单类型
- ordersDetail.setOutboundOrderDetailId(returnOutboundDetail.getId());//出库订单明细编号
- ordersDetail.setPrice(returnOutboundDetail.getPrice());// 销售单价
- ordersDetail.setTotalFee(returnOutboundDetail.getTotalFee());// 价值
- ordersDetail.setIsAssignSequence(returnOutboundDetail.getIsAssignSequence());
- ordersDetail.setSequenceId(returnOutboundDetail.getSequenceId());
- ordersDetailService.saveEntity(ordersDetail);
- }
- }
- }
- }
- }
-
- public List<List<String>> checkForzeFilter(List<Object> ids) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- List<String> legalList = new ArrayList<String>();
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- List<Orders> checkList =
- this.daoFactory
- .getJdbcDao(qc)
- .query(
- "select ORDER_ID from wms_orders where DELETE_FLAG = 0 AND BUSINESS_LOCK_FLAG=0 and ORDER_STATUS=5201 and ORDER_ID in (:ids)",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- List<String> illegealList = new ArrayList<String>();
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- List<List<String>> resultList = new ArrayList<List<String>>();
- resultList.add(legalList);
- resultList.add(illegealList);
- return resultList;
- }
- public List<List<String>> checkActiveFilter(List<Object> ids) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- List<String> legalList = new ArrayList<String>();
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- List<Orders> checkList =
- this.daoFactory
- .getJdbcDao(qc)
- .query(
- "select ORDER_ID from wms_orders where DELETE_FLAG = 0 AND BUSINESS_LOCK_FLAG=0 and ORDER_STATUS=5200 and ORDER_ID in (:ids)",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- List<String> illegealList = new ArrayList<String>();
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- List<List<String>> resultList = new ArrayList<List<String>>();
- resultList.add(legalList);
- resultList.add(illegealList);
- return resultList;
- }
-
-
- /**
- * <p>
- * Description:[方法功能中文描述]
- * </p>
- *
- * @param sql 参数说明
- * @param args 参数说明
- * @return 返回值说明
- */
- public List<List<String>> checkAllocateFilter(List<Object> ids) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- // 条件 如果有业务锁标示 则需要做对应的过滤,只需要查询出主键就可以了
- List<String> legalList = new ArrayList<String>();
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- List<Orders> checkList =
- this.daoFactory
- .getJdbcDao(qc)
- .query(
- "select ORDER_ID from wms_orders where DELETE_FLAG = 0 AND BUSINESS_LOCK_FLAG=0 and ORDER_STATUS<>5204 and ORDER_STATUS<>5200 and (ASSIGNED_STATUS=0 OR ASSIGNED_STATUS =1 ) and ORDER_ID in (:ids)",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- List<String> illegealList = new ArrayList<String>();
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- List<List<String>> resultList = new ArrayList<List<String>>();
- resultList.add(legalList);
- resultList.add(illegealList);
- return resultList;
- }
- public Map<String, Object> doAllocate(List<String> orderIds) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- Map<String, Object> result = new HashMap<String, Object>();
- param.put("ids", orderIds);
- List<Orders> ordersList =
- this.daoFactory.getJdbcDao(qc).query("select * from wms_orders where ORDER_ID in (:ids)", param);
-
- List<PickListDetail> allpkList = new ArrayList<PickListDetail>();
- List<OrdersDetail> stockOutOrdersDetails = new ArrayList<OrdersDetail>();
- for (Orders orders : ordersList) {
-
- List<Object> allocateResult = null;
- try{
- allocateResult =allocateInventoryService.allocate(orders);
- }catch(AllocateException ex){
- allocateResult = ex.getAllocateResult();
- }
-
- List<PickListDetail> pklist =(List<PickListDetail>) allocateResult.get(0);
- List<OrdersDetail> stockOutlist =(List<OrdersDetail>) allocateResult.get(1);
- if( pklist.size()>0 ){
- allpkList.addAll(pklist);
- }
- if( stockOutlist!=null &&stockOutlist.size()>0 ){
- stockOutOrdersDetails.addAll(stockOutlist);
- }
- }
-
- if(allpkList!=null && allpkList.size()>0 ){
- replenishmentDetailService.sendCheckReplenishmentMessage(allpkList);
- }
- if( stockOutOrdersDetails!=null && stockOutOrdersDetails.size()>0 ){
- replenishmentDetailService.sendStockOutMessage(stockOutOrdersDetails);
- }
-
- result.put("allpkList", allpkList);
- result.put("orders", ordersList);
- result.put("ordersDetails", stockOutOrdersDetails);
-
- return result;
- }
- public List<List<String>> checkWaveFilter(List<Object> ids) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- // 条件 如果有业务锁标示 则需要做对应的过滤,只需要查询出主键就可以了
- List<String> legalList = new ArrayList<String>();
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- param.put("frozenStatus", WMS_ORDERS_STATUS_FORZEN);
- param.put("cancledStatus", WMS_ORDERS_STATUS_CANCLED);
- //String sql = "select ORDER_ID from WMS_ORDERS where DELETE_FLAG = 0 and IS_CANCLE=0 and (ORDER_STATUS != :frozenStatus or ORDER_STATUS != :cancledStatus) and (ASSIGNED_STATUS=0 or ASSIGNED_STATUS =1 ) and ( WAVE_ID IS NULL ) and ORDER_ID in (:ids)";
- String sql = "select ORDER_ID from WMS_ORDERS where DELETE_FLAG = 0 and IS_CANCLE=0 and (ORDER_STATUS != :frozenStatus AND ORDER_STATUS != :cancledStatus) and ( PICK_STATUS=0 ) and ( WAVE_ID IS NULL ) and ORDER_ID in (:ids)";
- List<Orders> checkList = this.daoFactory.getJdbcDao(qc).query(sql, param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- List<String> illegealList = new ArrayList<String>();
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- List<List<String>> resultList = new ArrayList<List<String>>();
- resultList.add(legalList);
- resultList.add(illegealList);
- return resultList;
- }
- public List<Orders> doJoinWave(List<String> orderIds,boolean needPrintInvoice) {
- List<Orders> ordersList = new ArrayList<Orders>();
- if(orderIds!=null && orderIds.size()>0 ){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", orderIds);
- ordersList =this.daoFactory.getJdbcDao(qc).query("select * from wms_orders where ORDER_ID in (:ids)", param);
- ordersWaveService.generateOrdersWaveByOrdersList(ordersList,needPrintInvoice);
- }
- return ordersList;
- }
- public Object[] findBy(String idCode, String type, String mode, String userId) {
- String orderMemo = "";
- String packagingMaterialCode = "";
- List<CustomerVO> customerList = userCustomerService.readUserCustomerByUserId(userId);
- List<String> customerIds = new ArrayList<String>();
- if (CollectionUtils.isNotEmpty(customerList)) {
- for (CustomerVO customerVO : customerList) {
- customerIds.add(customerVO.getCustomerId());
- }
- }
- else {
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- }
- List<String> warehouseIds = new ArrayList<String>();
- List<WarehouseVO> warehouseList = userWarehouseService.readUserWarehouseByUserId(userId);
- if (CollectionUtils.isNotEmpty(warehouseList)) {
- for (WarehouseVO warehouseVO : warehouseList) {
- warehouseIds.add(warehouseVO.getWarehouseId());
- }
- }
- else {
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- }
- List<OrdersDetail> ordersDetails = new ArrayList<OrdersDetail>();
- if (type.equals("3801")) {// 订单号
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("orderId", idCode);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
- params.put("frozenStatus", WMS_ORDERS_STATUS_FORZEN);
- params.put("canceledStatus", WMS_ORDERS_STATUS_CANCLED);
- String sql =
- "select d.* from WMS_ORDERS_DETAIL d where d.ORDER_ID = :orderId and d.WAREHOUSE_ID in (:warehouseIds) and d.CUSTOMER_ID in (:customerIds) and d.DELETE_FLAG = 0 and d.PACKING_QUANTITY < d.PICKED_QUANTITY and exists (select 1 from WMS_ORDERS o where o.ORDER_ID = d.ORDER_ID and (o.ORDER_STATUS != :frozenStatus or o.ORDER_STATUS != :canceledStatus) and o.IS_CANCLE = 0 and o.DELETE_FLAG = 0)";
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
- Orders _orders = this.getEntityById(idCode, Orders.class);
- if(_orders != null) {
- if(StringUtils.isNotBlank(_orders.getOrderMemo())) {
- orderMemo = _orders.getOrderMemo();
- }
- // if(StringUtils.isNotBlank(_orders.getPackagingMaterialCode())) {
- // packagingMaterialCode = _orders.getPackagingMaterialCode();
- // }
- packagingMaterialCode = DataUtils.asString(_orders.getPackagingMaterialCode(), "B");
- }
- }
- else if (type.equals("3803")) {// 地址编号
- String sql =
- "select o.* from WMS_ORDERS o where o.DELETE_FLAG = 0 and o.IS_CANCLE = 0 and (o.ORDER_STATUS != :frozenStatus or o.ORDER_STATUS != :canceledStatus) and o.PACKING_STATUS != :packingStatus and exists (select 1 from CRM_TRANSCEIVER_ADDRESS c where c.ID = o.TO_TRANSCEIVER_ADDRESS_ID and c.ADDRESS_CODE = :addressCode and c.DELETE_FLAG = 0) order by o.CREATION_TIME desc";
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("addressCode", idCode);
- params.put("frozenStatus", WMS_ORDERS_STATUS_FORZEN);
- params.put("canceledStatus", WMS_ORDERS_STATUS_CANCLED);
- params.put("packingStatus", WMS_ORDERS_TASK_ALL);
- List<Orders> ordersList = findRecordsByConditions(sql, params, Orders.class);
- if (CollectionUtils.isNotEmpty(ordersList)) {
- List<String> orderIds = new ArrayList<String>();
- for (Orders orders : ordersList) {
- orderIds.add(orders.getOrderId());
- }
- params.clear();
- params.put("orderIds", orderIds);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
- sql =
- "select d.* from WMS_ORDERS_DETAIL d where d.ORDER_ID in (:orderIds) and d.WAREHOUSE_ID in (:warehouseIds) and d.CUSTOMER_ID in (:customerIds) and d.DELETE_FLAG = 0 and d.PACKING_QUANTITY < d.PICKED_QUANTITY ";
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
- }
- }
- else if (type.equals("3802")) { // 商品
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("itemId", idCode);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
- params.put("frozenStatus", WMS_ORDERS_STATUS_FORZEN);
- params.put("canceledStatus", WMS_ORDERS_STATUS_CANCLED);
- String sql =
- "select o.* from WMS_ORDERS_DETAIL o where o.WAREHOUSE_ID in (:warehouseIds) and o.CUSTOMER_ID in (:customerIds) and o.DELETE_FLAG = 0 and o.PACKING_QUANTITY < o.PICKED_QUANTITY and exists (select 1 from WMS_ORDERS w where w.SINGLE_FLAG = 1 and w.ORDER_ID = o.ORDER_ID and (w.ORDER_STATUS != :frozenStatus or w.ORDER_STATUS != :canceledStatus) and w.DELETE_FLAG = 0 and w.IS_CANCLE = 0) and exists (select 1 from DATA_ITEM d where d.BARCODE_NUMBER = :itemId and d.ITEM_ID = o.ITEM_ID) order by o.CREATION_TIME desc, o.ORDER_ID desc";
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
- /*if (CollectionUtils.isNotEmpty(ordersDetailList)) {
- params.clear();
- String _orderId = ordersDetailList.get(0).getOrderId();
- params.put("orderId", _orderId);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
- sql =
- "select * from WMS_ORDERS_DETAIL where ORDER_ID = :orderId and WAREHOUSE_ID in (:warehouseIds) and CUSTOMER_ID in (:customerIds) and DELETE_FLAG = 0 and PACKING_QUANTITY < PICKED_QUANTITY";
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
- }*/
- }
- else if (type.equals("3804")) { //箱号
- String sql = "select * from WMS_PICKLIST_BOX where DELETE_FLAG = 0 and BOX_NO = :boxNo";
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("boxNo", idCode);
- PicklistBox picklistBox = findUniqueRecordByConditions(sql, map, PicklistBox.class);
- if(picklistBox == null) {
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- } else {
- Map<String, Object> params = new HashMap<String, Object>();
- String _orderId = picklistBox.getOrderId();
- params.put("orderId", _orderId);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
- params.put("frozenStatus", WMS_ORDERS_STATUS_FORZEN);
- params.put("canceledStatus", WMS_ORDERS_STATUS_CANCLED);
- sql =
- "select d.* from WMS_ORDERS_DETAIL d where d.ORDER_ID = :orderId and d.WAREHOUSE_ID in (:warehouseIds) and d.CUSTOMER_ID in (:customerIds) and d.DELETE_FLAG = 0 and d.PACKING_QUANTITY < d.PICKED_QUANTITY and exists (select 1 from WMS_ORDERS o where o.ORDER_ID = d.ORDER_ID and (o.ORDER_STATUS != :frozenStatus or o.ORDER_STATUS != :canceledStatus) and o.IS_CANCLE = 0 and o.DELETE_FLAG = 0)";
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
- Orders _orders = this.getEntityById(_orderId, Orders.class);
- if(_orders != null) {
- if(StringUtils.isNotBlank(_orders.getOrderMemo())) {
- orderMemo = _orders.getOrderMemo();
- }
- // if(StringUtils.isNotBlank(_orders.getPackagingMaterialCode())) {
- // packagingMaterialCode = _orders.getPackagingMaterialCode();
- // }
- packagingMaterialCode = DataUtils.asString(_orders.getPackagingMaterialCode(), "B");
- }
- }
- }
- else if (type.equals("3805")){
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("orderId", idCode);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
- params.put("frozenStatus", WMS_ORDERS_STATUS_FORZEN);
- params.put("canceledStatus", WMS_ORDERS_STATUS_CANCLED);
- String sql =
- "select d.* from WMS_ORDERS_DETAIL d where d.CUSTOMER_REFFERENCE_ID = :orderId and d.WAREHOUSE_ID in (:warehouseIds) and d.CUSTOMER_ID in (:customerIds) and d.DELETE_FLAG = 0 and d.PACKING_QUANTITY < d.PICKED_QUANTITY and exists (select 1 from WMS_ORDERS o where o.ORDER_ID = d.ORDER_ID and (o.ORDER_STATUS != :frozenStatus or o.ORDER_STATUS != :canceledStatus) and o.IS_CANCLE = 0 and o.DELETE_FLAG = 0)";
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
-
- if(org.apache.commons.collections.CollectionUtils.isEmpty(ordersDetails)){
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- }
-
- Orders _orders = this.getEntityById(ordersDetails.get(0).getOrderId(), Orders.class);
- if(_orders != null) {
- if(StringUtils.isNotBlank(_orders.getOrderMemo())) {
- orderMemo = _orders.getOrderMemo();
- }
- // if(StringUtils.isNotBlank(_orders.getPackagingMaterialCode())) {
- // packagingMaterialCode = _orders.getPackagingMaterialCode();
- // }
- packagingMaterialCode = DataUtils.asString(_orders.getPackagingMaterialCode(), "B");
- }
- }
- else if(type.equals("3806")){
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("orderId", idCode);
-
- String sql = "select ORDER_DETAIL_ID from wms_pick_list_detail where PICK_LIST_ID = :orderId and DELETE_FLAG = 0";
-
- List<PickListDetail> pickListDetails = this.pickListService.findRecordsByConditions(sql, params, PickListDetail.class);
- List<String> orderIds = new ArrayList<String>();
- List<String> orderDetailIds = new ArrayList<String>();
-
- if(org.apache.commons.collections.CollectionUtils.isNotEmpty(pickListDetails)){
- for (PickListDetail pld : pickListDetails){
- orderDetailIds.add(pld.getOrderDetailId());
- }
- orderIds.add(pickListDetails.get(0).getOrderId());
- }
-
- if(org.apache.commons.collections.CollectionUtils.isEmpty(orderIds)){
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- }
-
- params.clear();
- params.put("orderDetailIds", orderDetailIds);
- params.put("warehouseIds", warehouseIds);
- params.put("customerIds", customerIds);
-
- sql = "select * from WMS_ORDERS_DETAIL where ID in (:orderDetailIds) and WAREHOUSE_ID in (:warehouseIds) and CUSTOMER_ID in (:customerIds) and DELETE_FLAG = 0";
-
- ordersDetails = findRecordsByConditions(sql, params, OrdersDetail.class);
-
- if(org.apache.commons.collections.CollectionUtils.isEmpty(ordersDetails)){
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- }
-
- Orders _orders = this.getEntityById(ordersDetails.get(0).getOrderId(), Orders.class);
-
- if(_orders != null) {
- if(StringUtils.isNotBlank(_orders.getOrderMemo())) {
- orderMemo = _orders.getOrderMemo();
- }
- // if(StringUtils.isNotBlank(_orders.getPackagingMaterialCode())) {
- // packagingMaterialCode = _orders.getPackagingMaterialCode();
- // }
- packagingMaterialCode = DataUtils.asString(_orders.getPackagingMaterialCode(), "B");
- }
- }
-
- if (CollectionUtils.isNotEmpty(ordersDetails)) {
- List<String> detailIds = new ArrayList<String>();
- List<String> idsArray = new ArrayList<String>();
-
- for (OrdersDetail ordersDetail : ordersDetails) {
- detailIds.add(ordersDetail.getId());
-
- if(!idsArray.contains(ordersDetail.getOrderId())){
- idsArray.add(ordersDetail.getOrderId());
- }
- }
-
- if(mode.equals("1")) {
- Map tempMap = new HashMap();
- tempMap.put("ids", idsArray);
-
- long expectedQuantity = this.daoFactory.getJdbcDao().queryForLong("SELECT SUM(EXPECTED_SEND_QUANTITY) FROM WMS_ORDERS WHERE ORDER_ID IN(:ids) ", tempMap);
- long assignedQuantity = this.daoFactory.getJdbcDao().queryForLong("SELECT SUM(ASSIGNED_QUANTITY) FROM WMS_ORDERS WHERE ORDER_ID IN(:ids) ", tempMap);
- long pickedQuantity = this.daoFactory.getJdbcDao().queryForLong("SELECT SUM(PICKED_QUANTITY) FROM WMS_ORDERS WHERE ORDER_ID IN(:ids) ", tempMap);
- if( expectedQuantity!=assignedQuantity || expectedQuantity!=pickedQuantity ){
- throw new CommonException("预计发货数量、已分配数量、已拣货数量不相等,请检查是否拣货完成");
- }
- }
-
- return new Object[] { ordersDetails, detailIds, orderMemo, packagingMaterialCode };
- }
- else {
- return new Object[] { new ArrayList<OrdersDetail>(), new ArrayList<Long>(), orderMemo, packagingMaterialCode };
- }
- }
-
- /**
- * 根据波次号查询订单
- * @param waveId
- * @return
- */
- public List<Orders> queryOrdersByWave(String waveId) {
- OrdersWave ordersWave = ordersWaveService.getEntityById(waveId, OrdersWave.class);
- String warehouseId = ordersWave.getWarehouseId();
- WarehouseVO warehouseVO = this.warehouseService.getEntity(warehouseId + "");
- String sql = "";
- if (warehouseVO.getWarePrintRule() == null || warehouseVO.getWarePrintRule().longValue() == 3501) {
- // 按订单顺序
- sql = "SELECT * FROM wms_orders WHERE WAVE_ID =? AND DELETE_FLAG =0 ORDER BY ORDER_ID ";
- }
- else if (warehouseVO.getWarePrintRule().longValue() == 3502) {
- // 按拣货单顺序
- sql =
- "SELECT * FROM wms_orders WHERE WAVE_ID =? AND DELETE_FLAG =0 ORDER BY COMBINED_ORDER_ID,PICK_SEQUENCE ";
- }
- else if (warehouseVO.getWarePrintRule().longValue() == 3503) {
- // 按路向
- sql = "SELECT * FROM wms_orders WHERE WAVE_ID =? AND DELETE_FLAG =0 ORDER BY ORDER_ROUTE ";
- }
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(QueryContext.createQueryContext(Orders.class));
- return dao.query(sql, waveId);
- }
-
- /**
- * 根据拣货单号查询订单
- * @param pickListId
- * @return
- */
- public List<Orders> queryOrdersByPickList(String pickListId) {
- String sql="SELECT * FROM WMS_ORDERS WHERE DELETE_FLAG =0 AND ORDER_STATUS<>5204 AND COMBINED_ORDER_ID=? ORDER BY COMBINED_ORDER_ID,PICK_SEQUENCE ";
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(QueryContext.createQueryContext(Orders.class));
- return dao.query(sql, pickListId);
- }
- public void updateInvoiceNo(JSONArray orderIds, JSONArray invoiceNos) {
- for (int i = 0; i < orderIds.size(); i++) {
- String orderId = orderIds.getString(i);
- String invoiceNo = invoiceNos.getString(i);
- this.daoFactory.getJdbcDao().update("update wms_orders set INVOICE_NO=? where ORDER_ID=?", invoiceNo,
- orderId);
- }
- }
- /**
- * 更新订单数量信息
- *
- * @param orderId
- * @param quantityMap
- * @return
- */
- synchronized public boolean synchronizedOrders(String orderId, Map<String, Object> quantityMap) {
- logger.info("update WMS_ORDERS quantity start");
- long start = System.currentTimeMillis();
- String[] quantityArray =
- new String[] { "expectedSendQuantity", "assignedQuantity", "pickedQuantity", "packingQuantity",
- "deliveredQuantity" };
- for (int i = 0; i < quantityArray.length; i++) {
- if (!quantityMap.containsKey(quantityArray[i])) {
- quantityMap.put(quantityArray[i], 0);
- }
- }
- quantityMap.put("orderId", orderId);
- StringBuilder sql = new StringBuilder();
- sql
- .append("update WMS_ORDERS set EXPECTED_SEND_QUANTITY=(ifnull(EXPECTED_SEND_QUANTITY,0)+(:expectedSendQuantity)),"
- + "ASSIGNED_QUANTITY=(ifnull(ASSIGNED_QUANTITY,0)+(:assignedQuantity)),"
- + "PICKED_QUANTITY=(ifnull(PICKED_QUANTITY,0)+(:pickedQuantity)),"
- + "PACKING_QUANTITY=(ifnull(PACKING_QUANTITY,0)+(:packingQuantity)),"
- + "DELIVERED_QUANTITY=(ifnull(DELIVERED_QUANTITY,0)+(:deliveredQuantity))"
- + " where ORDER_ID=(:orderId) ");
- this.daoFactory.getJdbcDao().update(sql.toString(), quantityMap);
- logger.info("update WMS_ORDERS quantity end.use time:" +(System.currentTimeMillis()-start)+"ms");
- return true;
- }
-
- synchronized public boolean synchronizedBatchOrders(List<Map<String, Object>> batchValues) {
- logger.info("update WMS_ORDERS quantity start");
- long start = System.currentTimeMillis();
- if (batchValues != null && batchValues.size() != 0) {
- for (Map<String, Object> map : batchValues) {
- String[] quantityArray =
- new String[] { "expectedSendQuantity", "assignedQuantity", "pickedQuantity", "packingQuantity",
- "deliveredQuantity" };
- for (int i = 0; i < quantityArray.length; i++) {
- if (!map.containsKey(quantityArray[i])) {
- map.put(quantityArray[i], 0);
- }
- }
- }
- StringBuilder sql = new StringBuilder();
- sql
- .append("update WMS_ORDERS set EXPECTED_SEND_QUANTITY=(ifnull(EXPECTED_SEND_QUANTITY,0)+(:expectedSendQuantity)),"
- + "ASSIGNED_QUANTITY=(ifnull(ASSIGNED_QUANTITY,0)+(:assignedQuantity)),"
- + "PICKED_QUANTITY=(ifnull(PICKED_QUANTITY,0)+(:pickedQuantity)),"
- + "PACKING_QUANTITY=(ifnull(PACKING_QUANTITY,0)+(:packingQuantity)),"
- + "DELIVERED_QUANTITY=(ifnull(DELIVERED_QUANTITY,0)+(:deliveredQuantity))"
- + " where ORDER_ID=(:orderId) ");
- this.daoFactory.getJdbcDao().batchUpdate(sql.toString(), batchValues.toArray(new Map[] {}));
- }
- logger.info("update WMS_ORDERS quantity end.use time:"+(System.currentTimeMillis()-start)+"ms");
- return true;
- }
-
- synchronized public boolean synchronizedOrdersDetail(String id, Map<String, Object> quantityMap) {
- logger.info("update wms_orders_detail quantity start");
- long start = System.currentTimeMillis();
- String[] quantityArray =
- new String[] { "expectedItemQuantity", "assignedQuantity", "pickedQuantity", "packingQuantity",
- "deliveredQuantity" };
- for (int i = 0; i < quantityArray.length; i++) {
- if (!quantityMap.containsKey(quantityArray[i])) {
- quantityMap.put(quantityArray[i], 0);
- }
- }
- quantityMap.put("id", id);
- StringBuilder sql = new StringBuilder();
- sql
- .append("update wms_orders_detail set EXPECTED_ITEM_QUANTITY=(ifnull(EXPECTED_ITEM_QUANTITY,0)+(:expectedItemQuantity)),"
- + "ASSIGNED_QUANTITY=(ifnull(ASSIGNED_QUANTITY,0)+(:assignedQuantity)),"
- + "PICKED_QUANTITY=(ifnull(PICKED_QUANTITY,0)+(:pickedQuantity)),"
- + "PACKING_QUANTITY=(ifnull(PACKING_QUANTITY,0)+(:packingQuantity)),"
- + "DELIVERED_QUANTITY=(ifnull(DELIVERED_QUANTITY,0)+(:deliveredQuantity))" + " where ID=(:id) ");
- this.daoFactory.getJdbcDao().update(sql.toString(), quantityMap);
- logger.info("update wms_orders_detail quantity end.use time:"+(System.currentTimeMillis()-start)+"ms");
- return true;
- }
-
- synchronized public boolean synchronizedBatchOrdersDetail( List<Map<String, Object>> batchValues) {
- logger.info("update wms_orders_detail quantity start");
- long start = System.currentTimeMillis();
- if (batchValues != null && batchValues.size() != 0) {
- for (Map<String, Object> map : batchValues) {
- String[] quantityArray =
- new String[] { "expectedItemQuantity", "assignedQuantity", "pickedQuantity", "packingQuantity",
- "deliveredQuantity" };
- for (int i = 0; i < quantityArray.length; i++) {
- if (!map.containsKey(quantityArray[i])) {
- map.put(quantityArray[i], 0);
- }
- }
- }
- StringBuilder sql = new StringBuilder();
- sql
- .append("update wms_orders_detail set EXPECTED_ITEM_QUANTITY=(ifnull(EXPECTED_ITEM_QUANTITY,0)+(:expectedItemQuantity)),"
- + "ASSIGNED_QUANTITY=(ifnull(ASSIGNED_QUANTITY,0)+(:assignedQuantity)),"
- + "PICKED_QUANTITY=(ifnull(PICKED_QUANTITY,0)+(:pickedQuantity)),"
- + "PACKING_QUANTITY=(ifnull(PACKING_QUANTITY,0)+(:packingQuantity)),"
- + "DELIVERED_QUANTITY=(ifnull(DELIVERED_QUANTITY,0)+(:deliveredQuantity))" + " where ID=(:id) ");
- this.daoFactory.getJdbcDao().batchUpdate(sql.toString(), batchValues.toArray(new Map[] {}));
- }
- logger.info("update wms_orders_detail quantity end.use time:" +(System.currentTimeMillis() - start) + "ms");
- return true;
- }
-
-
- public List<List<String>> checkCloseFilter(List<Object> ids) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- //已经冻结,已经发货,已经取消的订单不能取消
- List<String> legalList = new ArrayList<String>();
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- List<Orders> checkList = new ArrayList<Orders>();
-
- List<Orders> orderList =
- this.daoFactory.getJdbcDao(qc).query("select * from wms_orders " +" where ORDER_ID in (:ids) ",param);
- for(Orders orders: orderList ){
- int orderStatus = this.getOrderStatus(orders);
- if(orderStatus !=-1 ){
- checkList.add(orders);
- }
- }
-
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- List<String> illegealList = new ArrayList<String>();
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- List<List<String>> resultList = new ArrayList<List<String>>();
- resultList.add(legalList);
- resultList.add(illegealList);
- return resultList;
- }
-
- public List<Orders> doCloseOrders(List<String> orderIds){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", orderIds);
- List<Orders> ordersList =
- this.daoFactory.getJdbcDao(qc).query("select * from wms_orders where ORDER_ID in (:ids)",
- param);
- for( Orders orders : ordersList ){
- this.closeOrder(orders);
- }
- return ordersList;
- }
-
- private int getOrderStatus(Orders orders){
- Orders order = this.getEntityById(orders.getOrderId(), Orders.class);
- DeliveryOutbound outbound = this.deliveryOutboundService.getDeliveryOutBound(order.getOutboundOrderId());
- int status = -1;
- if( orders.getOrderStatus().longValue()== WMS_ORDERS_STATUS_CANCLED ){
- status = -1;
- return status;
- }
- if( orders.getOrderStatus()== OrdersService.WMS_ORDERS_STATUS_NEW){
- //新订单
- status = 1;
- }else {
- if( orders.getDeliveryStatus()==1
- && orders.getAssignedQuantity().longValue()==orders.getPackingQuantity().longValue()
- && orders.getAssignedQuantity().longValue()==orders.getDeliveredQuantity().longValue() ){
- //发运状态为已部分发运并且分配量=拣货量=包装量=发运量
- status = 6;
- }else if(orders.getPickStatus()==2 &&( orders.getPackingStatus()==1 || orders.getPackingStatus()==2) && orders.getDeliveryStatus()!=2 ){
- //已装箱未发运
- status = 5;
- }else if( orders.getPickStatus()==2 && orders.getPackingStatus()==0 ){
- //已分配,已拣货完成,未装箱
- status = 4;
- }else if( orders.getPickStatus()==1 ){
- //已分配,已部分拣货
- status = 3;
- }else if( orders.getPickStatus()==0 && ( orders.getAssignedStatus()==1 || orders.getAssignedStatus()==2) ){
- //已分配,未开始拣货
- status = 2;
- }else if(orders.getAssignedStatus()==0){
- //未分配
- status = 7;
- }else if((outbound.getDeliveryOutboundStatus()==4203) && (orders.getDeliveryStatus()==2)){
- //订单已取消并且已发运
- status = 8;
- //添加
- try {
-
- DeliverDocument dd = this.deliveryOutboundService.getDeliverDocument(order.getOrderId());
- AbnormalDeliveryDocument abnormalDeliveryDocument = new AbnormalDeliveryDocument();
- BeanUtilsBean.getInstance().copyProperties(abnormalDeliveryDocument,order, new String[] { "id" });
- abnormalDeliveryDocument.setId(null);
- abnormalDeliveryDocument.setOrderStatus(String.valueOf(4204));
- abnormalDeliveryDocument.setOrderCancelTime(new Date());
- abnormalDeliveryDocument.setOrderDeliveryDocumentStatus(String.valueOf(dd.getDeliverDocumentStatus()));
- abnormalDeliveryDocument.setOrderDeliveryDocumentTime(dd.getDeliverDocumentConfirmTime());
- abnormalDeliveryDocument.setBackStatus(String.valueOf(WMS_ORDERS_BACK_STATUS_START));
- abnormalDeliveryDocumentService.addAbnormalDeliveryDocument(abnormalDeliveryDocument);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- else{
- status =-1;
- }
- }
- return status;
- }
-
- private List<PickListDetail> getPickListDetails(Orders orders){
- ExtendedJdbcDao<PickListDetail> dao = this.daoFactory.getJdbcDao(QueryContext.createQueryContext(PickListDetail.class));
- String sql="select * from wms_pick_list_detail where DELETE_FLAG=0 AND ORDER_ID =? ";
- return dao.query(sql, orders.getOrderId());
- }
- /**
- * 关闭出库单
- * @param outboundId 销售出库订单Id
- * @return 0:关闭失败 ;1:关闭成功
- */
- public int closeOrderByOms(String outboundId){
- int result = 0 ;
- try{
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(QueryContext.createQueryContext(Orders.class));
- String sql =" select * from wms_orders where OUTBOUND_ORDER_ID=? ";
- List<Orders> list = dao.query(sql, outboundId);
- if( list!=null && list.size() > 0 ){
- final Orders orders = list.get(0);
- if(orders.getOrderStatus()!=OrdersService.WMS_ORDERS_STATUS_CANCLED){
- TransactionHelper.getService().executeInTransaction(new TxCallBack() {
- @Override
- public Object execute(Object... params) {
- closeOrder(orders);
- return null;
- }
- });
- }
- }
- result = 1;
- }catch(Exception ex){
- logger.error(ex);
- }
- return result;
- }
-
-
- @Transactional
- public void closeOrder(Orders orders){
-
- int status = this.getOrderStatus(orders);
- if( status ==-1){
- return ;
- }
- if( status==1 || status==7 ){
- //新记录
- logger.info("关闭订单【"+orders.getOrderId()+"】,新订单");
-
- String sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS ,IS_CANCLE=1 WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params);
- }else if( status==2 ){
- logger.info("关闭订单【"+orders.getOrderId()+"】,已加入拣货未开始拣货");
-
- //获取拣货单明细
- List<PickListDetail> picklistdetailList =this.getPickListDetails(orders);
- if( picklistdetailList==null || picklistdetailList.size()==0 ){
- logger.error("没有找到该订单的拣货单明细");
- return;
- }
-
- //删除拣货单明细
- List<String> ids = new ArrayList<String>();
- for( PickListDetail detail : picklistdetailList ){
- ids.add(detail.getId());
- }
-
- //根据拣货单明细还原库存和订单分配量
- this.allocateInventoryService.rollbackAllocate(picklistdetailList, orders);
- String sql ="update wms_pick_list_detail set DELETE_FLAG=1,PICK_LIST_ID=null,UPDATE_TIME=:updateTime where ID IN(:ids) ";
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- params.put("updateTime", new Date());
- this.daoFactory.getJdbcDao().update(sql, params);
-
- //如果拣货单下的拣货明细被删完则直接删除拣货单主表信息
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("pickListId", orders.getCombinedOrderId());
- List<PickListDetail> pickListDetailList =
- this.daoFactory.getJdbcDao(QueryContext.createQueryContext(PickListDetail.class))
- .query("select * from wms_pick_list_detail where pick_list_id =(:pickListId) and DELETE_FLAG=0 and pick_list_detail_status=0",
- param);
-
- if (pickListDetailList.isEmpty())
- {
- deleteEntity(orders.getCombinedOrderId(), PickList.class);
- }
-
- //更新订单状态,为取消,订单分配状态为0,订单拣货状态为0,订单拣货数量为0
- sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS,IS_CANCLE=1,ASSIGNED_STATUS=0,PICK_STATUS=0,PICKED_QUANTITY=0 WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params2 = new HashMap<String,Object>();
- params2.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params2.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params2);
- }else if( status ==3){
- logger.info("关闭订单【"+orders.getOrderId()+"】,已开始拣货未拣货完成");
- //订单的取消标记标记为已取消??
- //订单的状态设置为已取消
- PickList pickList = getEntityById(orders.getCombinedOrderId(), PickList.class);
-
- int assingned = DataUtils.asInt(pickList.getAssignedBox(),0);
-
- //如果拣货单 已派箱 则不对出货单拣货单做任何操作 让 DPS拣货完成 在包装环节去判断是否取消
- if (1 == assingned)
- {
- String sql = "update wms_orders set IS_CANCLE=1 WHERE ORDER_ID =:ORDER_ID";
- Map<String, Object> params2 = new HashMap<String, Object>();
- params2.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params2);
- }
- else
- {
- String sql = "update wms_orders set ORDER_STATUS =:ORDER_STATUS,IS_CANCLE=1 WHERE ORDER_ID =:ORDER_ID";
- Map<String, Object> params2 = new HashMap<String, Object>();
- params2.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params2.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params2);
- }
- //执行拣货完成??
-
- }else if( status ==4){
- logger.info("关闭订单【"+orders.getOrderId()+"】,拣货完成未包装");
-
- //订单的取消标记标记为已取消??
- //订单的状态设置为已取消
- String sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS,IS_CANCLE=1 WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params2 = new HashMap<String,Object>();
- params2.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params2.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params2);
- //执行拣货完成??
- }else if( status ==5){
- logger.info("关闭订单【"+orders.getOrderId()+"】,已包装未发运");
- String sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS,IS_CANCLE=1 WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params);
- }else if( status ==6){
- logger.info("关闭订单【"+orders.getOrderId()+"】,发运状态为已部分发运并且分配量=拣货量=包装量=发运量");
- String sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS,IS_CANCLE=1 WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params);
- }else if(status == 8){
- logger.info("关闭订单【"+orders.getOrderId()+"】,发运状态为已发运并且订单状态为已取消");
- String sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ORDER_STATUS", OrdersService.WMS_ORDERS_STATUS_CANCLED);
- params.put("ORDER_ID", orders.getOrderId());
- this.daoFactory.getJdbcDao().update(sql, params);
- }
- }
-
-
- public List<List<String>> checkPrintOrdersFilter(List<Object> ids) {
- List<List<String>> resultList = new ArrayList<List<String>>();
- List<String> legalList = new ArrayList<String>();
- List<String> illegealList = new ArrayList<String>();
- resultList.add(legalList);
- resultList.add(illegealList);
- if( CollectionUtils.isNotEmpty(ids)){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- //只有取消的订单不能打印
- List<Orders> checkList =
- this.daoFactory.getJdbcDao(qc).query(
- "select ORDER_ID from wms_orders " +
- " where DELETE_FLAG = 0 " +
- "AND BUSINESS_LOCK_FLAG=0 " +
- "AND ORDER_STATUS <> 5204 " +
- "AND ORDER_ID in (:ids) ",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- }
- return resultList;
- }
-
- public List<List<String>> checkPrintCodFilterByWaveId(List<Object> ids) {
- List<List<String>> resultList = new ArrayList<List<String>>();
- List<String> legalList = new ArrayList<String>();
- List<String> illegealList = new ArrayList<String>();
- resultList.add(legalList);
- resultList.add(illegealList);
- if( CollectionUtils.isNotEmpty(ids)){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- //只有取消的订单不能打印
- List<Orders> checkList =
- this.daoFactory.getJdbcDao(qc).query(
- "SELECT * FROM wms_orders WHERE WAVE_ID in (:ids) AND COD_VENDER_ID IS NOT NULL AND DELETE_FLAG =0",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- }
- return resultList;
- }
-
- public List<List<String>> checkPrintCodFilterByPickListId(List<Object> ids) {
- List<List<String>> resultList = new ArrayList<List<String>>();
- List<String> legalList = new ArrayList<String>();
- List<String> illegealList = new ArrayList<String>();
- resultList.add(legalList);
- resultList.add(illegealList);
- if( CollectionUtils.isNotEmpty(ids)){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- //只有取消的订单不能打印
- List<Orders> checkList =
- this.daoFactory.getJdbcDao(qc).query(
- "SELECT * FROM wms_orders WHERE ORDER_ID in (SELECT DISTINCT(ORDER_ID) FROM wms_pick_list where PICK_LIST_ID in (:ids) AND DELETE_FLAG =0) AND COD_VENDER_ID IS NOT NULL AND DELETE_FLAG =0",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- }
- return resultList;
- }
-
- public List<List<String>> checkPrintReturnFilterByPickListId(List<Object> ids) {
- List<List<String>> resultList = new ArrayList<List<String>>();
- List<String> legalList = new ArrayList<String>();
- List<String> illegealList = new ArrayList<String>();
- resultList.add(legalList);
- resultList.add(illegealList);
- if( CollectionUtils.isNotEmpty(ids)){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- //只有取消的订单不能打印
- List<Orders> checkList =
- this.daoFactory.getJdbcDao(qc).query(
- "SELECT * FROM wms_orders WHERE ORDER_ID in (SELECT DISTINCT(ORDER_ID) FROM wms_pick_list where PICK_LIST_ID in (:ids) AND DELETE_FLAG =0) AND DELETE_FLAG =0",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- }
- return resultList;
- }
-
- public List<List<String>> checkPrintCodFilter(List<Object> ids) {
- List<List<String>> resultList = new ArrayList<List<String>>();
- List<String> legalList = new ArrayList<String>();
- List<String> illegealList = new ArrayList<String>();
- resultList.add(legalList);
- resultList.add(illegealList);
- if( CollectionUtils.isNotEmpty(ids)){
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- //只有取消的订单不能打印
- List<Orders> checkList =
- this.daoFactory.getJdbcDao(qc).query(
- "select ORDER_ID from wms_orders " +
- " where DELETE_FLAG = 0 " +
- "AND BUSINESS_LOCK_FLAG=0 " +
- "AND COD_VENDER_ID IS NOT NULL " +
- "AND ORDER_ID in (:ids) ",
- param);
- for (Orders mmm : checkList) {
- legalList.add(mmm.getOrderId());
- }
- for (Object obj : ids) {
- if (!legalList.contains(obj.toString())) {
- illegealList.add(obj.toString());
- }
- }
- }
- return resultList;
- }
-
- private String getOrderByField(List<String> ids){
- String orderId = ids.get(0);
- String orderByField =" ORDER_ID ";
- Orders orders = this.getEntityById(orderId, Orders.class);
- String warehouseId = orders.getWarehouseId();
- WarehouseVO warehouseVO = this.warehouseService.getEntity(warehouseId + "");
- if (warehouseVO.getWarePrintRule() == null || warehouseVO.getWarePrintRule().longValue() == 3501) {
- // 按订单顺序
- orderByField =" ORDER_ID ";
- }
- else if (warehouseVO.getWarePrintRule().longValue() == 3502) {
- // 按拣货单顺序
- orderByField =" COMBINED_ORDER_ID,PICK_SEQUENCE ";
- }
- else if (warehouseVO.getWarePrintRule().longValue() == 3503) {
- // 按路向
- orderByField =" COMBINED_ORDER_ID,ORDER_ROUTE ";
- }
- return orderByField;
- }
-
- /**
- * 出货单管理页面打印拣货单
- * @param ids
- * @return
- */
- public JSONArray doPrintOrders(List<String> ids){
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
- if( list!=null && list.size()>0 ){
- for(Orders orders : list ){
- JSONObject jsonObject =generateOrdersPrint(orders,false);
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray ;
- }
- /**
- * 拣货单管理页面打印拣货单
- * @param ids
- * @return
- */
- public JSONArray doPrintOrdersAfterAssigned(List<String> ids){
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
- if( list!=null && list.size()>0 ){
- for(Orders orders : list ){
- JSONObject jsonObject =generateOrdersPrint(orders,true);
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray ;
- }
- /**
- * 生成出货清单打印对象
- * @param orders
- * @param isAssigned
- * @return
- */
- private JSONObject generateOrdersPrint(Orders orders,boolean isAssigned){
- DeliveryOutbound dob = this.getEntityById(orders.getOutboundOrderId(), DeliveryOutbound.class);
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("ORDER_ID",DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("OUTBOUND_KIND",DataUtils.asDictionary(orders.getOutboundKind()+"") );
- jsonObject.put("CUSTOMER_NAME", DataUtils.asString(orders.getCustomerName(),"") );
- jsonObject.put("WAREHOUSE_NAME", DataUtils.asString(orders.getWarehouseName(),"") );
- jsonObject.put("CUSTOMER_REFFERENCE_ID", DataUtils.asString(orders.getCustomerRefferenceId(),"") );
- jsonObject.put("CARRIER_NAME",DataUtils.asString(orders.getCarrierName(),"") );
- jsonObject.put("RECEIVER_NAME", DataUtils.asString(orders.getReceiverName(),"") );
- jsonObject.put("RECEIVER_CONTACTOR",DataUtils.asString(orders.getReceiverContactor(),"") );
- jsonObject.put("CREATION_TIME", dob.getCreationTime() == null ? "" : DateUtils.getTimeStr(dob.getCreationTime(),2));
- jsonObject.put("PAY_TYPE", DataUtils.asString(orders.getPayType(),"") );
- jsonObject.put("COMMENT", DataUtils.asString(orders.getOrderMemo(),"") );
- jsonObject.put("TOTAL_COST", DataUtils.asDouble(orders.getTotalCost(),0));
- jsonObject.put("PAY", DataUtils.asDouble(orders.getPay(),0));
- jsonObject.put("PRE_FUND", DataUtils.asDouble(orders.getPreFund(),0));
- jsonObject.put("POINTS", DataUtils.asDouble(orders.getPoints(),0));
- jsonObject.put("PAY_ADVANCE2", DataUtils.asDouble(orders.getPayAdvance2(),0));
- jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0));
- jsonObject.put("PAY_CASH", DataUtils.asDouble(orders.getPayCash(),0));
- jsonObject.put("INDENT_DATE", orders.getIndentDate()==null?"":DateUtils.getTimeStr( orders.getIndentDate(),2) );
- jsonObject.put("PRE_ADVANCE", DataUtils.asDouble(orders.getPreAdvance(),0));
- jsonObject.put("STAFF_NAME", DataUtils.asString(orders.getStaffName(),"") );
- jsonObject.put("TOTAL_FEE", DataUtils.asStringExt(orders.getTotalFee(),"") );
-
- jsonObject.put("COMBINED_ORDER_ID", DataUtils.asString(orders.getCombinedOrderId(),"") );
- jsonObject.put("RECEIVER_PROVINCE", DataUtils.asString(orders.getReceiverProvince(),"") );
- jsonObject.put("RECEIVER_STREET", DataUtils.asString(orders.getReceiverStreet(),"") );
- jsonObject.put("RECEIVER_CONTACTOR_PHONE", DataUtils.asString(orders.getReceiverContactorPhone(),"") );
- jsonObject.put("TOTAL_QUANTITY", DataUtils.asDouble(orders.getExpectedSendQuantity(),0) );
- jsonObject.put("RECEIVER_CITY", DataUtils.asString(orders.getReceiverCity(),"") );
-
- jsonObject.put("SALES_CASH", DataUtils.asString(orders.getSalesCash(),"") );
- jsonObject.put("ALL_PREFUND", DataUtils.asStringExt(orders.getAllPrefund(),"") );
-
- jsonObject.put("SPARE1", DataUtils.asString(orders.getSpare1(),""));
- jsonObject.put("SPARE2", DataUtils.asString(orders.getSpare2(),""));
- jsonObject.put("SPARE3", DataUtils.asString(orders.getSpare3(),""));
- jsonObject.put("SPARE4", DataUtils.asString(orders.getSpare4(),""));
- jsonObject.put("SPARE5", DataUtils.asString(orders.getSpare5(),""));
- jsonObject.put("SPARE6", DataUtils.asString(orders.getSpare6(),""));
- jsonObject.put("SPARE7", DataUtils.asString(orders.getSpare7(),""));
- jsonObject.put("SPARE8", DataUtils.asString(orders.getSpare8(),""));
- jsonObject.put("SPARE9", DataUtils.asString(orders.getSpare9(),""));
- jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
-
- jsonObject.put("ORDER_NO", DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("SEND_SYSTEM_ID", DataUtils.asString("",""));
- jsonObject.put("DELIVERY_OUTBOUND_TYPE", DataUtils.asString(orders.getOutboundKind(),""));
- jsonObject.put("OUTBOUND_DETAIL_TYPE", DataUtils.asString(orders.getOrderDealType(),""));
- jsonObject.put("REQUIRED_PICKUP_TIME", DataUtils.asString(dob.getRequiredPickupTime(),""));
- jsonObject.put("CARRIER_CODE", DataUtils.asString(orders.getCarrierCode(),""));
- jsonObject.put("LOGISTICS_FEE", DataUtils.asString(orders.getLogisticsFee(),""));
- jsonObject.put("COLLECTION_FLAG", DataUtils.asString(orders.getCollectionFlag(),""));
- jsonObject.put("RECEIVER_CODE", DataUtils.asString(orders.getReceiverCode(),""));
- jsonObject.put("LOTS_ALLOWED", DataUtils.asString(orders.getLotsAllowed(),""));
- jsonObject.put("FLOW_ID", DataUtils.asString("",""));
- jsonObject.put("OWN_GOOD_FLAG", DataUtils.asString(orders.getOwnGoodFlag(),""));
- jsonObject.put("TOTAL_FEE", DataUtils.asString(orders.getTotalFee(),""));
- jsonObject.put("RECEIVER_COUNTRY", DataUtils.asString(orders.getReceiverCountry(),""));
- jsonObject.put("RECEIVER_DISTRICT", DataUtils.asString(orders.getReceiverDistrict(),""));
- jsonObject.put("RECEIVER_CONTACTOR_MOBILE", DataUtils.asString(orders.getReceiverContactorMobile(),""));
- jsonObject.put("RECEIVER_ZIPCODE", DataUtils.asString(orders.getReceiverZipcode(),""));
- jsonObject.put("MEDIANAME_PRINT", DataUtils.asString(orders.getMedianamePrint(),""));
- jsonObject.put("MEDIANAME", DataUtils.asString(orders.getMedianame(),""));
- jsonObject.put("DEAL_STATUS", DataUtils.asString(orders.getOrderStatus(),""));
- jsonObject.put("DEAL_RESPONSE", DataUtils.asString("",""));
- jsonObject.put("DEAL_TIME", DataUtils.asString(orders.getCreationTime(),""));
- jsonObject.put("CU_PRE_FUND", DataUtils.asString(orders.getCuPreFund(),""));
- jsonObject.put("LIST_PRINT", DataUtils.asString(orders.getListPrint(),""));
- jsonObject.put("INVOICE_PRINT", DataUtils.asString(orders.getInvoicePrint(),""));
- jsonObject.put("ROLEGROUPTYPE", DataUtils.asString(orders.getRolegrouptype(),""));
- jsonObject.put("ORDER_INVILID_TIME", DataUtils.asString(orders.getOrderInvilidTime(),""));
- jsonObject.put("ORDER_SOURCE", DataUtils.asString(dob.getSalesPlatform(),""));
- jsonObject.put("CUSTOMER_REFFERENCE_NO", DataUtils.asString(orders.getCustomerRefferenceId(),""));
-
- JSONArray detailArray = new JSONArray();
- List<OrdersDetail> details = this.ordersDetailService.listBy(orders.getOrderId()) ;
- if(isAssigned){
- details = this.ordersDetailService.listByAssigned(orders.getOrderId()) ;
- }else{
- details = this.ordersDetailService.listBy(orders.getOrderId()) ;
- }
-
- for(OrdersDetail detail :details ){
- ItemVO itemVo= this.itemService.getItemVOByItemId(detail.getItemId());
- List<PickListDetail> plds = this.pickListDetailService.findByOrderDetailId(detail.getId(), detail.getAccountId());
- JSONObject detailJson = new JSONObject();
- detailJson.put("ORDER_ID", DataUtils.asString(orders.getOrderId(),""));
- detailJson.put("ITEM_CODE", DataUtils.asString(detail.getItemCode(),""));
- detailJson.put("ITEM_NAME", DataUtils.asString(detail.getItemName(),""));
- detailJson.put("UNITS", DataUtils.asDictionary(detail.getUnits()+""));
- detailJson.put("LOT_NUMBER", DataUtils.asString(detail.getLotNumber(),"") );
- detailJson.put("ITEM_GROUP_NAME", DataUtils.asString(detail.getItemGroupName(),"") );
- detailJson.put("EXPECTED_ITEM_QUANTITY", DataUtils.asDouble(detail.getExpectedItemQuantity(),0) );
- detailJson.put("NORMAL_FLAG", DataUtils.asString(detail.getNormalFlag(),"") );
- detailJson.put("ITEM_SALE_TYPE", DataUtils.asString(itemVo.getItemSaleType(),"6101"));
- //采购价
- detailJson.put("PRICE", DataUtils.asDouble(itemVo.getPrice(),0) );
- //销售价
- detailJson.put("MARKETING_PRICE", DataUtils.asDouble(itemVo.getMarketingPrice(),0));
- //市场价
- detailJson.put("LISTPRICE", DataUtils.asDouble(itemVo.getListPrice(),0));
- detailJson.put("ASSIGNED_QUANTITY", DataUtils.asDouble(detail.getAssignedQuantity(),0));
- //detailJson.put("SPECIFICATION", DataUtils.asString(itemVo.getSpecification(),""));
-
- if (org.apache.commons.collections.CollectionUtils.isNotEmpty(plds)){
- StringBuffer sb = new StringBuffer();
-
- for(int i = 0; i < plds.size(); i++){
- if(i == (plds.size() -1)){
- sb.append(plds.get(i).getLocationName()).append("*").append(plds.get(i).getShouldPickQty().intValue());
- }
- else{
- sb.append(plds.get(i).getLocationName()).append("*").append(plds.get(i).getShouldPickQty().intValue()).append(",");
- }
- }
-
- detailJson.put("SPECIFICATION", DataUtils.asString(sb.toString(),""));
- }
- else{
- detailJson.put("SPECIFICATION", "");
- }
-
- detailArray.add(detailJson);
- }
- //添加自有货品
- if(orders.getOwnGoodFlag()!=null&&orders.getOwnGoodFlag()==1&&orders.getOwnGoodInboundNo()!=null){
- JSONObject detailJson = new JSONObject();
- detailJson.put("ORDER_ID", DataUtils.asString(orders.getOrderId(),""));
- detailJson.put("ITEM_CODE", "");
- detailJson.put("ITEM_NAME", "自备物品");
- detailJson.put("UNITS", "");
- detailJson.put("LOT_NUMBER", "" );
- detailJson.put("ITEM_GROUP_NAME", "");
- detailJson.put("EXPECTED_ITEM_QUANTITY", 1);
- detailJson.put("NORMAL_FLAG", "");
- detailJson.put("ITEM_SALE_TYPE", 610);
- //采购价
- detailJson.put("PRICE", 0);
- //销售价
- detailJson.put("MARKETING_PRICE", 0);
- //市场价
- detailJson.put("LISTPRICE", 0);
- detailJson.put("ASSIGNED_QUANTITY", 1);
- detailJson.put("SPECIFICATION", "");
- detailArray.add(detailJson);
- }
-
- jsonObject.put("ORDERDETAIL", detailArray);
- return jsonObject;
- }
-
-
- public JSONArray doPrintFiveBill(List<String> ids,boolean isReming) {
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
-
- if( list!=null && list.size()>0 ){
- for(Orders orders : list ){
- // 获取destCode
- // if(StringUtil.isEmpty(orders.getDestCode())) {
- // String descCode = getDestCodeByWmsOrders(orders);
- // orders.setDestCode(descCode);
- // this.updateOrders(orders);
- // }
- if (null != orders.getCarrierId() && isReming == true && StringUtils.isBlank(orders.getCarrierTrackingNumber())){
- Map map = this.getcarrierTrackNumber(orders);
-
- orders.setCarrierTrackingNumber((String)map.get("mailNo"));
- orders.setOriginCode((String)map.get("originCode"));
- orders.setDestCode((String)map.get("destCode"));
- }
- // else{
- // //WarehouseVO warehousevo = this.warehouseService.getEntity(orders.getWarehouseId());
- //
- // //orders.setOriginCode(ProvinceCityUtil.getInstance().getCityCode(warehousevo.getProvince(), warehousevo.getCity()));
- // orders.setDestCode(ProvinceCityUtil.getInstance().getCityCode(orders.getReceiverProvince(), orders.getReceiverCity()));
- // }
- }
- for(Orders orders : list ){
-
- DeliveryOutbound dob = this.getEntityById(orders.getOutboundOrderId(), DeliveryOutbound.class);
- JSONObject jsonObject = new JSONObject();
- BigCustomer bc =this.bigCustomerService.findBigCustomerByCustomerIdandCarrierId(orders.getCustomerId(),
- orders.getCarrierId());
- WarehouseVO warehousevo = this.warehouseService.getEntity(orders.getWarehouseId());
-
- jsonObject.put("ORDER_ID",DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("OUTBOUND_KIND",DataUtils.asDictionary(orders.getOutboundKind()+"") );
- jsonObject.put("CUSTOMER_NAME", DataUtils.asString(orders.getCustomerName(),"") );
- jsonObject.put("WAREHOUSE_NAME", DataUtils.asString(orders.getWarehouseName(),"") );
- /*市移动需要字段————start*/
- String accountId = BusinessSessionContext.getCurrentAccountId();
- List<CustomerVO> customerVOs = customerCachedService
- .readCustomerByAccountIdAndCustomerId(accountId,orders.getCustomerId());
- String customerDetailAddress = customerVOs.get(0).getCountry() + customerVOs.get(0).getProvince()
- +customerVOs.get(0).getCity()+customerVOs.get(0).getDistrict()+customerVOs.get(0).getStreet();
-
- jsonObject.put("CUSTOMER_ADDRESS", DataUtils.asString(customerDetailAddress, ""));
- jsonObject.put("CUSTOMER_PHONE", DataUtils.asString(customerVOs.get(0).getPersonalPhone(), ""));
- jsonObject.put("CUSTOMER_TELEPHONE", DataUtils.asString(customerVOs.get(0).getPhone(), ""));
- jsonObject.put("CUSTOMER_CODE", DataUtils.asString(orders.getCustomerCode(), ""));
- jsonObject.put("CUSTOMER_COMPANY", DataUtils.asString(orders.getCustomerName(), ""));
- jsonObject.put("CUSTOMER_ZIPCODE", DataUtils.asString(customerVOs.get(0).getZipcode(), ""));
- //是否代收货款
- jsonObject.put("IS_DELIVERY", DataUtils.asString(orders.getIsDelivery(),"") );
- //是否返单
- jsonObject.put("IS_RETURN", DataUtils.asString(orders.getIsReturn(),"") );
- //是否省内
- jsonObject.put("IS_INPROVINCE", DataUtils.asString(orders.getIsInProvince(),"") );
- /*市移动需要字段————end*/
- jsonObject.put("CUSTOMER_REFFERENCE_ID", DataUtils.asString(orders.getCustomerRefferenceId(),"") );
- jsonObject.put("CARRIER_NAME",DataUtils.asString(orders.getCarrierName(),"") );
- jsonObject.put("RECEIVER_NAME", DataUtils.asString(orders.getReceiverName(),"") );
- jsonObject.put("RECEIVER_CONTACTOR",DataUtils.asString(orders.getReceiverContactor(),"") );
- jsonObject.put("CREATION_TIME", orders.getCreationTime()==null?"":DateUtils.getTimeStr( orders.getCreationTime(),2) );
- jsonObject.put("PAY_TYPE", DataUtils.asString(orders.getPayType(),"") );
- jsonObject.put("COMMENT", DataUtils.asString(orders.getOrderMemo(),"") );
- jsonObject.put("TOTALCOST", DataUtils.asDouble(orders.getTotalCost(),0));
- jsonObject.put("PAY", DataUtils.asDouble(orders.getPay(),0));
- jsonObject.put("PRE_FUND", DataUtils.asDouble(orders.getPreFund(),0));
- jsonObject.put("POINTS", DataUtils.asDouble(orders.getPoints(),0));
- jsonObject.put("PAY_ADVANCE2", DataUtils.asDouble(orders.getPayAdvance2(),0));
- jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0));
- jsonObject.put("PAY_CASH", DataUtils.asDouble(orders.getPayCash(),0));
- jsonObject.put("INDENT_DATE", orders.getIndentDate()==null?"":DateUtils.getTimeStr( orders.getIndentDate(),2) );
- jsonObject.put("PRE_ADVANCE", DataUtils.asDouble(orders.getPreAdvance(),0));
-
- jsonObject.put("MEDIANAME_PRINT", DataUtils.asString(orders.getMedianamePrint(),"") );
- jsonObject.put("MEDIANAME", DataUtils.asString(orders.getMedianame(),"") );
- jsonObject.put("ROLEGROUPTYPE", DataUtils.asString(orders.getRolegrouptype(),"") );
- jsonObject.put("RECEIVER_COUNTRY", DataUtils.asString(orders.getReceiverCountry(),"") );
- jsonObject.put("RECEIVER_PROVINCE", DataUtils.asString(orders.getReceiverProvince(),"") );
- jsonObject.put("RECEIVER_CITY", DataUtils.asString(orders.getReceiverCity(),"") );
- jsonObject.put("RECEIVER_DISTRICT", DataUtils.asString(orders.getReceiverDistrict(),"") );
- jsonObject.put("RECEIVER_STREET", DataUtils.asString(orders.getReceiverStreet(),"") );
- jsonObject.put("RECEIVER_CONTACTOR_MOBILE", DataUtils.asString(orders.getReceiverContactorMobile(),"") );
- jsonObject.put("RECEIVER_ZIPCODE", DataUtils.asString(orders.getReceiverZipcode(),"") );
- jsonObject.put("RECEIVER_CONTACTOR_PHONE", DataUtils.asString(orders.getReceiverContactorPhone(),"") );
- jsonObject.put("IS_PROHIBITED", DataUtils.asInt(orders.getIsProhibited(),0));
- jsonObject.put("ROUTE_NAME", DataUtils.asString(orders.getOrderRoute(),""));
- jsonObject.put("TOTAL_FEE", DataUtils.asDouble(orders.getTotalFee(),0) );
- jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0) );
-
- if(null == orders.getWeight()){
- jsonObject.put("WEIGHT", 0);
- }
- else{
- jsonObject.put("WEIGHT", DataUtils.asDouble(orders.getWeight()/1000,0));
- }
-
- String bigCustomerNo = bc == null ? "temp" : bc.getBigCustomerName();
- String trackingNumber = orders.getCarrierTrackingNumber()==null ?"":orders.getCarrierTrackingNumber();
-
- jsonObject.put("EXPRESS_NO", DataUtils.asString(trackingNumber,"") );
- jsonObject.put("ORIGINATIONG_CODE", DataUtils.asString(orders.getOriginCode(),"") );
- jsonObject.put("DESTINATION_CODE", DataUtils.asString(orders.getDestCode(),"") );
- jsonObject.put("ITEM_DESCRIPTION", DataUtils.asString(orders.getOrderMemo(),"") );
- jsonObject.put("ITEM_COUNT", DataUtils.asString(orders.getDetailCount(),"") );
-
-
-
- jsonObject.put("BIG_CUSTOMER_NO", DataUtils.asString(bigCustomerNo,"") );
- jsonObject.put("ACCOUNTS_MODE", "1");
- jsonObject.put("IS_SECURE", "0");
- jsonObject.put("SECURE_ACCOUNTS", DataUtils.asDouble(orders.getTotalCost(), 0));
- jsonObject.put("VOLUME", DataUtils.asDouble(orders.getBulk(), 0));
- jsonObject.put("LENGTH", 0);
- jsonObject.put("WIDTH", 0);
- jsonObject.put("HEIGHT", 0);
- jsonObject.put("SENDER", DataUtils.asString(warehousevo.getContactor(), ""));
- jsonObject.put("SENDER_COMPANY", DataUtils.asString(warehousevo.getWarehouseName(), ""));
- jsonObject.put("SENDER_COUNTRY", DataUtils.asString(warehousevo.getCountry(), ""));
- jsonObject.put("SENDER_PROVINCE", DataUtils.asString(warehousevo.getProvince(), ""));
- jsonObject.put("SENDER_CITY", DataUtils.asString(warehousevo.getCity(), ""));
- jsonObject.put("SENDER_COUNTY", DataUtils.asString(warehousevo.getDistrict(), ""));
- jsonObject.put("SENDER_ADDR", DataUtils.asString(warehousevo.getStreet(), ""));
- jsonObject.put("SENDER_CONTACTOR_MOBILE", DataUtils.asString(warehousevo.getPersonalPhone(), ""));
-
- jsonObject.put("RECEIVER_CUSTOMER_CODE",DataUtils.asString(orders.getReceiverCode(),""));
- jsonObject.put("SENDER_CUSTOMER_CODE",DataUtils.asString(orders.getCustomerCode(),""));
- jsonObject.put("TOTAL_QUANTITY",DataUtils.asString(orders.getExpectedSendQuantity(),""));
-
- if(null == orders.getWeight()){
- jsonObject.put("ACTUAL_WEIGHT", "");
- }
- else{
- jsonObject.put("ACTUAL_WEIGHT", DataUtils.asString(orders.getWeight()/1000,""));
- }
-
- jsonObject.put("ROLEGROUPTYPE",DataUtils.asString(orders.getRolegrouptype(),""));
-
- jsonObject.put("SPARE1", DataUtils.asString(orders.getSpare1(),""));
- jsonObject.put("SPARE2", DataUtils.asString(orders.getSpare2(),""));
- jsonObject.put("SPARE3", DataUtils.asString(orders.getSpare3(),""));
- jsonObject.put("SPARE4", DataUtils.asString(orders.getSpare4(),""));
- jsonObject.put("SPARE5", DataUtils.asString(orders.getSpare5(),""));
- jsonObject.put("SPARE6", DataUtils.asString(orders.getSpare6(),""));
- jsonObject.put("SPARE7", DataUtils.asString(orders.getSpare7(),""));
- jsonObject.put("SPARE8", DataUtils.asString(orders.getSpare8(),""));
- jsonObject.put("SPARE9", DataUtils.asString(orders.getSpare9(),""));
- jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
-
-
- jsonObject.put("ORDER_NO", DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("SEND_SYSTEM_ID", DataUtils.asString("",""));
- jsonObject.put("DELIVERY_OUTBOUND_TYPE", DataUtils.asString(orders.getOutboundKind(),""));
- jsonObject.put("OUTBOUND_DETAIL_TYPE", DataUtils.asString(orders.getOrderDealType(),""));
- jsonObject.put("REQUIRED_PICKUP_TIME", DataUtils.asString(dob.getRequiredPickupTime(),""));
- jsonObject.put("CARRIER_CODE", DataUtils.asString(orders.getCarrierCode(),""));
- jsonObject.put("LOGISTICS_FEE", DataUtils.asString(orders.getLogisticsFee(),""));
- //jsonObject.put("COLLECTION_FLAG", DataUtils.asString(orders.getCollectionFlag(),"0"));
-
- if ("2502".equals(orders.getPayType()) && null != orders.getTotalFee() && 0 != orders.getTotalFee()){
- jsonObject.put("COLLECTION_FLAG", DataUtils.asString(orders.getTotalFee(),"0"));
- }
- else{
- jsonObject.put("COLLECTION_FLAG", "0");
- }
-
- jsonObject.put("RECEIVER_CODE", DataUtils.asString(orders.getReceiverCode(),""));
- jsonObject.put("LOTS_ALLOWED", DataUtils.asString(orders.getLotsAllowed(),""));
- jsonObject.put("FLOW_ID", DataUtils.asString("",""));
- jsonObject.put("OWN_GOOD_FLAG", DataUtils.asString(orders.getOwnGoodFlag(),""));
- jsonObject.put("TOTAL_FEE", DataUtils.asString(orders.getTotalFee(),""));
- jsonObject.put("RECEIVER_COUNTRY", DataUtils.asString(orders.getReceiverCountry(),""));
- jsonObject.put("RECEIVER_DISTRICT", DataUtils.asString(orders.getReceiverDistrict(),""));
- jsonObject.put("RECEIVER_CONTACTOR_MOBILE", DataUtils.asString(orders.getReceiverContactorMobile(),""));
- jsonObject.put("RECEIVER_ZIPCODE", DataUtils.asString(orders.getReceiverZipcode(),""));
- jsonObject.put("MEDIANAME_PRINT", DataUtils.asString(orders.getMedianamePrint(),""));
- jsonObject.put("MEDIANAME", DataUtils.asString(orders.getMedianame(),""));
- jsonObject.put("DEAL_STATUS", DataUtils.asString(orders.getOrderStatus(),""));
- jsonObject.put("DEAL_RESPONSE", DataUtils.asString("",""));
- jsonObject.put("DEAL_TIME", DataUtils.asString(orders.getCreationTime(),""));
- jsonObject.put("CU_PRE_FUND", DataUtils.asString(orders.getCuPreFund(),""));
- jsonObject.put("LIST_PRINT", DataUtils.asString(orders.getListPrint(),""));
- jsonObject.put("INVOICE_PRINT", DataUtils.asString(orders.getInvoicePrint(),""));
- jsonObject.put("ROLEGROUPTYPE", DataUtils.asString(orders.getRolegrouptype(),""));
- jsonObject.put("ORDER_INVILID_TIME", DataUtils.asString(orders.getOrderInvilidTime(),""));
- jsonObject.put("ORDER_SOURCE", DataUtils.asString(dob.getSalesPlatform(),""));
- jsonObject.put("CUSTOMER_REFFERENCE_NO", DataUtils.asString(orders.getCustomerRefferenceId(),""));
- jsonObject.put("SALES_CASH", DataUtils.asString(orders.getSalesCash(),"") );
- jsonObject.put("STAFF_NAME", DataUtils.asString(orders.getStaffName(),"") );
- jsonObject.put("TOTAL_COST", DataUtils.asString(orders.getTotalCost(),"") );
- jsonObject.put("ALL_PREFUND", DataUtils.asString(orders.getSalesCash(),"") );
-
-
-
-
-
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray ;
- }
-
- public JSONArray doPrintCod(List<String> ids){
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
-
- if( list!=null && list.size()>0 ){
- // for(Orders orders : list ){
- // if (null != orders.getCarrierId() && isReming == true && StringUtils.isBlank(orders.getCarrierTrackingNumber())){
- // Map map = this.getcarrierTrackNumber(orders);
- //
- // orders.setCarrierTrackingNumber((String)map.get("mailNo"));
- // orders.setOriginCode((String)map.get("originCode"));
- // orders.setDestCode((String)map.get("destCode"));
- // }
- // }
-
- for(Orders orders : list ){
- JSONObject jsonObject = new JSONObject();
- BigCustomer bc =this.bigCustomerService.findBigCustomerByCustomerIdandCarrierId(orders.getCustomerId(),
- orders.getCarrierId());
- WarehouseVO warehousevo = this.warehouseService.getEntity(orders.getWarehouseId());
-
- jsonObject.put("ORDER_ID",DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("OUTBOUND_KIND",DataUtils.asDictionary(orders.getOutboundKind()+"") );
- jsonObject.put("CUSTOMER_NAME", DataUtils.asString(orders.getCustomerName(),"") );
- jsonObject.put("WAREHOUSE_NAME", DataUtils.asString(orders.getWarehouseName(),"") );
- jsonObject.put("CUSTOMER_REFFERENCE_ID", DataUtils.asString(orders.getCustomerRefferenceId(),"") );
- jsonObject.put("CARRIER_NAME",DataUtils.asString(orders.getCarrierName(),"") );
- jsonObject.put("RECEIVER_NAME", DataUtils.asString(orders.getReceiverName(),"") );
- jsonObject.put("RECEIVER_CONTACTOR",DataUtils.asString(orders.getReceiverContactor(),"") );
- jsonObject.put("CREATION_TIME", orders.getCreationTime()==null?"":DateUtils.getTimeStr( orders.getCreationTime(),2) );
- jsonObject.put("PAY_TYPE", DataUtils.asString(orders.getPayType(),"") );
- jsonObject.put("COMMENT", DataUtils.asString(orders.getOrderMemo(),"") );
- jsonObject.put("TOTALCOST", DataUtils.asDouble(orders.getTotalCost(),0));
- jsonObject.put("PAY", DataUtils.asDouble(orders.getPay(),0));
- jsonObject.put("PRE_FUND", DataUtils.asDouble(orders.getPreFund(),0));
- jsonObject.put("POINTS", DataUtils.asDouble(orders.getPoints(),0));
- jsonObject.put("PAY_ADVANCE2", DataUtils.asDouble(orders.getPayAdvance2(),0));
- jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0));
- jsonObject.put("PAY_CASH", DataUtils.asDouble(orders.getPayCash(),0));
- jsonObject.put("INDENT_DATE", orders.getIndentDate()==null?"":DateUtils.getTimeStr( orders.getIndentDate(),2) );
- jsonObject.put("PRE_ADVANCE", DataUtils.asDouble(orders.getPreAdvance(),0));
-
- jsonObject.put("MEDIANAME_PRINT", DataUtils.asString(orders.getMedianamePrint(),"") );
- jsonObject.put("MEDIANAME", DataUtils.asString(orders.getMedianame(),"") );
- jsonObject.put("ROLEGROUPTYPE", DataUtils.asString(orders.getRolegrouptype(),"") );
- jsonObject.put("RECEIVER_COUNTRY", DataUtils.asString(orders.getReceiverCountry(),"") );
- jsonObject.put("RECEIVER_PROVINCE", DataUtils.asString(orders.getReceiverProvince(),"") );
- jsonObject.put("RECEIVER_CITY", DataUtils.asString(orders.getReceiverCity(),"") );
- jsonObject.put("RECEIVER_DISTRICT", DataUtils.asString(orders.getReceiverDistrict(),"") );
- jsonObject.put("RECEIVER_STREET", DataUtils.asString(orders.getReceiverStreet(),"") );
- jsonObject.put("RECEIVER_CONTACTOR_MOBILE", DataUtils.asString(orders.getReceiverContactorMobile(),"") );
- jsonObject.put("RECEIVER_ZIPCODE", DataUtils.asString(orders.getReceiverZipcode(),"") );
- jsonObject.put("RECEIVER_CONTACTOR_PHONE", DataUtils.asString(orders.getReceiverContactorPhone(),"") );
- jsonObject.put("IS_PROHIBITED", DataUtils.asInt(orders.getIsProhibited(),0));
- jsonObject.put("ROUTE_NAME", DataUtils.asString(orders.getOrderRoute(),""));
- jsonObject.put("TOTAL_FEE", DataUtils.asDouble(orders.getTotalFee(),0) );
- jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0) );
- jsonObject.put("WEIGHT", DataUtils.asDouble(orders.getWeight(),0) );
-
- String bigCustomerNo = bc == null ? "temp" : bc.getBigCustomerName();
- String trackingNumber = orders.getCarrierTrackingNumber()==null ?"":orders.getCarrierTrackingNumber();
-
- jsonObject.put("EXPRESS_NO", DataUtils.asString(trackingNumber,"") );
- jsonObject.put("ORIGINATIONG_CODE", DataUtils.asString(orders.getOriginCode(),"") );
- jsonObject.put("DESTINATION_CODE", DataUtils.asString(orders.getDestCode(),"") );
- jsonObject.put("ITEM_DESCRIPTION", DataUtils.asString(orders.getOrderMemo(),"") );
- jsonObject.put("ITEM_COUNT", DataUtils.asString(orders.getDetailCount(),"") );
-
- jsonObject.put("BIG_CUSTOMER_NO", DataUtils.asString(bigCustomerNo,"") );
- jsonObject.put("ACCOUNTS_MODE", "1");
- jsonObject.put("IS_SECURE", "0");
- jsonObject.put("SECURE_ACCOUNTS", DataUtils.asDouble(orders.getTotalCost(), 0));
- jsonObject.put("VOLUME", DataUtils.asDouble(orders.getBulk(), 0));
- jsonObject.put("LENGTH", 0);
- jsonObject.put("WIDTH", 0);
- jsonObject.put("HEIGHT", 0);
- jsonObject.put("SENDER", DataUtils.asString(warehousevo.getContactor(), ""));
- jsonObject.put("SENDER_COMPANY", DataUtils.asString(warehousevo.getWarehouseName(), ""));
- jsonObject.put("SENDER_COUNTRY", DataUtils.asString(warehousevo.getCountry(), ""));
- jsonObject.put("SENDER_PROVINCE", DataUtils.asString(warehousevo.getProvince(), ""));
- jsonObject.put("SENDER_CITY", DataUtils.asString(warehousevo.getCity(), ""));
- jsonObject.put("SENDER_COUNTY", DataUtils.asString(warehousevo.getDistrict(), ""));
- jsonObject.put("SENDER_ADDR", DataUtils.asString(warehousevo.getStreet(), ""));
- jsonObject.put("SENDER_CONTACTOR_MOBILE", DataUtils.asString(warehousevo.getPersonalPhone(), ""));
-
- jsonObject.put("RECEIVER_CUSTOMER_CODE",DataUtils.asString(orders.getReceiverCode(),""));
- jsonObject.put("SENDER_CUSTOMER_CODE",DataUtils.asString(orders.getCustomerCode(),""));
- jsonObject.put("TOTAL_QUANTITY",DataUtils.asString(orders.getExpectedSendQuantity(),""));
- jsonObject.put("ACTUAL_WEIGHT",DataUtils.asString(orders.getWeight(),""));
-
- jsonObject.put("ROLEGROUPTYPE",DataUtils.asString(orders.getRolegrouptype(),""));
-
- jsonObject.put("SPARE1", DataUtils.asString(orders.getSpare1(),""));
- jsonObject.put("SPARE2", DataUtils.asString(orders.getSpare2(),""));
- jsonObject.put("SPARE3", DataUtils.asString(orders.getSpare3(),""));
- jsonObject.put("SPARE4", DataUtils.asString(orders.getSpare4(),""));
- jsonObject.put("SPARE5", DataUtils.asString(orders.getSpare5(),""));
- jsonObject.put("SPARE6", DataUtils.asString(orders.getSpare6(),""));
- jsonObject.put("SPARE7", DataUtils.asString(orders.getSpare7(),""));
- jsonObject.put("SPARE8", DataUtils.asString(orders.getSpare8(),""));
- jsonObject.put("SPARE9", DataUtils.asString(orders.getSpare9(),""));
- jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
- //jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
- //jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
-
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray ;
- }
-
- /*
- *
- * 封装打印五联返单的JSON
- */
- public JSONArray doPrintReturn(List<String> ids){
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
-
- if( list!=null && list.size()>0 ){
-
- for(Orders orders : list ){
- JSONObject jsonObject = new JSONObject();
- // BigCustomer bc =this.bigCustomerService.findBigCustomerByCustomerIdandCarrierId(orders.getCustomerId(),
- // orders.getCarrierId());
- // WarehouseVO warehousevo = this.warehouseService.getEntity(orders.getWarehouseId());
- //
- // jsonObject.put("ORDER_ID",DataUtils.asString(orders.getOrderId(),""));
- // jsonObject.put("OUTBOUND_KIND",DataUtils.asDictionary(orders.getOutboundKind()+"") );
- // jsonObject.put("CUSTOMER_NAME", DataUtils.asString(orders.getCustomerName(),"") );
- // jsonObject.put("WAREHOUSE_NAME", DataUtils.asString(orders.getWarehouseName(),"") );
- // jsonObject.put("CUSTOMER_REFFERENCE_ID", DataUtils.asString(orders.getCustomerRefferenceId(),"") );
- // jsonObject.put("CARRIER_NAME",DataUtils.asString(orders.getCarrierName(),"") );
- // jsonObject.put("RECEIVER_NAME", DataUtils.asString(orders.getReceiverName(),"") );
- // jsonObject.put("RECEIVER_CONTACTOR",DataUtils.asString(orders.getReceiverContactor(),"") );
- // jsonObject.put("CREATION_TIME", orders.getCreationTime()==null?"":DateUtils.getTimeStr( orders.getCreationTime(),2) );
- // jsonObject.put("PAY_TYPE", DataUtils.asString(orders.getPayType(),"") );
- // jsonObject.put("COMMENT", DataUtils.asString(orders.getOrderMemo(),"") );
- // jsonObject.put("TOTALCOST", DataUtils.asDouble(orders.getTotalCost(),0));
- // jsonObject.put("PAY", DataUtils.asDouble(orders.getPay(),0));
- // jsonObject.put("PRE_FUND", DataUtils.asDouble(orders.getPreFund(),0));
- // jsonObject.put("POINTS", DataUtils.asDouble(orders.getPoints(),0));
- // jsonObject.put("PAY_ADVANCE2", DataUtils.asDouble(orders.getPayAdvance2(),0));
- // jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0));
- // jsonObject.put("PAY_CASH", DataUtils.asDouble(orders.getPayCash(),0));
- // jsonObject.put("INDENT_DATE", orders.getIndentDate()==null?"":DateUtils.getTimeStr( orders.getIndentDate(),2) );
- // jsonObject.put("PRE_ADVANCE", DataUtils.asDouble(orders.getPreAdvance(),0));
- //
- // jsonObject.put("MEDIANAME_PRINT", DataUtils.asString(orders.getMedianamePrint(),"") );
- // jsonObject.put("MEDIANAME", DataUtils.asString(orders.getMedianame(),"") );
- // jsonObject.put("ROLEGROUPTYPE", DataUtils.asString(orders.getRolegrouptype(),"") );
- // jsonObject.put("RECEIVER_COUNTRY", DataUtils.asString(orders.getReceiverCountry(),"") );
- // jsonObject.put("RECEIVER_PROVINCE", DataUtils.asString(orders.getReceiverProvince(),"") );
- // jsonObject.put("RECEIVER_CITY", DataUtils.asString(orders.getReceiverCity(),"") );
- // jsonObject.put("RECEIVER_DISTRICT", DataUtils.asString(orders.getReceiverDistrict(),"") );
- // jsonObject.put("RECEIVER_STREET", DataUtils.asString(orders.getReceiverStreet(),"") );
- // jsonObject.put("RECEIVER_CONTACTOR_MOBILE", DataUtils.asString(orders.getReceiverContactorMobile(),"") );
- // jsonObject.put("RECEIVER_ZIPCODE", DataUtils.asString(orders.getReceiverZipcode(),"") );
- // jsonObject.put("RECEIVER_CONTACTOR_PHONE", DataUtils.asString(orders.getReceiverContactorPhone(),"") );
- // jsonObject.put("IS_PROHIBITED", DataUtils.asInt(orders.getIsProhibited(),0));
- //
- // jsonObject.put("ROUTE_NAME", DataUtils.asString(orders.getOrderRoute(),""));
- // jsonObject.put("TOTAL_FEE", DataUtils.asDouble(orders.getTotalFee(),0) );
- // jsonObject.put("TRANS_PAY", DataUtils.asDouble(orders.getTransPay(),0) );
- // jsonObject.put("WEIGHT", DataUtils.asDouble(orders.getWeight(),0) );
- //
- // String bigCustomerNo = bc == null ? "temp" : bc.getBigCustomerName();
- // String trackingNumber = orders.getCarrierTrackingNumber()==null ?"":orders.getCarrierTrackingNumber();
- //
- // jsonObject.put("EXPRESS_NO", DataUtils.asString(trackingNumber,"") );
- // jsonObject.put("ORIGINATIONG_CODE", DataUtils.asString(orders.getOriginCode(),"") );
- // jsonObject.put("DESTINATION_CODE", DataUtils.asString(orders.getDestCode(),"") );
- // jsonObject.put("ITEM_DESCRIPTION", DataUtils.asString(orders.getOrderMemo(),"") );
- // jsonObject.put("ITEM_COUNT", DataUtils.asString(orders.getDetailCount(),"") );
- //
- // jsonObject.put("BIG_CUSTOMER_NO", DataUtils.asString(bigCustomerNo,"") );
- // jsonObject.put("ACCOUNTS_MODE", "1");
- // jsonObject.put("IS_SECURE", "0");
- // jsonObject.put("SECURE_ACCOUNTS", DataUtils.asDouble(orders.getTotalCost(), 0));
- // jsonObject.put("VOLUME", DataUtils.asDouble(orders.getBulk(), 0));
- // jsonObject.put("LENGTH", 0);
- // jsonObject.put("WIDTH", 0);
- // jsonObject.put("HEIGHT", 0);
- // jsonObject.put("SENDER", DataUtils.asString(warehousevo.getContactor(), ""));
- // jsonObject.put("SENDER_COMPANY", DataUtils.asString(warehousevo.getWarehouseName(), ""));
- // jsonObject.put("SENDER_COUNTRY", DataUtils.asString(warehousevo.getCountry(), ""));
- // jsonObject.put("SENDER_PROVINCE", DataUtils.asString(warehousevo.getProvince(), ""));
- // jsonObject.put("SENDER_CITY", DataUtils.asString(warehousevo.getCity(), ""));
- // jsonObject.put("SENDER_COUNTY", DataUtils.asString(warehousevo.getDistrict(), ""));
- // jsonObject.put("SENDER_ADDR", DataUtils.asString(warehousevo.getStreet(), ""));
- // jsonObject.put("SENDER_CONTACTOR_MOBILE", DataUtils.asString(warehousevo.getPersonalPhone(), ""));
- //
- // jsonObject.put("RECEIVER_CUSTOMER_CODE",DataUtils.asString(orders.getReceiverCode(),""));
- // jsonObject.put("SENDER_CUSTOMER_CODE",DataUtils.asString(orders.getCustomerCode(),""));
- // jsonObject.put("TOTAL_QUANTITY",DataUtils.asString(orders.getExpectedSendQuantity(),""));
- // jsonObject.put("ACTUAL_WEIGHT",DataUtils.asString(orders.getWeight(),""));
- //
- // jsonObject.put("ROLEGROUPTYPE",DataUtils.asString(orders.getRolegrouptype(),""));
- //
- // jsonObject.put("SPARE1", DataUtils.asString(orders.getSpare1(),""));
- // jsonObject.put("SPARE2", DataUtils.asString(orders.getSpare2(),""));
- // jsonObject.put("SPARE3", DataUtils.asString(orders.getSpare3(),""));
- // jsonObject.put("SPARE4", DataUtils.asString(orders.getSpare4(),""));
- // jsonObject.put("SPARE5", DataUtils.asString(orders.getSpare5(),""));
- // jsonObject.put("SPARE6", DataUtils.asString(orders.getSpare6(),""));
- // jsonObject.put("SPARE7", DataUtils.asString(orders.getSpare7(),""));
- // jsonObject.put("SPARE8", DataUtils.asString(orders.getSpare8(),""));
- // jsonObject.put("SPARE9", DataUtils.asString(orders.getSpare9(),""));
- // jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
- // //jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
- // //jsonObject.put("SPARE10", DataUtils.asString(orders.getSpare10(),""));
-
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray;
- }
-
- public JSONArray doPrintInvoice(List<String> ids){
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
- if( list!=null && list.size()>0 ){
- for(Orders orders : list ){
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("ORDER_ID",DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("CUSTOMER_REFFERENCE_ID", DataUtils.asString(orders.getCustomerRefferenceId(),"") );
- jsonObject.put("CARRIER_NAME",DataUtils.asString(orders.getCarrierName(),"") );
- jsonObject.put("RECEIVER_NAME", DataUtils.asString(orders.getReceiverName(),"") );
- jsonObject.put("RECEIVER_CONTACTOR",DataUtils.asString(orders.getReceiverContactor(),"") );
- jsonObject.put("MEDIANAME_PRINT", DataUtils.asString(orders.getMedianamePrint(),"") );
- jsonObject.put("MEDIANAME", DataUtils.asString(orders.getMedianame(),"") );
- jsonObject.put("INVOICE_AMOUNT", DataUtils.asStringExt(orders.getInvoiceAmount(),"") );
- jsonObject.put("ROLEGROUPTYPE", DataUtils.asString(orders.getRolegrouptype(),"") );
- jsonObject.put("INVOICE_PROJECT", DataUtils.asString(orders.getInvoiceProject(),"") );
- jsonObject.put("INVOICE_TITLE", DataUtils.asString(orders.getInvoiceTitle(),"") );
- jsonObject.put("IS_SPECIAL_INVOICE", DataUtils.asString(orders.getIsSpecialInvoice(),"0") );
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray ;
- }
-
- public JSONArray doExpressLabelPrint(List<String> ids){
- JSONArray jsonArray = new JSONArray();
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(qc);
- String sql ="select * from wms_orders where ORDER_ID IN(:ids) ORDER BY "+ getOrderByField(ids);
- Map<String,Object> params = new HashMap<String,Object>();
- params.put("ids", ids);
- List<Orders> list = dao.query(sql, params);
- if( list!=null && list.size()>0 ){
- for(Orders orders : list ){
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("ORDER_ID",DataUtils.asString(orders.getOrderId(),""));
- jsonObject.put("TAG_ID", DataUtils.asString(orders.getTagId(),"") );
- jsonObject.put("CARRIER_NAME",DataUtils.asString(orders.getCarrierName(),"") );
- jsonObject.put("COMBINED_ORDER_ID",DataUtils.asString(orders.getCombinedOrderId(),"") );
- jsonObject.put("CUSTOMER_REFFERENCE_ID",DataUtils.asString(orders.getCustomerRefferenceId(),"") );
- jsonArray.add(jsonObject);
- }
- }
- return jsonArray ;
- }
-
- public Map getcarrierTrackNumber(Orders orders) {
- Map map = new HashMap();
-
- String mailNo ="";
- String originCode ="";
- String destCode ="";
- try{
- if (orders.getCarrierId() == null) {
- throw new AjaxException("承运商为空,无法打印热敏");
- }
- BigCustomer bc =
- this.bigCustomerService.findBigCustomerByCustomerIdandCarrierId(orders.getCustomerId(),
- orders.getCarrierId());
-
- if( bc==null){
- throw new AjaxException("没有配置大客户,无法打印热敏");
- }
-
- VenderVO vender = this.venderService.getVenderById(orders.getCarrierId());
- WarehouseVO warehouse = this.warehouseService.getEntity(orders.getWarehouseId());
- CustomerVO customer = this.customerCachedService.get(orders.getCustomerId());
- List<OrdersDetail> ordersList = this.ordersDetailService.listBy(orders.getOrderId());
-
- StringBuffer cargo = new StringBuffer();
- StringBuffer cargo_count = new StringBuffer();
- StringBuffer cargo_unit = new StringBuffer();
- StringBuffer cargo_weight = new StringBuffer();
- StringBuffer cargo_amount = new StringBuffer();
-
- if(CollectionUtils.isNotEmpty(ordersList)){
- for(int i = 0; i < ordersList.size(); i++){
- if(i == (ordersList.size() -1)){
-
- if (null == ordersList.get(i).getItemName()){
- cargo.append("保健品");
- }
- else{
- cargo.append(ordersList.get(i).getItemName());
- }
-
- cargo_count.append(Integer.toString(ordersList.get(i).getExpectedItemQuantity().intValue()));
-
- if (null == ordersList.get(i).getUnits()){
- cargo_unit.append("盒");
- }
- else{
- cargo_unit.append(ordersList.get(i).getUnits());
- }
-
- if (null == ordersList.get(i).getWeight()){
- cargo_weight.append(0);
- }
- else{
- cargo_weight.append(ordersList.get(i).getWeight()/1000);
- }
-
- if (null == ordersList.get(i).getPrice()){
- cargo_amount.append(0);
- }
- else{
- cargo_amount.append(ordersList.get(i).getPrice());
- }
- }
- else{
- if (null == ordersList.get(i).getItemName()){
- cargo.append("保健品").append(",");
- }
- else{
- cargo.append(ordersList.get(i).getItemName()).append(",");
- }
-
- cargo_count.append(Integer.toString(ordersList.get(i).getExpectedItemQuantity().intValue())).append(",");
-
- if (null == ordersList.get(i).getUnits()){
- cargo_unit.append("盒").append(",");
- }
- else{
- cargo_unit.append(ordersList.get(i).getUnits()).append(",");
- }
-
- if (null == ordersList.get(i).getWeight()){
- cargo_weight.append(0).append(",");
- }
- else{
- cargo_weight.append(ordersList.get(i).getWeight()/1000).append(",");
- }
-
- if (null == ordersList.get(i).getPrice()){
- cargo_amount.append(0).append(",");
- }
- else{
- cargo_amount.append(ordersList.get(i).getPrice()).append(",");
- }
- }
- }
- }
-
- String analyseType = vender.getObtainCarrierTrackingNumber();
- FetchMailNoRequestDto dto = new FetchMailNoRequestDto();
- FetchMailNoRequestDto.Header header = new FetchMailNoRequestDto.Header();
- FetchMailNoRequestDto.Body body = new FetchMailNoRequestDto.Body();
- header.setAnalyzeType(analyseType);
-
- if ("S90003".equals(analyseType)){
- header.setInvocationWay(EdiConst.REQUEST_INVOCATIONWAY_MIDDLEDB);
- }
- else{
- header.setInvocationWay(EdiConst.REQUEST_INVOCATIONWAY_WS);
- }
-
- FetchMailNoRequestDto.Body.LogisticsFetchMailNo fetchMailno =
- new FetchMailNoRequestDto.Body.LogisticsFetchMailNo();
- FetchMailNoRequestDto.Body.LogisticsFetchMailNo.Content content =
- new FetchMailNoRequestDto.Body.LogisticsFetchMailNo.Content();
- content.setBigaccountid(bc.getBigCustomerName());
- content.setPassword(bc.getBigCustomerPassword());
- content.setWeight(orders.getWeight() == null ? "0" : String.valueOf(orders.getWeight()/1000));
- content.setIsCod(orders.getCollectionFlag()==null?"0":orders.getCollectionFlag().toString());
- content.setOrderno(orders.getOrderId());
- content.setSenderProvince(customer.getProvince());
-
- if ("R70004".equals(analyseType)){
- ProvinceCityCompare jpcc = this.provinceCityCompareService.findByInner(transformProvince(warehouse.getProvince()), warehouse.getCity(), warehouse.getDistrict());
- ProvinceCityCompare dpcc = this.provinceCityCompareService.findByInner(transformProvince(orders.getReceiverProvince()), orders.getReceiverCity(), orders.getReceiverDistrict());
-
- if (null != jpcc){
- content.setSenderCity(jpcc.getOuterCity());
- }
- else{
- content.setSenderCity(customer.getCity());
- }
-
- if (null != dpcc){
- content.setReceiverCity(dpcc.getOuterCity());
- }
- else{
- content.setReceiverCity(orders.getReceiverCity());
- }
-
- }
- else{
- content.setSenderCity(customer.getCity());
- content.setReceiverCity(orders.getReceiverCity());
- }
-
- content.setSenderContactor(customer.getContactor());
- content.setSenderTel(customer.getPersonalPhone() == null ? customer.getPhone() : customer.getPersonalPhone());
- content.setSenderCompany(customer.getCustomerName());
- content.setSenderAddress(customer.getProvince()+customer.getCity()+customer.getStreet());
- content.setReceiverProvince(orders.getReceiverProvince());
-
- if(null != orders.getReceiverCompany()){
- content.setReceiverCompany(orders.getReceiverCompany());
- }
- else{
- content.setReceiverCompany(orders.getReceiverName());
- }
- content.setReceiverContactor(orders.getReceiverContactor()==null?orders.getReceiverName():orders.getReceiverContactor());
- content.setReceiverTel(orders.getReceiverContactorPhone() == null ? orders.getReceiverContactorMobile() : orders.getReceiverContactorPhone());
- content.setReceiverAddress(orders.getReceiverProvince()+orders.getReceiverCity()+orders.getReceiverStreet());
-
- content.setGoodsDesc(cargo.toString());
- content.setGoodsNum(cargo_count.toString());
- content.setCodFee(orders.getTotalFee() == null ? "0.0" : orders.getTotalFee().toString());
- content.setCube(cargo_unit.toString());
- content.setInsuranceFee(orders.getTotalCost() == null ? "0.0" : orders.getTotalCost().toString());
-
- if (null != warehouse.getZipcode()){
- content.setScustPost(warehouse.getZipcode());
- }
- else{
- content.setScustPost("210000");
- }
-
- if (null != orders.getReceiverZipcode()){
- content.setTcustPost(orders.getReceiverZipcode());
- }
- else{
- content.setTcustPost("210000");
- }
-
- content.setTcustCounty(orders.getReceiverDistrict());
-
- content.setLength("0");
-
- content.setProductCode("");
- content.setCarrierId(orders.getCarrierId() == null ? "" : orders.getCarrierId());
- content.setReceiverDistrict(orders.getReceiverDistrict() == null ? "" : orders.getReceiverDistrict());
-
- fetchMailno.setContent(content);
- body.setLogisticsFetchMailNo(fetchMailno);
- dto.setBody(body);
- dto.setHeader(header);
-
- FetchMailNoResponseDto rDto = this.getMailNoService.fetchMailNo(dto);
- if(rDto==null){
- // 由于网路延迟等原因,没有获取到顺丰承运商单号的,需要请求一次订单查询接口
- // if ("R70004".equals(analyseType)){
- // header.setAnalyzeType("R70006");
- // dto.setHeader(header);
- // rDto = this.getMailNoService.fetchMailNo(dto);
- // }
- // else{
- throw new CommonException("由于网路延迟等原因,无法获取物流单号。");
- // }
- }
-
- mailNo = rDto.getBody().getLogisticsFetchMailNoResponese().getHeader().getMailno();
- originCode = rDto.getBody().getLogisticsFetchMailNoResponese().getHeader().getOriginalCode();
- destCode = rDto.getBody().getLogisticsFetchMailNoResponese().getHeader().getDestinationCode();
-
- logger.info("mailNo: " + mailNo + " originCode: " + originCode + " destCode: " + destCode);
-
- map.put("mailNo", mailNo);
-
- if (null != originCode && !"".equals(originCode)){
- map.put("originCode", originCode);
- }
- else{
- map.put("originCode", "");
- }
- //获取新的分拣码
- orders.setCarrierTrackingNumber(mailNo);
- destCode = getDestCodeByWmsOrders(orders);
- map.put("destCode", destCode);
- String sql ="UPDATE wms_orders SET CARRIER_TRACKING_NUMBER=?,ORIGIN_CODE=?,DEST_CODE=? WHERE ORDER_ID=?";
- this.daoFactory.getJdbcDao().update(sql, mailNo, originCode, destCode, orders.getOrderId());
-
- }catch(Exception ex){
- throw new AjaxException("无法获取物流面单号,无法打印热敏");
- }
- // TODO 根据配置去获取物流面单号
- return map;
- }
-
- public List groupOrderByInvoice(List<String> ids) {
- QueryContext<Orders> qc = QueryContext.createQueryContext(Orders.class);
- List resultList = new ArrayList();
- List<String> needPrintInvoiceOrders = new ArrayList<String>();
- List<String> needlessPrintInvoiceOrders = new ArrayList<String>();
- resultList.add(needPrintInvoiceOrders);
- resultList.add(needlessPrintInvoiceOrders);
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("ids", ids);
- List<Orders> checkList =
- this.daoFactory
- .getJdbcDao(qc).query(
- "select * from wms_orders where DELETE_FLAG = 0 AND BUSINESS_LOCK_FLAG=0 and ORDER_STATUS<>5204 and ( PICK_STATUS=0 ) AND ( WAVE_ID IS NULL ) AND ORDER_ID in (:ids)",
- param);
- if( checkList!=null && checkList.size()>0 ){
- for(Orders order:checkList ){
- if(( order.getInvoiceAmount()==null || order.getInvoiceAmount().longValue()<=0 )
- || (order.getIsSpecialInvoice()!=null && order.getIsSpecialInvoice().intValue()==1 )){
- needlessPrintInvoiceOrders.add(order.getOrderId());
- }else{
- needPrintInvoiceOrders.add(order.getOrderId());
- }
- }
- }
- return resultList;
- }
-
- public List<List<Orders>> groupOrderByInvoice2(List<Orders> allOrders) {
- List<List<Orders>> resultList = new ArrayList<List<Orders>>();
- List<Orders> needPrintInvoiceOrders = new ArrayList<Orders>();
- List<Orders> needlessPrintInvoiceOrders = new ArrayList<Orders>();
- resultList.add(needPrintInvoiceOrders);
- resultList.add(needlessPrintInvoiceOrders);
-
- if( allOrders!=null && allOrders.size()>0 ){
- for(Orders order:allOrders ){
- if( isneedPrintInvoice(order) ){
- needPrintInvoiceOrders.add(order);
- }else{
- needlessPrintInvoiceOrders.add(order);
- }
- }
- }
- return resultList;
- }
-
- /**
- * 判断订单是否要打印发票
- * @param orders
- * @return
- */
- public boolean isneedPrintInvoice(Orders orders){
- if(( orders.getInvoiceAmount()==null || orders.getInvoiceAmount().longValue()<=0 )
- || (orders.getIsSpecialInvoice()!=null && orders.getIsSpecialInvoice().intValue()==1 ) ){
- return false;
- }else{
- return true;
- }
- }
-
- /**
- *
- * 根据id修改字段carrierTackingNumber
- */
- public void updateCarrierTackingNumberById(String id, String carrierTrackingNumber) {
- String sql = "update wms_orders set CARRIER_TRACKING_NUMBER=:carrierTrackingNumber WHERE ID=:id";
- Map<String, Object> params = new HashMap<String, Object>();
- params.put("id", id);
- params.put("carrierTrackingNumber", carrierTrackingNumber);
- this.daoFactory.getJdbcDao().update(sql, params);
- }
- /** <一句话功能简述>
- * <功能详细描述>
- * @param orderId
- * @param wmsOrdersStatusCancled
- * @see [类、类#方法、类#成员]
- */
- public void updateOrderStatus(String orderId, Integer wmsOrdersStatusCancled)
- {
- String sql="update wms_orders set ORDER_STATUS =:ORDER_STATUS WHERE ORDER_ID =:ORDER_ID";
- Map<String,Object> params2 = new HashMap<String,Object>();
- params2.put("ORDER_STATUS", wmsOrdersStatusCancled);
- params2.put("ORDER_ID", orderId);
- this.daoFactory.getJdbcDao().update(sql, params2);
- }
-
- /**
- * 查询物流返单号是否存在
- */
- public boolean isExistReturnNumber(String orderId, String returnNumber) {
- int count =
- this.daoFactory.getJdbcDao().queryForInt("select count(*) from wms_orders where ORDER_ID=? and RETURN_NUMBER=?",
- orderId, returnNumber);
- return count != 0;
- }
-
- @SuppressWarnings("unchecked")
- public Map<String, Object> loadToOrdersPortalData(String accountId) {
- Map<String, Object> result = new HashMap<String, Object>();
-
- // 新记录状态的销售出库订单总数
- int count1 =
- this.daoFactory.getJdbcDao().queryForInt("select count(t.DELIVERY_OUTBOUND_ID) from oms_delivery_outbound t where t.DELIVERY_OUTBOUND_STATUS='4200' and t.ACCOUNT_ID=?",
- accountId);
- result.put("count1", count1);
-
- // 已完成分配但未派箱的出货单总量
- int count2 =
- this.daoFactory.getJdbcDao().queryForInt("select count(o.ORDER_ID) from wms_orders o,(select WAVE_ID from wms_orders_wave ow where ow.ACCOUNT_ID=? and ow.ASSIGNED_BOX='0' and ow.WAVE_STATUS='2' and ow.ORDER_COUNT > 0 and ow.DELETE_FLAG='0') t where o.ACCOUNT_ID=? and o.DISTRIBUTION_UNSUCCESS_FLAG='1' and o.WAVE_ID=t.WAVE_ID",
- accountId, accountId);
- result.put("count2", count2);
-
- // 已派箱未绑箱数
- int count3 =
- this.daoFactory.getJdbcDao().queryForInt("select count(t1.ORDER_ID) from (select o.ORDER_ID from wms_orders o,(select WAVE_ID from wms_orders_wave ow where ow.ACCOUNT_ID=? and ow.ASSIGNED_BOX='1' and ow.WAVE_STATUS='2' and ow.ORDER_COUNT > 0 and ow.DELETE_FLAG='0') t where o.ACCOUNT_ID=? and o.DISTRIBUTION_UNSUCCESS_FLAG='1' and o.PACKING_STATUS='0' and o.WAVE_ID=t.WAVE_ID) t1 where t1.ORDER_ID not in (select pb.ORDER_ID from wms_picklist_box pb where pb.ACCOUNT_ID=?)",
- accountId, accountId, accountId);
- result.put("count3", count3);
-
- // 已绑箱未拣货完成订单数
- int count4 =
- this.daoFactory.getJdbcDao().queryForInt("select count(*) from wms_orders o,(select ORDER_ID from wms_picklist_box pb where pb.ACCOUNT_ID=? and pb.ORDER_ID is not null) t where o.ACCOUNT_ID=? and o.PICK_STATUS='1' and o.PICKED_QUANTITY='0' and o.ORDER_ID=t.ORDER_ID",
- accountId, accountId);
- result.put("count4", count4);
-
- // 已拣货未包装订单数
- int count5 =
- this.daoFactory.getJdbcDao().queryForInt("select count(o.ORDER_ID) from wms_orders o where o.ACCOUNT_ID=? and o.PICK_STATUS='2' and o.PACKING_STATUS='0'",
- accountId);
- result.put("count5", count5);
-
- // 已包装未交接订单数
- int count6 =
- this.daoFactory.getJdbcDao().queryForInt("select count(o.ORDER_ID) from wms_orders o where o.ACCOUNT_ID=? and o.PACKING_STATUS='2' and o.DELIVERY_STATUS='0'",
- accountId);
- result.put("count6", count6);
-
- // 缺货订单数
- int count7 =
- this.daoFactory.getJdbcDao().queryForInt("select count(*) from (select odo.CUSTOMER_REFFERENCE_ID from oms_delivery_outbound odo where odo.DELIVERY_OUTBOUND_STATUS='4200' and odo.ACCOUNT_ID=? and odo.OWN_GOOD_FLAG='1' union select o.CUSTOMER_REFFERENCE_ID from wms_orders o where o.DISTRIBUTION_UNSUCCESS_FLAG='0' and o.ACCOUNT_ID=? and o.OWN_GOOD_FLAG ='1') t",
- accountId, accountId);
- int count8 =
- this.daoFactory.getJdbcDao().queryForInt("select count(ogm.ID) from wms_own_good_manage ogm,(select odo.CUSTOMER_REFFERENCE_ID from oms_delivery_outbound odo where odo.DELIVERY_OUTBOUND_STATUS='4200' and odo.ACCOUNT_ID=? and odo.OWN_GOOD_FLAG='1' union select o.CUSTOMER_REFFERENCE_ID from wms_orders o where o.DISTRIBUTION_UNSUCCESS_FLAG='0' and o.ACCOUNT_ID=? and o.OWN_GOOD_FLAG ='1') t where ogm.ID=t.CUSTOMER_REFFERENCE_ID and ogm.account_id=? and ogm.DELETE_FLAG='0' and ogm.`STATUS`='6501'",
- accountId, accountId, accountId);
-
- result.put("count7", count7 - count8);
-
- // 待发订单总数
- int total = count1 + count2 + count3 + count4 + count5 + count6 + count7 - count8;
- result.put("total", total);
-
- return result;
- }
-
- /**
- * 省份转化
- */
- public String transformProvince(String province){
- String changedProvince = "";
-
- if (null != province && !"".equals(province)){
- if (province.contains("广西")){
- changedProvince = "广西省";
- }
- else if (province.contains("内蒙古")){
- changedProvince = "内蒙古";
- }
- else if (province.contains("宁夏")){
- changedProvince = "宁夏自治区";
- }
- else if (province.contains("西藏")){
- changedProvince = "西藏";
- }
- else if (province.contains("新疆")){
- changedProvince = "新疆";
- }
- else if (province.contains("天津")){
- changedProvince = "天津市";
- }
- else if (province.contains("北京")){
- changedProvince = "北京市";
- }
- else if (province.contains("上海")){
- changedProvince = "上海市";
- }
- else if (province.contains("重庆")){
- changedProvince = "重庆市";
- }
- else{
- changedProvince = province;
- }
- }
-
- return changedProvince;
- }
-
- /**
- * 根据波次号查询订单
- * @param waveId
- * @return
- */
- public List<Orders> queryOrdersByWaveId(String waveId) {
- String sql = "SELECT * FROM wms_orders WHERE WAVE_ID =? AND DELETE_FLAG =0 ORDER BY ORDER_ID ";
- ExtendedJdbcDao<Orders> dao = this.daoFactory.getJdbcDao(QueryContext.createQueryContext(Orders.class));
- return dao.query(sql, waveId);
- }
-
- public List<Orders> findByStatus(String accountId, String customerId, int status){
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("accountId", accountId);
- param.put("customerId", customerId);
- param.put("status", status);
- String sql =
- "select * from wms_orders where account_id=:accountId and customer_id=:customerId and ASSIGNED_STATUS=:status and DELETE_FLAG = 0";
- List<Orders> list = findRecordsByConditions(sql, param, Orders.class);
-
- return list;
- }
-
- public List<Orders> findByOutboundOrderId(String outboundOrderId){
- Map<String, Object> param = new HashMap<String, Object>();
- param.put("outboundOrderId", outboundOrderId);
- String sql = "select * from wms_orders where OUTBOUND_ORDER_ID=:outboundOrderId and DELETE_FLAG = 0";
-
- return findRecordsByConditions(sql, param, Orders.class);
- }
- /**
- * 通过发货单获取三段码(分拣码新加接口)
- * @param orders
- * @return
- */
- public String getDestCodeByWmsOrders(Orders orders) {
- StringBuffer destCode = new StringBuffer();
- try {
- JSONObject json = new JSONObject();
- JSONArray jsonArray = new JSONArray();
- JSONObject jsonDetail = new JSONObject();
- jsonDetail.put("id", "1");
- // 面单号
- jsonDetail.put("mailNum", orders.getCarrierTrackingNumber());
- // 产品代码 0100000000:文件;0200000000:信函;0300000000:物品;默认物品
- jsonDetail.put("prodCode", "0300000000");
- // 寄件人邮编
- jsonDetail.put("clctOrgCode", "210023");
- // 收件人邮编
- String receiverZipcode = orders.getReceiverZipcode();
- if (com.behosoft.util.StringUtils.isEmpty(receiverZipcode)) {
- receiverZipcode = this.globalPostCodeSettingService.getPostCodeForPlace(orders.getReceiverProvince(),
- orders.getReceiverCity(), null, null);
- }
- jsonDetail.put("arriPostCode", receiverZipcode);
- //运输方式 0:陆运;1:航空;2:陆转航;3:航转陆;4:其他;默认是0
- jsonDetail.put("transMode", "0");
- // 收寄行政区划代码 与寄件人邮编必填一项
- jsonDetail.put("clctArea", "210023");
- // 寄达行政区划代码
- jsonDetail.put("arriArea", receiverZipcode);
- // 是否集散邮件 1:是;0:否;默认否
- jsonDetail.put("isNanji", "0");
- jsonDetail.put("recerAddress", orders.getReceiverStreet() == null? "*" : orders.getReceiverStreet());
- jsonDetail.put("recerOrg", orders.getReceiverName() == null? "*" : orders.getReceiverName());
- jsonDetail.put("recerProvName", orders.getReceiverProvince() == null? "*" : orders.getReceiverProvince());
- jsonDetail.put("recerCityName", orders.getReceiverCity() == null? "*" : orders.getReceiverCity());
- jsonDetail.put("recerCountryName", orders.getReceiverDistrict() == null? "*" : orders.getReceiverDistrict());
- jsonDetail.put("requestTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
- // 邮件种类 邮件号码前两位 【11】标准快递 【51】经济快递 【96】快递包裹 默认标准快递
- jsonDetail.put("mailClass", "11");
- jsonDetail.put("mome2", "");
- jsonDetail.put("mome3", "");
- jsonArray.add(jsonDetail);
- json.put("dataList", jsonArray);
- logger.info("获取三段码请求报文:" + json.toString());
- // String result = HttpUtils.post(
- // "http://ebi.ems.com.cn/ext-web/a/chinapost/thermalforward?method=getEMSSortCode",
- // "application/json",
- // json.toString().getBytes());
- HashMap<String, Object> objectObjectHashMap = new HashMap<String, Object>();
- objectObjectHashMap.put("url","http://ebi.ems.com.cn/ext-web/a/chinapost/thermalforward?method=getEMSSortCode");
- objectObjectHashMap.put("requestData",json.toString());
- Map<String, String> stringStringMap = HttpUtils.httpPost(objectObjectHashMap);
- logger.info("获取三段码返回报文:" + stringStringMap.toString());
- JSONObject jsonResult = JSONObject.fromObject(stringStringMap);
- String response = (String) jsonResult.get("response");
- JSONObject jsonResponse = JSONObject.fromObject(response);
- JSONObject jsonObj1 = jsonResponse.getJSONArray("dataList").getJSONObject(0);
- String provSendOrg = jsonObj1.getString("provSendOrg");
- String provInSendOrg = jsonObj1.getString("provInSendOrg");
- String dlvOrg = jsonObj1.getString("dlvOrg");
- destCode.append(provSendOrg);
- destCode.append("-");
- destCode.append(provInSendOrg);
- destCode.append("-");
- destCode.append(dlvOrg);
- }catch (Exception e){
- logger.info("获取三段码报错:"+e);
- }
- return destCode.toString();
- }
- }
|