package com.ruoyi.system.service.impl; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.DataSourceType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SnowFlakeUtil; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.vo.ImgVo; import com.ruoyi.system.domain.vo.ItemsVo; import com.ruoyi.system.domain.vo.LoadFeeItemsVo; import com.ruoyi.system.domain.vo.OrderBillsPlansVo; import com.ruoyi.system.mapper.EmplsMapper; import com.ruoyi.system.mapper.OrderBillsPlansMapper; import com.ruoyi.system.service.IOrderBillsPlansService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.beans.Transient; import java.text.SimpleDateFormat; import java.util.*; /** * 火烈鸟数据库 */ @Service @DataSource(value = DataSourceType.SLAVE) public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService { /** * 业务表 */ @Autowired private OrderBillsPlansMapper orderBillsPlansMapper; /** * Empls表 */ @Autowired private EmplsMapper emplsMapper; /** * 查询业务表数据List * * @param dataStart 日期起 * @param dataEnd 日期止 * @return */ @Override public List getOrderBillsPlansList(String dataStart, String dataEnd, String orderNo) { // 根据登录名去匹配EMPLS 里面的EMPL 找到 EMPLID String userName = SecurityUtils.getLoginUser().getUsername(); Long emplId = emplsMapper.getByEmpl(userName); // Long emplId = 0L; Map map = new HashMap<>(); if (dataEnd != null && !"".equals(dataEnd)) { dataStart += " 00:00:00"; dataEnd += " 23:59:59"; } if (orderNo != null && !"".equals(orderNo)) { orderNo = "%" + orderNo + "%"; } map.put("emplId", emplId); map.put("dataStart", dataStart); map.put("dataEnd", dataEnd); map.put("orderNo", orderNo); List orderBillsPlansList = orderBillsPlansMapper.getOrderBillsPlansLsit(map); for (WfTaskList wfTaskList : orderBillsPlansList) { if (wfTaskList.getBillStatus() == 6) { wfTaskList.setBillStatusName("禁止修改"); } else if (wfTaskList.getBillStatus() == 2) { wfTaskList.setBillStatusName("允许修改"); } } return orderBillsPlansList; } /** * 根据orderNo查询 * * @param orderNo orderNo * @return 详情 */ @Override public OrderBillsPlansVo getOrderBillsPlansByid(Long orderNo, HttpServletRequest request) { OrderBillsPlans orderBillsPlans = orderBillsPlansMapper.getOrderBillsPlansByid(orderNo); OrderBillsPlansVo vo = new OrderBillsPlansVo(); BeanUtils.copyProperties(orderBillsPlans, vo); SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date loadDate = orderBillsPlans.getLoadDate(); if (loadDate != null) { vo.setLoadDateString(ft.format(loadDate)); } Date unLoadDate = orderBillsPlans.getUnLoadDate(); if (unLoadDate != null) { vo.setUnLoadDateString(ft.format(unLoadDate)); } // 查找照片List List attachIdList = orderBillsPlansMapper.getAttachMngsAttachIdBySysIdAndEntityIdAndActId(orderBillsPlans); List fileList1 = new ArrayList<>(); for (Long attachId : attachIdList) { ImgVo imgVo = new ImgVo(); String serverName = request.getServerName(); int serverPort = request.getServerPort(); String url = "http://" + serverName + ":" + serverPort + "/attachmngs/img/" + attachId; imgVo.setUrl(url); fileList1.add(imgVo); } vo.setFileList1(fileList1); return vo; } /** * 保存保单信息 * * @param orderBillsPlansVo * @return */ @Override public AjaxResult putOrderBillsPlansByid(OrderBillsPlansVo orderBillsPlansVo) { OrderBillsPlans orderBillsPlans = new OrderBillsPlans(); BeanUtils.copyProperties(orderBillsPlansVo, orderBillsPlans); // 日期转换 SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { String loadDateString = orderBillsPlansVo.getLoadDateString(); String unLoadDateString = orderBillsPlansVo.getUnLoadDateString(); if (loadDateString != null && !"".equals(loadDateString)) { orderBillsPlans.setLoadDate(ft.parse(loadDateString)); } if (unLoadDateString != null && !"".equals(unLoadDateString)) { orderBillsPlans.setUnLoadDate(ft.parse(unLoadDateString)); } } catch (Exception e) { System.out.println(e.getMessage()); } Integer i = orderBillsPlansMapper.updateOrderBillsPlansByid(orderBillsPlans); if (i == 1) { return AjaxResult.success(); } else { return AjaxResult.error(); } } /** * 获取报销费用list * * @return */ @Override public List getItemsList() { return orderBillsPlansMapper.getItemsList(); } /** * 报销 * * @param orderBillsPlansVo * @return 操作结果 */ @Transient @Override public AjaxResult insertLoadFeeItems(OrderBillsPlansVo orderBillsPlansVo) { // 更新业务表 Integer i = orderBillsPlansMapper.updateOrderBillsPlansByOrderNo(orderBillsPlansVo); // 根据登录名去匹配EMPLS 里面的EMPL 找到 EMPLID String userName = SecurityUtils.getLoginUser().getUsername(); Empls empls = emplsMapper.getEmplsByEmpl(userName); // 更新明细 List itemsVoList = orderBillsPlansVo.getItemsVoList(); // if (itemsVoList == null || itemsVoList.size() == 0) { // return AjaxResult.success(); // } // 删除所有明细 // Integer t = orderBillsPlansMapper.deleteLoadFeeItemsByEntityId(orderBillsPlansVo.getLoadBillsEntityId()); // // Long lineNo = 1L; // for (ItemsVo itemsVo : itemsVoList) { // itemsVo.setLineNo(lineNo); // Integer x = orderBillsPlansMapper.insertLoadFeeItems(orderBillsPlansVo, itemsVo, empls); // lineNo++; // } for (LoadFeeItems loadFeeItems : orderBillsPlansVo.getLoadFeeItemsList()) { if (loadFeeItems.getAmt() == 0) break; orderBillsPlansMapper.updateOrderBillsPlansBySysidEntityidLineno(loadFeeItems); } return AjaxResult.success(); } /** * 查询报销费用报销金额下拉选 * * @return */ @Override public AjaxResult getGasStations() { return AjaxResult.success(orderBillsPlansMapper.getGasStations()); } /** * 查询报销信息 * * @param * @return 数据 */ @Override public OrderBillsPlansVo getLoadFeeItems(Long orderNo) { OrderBillsPlansVo data = orderBillsPlansMapper.getOrderBillsPlansByOrder(orderNo); List loadFeeItemsList = orderBillsPlansMapper.getLoadFeeItemsByEntityId(data.getLoadBillsEntityId()); data.setLoadFeeItemsList(loadFeeItemsList); return data; } /** * 插入主库图片数据 * @param tmsAttachMngs * @return */ @Override public AjaxResult insertAttachMngs(TmsAttachMngs tmsAttachMngs) { // 查询最大的lineNo进行+1赋值 Long lineNo = orderBillsPlansMapper.getAttachMngsBySysIdEntityId(tmsAttachMngs); String username = SecurityUtils.getLoginUser().getUsername(); tmsAttachMngs.setActId(375L); tmsAttachMngs.setAttachName(UUID.randomUUID().toString().replace("-", "")); tmsAttachMngs.setLineNo(lineNo == null ? 1L : lineNo + 1); tmsAttachMngs.setUserName(username); // 插入照片表 Integer i = orderBillsPlansMapper.insertAttachMngs(tmsAttachMngs); // 查询AttachtypeId返回前端在照片库中插入 Long attachId = orderBillsPlansMapper.getAttachMngsAttachtypeIdBySysIdAndEntityIdAndLineNo(tmsAttachMngs); return AjaxResult.success(attachId); } /** * 根据attachId在Tms库的AttachMngs表删除数据 * @param attachId * @return */ @Override public AjaxResult deleteTmsAttachMngs(Long attachId) { Integer i = orderBillsPlansMapper.deleteTmsAttachMngsByAttachId(attachId); if (i == 1) { return AjaxResult.success(); } return AjaxResult.error(); } }