package com.steerinfo.dil.service.impl; import com.steerinfo.dil.feign.WmshBoundFeign; import com.steerinfo.dil.mapper.OmstruckOrderMapper; import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper; import com.steerinfo.dil.mapper.TmstruckLoadResultMapper; import com.steerinfo.dil.model.OmstruckOrder; import com.steerinfo.dil.model.TmstruckLoadResult; import com.steerinfo.dil.service.ITmstruckLoadResultService; 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.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * TmstruckLoadResult服务实现: * @author generator * @version 1.0-SNAPSHORT 2021-09-02 10:38 * 类描述 * 修订历史: * 日期:2021-09-02 * 作者:generator * 参考: * 描述:TmstruckLoadResult服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "tmstruckLoadResultService") public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService { @Autowired private TmstruckLoadResultMapper tmstruckLoadResultMapper; @Autowired private TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper; @Autowired private OmstruckOrderMapper omstruckOrderMapper; @Autowired private WmshBoundFeign wmshBoundFeign; /** * 查询所有装车实绩 * @param map * @return */ @Override public List> getAllLoadResult(Map map) { return tmstruckLoadResultMapper.getAllLoadResult(map); } /** * 新增装车实绩 * 运输订单号 或 运输订单Id * 是否清场 * 装车日期 * 备注 * 计量吨位 * @param map * @return */ @Override @Transactional public int addLoadResult(Map map) { //通过运输订单号 或 运单Id 查询实绩总表ID 此方法在 进厂作业mapper中 Integer totalId = tmstruckEnfactoryResultMapper.selectOrderIdByCpAndOn(map); // 新增装车实绩 TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult(); //添加主键Id long id; BigDecimal selectMaxId = tmstruckLoadResultMapper.selectMaxId(); id = selectMaxId == null ? 1 : selectMaxId.longValue() + 1; //新增计量吨位 装车所装的重量 BigDecimal resultMeasuredTonnage = DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage")); tmstruckLoadResult.setResultMeasuredTonnage(resultMeasuredTonnage); tmstruckLoadResult.setStatus(new BigDecimal(0)); tmstruckLoadResult.setResultId(new BigDecimal(id)); tmstruckLoadResult.setResultTotalId(new BigDecimal(totalId)); String resultIsclear = (String) (map.get("resultIsclear")); tmstruckLoadResult.setResultIsclear(resultIsclear); tmstruckLoadResult.setResultLoadStartTime(new Date((long) map.get("resultLoadStartTime"))); tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark")); int i = tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult); //修改订单状态为执行中 1 OmstruckOrder omstruckOrder = new OmstruckOrder(); BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId")); omstruckOrder.setOrderId(orderId); omstruckOrder.setOrderStatus(new BigDecimal(1)); int i1 = omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder); //修改运力状态为执行中 BigDecimal capacityId = omstruckOrderMapper.getCapacityIdByOrderOrNum(map); HashMap changeMap = new HashMap<>(); changeMap.put("capacityId", capacityId); changeMap.put("capacityStatus", 0); int i2 = omstruckOrderMapper.updateCapacityByCarIdOrNum(changeMap); //新增出库实绩 并修改实时库存 BigDecimal portId = tmstruckLoadResultMapper.getPortIdBySendStationId(DataChange.dataToBigDecimal(map.get("loadingId"))); if(portId != null){ BigDecimal batchId = tmstruckLoadResultMapper.getBatchIdByOrderId(orderId); if(batchId != null){ HashMap hashMap = new HashMap<>(); hashMap.put("batchId", batchId); hashMap.put("portId", portId); hashMap.put("resultTonnage",resultMeasuredTonnage); hashMap.put("isClean", resultIsclear); wmshBoundFeign.addResult(hashMap); } } return i + i1 + i2; } /** * 修改装车作业 * @param tmstruckLoadResult * @return */ @Override public int updateLoadResult(TmstruckLoadResult tmstruckLoadResult) { return tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult); } /** * 通过ID查询装车实绩 * @param resultId * @return */ @Override public List> getLoadResultById(Integer resultId) { return tmstruckLoadResultMapper.getLoadResultById(resultId); } /** * 逻辑删除装车实绩 状态 1 * @param resultId * @return */ @Override public int deleteLoadResult(Integer resultId) { TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult(); tmstruckLoadResult.setResultId(new BigDecimal(resultId)); tmstruckLoadResult.setStatus(new BigDecimal(1)); return tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult); } }