package com.steerinfo.dil.service.impl; import com.alibaba.fastjson.JSONObject; import com.steerinfo.dil.mapper.OmsTransOrderMapper; import com.steerinfo.dil.mapper.TmsAddenergyResultMapper; import com.steerinfo.dil.model.TmsAddenergyResult; import com.steerinfo.dil.util.DaZongUtil; import com.steerinfo.dil.util.DataChange; import com.steerinfo.framework.mapper.IBaseMapper; import com.steerinfo.framework.service.impl.BaseServiceImpl; import com.steerinfo.dil.model.TmsComprehensiveResult; import com.steerinfo.dil.mapper.TmsComprehensiveResultMapper; import com.steerinfo.dil.service.ITmsComprehensiveResultService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; /** * TmsComprehensiveResult服务实现: * @author generator * @version 1.0-SNAPSHORT 2023-10-28 02:59 * 类描述 * 修订历史: * 日期:2023-10-28 * 作者:generator * 参考: * 描述:TmsComprehensiveResult服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "tmsComprehensiveResultService") public class TmsComprehensiveResultServiceImpl extends BaseServiceImpl implements ITmsComprehensiveResultService { @Autowired private TmsComprehensiveResultMapper tmsComprehensiveResultMapper; @Autowired private OmsTransOrderMapper omsTransOrderMapper; @Autowired private DaZongUtil daZongUtil; @Autowired private TmsAddenergyResultMapper tmsAddenergyResultMapper; @Override protected IBaseMapper getMapper() { return tmsComprehensiveResultMapper; } @Override @Transactional(rollbackFor = Exception.class) public String upload(List model) throws Exception { String msg = null; if (model==null){ return "修改信息不能为空!"; } for (TmsComprehensiveResult tmsComprehensiveResult : model) { Calendar calendar = Calendar.getInstance(); tmsComprehensiveResult.setUpdateUsername("admin"); tmsComprehensiveResult.setUpdateTime(DataChange.dataToDate(calendar.getTime())); if ("请假".equals(tmsComprehensiveResult.getResultType()) && tmsComprehensiveResult.getAlternateFields7() != null) { tmsComprehensiveResultMapper.updatePersonnelStatus(tmsComprehensiveResult.getPersonnelId(),new BigDecimal(3)); } if ("请假".equals(tmsComprehensiveResult.getResultType()) && tmsComprehensiveResult.getAlternateFields9() != null) { tmsComprehensiveResultMapper.updatePersonnelStatus(tmsComprehensiveResult.getPersonnelId(),new BigDecimal(0)); } msg = tmsComprehensiveResultMapper.updateByPrimaryKeySelective(tmsComprehensiveResult) > 0? "操作成功" : "操作失败"; //if ("借车".equals(tmsComprehensiveResult.getResultType())) { // //推送大宗 // Map params = new HashMap<>(); // Map capacity = new HashMap<>(); // Map driver = new HashMap<>(); // //推送车辆档案 // capacity=omsTransOrderMapper.findCapacityMes(tmsComprehensiveResult.getCapacityId()); // capacity.put("clbh",tmsComprehensiveResult.getAlternateFields12()); // driver = omsTransOrderMapper.findDriverMes(tmsComprehensiveResult.getPersonnelId()); // params = new HashMap<>(); // params.putAll(capacity); // params.putAll(driver); // daZongUtil.execute("30010000002", new Map[]{params}); //} } return msg; } @Override public String importComprehensiveResult(Map mapValue) throws Exception { String resultType = mapValue.get("resultType").toString(); if ("加油-加油站系统数据".equals(resultType)) { return importAddOilResult(mapValue); } if ("加油-其他系统数据".equals(resultType)) { return importAddOilResultOther(mapValue); } if ("加油-电量数据".equals(resultType)) { return importAddEnergyResult(mapValue); } if ("维保".equals(resultType)) { return importRepairResult(mapValue); } return "导入成功"; } @Transactional(rollbackFor = Exception.class) public String importRepairResult(Map mapValue) throws Exception { String userName = mapValue.get("userName").toString(); String filePath = mapValue.get("filePath").toString(); List> list = (ArrayList) mapValue.get("list"); List tmsComprehensiveResultInsertList = new ArrayList<>(); List tmsComprehensiveResultUpdateList = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); for(Map item : list) { if(item.get("车号") == null) { throw new Exception("车号不能为空"); } //根据车号查询运力ID String capacityNumber = item.get("大号").toString(); BigDecimal capacityId = tmsComprehensiveResultMapper.selectCapacityId(capacityNumber); if(capacityId == null) { throw new Exception(capacityNumber + "车号不存在系统,请联系物流调度录入"); } String date = item.get("维修时间").toString(); TmsComprehensiveResult tmsComprehensiveResult = new TmsComprehensiveResult(); tmsComprehensiveResult.setResultId(tmsComprehensiveResultMapper.nextId()); tmsComprehensiveResult.setResultTime(simpleDateFormat.parse(date)); tmsComprehensiveResult.setResultType("维保"); tmsComprehensiveResult.setAlternateFields3(item.get("维修内容").toString()); tmsComprehensiveResult.setAlternateFields13(item.get("工时费").toString()); tmsComprehensiveResult.setAlternateFields14(item.get("维保人").toString()); tmsComprehensiveResult.setAlternateFields15(item.get("配件费").toString()); tmsComprehensiveResult.setAlternateFields20(item.get("车属单位").toString()); tmsComprehensiveResult.setCapacityId(capacityId); tmsComprehensiveResult.setAlternateFields11(capacityId.toString()); tmsComprehensiveResult.setInsertTime(new Date()); tmsComprehensiveResult.setInsertUsername(userName); tmsComprehensiveResult.setDeleted(BigDecimal.ZERO); tmsComprehensiveResult.setAlternateFields18(filePath); tmsComprehensiveResultInsertList.add(tmsComprehensiveResult); } tmsComprehensiveResultMapper.batchInsert(tmsComprehensiveResultInsertList); return "操作成功!"; } @Transactional(rollbackFor = Exception.class) public synchronized String importAddOilResult(Map mapValue) throws Exception{ System.out.println(new JSONObject(mapValue)); String userName = mapValue.get("userName").toString(); String filePath = mapValue.get("filePath").toString(); List> list = (ArrayList) mapValue.get("list"); List tmsAddEnergyResultList = new ArrayList<>(); List tmsUpdateEnergyResultList = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(Map item : list) { if(item.get("卡账号") == null || "".equals(item.get("卡账号").toString().trim())) { continue; } //获取车牌号 String capacityNo = null; if(item.get("车牌号") == null || "".equals(item.get("车牌号").toString().trim())) { capacityNo = item.get("持卡人").toString().trim(); }else{ capacityNo = item.get("车牌号").toString().trim(); } //根据车号获取ID, BigDecimal capacityId = tmsComprehensiveResultMapper.selectCapacityId(capacityNo); //获取卡号 String cardNo = item.get("卡账号") == null ? "" : item.get("卡账号").toString(); //获取油品名 if(item.get("油品名") == null) { continue; } String oilName = item.get("油品名").toString(); //获取油量升 String oilNumber = item.get("油量升").toString(); //获取金额 String amount = item.get("金额").toString(); //单价 String price = item.get("单价").toString(); String companyName = item.get("单位名").toString(); if("".equals(companyName)) { companyName = "宏瑞物流"; } //获取加油时间 String addOilTimeStr = item.get("加油时间").toString(); Date addOilTime = simpleDateFormat.parse(addOilTimeStr); Map searchMap = new HashMap<>(); searchMap.put("energyAddTime",addOilTime); searchMap.put("capacityNumber",capacityNo); searchMap.put("deleted",0); List addenergyResults = tmsAddenergyResultMapper.selectByParametersSt(searchMap); if(addenergyResults != null && addenergyResults.size() > 0) { addenergyResults.get(0).setEnergyName(oilName); addenergyResults.get(0).setCompanyName(companyName); addenergyResults.get(0).setCapacityId(capacityId == null ? null : capacityId.toString()); addenergyResults.get(0).setEnergyJyPrice(DataChange.dataToBigDecimal(price)); addenergyResults.get(0).setEnergyJyAmount(DataChange.dataToBigDecimal(amount)); addenergyResults.get(0).setEnergyNumber(DataChange.dataToBigDecimal(oilNumber)); addenergyResults.get(0).setCardNo(cardNo); addenergyResults.get(0).setUpdateTime(new Date()); addenergyResults.get(0).setUpdateUsername(userName); addenergyResults.get(0).setAlternateFields2(filePath); tmsUpdateEnergyResultList.add(addenergyResults.get(0)); }else{ TmsAddenergyResult tmsAddenergyResult = new TmsAddenergyResult(); tmsAddenergyResult.setResultId(tmsAddenergyResultMapper.nextId()); tmsAddenergyResult.setCapacityId(capacityId == null ? null : capacityId.toString()); tmsAddenergyResult.setCardNo(cardNo); tmsAddenergyResult.setEnergyName(oilName); tmsAddenergyResult.setCompanyName(companyName); tmsAddenergyResult.setEnergyJyPrice(DataChange.dataToBigDecimal(price)); tmsAddenergyResult.setEnergyJyAmount(DataChange.dataToBigDecimal(amount)); tmsAddenergyResult.setEnergyNumber(DataChange.dataToBigDecimal(oilNumber)); tmsAddenergyResult.setEnergyAddTime(addOilTime); tmsAddenergyResult.setCapacityNumber(capacityNo); tmsAddenergyResult.setCardNo(cardNo); tmsAddenergyResult.setDeleted(0); tmsAddenergyResult.setInsertTime(new Date()); tmsAddenergyResult.setInsertUsername(userName); tmsAddenergyResult.setAlternateFields1(filePath); tmsAddEnergyResultList.add(tmsAddenergyResult); } } if(tmsAddEnergyResultList.size() > 0) { tmsAddenergyResultMapper.batchInsert(tmsAddEnergyResultList); } if(tmsUpdateEnergyResultList.size() > 0) { tmsAddenergyResultMapper.batchUpdate(tmsUpdateEnergyResultList); } return "导入成功"; } @Transactional(rollbackFor = Exception.class) public String importAddOilResultOther(Map mapValue) throws Exception{ String userName = mapValue.get("userName").toString(); String filePath = mapValue.get("filePath").toString(); List> list = (ArrayList) mapValue.get("list"); List tmsAddEnergyResultList = new ArrayList<>(); List tmsUpdateEnergyResultList = new ArrayList<>(); String note = "其他系统数据"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); for(Map item : list) { String cardNo = item.get("卡号") == null ? "" : item.get("卡号").toString().trim(); String capacityNumber = item.get("车号") == null ? "" : item.get("车号").toString().trim(); if("".equals(cardNo) && "".equals(capacityNumber)) { continue; } if("".equals(cardNo) && !"".equals(capacityNumber)) { cardNo = capacityNumber; } if("".equals(capacityNumber) && !"".equals(cardNo)) { capacityNumber = cardNo; } //获取车牌号 String capacityNo = capacityNumber; //根据车号获取ID, BigDecimal capacityId = tmsComprehensiveResultMapper.selectCapacityId(capacityNo); //获取卡号 String oilName = null; //获取油品名 if(item.get("油品名") == null) { throw new Exception("请标记油品名"); }else{ oilName = item.get("油品名").toString(); } String month = item.get("月份").toString(); //获取金额 String amount = "1"; //单价 String price = "1"; String companyName = item.get("单位") == null ? "宏瑞物流" : item.get("单位").toString(); Set strings = item.keySet(); for(String key : strings) { if(key.contains("日")){ String day = key.split("日")[0]; String date = month + "-" + day; Date addTime = simpleDateFormat.parse(date); Map searchMap = new HashMap<>(); searchMap.put("energyAddTime",addTime); searchMap.put("capacityNumber",capacityNo); searchMap.put("deleted",0); searchMap.put("energyName",oilName); List addenergyResults = tmsAddenergyResultMapper.selectByParametersSt(searchMap); if(addenergyResults != null && addenergyResults.size() > 0) { addenergyResults.get(0).setEnergyName(oilName); addenergyResults.get(0).setCompanyName(companyName); addenergyResults.get(0).setCapacityId(capacityId == null ? null : capacityId.toString()); addenergyResults.get(0).setEnergyJyPrice(DataChange.dataToBigDecimal(price)); addenergyResults.get(0).setEnergyJyAmount(DataChange.dataToBigDecimal(amount)); addenergyResults.get(0).setEnergyNumber(DataChange.dataToBigDecimal(item.get(key))); addenergyResults.get(0).setCardNo(cardNo); addenergyResults.get(0).setUpdateTime(new Date()); addenergyResults.get(0).setUpdateUsername(userName); addenergyResults.get(0).setAlternateFields2(filePath); addenergyResults.get(0).setAlternateFields2(note); tmsUpdateEnergyResultList.add(addenergyResults.get(0)); }else{ TmsAddenergyResult tmsAddenergyResult = new TmsAddenergyResult(); tmsAddenergyResult.setResultId(tmsAddenergyResultMapper.nextId()); tmsAddenergyResult.setCapacityId(capacityId == null ? null : capacityId.toString()); tmsAddenergyResult.setCardNo(cardNo); tmsAddenergyResult.setEnergyName(oilName); tmsAddenergyResult.setCompanyName(companyName); tmsAddenergyResult.setEnergyJyPrice(DataChange.dataToBigDecimal(price)); tmsAddenergyResult.setEnergyJyAmount(DataChange.dataToBigDecimal(amount)); tmsAddenergyResult.setEnergyNumber(DataChange.dataToBigDecimal(item.get(key))); tmsAddenergyResult.setEnergyAddTime(addTime); tmsAddenergyResult.setCapacityNumber(capacityNo); tmsAddenergyResult.setCardNo(cardNo); tmsAddenergyResult.setDeleted(0); tmsAddenergyResult.setInsertTime(new Date()); tmsAddenergyResult.setInsertUsername(userName); tmsAddenergyResult.setAlternateFields1(filePath); tmsAddenergyResult.setAlternateFields2(note); tmsAddEnergyResultList.add(tmsAddenergyResult); } } } } // //获取加油时间 if(tmsAddEnergyResultList.size() > 0) { tmsAddenergyResultMapper.batchInsert(tmsAddEnergyResultList); } if(tmsUpdateEnergyResultList.size() > 0) { tmsAddenergyResultMapper.batchUpdate(tmsUpdateEnergyResultList); } return "导入成功"; } @Transactional(rollbackFor = Exception.class) public String importAddEnergyResult(Map mapValue) throws Exception { String userName = mapValue.get("userName").toString(); String filePath = mapValue.get("filePath").toString(); List> list = (ArrayList) mapValue.get("list"); List tmsAddEnergyResultList = new ArrayList<>(); List tmsUpdateEnergyResultList = new ArrayList<>(); String note = "电系统数据"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (Map item : list) { if (item.get("车号") == null || "".equals(item.get("车号").toString().trim())) { continue; } //获取油量升 if (item.get("度数") == null) { continue; } if (item.get("充电时间") == null || "".equals(item.get("充电时间").toString().trim())) { continue; } String oilNumber = item.get("度数").toString(); if (DataChange.dataToBigDecimal(oilNumber).compareTo(BigDecimal.ZERO) == 0) { continue; } //获取车牌号 String capacityNo = item.get("车号").toString().trim(); //根据车号获取ID Map capacityMesInfo = tmsAddenergyResultMapper.selectCapacityMes(capacityNo); BigDecimal capacityId = null; String capacityNumber = null; String capacityInnerNumber = null; String cardNo = null; if (capacityMesInfo != null) { capacityId = DataChange.dataToBigDecimal(capacityMesInfo.get("capacityId")); capacityNumber = capacityMesInfo.get("capacityNumber").toString(); capacityInnerNumber = capacityMesInfo.get("capacityInnerNumber") == null ? capacityNo : capacityMesInfo.get("capacityInnerNumber").toString(); cardNo = capacityNumber; } else { capacityNumber = capacityNo; capacityInnerNumber = capacityNo; cardNo = capacityNo; } String oilName = "电"; String companyName = "宏瑞物流"; //获取加油时间 String addOilTimeStr = item.get("充电时间").toString().replace(".", "-"); Date addOilTime = simpleDateFormat.parse(addOilTimeStr); Map searchMap = new HashMap<>(); searchMap.put("energyAddTime", addOilTime); searchMap.put("capacityNumber", capacityNo); searchMap.put("deleted", 0); searchMap.put("energyName", "电"); List addenergyResults = tmsAddenergyResultMapper.selectByParametersSt(searchMap); if (addenergyResults != null && addenergyResults.size() > 0) { addenergyResults.get(0).setEnergyName(oilName); addenergyResults.get(0).setCompanyName(companyName); addenergyResults.get(0).setCapacityId(capacityId == null ? null : capacityId.toString()); addenergyResults.get(0).setCardNo(cardNo); addenergyResults.get(0).setCapacityInnerNumber(capacityInnerNumber); addenergyResults.get(0).setCapacityNumber(capacityNumber); addenergyResults.get(0).setEnergyNumber(DataChange.dataToBigDecimal(oilNumber)); addenergyResults.get(0).setUpdateTime(new Date()); addenergyResults.get(0).setUpdateUsername(userName); addenergyResults.get(0).setAlternateFields2(filePath); tmsUpdateEnergyResultList.add(addenergyResults.get(0)); } else { TmsAddenergyResult tmsAddenergyResult = new TmsAddenergyResult(); tmsAddenergyResult.setResultId(tmsAddenergyResultMapper.nextId()); tmsAddenergyResult.setCapacityId(capacityId == null ? null : capacityId.toString()); tmsAddenergyResult.setEnergyName(oilName); tmsAddenergyResult.setCompanyName(companyName); tmsAddenergyResult.setEnergyNumber(DataChange.dataToBigDecimal(oilNumber)); tmsAddenergyResult.setEnergyAddTime(addOilTime); tmsAddenergyResult.setCapacityNumber(capacityNumber); tmsAddenergyResult.setCapacityInnerNumber(capacityInnerNumber); tmsAddenergyResult.setCardNo(cardNo); tmsAddenergyResult.setDeleted(0); tmsAddenergyResult.setInsertTime(new Date()); tmsAddenergyResult.setInsertUsername(userName); tmsAddenergyResult.setAlternateFields1(filePath); tmsAddEnergyResultList.add(tmsAddenergyResult); } } int section = 100; if (tmsAddEnergyResultList.size() > 0) { for (int i = 1; (i - 1) * section < tmsAddEnergyResultList.size(); i++) { List tempList = null; if (i * section < tmsAddEnergyResultList.size()) { tempList = tmsAddEnergyResultList.subList((i - 1) * section, i * section); } else { tempList = tmsAddEnergyResultList.subList((i - 1) * section, tmsAddEnergyResultList.size()); } if (tempList.size() > 0) { tmsAddenergyResultMapper.batchInsert(tempList); } } } if (tmsUpdateEnergyResultList.size() > 0) { for (int i = 1; (i - 1) * section < tmsUpdateEnergyResultList.size(); i++) { List tempList = null; if (i * section < tmsUpdateEnergyResultList.size()) { tempList = tmsUpdateEnergyResultList.subList((i - 1) * section, i * section); } else { tempList = tmsUpdateEnergyResultList.subList((i - 1) * section, tmsUpdateEnergyResultList.size()); } if (tempList.size() > 0) { tmsAddenergyResultMapper.batchUpdate(tempList); } } } return "导入成功"; } //借车添加排班 @Override public String insertCapacityDriver(BigDecimal personnelId,Map mapValue,TmsComprehensiveResult model) { Map searchMap = new HashMap<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); BigDecimal capacityDriverId = tmsComprehensiveResultMapper.rcdNextId(); model.setAlternateFields19(capacityDriverId.toString()); model.setAlternateFields20("借车申请:我于"+simpleDateFormat.format(new Date())+"申请了借车,原因是"+model.getAlternateFields3()); model.setAlternateFields21("0"); model.setAlternateFields6("系统自动批准"); model.setAlternateFields7("系统自动批准"); //修改借车实绩状态 tmsComprehensiveResultMapper.updateByPrimaryKeySelective(model); tmsComprehensiveResultMapper.updateCapacityStatus(DataChange.dataToBigDecimal(mapValue.get("oldCapacityId")),new BigDecimal(3)); //新增排班信息 searchMap.put("capacityDriverId",capacityDriverId); searchMap.put("capacityId", mapValue.get("capacityId")); searchMap.put("personnelId", mapValue.get("personnelId")); searchMap.put("deleted",0); //新增排班d searchMap.put("insertTime",new Date()); searchMap.put("insertUsername",mapValue.get("userName")); searchMap.put("alternateFields1","借车"); Integer count = tmsComprehensiveResultMapper.insertCapacityDriver(searchMap); if(count > 0){ return "新增成功"; }else { return "新增失败"; } } }