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.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.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.beans.Transient; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 火烈鸟数据库 */ @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"; } map.put("emplId", emplId); map.put("dataStart", dataStart); map.put("dataEnd", dataEnd); map.put("orderNo", orderNo); List orderBillsPlansList = orderBillsPlansMapper.getOrderBillsPlansLsit(map); return orderBillsPlansList; } /** * 根据orderNo查询 * * @param orderNo orderNo * @return 详情 */ @Override public OrderBillsPlans getOrderBillsPlansByid(Long orderNo) { return orderBillsPlansMapper.getOrderBillsPlansByid(orderNo); } /** * 保存保单信息 * * @param orderBillsPlans * @return */ @Override public AjaxResult putOrderBillsPlansByid(OrderBillsPlans orderBillsPlans) { Integer i = orderBillsPlansMapper.updateOrderBillsPlansByid(orderBillsPlans); return null; } /** * 获取报销费用list * * @return */ @Override public List getItemsList(Long entityId) { List itemsList = orderBillsPlansMapper.getItemsList(); Map loadFeeItemsMap = orderBillsPlansMapper.getLoadFeeitemsMapByentityIdKeyItemId(entityId); for (ItemsVo itemsVo : itemsList) { itemsVo.setAtm1(loadFeeItemsMap.get(itemsVo.getItemId()).getAtm1()); } return itemsList; } /** * 报销 * * @param loadFeeItemsVo * @return 操作结果 */ @Transient @Override public AjaxResult insertLoadFeeItems(LoadFeeItemsVo loadFeeItemsVo) { Long entityid = loadFeeItemsVo.getEntityid(); Map map = new HashMap<>(); // 查询数据 map = orderBillsPlansMapper.getLoadFeeitemsMapByentityIdKeyItemId(entityid); // 修改为订单号 OrderBillsPlans orderBillsPlans = orderBillsPlansMapper.getOrderBillsPlansByid(entityid); // 根据登录名去匹配EMPLS 里面的EMPL 找到 EMPLID String userName = SecurityUtils.getLoginUser().getUsername(); Empls empls = emplsMapper.getEmplsByEmpl(userName); // 更新数据 for (ItemsVo itemsVo : loadFeeItemsVo.getItemsVoList()) { // 获取当前类型 LoadFeeItems loadFeeItems = map.get(itemsVo.getItemId()); if (loadFeeItems != null) { // 修改值 loadFeeItems.setAtm1(itemsVo.getAtm1()); Integer y = orderBillsPlansMapper.updateLoadFeeItems(loadFeeItems); } else { // 雪花id SnowFlakeUtil snowFlakeUtil = new SnowFlakeUtil(12, 13); long nextId = snowFlakeUtil.getNextId(); loadFeeItems.setLineNo(nextId); Integer i = orderBillsPlansMapper.insertLoadFeeItems(loadFeeItems, orderBillsPlans, empls); } } return AjaxResult.success(); } /** * 查询报销费用报销金额下拉选 * @return */ @Override public AjaxResult getGasStations() { return AjaxResult.success(orderBillsPlansMapper.getGasStations()); } }