From 6ef869b1adcf3a5bb8e4c3117dc507d173f13fd8 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期三, 18 九月 2024 15:19:55 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java | 535 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 381 insertions(+), 154 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java index 2560fdc..9dac51d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java @@ -1,28 +1,26 @@ package com.doumee.service.business.impl.wms; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.HttpsUtil; import com.doumee.core.wms.model.request.*; import com.doumee.core.wms.model.response.WmsBaseDataResponse; import com.doumee.core.wms.model.response.WmsBaseResponse; -import com.doumee.dao.business.CarsMapper; -import com.doumee.dao.business.PlatformJobMapper; -import com.doumee.dao.business.PlatformWmsDetailMapper; -import com.doumee.dao.business.PlatformWmsJobMapper; -import com.doumee.dao.business.model.Cars; -import com.doumee.dao.business.model.PlatformJob; -import com.doumee.dao.business.model.PlatformWmsDetail; -import com.doumee.dao.business.model.PlatformWmsJob; +import com.doumee.core.wms.model.response.WmsInventoryDataResponse; +import com.doumee.dao.business.*; +import com.doumee.dao.business.model.*; import com.doumee.service.business.WmsService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * WMS骞冲彴瀵规帴Service瀹炵幇 @@ -30,16 +28,162 @@ * @date 2023/11/30 15:33 */ @Service +@Slf4j public class WmsServiceImpl implements WmsService { @Autowired private PlatformWmsJobMapper platformWmsJobMapper; + @Autowired + private PlatformGroupMapper platformGroupMapper; @Autowired private CarsMapper carsMapper; @Autowired private PlatformJobMapper platformJobMapper; @Autowired private PlatformWmsDetailMapper platformWmsDetailMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Autowired + private WmsInterfaceLogMapper wmsInterfaceLogMapper; + /** + * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊 + * @param job 鍙傛暟 + * @return + */ + @Override + public WmsBaseResponse<WmsBaseDataResponse> orderPlatformBind(PlatformJob job) { + if(StringUtils.isBlank(job.getBillCode()) || StringUtils.isBlank(job.getPlatformWmsCode())){ + + return null; + } + int type = 0; + if(Constants.equalsInteger(job.getType(),Constants.ONE) + || Constants.equalsInteger(job.getType(),Constants.THREE)){ + //濡傛灉鏄璐э紙鍑哄簱锛� + type =1 ; + }else if(Constants.equalsInteger(job.getType(),Constants.ZERO) + || Constants.equalsInteger(job.getType(),Constants.TWO)){ + //濡傛灉鏄璐э紙鍑哄簱锛� + type =0 ; + }else{ + return null; + } + WmsOrderPlatformRequest param = new WmsOrderPlatformRequest(); + param.setData(new ArrayList<>()); + WmsOrderPlatformInfoRequest o = new WmsOrderPlatformInfoRequest(); + o.setCarrierBillCode(job.getBillCode()); + o.setRailwayNo(job.getPlatformWmsCode()); + param.getData().add(o); + String url = type == 0?systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_INBOUND_PLATFROM_URL).getCode():systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_OUTBOUND_PLATFROM_URL).getCode();; + String name = type ==0?"銆怶MS銆戝叆搴綔涓氬崟鍒嗛厤鏈堝彴":"銆怶MS銆戝嚭搴撲綔涓氱殑鍒嗛厤鏈堝彴"; + WmsBaseResponse<WmsBaseDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(param),new TypeReference< WmsBaseResponse<WmsBaseDataResponse>>(){}); + PlatformJob update = new PlatformJob(); + update.setId(job.getId()); + update.setWmsSendDate(new Date()); + update.setWmsSendNum(job.getWmsSendNum() + 1); + update.setWmsSendPlatformCode(job.getPlatformWmsCode()); + if(response!=null && response.getData() !=null + && response.getData().size()>0 && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){ + //濡傛灉鎴愬姛 + update.setWmsSendStatus(Constants.ONE); + update.setWmsSendInfo("閫氱煡WMS浣滀笟鍗曞垎閰嶆湀鍙版垚鍔�"); + }else{ + //濡傛灉澶辫触 + update.setWmsSendStatus(Constants.TWO); + update.setWmsSendInfo("閫氱煡WMS浣滀笟鍗曞垎閰嶆湀鍙板け璐�:"+(response!=null?JSONObject.toJSONString(response):"鎺ュ彛璋冪敤澶辫触")); + } + platformJobMapper.updateById(update); + return response; + + } + /** + * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊 + * @return + */ + @Override + public WmsBaseResponse<WmsInventoryDataResponse> getInventoryList(){ + String url = systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_GET_INVENTORYLIST_URL).getCode() ; + String name = "銆怶MS銆戝簱瀛樻煡璇�" ; + WmsBaseResponse<WmsInventoryDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(new JSONObject()),new TypeReference< WmsBaseResponse<WmsInventoryDataResponse>>(){}); + if(response!=null + && response.getData() !=null + && response.getData().size()>0 + && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){ + //濡傛灉璇锋眰鎴愬姛 + + }else{ + //濡傛灉澶辫触 + if(response ==null){ + response = new WmsBaseResponse(); + response.setData(new ArrayList<>()); + } + if(response.getData() == null){ + response.setData(new ArrayList<>()); + } + } + return response; + + } + @Override + public void saveInterfaceLog(String url,String name,String param,Integer success,String respone,int type){ + if(wmsInterfaceLogMapper ==null){ + return; + } + WmsInterfaceLog log = new WmsInterfaceLog(); + log.setCreateDate(new Date()); + log.setUrl(url); + log.setEditDate(log.getCreateDate()); + log.setPlat(Constants.ZERO); + log.setName(name); + log.setIsdeleted(Constants.ZERO); + log.setRequest(param); + log.setType(type); + log.setSuccess(success); + log.setRepose(respone); + wmsInterfaceLogMapper.insert(log); + } + + /** + * 鍙戣捣wms鎺ュ彛璇锋眰 + * @param url + * @param name + * @param param + * @param typeReference + * @return + * @param <T> + */ + public <T> WmsBaseResponse<T> sendHttpRequest(String url, String name, String param,TypeReference<WmsBaseResponse<T>> typeReference){ + log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param)); + if ( StringUtils.isNotBlank(url)) { + String res = null; + int success = 0; + try { + Map<String,String> headers = new HashMap<>(); + res = HttpsUtil.postJson(url,param); + WmsBaseResponse result = JSONObject.parseObject(res, typeReference.getType()); + logResult(result,name); + if(result!=null && result.getData() !=null ){ + + }else{ + success =1; + } + return result; + }catch (Exception e){ + success = 1; + log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(param)); + }finally { + saveInterfaceLog(url,name,param,success,res,Constants.ZERO); + } + } + return null; + } + private static void logResult(WmsBaseResponse<WmsBaseDataResponse> res,String name) { + if(StringUtils.equals(res.getData().get(0).getSuccess(), WmsBaseResponse.CODE_SUCCESS)){ + log.info("銆怶MS鎺ュ彛锛�"+name+"銆�================鎴愬姛====\n"+res); + }else{ + log.error("銆怶MS鎺ュ彛锛�"+name+"銆�================澶辫触====锛歕n"+ res); + } + } /** * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊 * @param list 鍙傛暟 @@ -47,73 +191,81 @@ */ @Override @Transactional - public WmsBaseResponse inboundNotice(List<WmsInboundNoticeRequest> list) { - if(list ==null || list.size() ==0){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); - } - List<PlatformJob> jobList = new ArrayList<>(); - List<PlatformWmsDetail> details = new ArrayList<>(); - List<String> iocodeList = new ArrayList<>(); - for(WmsInboundNoticeRequest param : list){ - if(StringUtils.isBlank(param.getIoCode()) || - StringUtils.isBlank(param.getCarrierBillCode())|| - StringUtils.isBlank(param.getPlateNumber())|| - StringUtils.isBlank(param.getDriverPhone())){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶅悎娉�!"); + public WmsBaseResponse<WmsBaseDataResponse> inboundNotice(WmsBaseRequest<WmsInboundNoticeRequest> list) { + try{ + if(list ==null || list.getData()==null|| list.getData().size() ==0){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); } - //鏍规嵁鎵胯繍鍗曞彿鏌ヨ浠诲姟淇℃伅 - PlatformWmsJob job = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda() - .eq(PlatformWmsJob::getCarryBillCode,param.getCarrierBillCode()) - .eq(PlatformWmsJob::getIsdeleted, Constants.ZERO) - .last("limit 1" )); + List<PlatformJob> jobList = new ArrayList<>(); + List<PlatformWmsDetail> details = new ArrayList<>(); + List<String> iocodeList = new ArrayList<>(); + for(WmsInboundNoticeRequest param : list.getData()){ + if(StringUtils.isBlank(param.getIoCode()) || + StringUtils.isBlank(param.getCarrierBillCode())|| + StringUtils.isBlank(param.getPlateNumber())|| + StringUtils.isBlank(param.getDriverPhone())){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶅悎娉�!"); + } + //鏍规嵁鎵胯繍鍗曞彿鏌ヨ浠诲姟淇℃伅 + PlatformWmsJob job = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda() + .eq(PlatformWmsJob::getCarryBillCode,param.getCarrierBillCode()) + .eq(PlatformWmsJob::getIsdeleted, Constants.ZERO) + .last("limit 1" )); - if(job == null){ - PlatformJob model =dealJobBizInbound(param); - job = new PlatformWmsJob(); - job.setCreateDate(new Date()); - job.setIsdeleted(Constants.ZERO); - job.setIsNew(Constants.ONE); - job.setCarryBillCode(param.getCarrierBillCode()); - job.setIocode(param.getIoCode()); - job.setCarrierName(param.getCarrierName()); - job.setPlateNumber(param.getPlateNumber()); - job.setType(Constants.ONE); - job.setIoCreatedate(param.getCreateDate()); - job.setJobId(model.getId()); - job.setDriverPhone(param.getDriverPhone()); - platformWmsJobMapper.insert(job); - jobList.add(model); - } - if(param.getDetails()!=null && param.getDetails().size()>0){ - for(WmsInboundDetailRequest d :param.getDetails()){ - PlatformWmsDetail entity = new PlatformWmsDetail(); - entity.setCreateDate(new Date()); - entity.setIsdeleted(Constants.ZERO); - entity.setIocode(d.getIoCode()); - entity.setJobId(job.getId()); - entity.setIoQty(d.getIoQty()); - entity.setRate(d.getRate()); - entity.setMaterialName(d.getMaterialName()); - entity.setInRepertotyCode(d.getInRepertotyCode()); - iocodeList.add(d.getIoCode()); - details.add(entity); + if(job == null){ + + PlatformJob model =dealJobBizInbound(param); + job = new PlatformWmsJob(); + job.setCreateDate(new Date()); + job.setIsdeleted(Constants.ZERO); + job.setIsNew(Constants.ONE); + job.setCarryBillCode(param.getCarrierBillCode()); + job.setIocode(param.getIoCode()); + job.setCarrierName(param.getCarrierName()); + job.setPlateNumber(param.getPlateNumber()); + job.setType(Constants.ONE); + job.setIoCreatedate(param.getCreateDate()); + job.setJobId(model.getId()); + job.setDriverPhone(param.getDriverPhone()); + platformWmsJobMapper.insert(job); + jobList.add(model); } - if(job.getIsNew() == 1&& iocodeList.size()>0){ - //鍏堟竻鐞嗗悓涓�涓壙杩愬崟鍙蜂笅閲嶅鎺ㄩ�佺殑iocode鏁版嵁锛屼互鏈�鍚庝竴娆℃帹閫佷负涓� - platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() - .set(PlatformWmsDetail::getIsdeleted,Constants.ONE) - .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) - .eq(PlatformWmsDetail::getJobId,job.getJobId()) - .in(PlatformWmsDetail::getIocode,iocodeList) - ); + if(param.getDetails()!=null && param.getDetails().size()>0){ + for(WmsInboundDetailRequest d :param.getDetails()){ + PlatformWmsDetail entity = new PlatformWmsDetail(); + entity.setCreateDate(new Date()); + entity.setIsdeleted(Constants.ZERO); + entity.setIocode(d.getIoCode()); + entity.setJobId(job.getJobId()); + entity.setWmsJobId(job.getId()); + entity.setIoQty(d.getIoQty()); + entity.setStatus(Constants.ZERO); + entity.setRate(d.getRate()); + entity.setMaterialName(d.getMaterialName()); + entity.setInRepertotyCode(d.getInRepertotyCode()); + iocodeList.add(d.getIoCode()); + details.add(entity); + } + if(job.getIsNew() != 1&& iocodeList.size()>0){ + //鍏堟竻鐞嗗悓涓�涓壙杩愬崟鍙蜂笅閲嶅鎺ㄩ�佺殑iocode鏁版嵁锛屼互鏈�鍚庝竴娆℃帹閫佷负涓� + platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() + .set(PlatformWmsDetail::getIsdeleted,Constants.ONE) + .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) + .eq(PlatformWmsDetail::getWmsJobId,job.getId()) + .in(PlatformWmsDetail::getIocode,iocodeList) + ); + } } } - } - if(details.size()>0){ - platformWmsDetailMapper.insert(details); - } - if(jobList.size()>0){ - startEndNoticeToDriver(jobList); + if(details.size()>0){ + platformWmsDetailMapper.insert(details); + } + if(jobList.size()>0){ + startEndNoticeToDriver(jobList); + } + }catch (Exception e){ + log.error("銆怶MS銆戝鐞嗗叆搴撳彇娑堥�氱煡涓氬姟===============涓氬姟澶勭悊寮傚父"+e.getMessage()); + return returnFailReuslt("涓氬姟澶勭悊寮傚父"); } return returnSuccessReuslt(null); } @@ -130,8 +282,10 @@ job.setIsdeleted(Constants.ZERO); job.setType(Constants.platformJobType.wxcxh);//榛樿鏄鍗忚溅鍗歌揣 job.setStatus(Constants.PlatformJobStatus.WAIT_CONFIRM.getKey());//榛樿寰呯‘璁ょ姸鎬� + //鏌ヨ杞﹁締鏄惁鑷湁杞︼紝浠ュ強jobNum琛ㄧず浣嗘眰浣滀笟鏁伴噺锛堥潪宸茬鍥殑浣滀笟鏁�) Cars car = carsMapper.selectOne(new QueryWrapper<Cars>() - .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in()) as jobNum") + .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in("+ + Constants.PlatformJobStatus.LEAVED.getKey()+")) as jobNum") .lambda() .eq(Cars::getIsdeleted,Constants.ZERO) .eq(Cars::getType,Constants.ONE) @@ -144,6 +298,11 @@ job.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());//鍦ㄥ洯鏃犱綔涓氱姸鎬侊紝鍒欒嚜鍔ㄣ�愬凡绛惧埌銆戝鐞� } } + PlatformGroup group = platformGroupMapper.selectOne(new QueryWrapper<PlatformGroup>().lambda() + .eq(PlatformGroup::getIsdeleted,Constants.ZERO) + .eq(PlatformGroup::getType,Constants.ONE) + .last("limit 1") );//鏌ヨ鍗歌揣鏈堝彴缁勭紪鐮� + job.setPlatformGroupId(group!=null?group.getId():null); platformJobMapper.insert(job); return job; } @@ -153,8 +312,10 @@ job.setIsdeleted(Constants.ZERO); job.setType(Constants.platformJobType.wxczh);//榛樿鏄鍗忚溅瑁呭ソ job.setStatus(Constants.PlatformJobStatus.WAIT_CONFIRM.getKey());//榛樿寰呯‘璁ょ姸鎬� + //鏌ヨ杞﹁締鏄惁鑷湁杞︼紝浠ュ強jobNum琛ㄧず浣嗘眰浣滀笟鏁伴噺锛堥潪宸茬鍥殑浣滀笟鏁�) Cars car = carsMapper.selectOne(new QueryWrapper<Cars>() - .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in()) as jobNum") + .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in("+ + Constants.PlatformJobStatus.LEAVED.getKey()+")) as jobNum") .lambda() .eq(Cars::getIsdeleted,Constants.ZERO) .eq(Cars::getType,Constants.ONE) @@ -167,83 +328,95 @@ job.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());//鍦ㄥ洯鏃犱綔涓氱姸鎬侊紝鍒欒嚜鍔ㄣ�愬凡绛惧埌銆戝鐞� } } + PlatformGroup group = platformGroupMapper.selectOne(new QueryWrapper<PlatformGroup>().lambda() + .eq(PlatformGroup::getIsdeleted,Constants.ZERO) + .eq(PlatformGroup::getType,Constants.ZERO) + .last("limit 1") );//鏌ヨ瑁呰揣鏈堝彴缁勭紪鐮� + job.setPlatformGroupId(group!=null?group.getId():null); platformJobMapper.insert(job); return job; } - - /** * 鍑哄簱閫氱煡浠诲姟涓氬姟澶勭悊 * @param list 鍙傛暟 * @return */ @Override - public WmsBaseResponse outboundNotice(List<WmsOutboundNoticeRequest> list) { - if(list ==null || list.size() ==0){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); - } - List<PlatformJob> jobList = new ArrayList<>(); - List<PlatformWmsDetail> details = new ArrayList<>(); - List<String> iocodeList = new ArrayList<>(); - for(WmsOutboundNoticeRequest param : list){ - if(StringUtils.isBlank(param.getIoCode()) || - StringUtils.isBlank(param.getCarrierBillCode())|| - StringUtils.isBlank(param.getPlateNumber())|| - StringUtils.isBlank(param.getDriverPhone())){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶅悎娉�!"); - } - //鏍规嵁鎵胯繍鍗曞彿鏌ヨ浠诲姟淇℃伅 - PlatformWmsJob job = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda() - .eq(PlatformWmsJob::getCarryBillCode,param.getCarrierBillCode()) - .eq(PlatformWmsJob::getIsdeleted, Constants.ZERO) - .last("limit 1" )); + public WmsBaseResponse outboundNotice(WmsBaseRequest<WmsOutboundNoticeRequest> list) { - if(job == null){ - PlatformJob model =dealJobBizOutbound(param); - job = new PlatformWmsJob(); - job.setCreateDate(new Date()); - job.setIsdeleted(Constants.ZERO); - job.setIsNew(Constants.ONE); - job.setCarryBillCode(param.getCarrierBillCode()); - job.setIocode(param.getIoCode()); - job.setCarrierName(param.getCarrierName()); - job.setPlateNumber(param.getPlateNumber()); - job.setType(Constants.ONE); - job.setIoCreatedate(param.getCreateDate()); - job.setJobId(model.getId()); - job.setDriverPhone(param.getDriverPhone()); - platformWmsJobMapper.insert(job); - jobList.add(model); + try{ + if(list ==null ||list.getData()==null || list.getData().size() ==0){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); } - if(param.getDetails()!=null && param.getDetails().size()>0){ - for(WmsOutboundDetailRequest d :param.getDetails()){ - PlatformWmsDetail entity = new PlatformWmsDetail(); - entity.setCreateDate(new Date()); - entity.setIsdeleted(Constants.ZERO); - entity.setIocode(d.getIoCode()); - entity.setJobId(job.getId()); - entity.setIoQty(d.getIoQty()); - entity.setRate(d.getRate()); - entity.setMaterialName(d.getMaterialName()); - iocodeList.add(d.getIoCode()); - details.add(entity); + List<PlatformJob> jobList = new ArrayList<>(); + List<PlatformWmsDetail> details = new ArrayList<>(); + List<String> iocodeList = new ArrayList<>(); + for(WmsOutboundNoticeRequest param : list.getData()){ + if(StringUtils.isBlank(param.getIoCode()) || + StringUtils.isBlank(param.getCarrierBillCode())|| + StringUtils.isBlank(param.getPlateNumber())|| + StringUtils.isBlank(param.getDriverPhone())){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶅悎娉�!"); } - if(job.getIsNew() == 1&& iocodeList.size()>0){ - //鍏堟竻鐞嗗悓涓�涓壙杩愬崟鍙蜂笅閲嶅鎺ㄩ�佺殑iocode鏁版嵁锛屼互鏈�鍚庝竴娆℃帹閫佷负涓� - platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() - .set(PlatformWmsDetail::getIsdeleted,Constants.ONE) - .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) - .eq(PlatformWmsDetail::getJobId,job.getJobId()) - .in(PlatformWmsDetail::getIocode,iocodeList) - ); + //鏍规嵁鎵胯繍鍗曞彿鏌ヨ浠诲姟淇℃伅 + PlatformWmsJob job = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda() + .eq(PlatformWmsJob::getCarryBillCode,param.getCarrierBillCode()) + .eq(PlatformWmsJob::getIsdeleted, Constants.ZERO) + .last("limit 1" )); + + if(job == null){ + PlatformJob model =dealJobBizOutbound(param); + job = new PlatformWmsJob(); + job.setCreateDate(new Date()); + job.setIsdeleted(Constants.ZERO); + job.setIsNew(Constants.ONE); + job.setCarryBillCode(param.getCarrierBillCode()); + job.setIocode(param.getIoCode()); + job.setCarrierName(param.getCarrierName()); + job.setPlateNumber(param.getPlateNumber()); + job.setType(Constants.ONE); + job.setIoCreatedate(param.getCreateDate()); + job.setJobId(job.getId()); + job.setDriverPhone(param.getDriverPhone()); + platformWmsJobMapper.insert(job); + jobList.add(model); + } + if(param.getDetails()!=null && param.getDetails().size()>0){ + for(WmsOutboundDetailRequest d :param.getDetails()){ + PlatformWmsDetail entity = new PlatformWmsDetail(); + entity.setCreateDate(new Date()); + entity.setIsdeleted(Constants.ZERO); + entity.setIocode(d.getIoCode()); + entity.setJobId(job.getJobId()); + entity.setWmsJobId(job.getId()); + entity.setIoQty(d.getIoQty()); + entity.setWmsJobId(job.getId()); + entity.setStatus(Constants.ZERO); + entity.setRate(d.getRate()); + entity.setMaterialName(d.getMaterialName()); + iocodeList.add(d.getIoCode()); + details.add(entity); + } + if(job.getIsNew() != 1 && iocodeList.size()>0){ + //鍏堟竻鐞嗗悓涓�涓壙杩愬崟鍙蜂笅閲嶅鎺ㄩ�佺殑iocode鏁版嵁锛屼互鏈�鍚庝竴娆℃帹閫佷负涓� + platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() + .set(PlatformWmsDetail::getIsdeleted,Constants.ONE) + .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) + .eq(PlatformWmsDetail::getWmsJobId,job.getId()) + .in(PlatformWmsDetail::getIocode,iocodeList) + ); + } } } - } - if(details.size()>0){ - platformWmsDetailMapper.insert(details); - } - if(jobList.size()>0){ - startEndNoticeToDriver(jobList); + if(details.size()>0){ + platformWmsDetailMapper.insert(details); + } + if(jobList.size()>0){ + startEndNoticeToDriver(jobList); + } + }catch (Exception e){ + log.error("銆怶MS銆戝鐞嗗叆搴撳彇娑堥�氱煡涓氬姟===============涓氬姟澶勭悊寮傚父"+e.getMessage()); + return returnFailReuslt("涓氬姟澶勭悊寮傚父"); } return returnSuccessReuslt(null); } @@ -253,13 +426,30 @@ * @return */ @Override - public WmsBaseResponse cancelInbound(List<WmsActionNoticeRequest> list) { - //TODO-------------------澶勭悊鍏ュ簱鍙栨秷閫氱煡涓氬姟-------------------- - if(list ==null || list.size() ==0){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + public WmsBaseResponse cancelInbound(WmsBaseRequest<WmsActionNoticeRequest> list) { + //-----------------澶勭悊鍏ュ簱鍙栨秷閫氱煡涓氬姟-------------------- + try { + if(list ==null||list.getData()==null || list.getData().size() ==0 || list.getData().get(0).getIoCode() == null){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + } + List<String> iocodeList = new ArrayList<>(); + for(WmsActionNoticeRequest param :list.getData()){ + if(StringUtils.isNotBlank(param.getIoCode())){ + iocodeList.add(param.getIoCode()); + } + } + if(iocodeList.size() ==0 ){ + return returnFailReuslt("璇锋眰鍙傛暟iocode涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + } + //鍙栨秷鍏ㄩ儴鏁版嵁鐘舵�佷负 銆愬凡鍙栨秷銆� + platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() + .set(PlatformWmsDetail::getStatus,Constants.TWO) + .in(PlatformWmsDetail::getIocode,iocodeList) + .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO)); + }catch (Exception e){ + log.error("銆怶MS銆戝鐞嗗叆搴撳彇娑堥�氱煡涓氬姟===============涓氬姟澶勭悊寮傚父"+e.getMessage()); + return returnFailReuslt("涓氬姟澶勭悊寮傚父"); } - - return returnSuccessReuslt(null); } /** @@ -268,12 +458,29 @@ * @return */ @Override - public WmsBaseResponse cancelOutbound(List<WmsActionNoticeRequest> list) { - //TODO-------------------澶勭悊鍑哄簱鍙栨秷閫氱煡涓氬姟-------------------- - if(list ==null || list.size() ==0){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + public WmsBaseResponse cancelOutbound(WmsBaseRequest<WmsActionNoticeRequest> list) { + try { + if(list ==null||list.getData()==null || list.getData().size() ==0 ){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + } + List<String> iocodeList = new ArrayList<>(); + for(WmsActionNoticeRequest param :list.getData()){ + if(StringUtils.isNotBlank(param.getIoCode())){ + iocodeList.add(param.getIoCode()); + } + } + if(iocodeList.size() ==0 ){ + return returnFailReuslt("璇锋眰鍙傛暟iocode涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + } + //鍙栨秷鍏ㄩ儴鏁版嵁鐘舵�佷负 銆愬凡鍙栨秷銆� + platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() + .set(PlatformWmsDetail::getStatus,Constants.TWO) + .in(PlatformWmsDetail::getIocode,iocodeList) + .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO)); + }catch (Exception e){ + log.error("銆怶MS銆戝嚭搴撳彇娑堥�氱煡浠诲姟涓氬姟澶勭悊===============涓氬姟澶勭悊寮傚父"+e.getMessage()); + return returnFailReuslt("涓氬姟澶勭悊寮傚父"); } - return returnSuccessReuslt(null); } /** @@ -282,12 +489,29 @@ * @return */ @Override - public WmsBaseResponse doneTask(List<WmsActionNoticeRequest> list) { - //TODO-------------------澶勭悊鍑哄叆搴撲綔涓氬畬鎴愰�氱煡涓氬姟-------------------- - if(list ==null || list.size() ==0){ - return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + public WmsBaseResponse doneTask(WmsBaseRequest<WmsActionNoticeRequest> list) { + try { + if(list ==null||list.getData()==null || list.getData().size() ==0){ + return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + } + List<String> iocodeList = new ArrayList<>(); + for(WmsActionNoticeRequest param :list.getData()){ + if(StringUtils.isNotBlank(param.getIoCode())){ + iocodeList.add(param.getIoCode()); + } + } + if(iocodeList.size() ==0 ){ + return returnFailReuslt("璇锋眰鍙傛暟iocode涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); + } + //鍙栨秷鍏ㄩ儴鏁版嵁鐘舵�佷负 銆愬凡瀹屾垚銆� + platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() + .set(PlatformWmsDetail::getStatus,Constants.ONE) + .in(PlatformWmsDetail::getIocode,iocodeList) + .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO)); + }catch (Exception e){ + log.error("銆怶MS銆戜綔涓氬畬鎴愰�氱煡浠诲姟涓氬姟澶勭悊===============涓氬姟澶勭悊寮傚父"+e.getMessage()); + return returnFailReuslt("涓氬姟澶勭悊寮傚父"); } - return returnSuccessReuslt(null); } @@ -299,6 +523,7 @@ private WmsBaseResponse returnFailReuslt(String msg) { WmsBaseResponse response = new WmsBaseResponse(); + response.setCode(-1); response.setData(new ArrayList<>()); WmsBaseDataResponse rData = new WmsBaseDataResponse(); rData.setMsgDescr(msg); @@ -312,8 +537,10 @@ * @return */ + private WmsBaseResponse returnSuccessReuslt(String msg) { WmsBaseResponse response = new WmsBaseResponse(); + response.setCode(1); response.setData(new ArrayList<>()); WmsBaseDataResponse rData = new WmsBaseDataResponse(); rData.setMsgDescr(StringUtils.defaultString(msg,"鎿嶄綔鎴愬姛")); -- Gitblit v1.9.3