package com.steerinfo.dil.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.steerinfo.dil.feign.AmsFeign; import com.steerinfo.dil.feign.JoinFeign; import com.steerinfo.dil.mapper.DilRoleOrgcodeTableMapper; import com.steerinfo.dil.mapper.DilTableColumnRoleMapper; import com.steerinfo.dil.mapper.UniversalMapper; import com.steerinfo.dil.model.DilRoleOrgcodeTable; import com.steerinfo.dil.service.UniversalService; import com.steerinfo.dil.util.DataChange; import com.steerinfo.dil.util.ESUtil; import com.steerinfo.dil.util.HTTPRequestUtils; import com.steerinfo.framework.controller.RESTfulResult; import io.swagger.annotations.ApiModelProperty; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.sql.Blob; import java.sql.SQLException; import java.util.*; /** * @ author :TXF * @ time :2021/10/19 18:05 */ @Service @EnableScheduling @EnableAsync public class UniversalServiceImpl implements UniversalService { @Resource private UniversalMapper universalMapper; @Resource private DilRoleOrgcodeTableMapper dilRoleOrgcodeTableMapper; @Resource private DilTableColumnRoleMapper dilTableColumnRoleMapper; @Autowired private JoinFeign joinFeign; @Autowired private ESUtil esUtil; @Autowired private AmsFeign amsFeign; /** * 打印提货单 * @param orderNumber 运输订单号 * @return */ @Override public Map printTiHuoDan(String orderNumber) { //查询订单信息 Map tiHuoDanMap = universalMapper.getTiHuoDan(orderNumber); //查询该订单下的所有装车信息 List> oomMes = universalMapper.getOOMMes(orderNumber); tiHuoDanMap.put("loadMes", oomMes); return tiHuoDanMap; } /** * 查询路段顺序及当前路段顺序号 * @param map * @return */ @Override public Map getNowLineMes(Map map) { return null; } // @Override // public List getWarrantyAndPrint(String orderNumber) { // List> warrantyCode = universalMapper.getWarranty(orderNumber); // List list = new ArrayList<>(); // String content = null; // for(Map code:warrantyCode){ // Blob blob = (Blob) code.get("warrantyCode"); // try { // content = new String(blob.getBytes((long)1, (int)blob.length())); // String string = content.substring(0,content.length()-2); // System.out.println(string); // list.add(string); // } catch (SQLException throwables) { // throwables.printStackTrace(); // } // } // // return list; // } @Override public List getWarranty(String orderNumber) { List list = new ArrayList<>(); //回传金蝶 //根据orderNumber查询 Map map = getWarrantyToES(orderNumber); String string = null; try{ string = joinFeign.sendWarranty(map); Map waMap = JSON.parseObject(string); //成功 if(waMap.get("kdStatus").equals("1")){ List> reportList = (List>) waMap.get("qcReportList"); Map map1 = reportList.get(0); Iterator> it = map1.entrySet().iterator(); Map.Entry entry; while(it.hasNext()){ entry = it.next(); String value = (String) entry.getValue(); list.add(value); } } //失败 else{ list.add("-1"); } }catch (NullPointerException e){ e.printStackTrace(); list.add("-2"); } return list; } @Override public List getTest(Map map) { List list = new ArrayList<>(); //成功 if(map.get("kdStatus").equals("1")){ List> reportList = (List>) map.get("qcReportList"); Map map1 = reportList.get(0); Iterator> it = map1.entrySet().iterator(); Map.Entry entry; while(it.hasNext()){ entry = it.next(); String value = (String) entry.getValue(); list.add(value); } }//失败 else{ list.add("0"); } return list; } //出库与金蝶打通接口(获得质保书) public Map getWarrantyToES(String orderNumber) { Map input = new HashMap<>(); Map head = universalMapper.selectNum(orderNumber); input.put("head", head); List> mapList = universalMapper.selectOutbound(orderNumber); input.put("entries",mapList); Map totalMap = esUtil.getTotalMap(); //组装报文 totalMap.put("input",input); return totalMap; } /** * sha1加密字符串 * @param text * @return */ public String sha1DigestUtils(String text){ return DigestUtils.sha1Hex(text); } /** * 根据收货客户查询承运商 */ public Map getCarrierByConsignee(Map mapValue){ String isSelfMention = (String) mapValue.get("isSelfMention"); String consigneeName = (String) mapValue.get("consigneeName"); Map map = new HashMap<>(); if (isSelfMention.equals("是")) { map = universalMapper.getCarrierByConsignee(consigneeName); } else { map.put("carrierId",null); map.put("carrierName",null); } return map; } /** * * @param mapValue * @return */ public Map isInCapacityCarrier(Map mapValue) { BigDecimal capacityCarrierId = universalMapper.isInCapacityCarrier(mapValue); BigDecimal capacityId = universalMapper.isInCapacity(mapValue); Map map = new HashMap<>(); map.put("capacityCarrierId",capacityCarrierId); map.put("capacityId",capacityId); return map; } public List> getPortId() { return universalMapper.getPortId(); } //获取订单号以及订单号下的物资 public Map getOrderNumber(String num) { return universalMapper.getOrderNumber(num); } public List> getCapacityNumber(String num) { return universalMapper.getCapacityNumber(num); } public List> getMaterialIdByOrderId(Integer orderId) { return universalMapper.getMaterialIdByOrderId(orderId); } public int recordingWeightResult(List> mapList) throws IOException { String URL = "http://172.16.33.166:8066/api/v1/join/tmstruckweightresult/receiveTmsTruckWeightResult"; String jsonData = null; String jsonString= JSON.toJSONString(mapList); jsonData = HTTPRequestUtils.send(URL, jsonString,"utf-8"); if(!"null".equals(jsonData)){ System.out.println(jsonData); HashMap hashMap = JSON.parseObject(jsonData, HashMap.class); String code = (String) hashMap.get("code"); System.out.println(hashMap.get("code")); if("SUCCESS".equals(code)){ return 1; }else{ return 0; } }else{ System.out.println("补录委托失败:" + jsonData); return 0; } } /** * 关闭过期运输订单 * @return */ //@Scheduled(cron = "0 0,5 8 * * ?") public void closePassedOrder() { //List> passedOrderList = universalMapper.findPassedOrder(); //System.out.println("关闭的未出厂过期订单如下:<" + passedOrderList + ">"); //int result=0; ////int result = universalMapper.closePassedOrder(); //try { // if (passedOrderList.isEmpty()){ // // }else { // for (Map map : passedOrderList) { // BigDecimal orderId = (BigDecimal) map.get("orderId"); // //分两种情况关单 // //净重为0状态设为2,不为零设为7 // BigDecimal bigDecimal = universalMapper.sumNetWeight(orderId); // if (bigDecimal.compareTo(BigDecimal.ZERO)!=0){ // result+=universalMapper.updateStatusTwo(orderId); // }else { // result+=universalMapper.updateStatusSeven(orderId); // } // /* BigDecimal capacityIdS=universalMapper.queueSingle(orderId);*/ // /*if (capacityIdS !=null){ // //删除单拼 // universalMapper.delectQueueS(capacityIdS); // }*/ // /*//查询多拼的数据 // BigDecimal capacityIdM =universalMapper.queueMore(orderId); // if (capacityIdM !=null){ // //删除多拼 // universalMapper.delectQueueM(capacityIdM); // } // //查询单拼的数据 // BigDecimal capacityIdS=universalMapper.queueSingle(orderId); // if (capacityIdS !=null){ // //删除单拼 // universalMapper.delectQueueS(capacityIdS); // }*/ // } // } // //}catch (Exception e){ // //} //System.out.println("订单关闭数为:" + result); //return 1; } public int linkageDeleteTransportOrder(List> mapList) throws IOException{ String URL = "http://172.16.33.166:8066/api/v1/join/tmstruckweightresult/linkageDeleteTransportOrder"; String jsonData = null; String jsonString= JSON.toJSONString(mapList); jsonData = HTTPRequestUtils.send(URL, jsonString,"utf-8"); if(!"null".equals(jsonData)){ System.out.println(jsonData); HashMap hashMap = JSON.parseObject(jsonData, HashMap.class); String code = (String) hashMap.get("code"); System.out.println(hashMap.get("code")); if("200".equals(code)){ return 1; }else{ return 0; } }else{ System.out.println("补录委托失败:" + jsonData); return 0; } } @Override public Map submitSteel(Map map) { List responseMapList = new ArrayList<>(); List responseMapFailedList = new ArrayList<>(); BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")); //根据车序号ID获取内容 Map oldMes = universalMapper.getSteelReportDetailsBySmId(saleOrderMaterialId); //修改收货客户电话 if(map.get("consigneeTel") != null && !map.get("consigneeTel").equals(oldMes.get("consigneeTel"))) { Map updateConsigneeTelMap = new HashMap<>(); updateConsigneeTelMap.put("saleOrderNo",map.get("saleOrderNo")); updateConsigneeTelMap.put("saleOrderMaterialId",map.get("saleOrderMaterialId")); updateConsigneeTelMap.put("consigneeTel",map.get("consigneeTel")); Map updateConsigneeMap = amsFeign.updateConsigneeTel(updateConsigneeTelMap); if(updateConsigneeMap.get("code").toString().equals("200")) { responseMapList.add("修改收货客户电话号码成功"); }else{ responseMapFailedList.add("修改收货客户电话号码失败"); } } //修改备注 if(map.get("orderId") != null && map.get("remark") != null && !map.get("remark").equals(oldMes.get("remark"))) { universalMapper.updateRemark(map); responseMapList.add("修改备注成功"); } //修改司机电话号码 if(map.get("capacityTel") != null && !map.get("capacityTel").equals(oldMes.get("capacityTel"))) { Map updateDriverTelMap = new HashMap<>(); updateDriverTelMap.put("orderId",map.get("orderId")); updateDriverTelMap.put("saleOrderMaterialId",map.get("saleOrderMaterialId")); updateDriverTelMap.put("driverTel",map.get("capacityTel")); universalMapper.updateCapacityDriverTel(DataChange.dataToBigDecimal(map.get("orderId")).intValue(),map.get("capacityTel").toString()); universalMapper.updateDriverTel(updateDriverTelMap); responseMapList.add("修改司机电话号码成功"); } //修改承运商授权 if(map.get("carrierName") != null && !"".equals(map.get("carrierName")) && !map.get("carrierName").equals(oldMes.get("carrierName"))){ if(oldMes.get("carrierName") == null) { List> list = new ArrayList<>(); list.add(map); Map updateCarrierMap = (Map) amsFeign.dispatchToCarrier(list); if (updateCarrierMap.get("code").toString().equals("0")) { responseMapList.add("授权承运商成功"); }else { responseMapFailedList.add("授权承运商失败,请联系管理员"); } }else{ Map updateCarrierMap = amsFeign.updateTruckNoCarrier(map); if (updateCarrierMap.get("code").toString().equals("200")) { responseMapList.add("修改承运商授权成功"); }else { responseMapFailedList.add("修改承运商授权失败,请联系管理员"); } } } //修改收货地址 if (map.get("place") != null && !"".equals(map.get("place")) && (!map.get("place").equals(oldMes.get("place"))) || DataChange.dataToBigDecimal(map.get("shipperAddressId")).compareTo(DataChange.dataToBigDecimal(oldMes.get("shipperAddressId"))) != 0){ map.put("isCloseEas",1); map.put("isNewCar",1); Map updateCarAddress = amsFeign.updateCarAddress(map); if (updateCarAddress.get("code").toString().equals("200")) { responseMapList.add("修改收货地址成功"); }else{ responseMapFailedList.add("修改收货地址失败,请联系管理员"); } } //修改运力 if (map.get("capacityNo") != null && !"".equals(map.get("capacityNo")) && !map.get("capacityNo").equals(oldMes.get("capacityNo"))) { if(oldMes.get("capacityId") != null) { //修改运力 Map updateCapacityMap = amsFeign.updateCapacityNumberInFactory(map); if (updateCapacityMap.get("code").toString().equals("200")) { responseMapList.add("修改车牌号成功"); }else{ responseMapFailedList.add("修改车牌号失败,失败理由:" + updateCapacityMap.get("data")); } System.out.println(updateCapacityMap); }else{ List> list = new ArrayList<>(); list.add(map); Map updateCapacityMap = amsFeign.dispatchSteelOrder(list); if (updateCapacityMap.get("code").toString().equals("200")) { responseMapList.add("派发车牌号成功"); }else{ responseMapFailedList.add("派发车牌号失败,失败理由:" + updateCapacityMap.get("data")); } } } Map resMap = new HashMap<>(); resMap.put("response",responseMapList); resMap.put("responseMapFailed",responseMapFailedList); return resMap; } @Override public Map getColumnShowHidden(Map map) { Map responseMap = new HashMap<>(); List> columnShowData = universalMapper.getColumnShowData(map); List> columnAllData = universalMapper.getColumnAllData(map); List columnHiddenData = universalMapper.getColumnHiddenData(map); responseMap.put("columnShowData",columnShowData); responseMap.put("columnAllData",columnAllData); responseMap.put("columnHiddenData",columnHiddenData); return responseMap; } @Override public int updateColumnShowHidden(Map map) { int i = 0 ; //首先删除原来的列 i += dilRoleOrgcodeTableMapper.deleteBySelectiveElement(map); List columnHiddenData = (List) map.get("columnHiddenData"); List mapList = new ArrayList<>(); for (String s : columnHiddenData) { DilRoleOrgcodeTable dilRoleOrgcodeTable = new DilRoleOrgcodeTable(); BigDecimal columnId = dilTableColumnRoleMapper.selectColumnId(s,map.get("tableName").toString()); dilRoleOrgcodeTable.setColumnId(columnId); dilRoleOrgcodeTable.setUserName(map.get("userName").toString()); dilRoleOrgcodeTable.setOrgCode(map.get("orgCode").toString()); dilRoleOrgcodeTable.setPrimaryId(dilRoleOrgcodeTableMapper.getPrimaryId()); mapList.add(dilRoleOrgcodeTable); } if(mapList.size() > 0) { //然后再批量新增进去 i += dilRoleOrgcodeTableMapper.batchInsert(mapList); } return i; } }