package com.ruoyi.shipping.service.impl; import java.util.*; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.shipping.domain.TCntrtracking; import com.ruoyi.shipping.mapper.TCntrMapper; import com.ruoyi.shipping.mapper.TCntrtrackingMapper; import com.ruoyi.system.mapper.SysDictDataMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.shipping.mapper.TCntrnoMapper; import com.ruoyi.shipping.domain.TCntrno; import com.ruoyi.shipping.service.ITCntrnoService; /** * 集装箱号Service业务层处理 * * @author ruoyi * @date 2021-03-22 */ @Service public class TCntrnoServiceImpl implements ITCntrnoService { @Autowired private TCntrnoMapper tCntrnoMapper; @Autowired private TCntrtrackingMapper tCntrtrackingMapper; @Autowired private TCntrMapper tCntrMapper; @Autowired private SysDictDataMapper sysDictDataMapper; /** * 查询集装箱号 * * @param fId 集装箱号ID * @return 集装箱号 */ @Override public TCntrno selectTCntrnoById(Long fId) { return tCntrnoMapper.selectTCntrnoById(fId); } /** * 查询集装箱号列表 * * @param tCntrno 集装箱号 * @return 集装箱号 */ @Override public List selectTCntrnoList(TCntrno tCntrno) { return tCntrnoMapper.selectTCntrnoList(tCntrno); } /** * 新增集装箱号 * * @param tCntrno 集装箱号 * @return 结果 */ @Override public int insertTCntrno(TCntrno tCntrno) { tCntrno.setCreateTime(DateUtils.getNowDate()); tCntrno.setCreateBy(SecurityUtils.getUsername()); tCntrno.setfUpdatetime(DateUtils.getNowDate()); tCntrno.setfStatus("T"); return tCntrnoMapper.insertTCntrno(tCntrno); } /** * 修改集装箱号 * * @param tCntrno 集装箱号 * @return 结果 */ @Override public int updateTCntrno(List tCntrno) { int update = 0; if (CollectionUtils.isNotEmpty(tCntrno)){ for (TCntrno cntrno : tCntrno) { TCntrno tCntrnoById = tCntrnoMapper.selectTCntrnoById(cntrno.getfId()); tCntrnoById.setUpdateTime(DateUtils.getNowDate()); tCntrnoById.setUpdateBy(SecurityUtils.getUsername()); //最新时间 if (cntrno.getFoldtime() == null){ cntrno.setfUpdatetime(new Date()); }else { cntrno.setfUpdatetime(cntrno.getFoldtime()); } //调入地点 if (StringUtils.isNotEmpty(cntrno.getFoldSite())){ cntrno.setfUpdateaddress(cntrno.getFoldSite()); } //调入空重 if (StringUtils.isNotEmpty(cntrno.getFoldFUpdateef())){ cntrno.setfUpdateef(cntrno.getFoldFUpdateef()); } //调入状态 if (StringUtils.isNotEmpty(cntrno.getFoldFCntrstatus())){ cntrno.setfCntrstatus(cntrno.getFoldFCntrstatus()); } tCntrnoById.setUpdateBy(SecurityUtils.getUsername()); TCntrtracking setfield = setfield(tCntrnoById); setfield.setfId(null); if (setfield.getfStatus().equals("T") ||setfield.getfStatus().equals("正常")){ setfield.setfStatus("T"); }else { setfield.setfStatus("F"); } tCntrtrackingMapper.insertTCntrtracking(setfield); //更改t_cntro表信息 if (cntrno.getfUpdatetime() == null){ cntrno.setUpdateTime(DateUtils.getNowDate()); } cntrno.setUpdateBy(SecurityUtils.getUsername()); update = tCntrnoMapper.updateTCntrno((cntrno)); } } return update; } @Override public int updateTCntrnoMessage(TCntrno tCntrno) { TCntrno tCntrnoById = tCntrnoMapper.selectTCntrnoById(tCntrno.getfId()); tCntrnoById.setUpdateTime(DateUtils.getNowDate()); tCntrnoById.setUpdateBy(SecurityUtils.getUsername()); if (tCntrnoById.getfStatus().equals("T") ||tCntrnoById.getfStatus().equals("正常")){ tCntrnoById.setfStatus("T"); }else { tCntrnoById.setfStatus("F"); } TCntrtracking setfield = setfield(tCntrnoById); tCntrtrackingMapper.insertTCntrtracking(setfield); //更改t_cntro表信息 tCntrno.setUpdateTime(DateUtils.getNowDate()); tCntrno.setUpdateBy(SecurityUtils.getUsername()); return tCntrnoMapper.updateTCntrno((tCntrno)); } /** * 批量删除集装箱号 * * @param fIds 需要删除的集装箱号ID * @return 结果 */ @Override public int deleteTCntrnoByIds(Long[] fIds) { return tCntrnoMapper.deleteTCntrnoByIds(fIds); } /** * 删除集装箱号信息 * * @param fId 集装箱号ID * @return 结果 */ @Override public int deleteTCntrnoById(Long fId) { return tCntrnoMapper.deleteTCntrnoById(fId); } /** * 批量更新数据状态将正常状态改为停用 * @param fIds * @return */ @Override public int updateTcntrnoStatus(Long[] fIds) { return tCntrnoMapper.updateTcntrnoStatus(fIds); } @Override public List selectTcntrnoMessage(TCntrno tCntrno) { return tCntrnoMapper.selectTcntrnoMessage(tCntrno); } @Override public List> getTCntrnoMessage(TCntrno tCntrno) { StringBuffer stringBuffer = new StringBuffer(); List list = tCntrMapper.selectTCntrFNo(); String sql = null; if (CollectionUtils.isNotEmpty(list)){ for (String s : list) { stringBuffer.append("MAX( CASE WHEN tt.f_no = '"+s); stringBuffer.append("' THEN tt.typeidCount ELSE 0 END ) AS '" +s +"',"); } sql = stringBuffer.subSequence(0,stringBuffer.length() -1).toString(); } return tCntrnoMapper.getTCntrnoMessage(sql,tCntrno); } @Override public List getTCntrnoDistribute(TCntrno tCntrno) { //箱类型不为空查箱类型id if (StringUtils.isNotEmpty(tCntrno.getTypeidName())){ Long fId = tCntrMapper.selectRcntrFId(tCntrno.getTypeidName()); tCntrno.setfTypeid(fId); } //箱状态不为空查箱状态 if (StringUtils.isNotEmpty(tCntrno.getCntrstatusName())){ String cntrstatus = sysDictDataMapper.selectDictValue("f_cntrstatus", tCntrno.getCntrstatusName()); tCntrno.setfCntrstatus(cntrstatus); } //箱空重部位空查空重 if (StringUtils.isNotEmpty(tCntrno.getUpdateEFName())){ String cntrstatus = sysDictDataMapper.selectDictValue("f_updateEF", tCntrno.getUpdateEFName()); tCntrno.setfUpdateef(cntrstatus); } return tCntrnoMapper.selectTcntrnoMessage(tCntrno); } @Override public List getTCntrnoChange(TCntrno tCntrno) { List key = new ArrayList<>(); key.add("地点"); List list = tCntrMapper.selectTCntrFNo(); key.addAll(list); key.add("空"); key.add("重"); key.add("好"); key.add("坏"); return key; } /** * set字段 * @param tCntrno * @return */ public TCntrtracking setfield(TCntrno tCntrno){ TCntrtracking tCntrtracking = new TCntrtracking(); BeanUtils.copyProperties(tCntrno,tCntrtracking); tCntrtracking.setfId(null); return tCntrtracking; } public List GetMapKey(List> listResult) { if ((listResult != null) && (!listResult.isEmpty())) { List listKey = new ArrayList(); Map mapResult = (Map)listResult.get(0); Set mapKeySet = mapResult.keySet(); String listHead = ""; Iterator iteratorKey = mapKeySet.iterator(); while (iteratorKey.hasNext()) { listHead = iteratorKey.next().toString(); listKey.add(listHead); } return listKey; } return null; } }