123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.feign.*;
- import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
- import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
- import com.steerinfo.dil.mapper.TmstruckLoadResultMapper;
- import com.steerinfo.dil.mapper.UtilsMapper;
- import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
- import com.steerinfo.dil.service.ITmstruckLeaveFactoryResultService;
- import com.steerinfo.dil.util.DataChange;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.util.*;
- @Service(value = "tmstruckLeaveFactoryResultService")
- public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFactoryResultService {
- @Autowired
- private ITmstruckLeaveFactoryResultService tmstruckLeaveFactoryResultService;
- @Autowired
- private TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper;
- @Autowired
- private TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper;
- @Autowired
- private TmstruckLoadResultMapper tmstruckLoadResultMapper;
- @Autowired
- private UtilsServiceImpl utilsService;
- @Autowired
- private UtilsMapper utilsMapper;
- @Autowired
- private OtmsFeign otmsFeign;
- @Autowired
- private TmstruckEnfactoryResultServiceImpl tmstruckEnfactoryResultService;
- @Autowired
- TmstruckSmsRusultServiceImpl tmstruckSmsRusultService;
- @Autowired
- OmsFeign omsFeign;
- @Autowired
- BmsTruckFeign bmsTruckFeign;
- @Autowired
- AmsFeign amsFeign;
-
- @Override
- public Integer selectTransportRoute(String orderNumber) {
- return tmstruckLeaveFactoryResultMapper.selectTransportRoute(orderNumber);
- }
-
- @Override
- public int addLeaveFactory(Map<String, Object> map) {
- TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
-
- tmstruckLeaveFactoryResult.setId(tmstruckLeaveFactoryResultMapper.selectMaxId());
-
- BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
- tmstruckLeaveFactoryResult.setResultTotalId(resultTotalId);
- List<Integer> gatepostIdList = utilsMapper.getLineSegmentGateCalcId(map);
- gatepostIdList.remove(null);
-
- Integer gatepostId = utilsService.randomGetValue(gatepostIdList);
-
- tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
-
- tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
-
- return tmstruckLeaveFactoryResultMapper.insertSelective(tmstruckLeaveFactoryResult);
- }
- @Override
- public Map<String, Object> getTruckFactoryResult(String nu) {
- return tmstruckLeaveFactoryResultMapper.getTruckFactoryResult(nu);
- }
-
- @Override
- public List<Map<String, Object>> getLeaveFactoryList(String orderNumber) {
- return tmstruckLeaveFactoryResultMapper.getLeaveFactoryList(orderNumber);
- }
-
- @Override
- public List<Map<String, Object>> getLeaveFactoryResult(Map<String, Object> map) {
- Integer orderType = (Integer) map.get("orderTypee");
- switch (orderType){
- case 1:
- case 2:
- case 3:
- return tmstruckLeaveFactoryResultMapper.selectAllLeaveFacatoryForSale(map);
- case 4:
- return tmstruckLeaveFactoryResultMapper.selectSteelNzLeaveFactory(map);
- case 5:
- case 6:
- case 7:
- case 8:
- case 17:
- case 18:
- return tmstruckLeaveFactoryResultMapper.getCGLeaveFactoryResult(map);
- case 9:
- return tmstruckLeaveFactoryResultMapper.getImportedDomesticNzEnFactoryResult(map);
- case 10:
- case 20:
- return tmstruckEnfactoryResultMapper.getCgNzOutFactory(map);
- case 11:
- return tmstruckLeaveFactoryResultMapper.getInFactoryOutFactoryResult(map);
- case 12:
- case 13:
- case 14:
- case 19:
- case 100:
- return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(map);
- }
- return null;
- }
-
- @Transactional(rollbackFor = Exception.class)
- public int leaveFactoryByPDA(Map<String, Object> map) throws Exception{
- int i = 0;
- String orderNumber = (String) map.get("orderNumber");
- orderNumber = orderNumber.substring(0, orderNumber.length() - 1);
-
- Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
- int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
- String capacityNumber = (String) mesMap.get("capacityNumber");
- if(orderType == 11 || orderType == 15 || orderType == 16){
- return orderType11Use(map, mesMap,capacityNumber);
- }else if(orderType == 21){
- return tmstruckEnfactoryResultService.orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
- }
- Map<String, Object> selectMap = tmstruckLeaveFactoryResultMapper.selectResultId(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
- if(selectMap == null){
- throw new Exception("该车已出厂!!");
- }else{
- BigDecimal segmentSqe = DataChange.dataToBigDecimal(selectMap.get("segmentSqe"));
- BigDecimal orderSegmentSqe = DataChange.dataToBigDecimal(mesMap.get("orderSegmentSqe"));
-
- if(segmentSqe.intValue() != (orderSegmentSqe.intValue() + 1)){
- throw new Exception("该车作业环节未全部完成!");
- }
- }
- if(orderType == 2){
-
- Map<String,Object> loadResultMap = tmstruckLoadResultMapper.getLoadResultMap(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
- if(loadResultMap == null || loadResultMap.get("loadEndTime") == null){
- throw new Exception("该车未扫装货,请提醒司机去扫装货");
- }
- }
- map.putAll(mesMap);
- map.putAll(selectMap);
- map.remove("Sqe");
- map.put("orderNumber", orderNumber);
- BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
- i += updateLeaveResultByPDA(map);
-
- i += utilsService.updateOrderLineSequence(map);
- switch (orderType){
- case 1:
- Integer driverConfirmationSteel = utilsMapper.getDriverConfirmation(orderId);
- if(driverConfirmationSteel == null){
- throw new Exception("请提醒司机确认订单!");
- }
- try {
-
- Map<String,Object>messageMap = tmstruckLeaveFactoryResultMapper.getMessageMap(orderId);
- if(messageMap.get("saleOrderConsigneeTEL") != null){
- String capacityNum = (String) messageMap.get("capacityNumber");
- String mobile = (String)messageMap.get("saleOrderConsigneeTEL");
- tmstruckSmsRusultService.generaSendMessage(mobile,capacityNum,orderId);
- }
-
- Map<String, Object> parem=tmstruckLeaveFactoryResultService.getTruckFactoryResult(orderNumber);
- parem.put("turnOf","0");
- otmsFeign.createTotalResult(parem);
- }catch (Exception ex){
- }
- break;
- case 2:
- case 3:
-
- Integer driverConfirmation = utilsMapper.getDriverConfirmation(orderId);
- if(driverConfirmation == null){
- throw new Exception("请提醒司机确认订单!");
- }
- i += utilsService.closeOrderNormally(map);
-
- Map<String,Object> mapValue = omsFeign.getSaleAllMessages(orderId.intValue());
- Object closeStatus = mapValue.get("closeStatus");
- if (closeStatus != null && DataChange.dataToBigDecimal(closeStatus).intValue() == 0) {
- amsFeign.dispatchTruckOrderByCarrier(mapValue);
- }
- bmsTruckFeign.addDetailsOrder(orderId);
- break;
- case 4:
- break;
- case 5:
- case 6:
- case 7:
- case 8:
-
- i += utilsService.closeOrderNormally(map);
-
- Integer isMoreTripsStatus = tmstruckLeaveFactoryResultMapper.getIsMoreTripsStatus(DataChange.dataToBigDecimal(map.get("orderId")));
- if(isMoreTripsStatus != null && isMoreTripsStatus == 1){
-
- omsFeign.addNewTransportOrder(orderId.intValue());
- }
- break;
- case 9:
- case 17:
- case 18:
-
- i += utilsService.closeOrderNormally(map);
- break;
- case 10:
- case 20:
-
-
- i += utilsService.closeOrderNormally(map);
-
- Integer seq = tmstruckLeaveFactoryResultMapper.getSeq(orderId);
- if(seq == 10){
-
- Integer j = tmstruckLeaveFactoryResultMapper.getPlanEnable(orderId);
- if(j == 1){
-
- omsFeign.addPurInwardOrder(orderId);
- }
- try {
- bmsTruckFeign.addInwardDetailsOrder(map);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- break;
- case 12:
- case 13:
- case 14:
-
- i += utilsService.closeOrderNormally(map);
-
- omsFeign.pushMessageToDriver(map);
- break;
- }
- utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "出厂");
- return i;
- }
-
- public int orderType11Use(Map<String, Object> map, Map<String, Object> mesMap, String capacityNumber){
-
- int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
- sqe = sqe + 1;
- map.put("resultId",tmstruckLeaveFactoryResultMapper.selectMaxId());
- map.put("Sqe",sqe);
- map.put(("totalId"),mesMap.get("totalId"));
- tmstruckLeaveFactoryResultMapper.insertSelective(generateLeaveFactory(map));
-
- mesMap.put("orderLineSequence",sqe);
- utilsService.updateOrderLineSqeByOrderNumber(mesMap);
- utilsService.pushMesToWebsocket(capacityNumber, "出厂");
- return 1;
- }
-
- private TmstruckLeaveFactoryResult generateLeaveFactory(Map<String, Object> map) {
- TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
-
- tmstruckLeaveFactoryResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
-
- tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(map.get("gatepostId")));
-
- tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
-
- tmstruckLeaveFactoryResult.setResultOutGateTime(new Date());
- tmstruckLeaveFactoryResult.setInsertTime(new Date());
- tmstruckLeaveFactoryResult.setResultOutMode("手动抬杆");
- tmstruckLeaveFactoryResult.setInsertUsername("admin");
- if(map.get("Sqe") !=null){
- tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
- }
- if(map.get("totalId") !=null){
- tmstruckLeaveFactoryResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("totalId")));
- }
- return tmstruckLeaveFactoryResult;
- }
-
- public int updateLeaveResultByPDA(Map<String, Object> mapValue){
- TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
- tmstruckLeaveFactoryResult.setResultId(DataChange.dataToBigDecimal(mapValue.get("resultId")));
-
- if(mapValue.get("gatepostId") == null){
- Integer gatepostId = tmstruckEnfactoryResultMapper.selectGatepostIdByGatepostName((String) mapValue.get("gatepostName"));
- if(gatepostId != null){
- tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
- }
- }else {
- tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(mapValue.get("gatepostId")));
- }
-
- tmstruckLeaveFactoryResult.setResultOutGateTime(new Date());
- tmstruckLeaveFactoryResult.setResultOutMode("手动抬杠");
- tmstruckLeaveFactoryResult.setInsertUsername("admin");
- tmstruckLeaveFactoryResult.setInsertTime(new Date());
- return tmstruckLeaveFactoryResultMapper.updateByPrimaryKeySelective(tmstruckLeaveFactoryResult);
- }
-
- public int updateLeaveFactoryGatepostId(Integer resultTotalId, Integer gatepostId){
- TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
-
- BigDecimal resultId = tmstruckLeaveFactoryResultMapper.getResultIdByTotalId(resultTotalId);
- tmstruckLeaveFactoryResult.setResultId(resultId);
- tmstruckLeaveFactoryResult.setGatepostId(new BigDecimal(gatepostId));
- return tmstruckLeaveFactoryResultMapper.updateByPrimaryKeySelective(tmstruckLeaveFactoryResult);
- }
-
- @Override
- public List<Map<String, Object>> getSporadicLeaveFactory(Map<String, Object> mapValue) {
- return tmstruckLeaveFactoryResultMapper.getSporadicLeaveFactory(mapValue);
- }
- }
|