package com.steerinfo.dil.service.impl; import com.steerinfo.dil.controller.AmsSaleTrucknoMaterialController; import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper; import com.steerinfo.dil.mapper.AmsSaleTrucknoMaterialMapper; import com.steerinfo.dil.model.AmsSaleOrderMaterial; import com.steerinfo.dil.model.AmsSaleTrucknoMaterial; import com.steerinfo.dil.service.IAmsSaleOrderMaterialService; 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.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * AmsSaleOrderMaterial服务实现: * @author generator * @version 1.0-SNAPSHORT 2021-09-06 07:10 * 类描述 * 修订历史: * 日期:2021-09-06 * 作者:generator * 参考: * 描述:AmsSaleOrderMaterial服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "amsSaleOrderMaterialService") public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialService { @Autowired private AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper; @Autowired AmsSaleTrucknoMaterialMapper amsSaleTrucknoMaterialMapper; @Override public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) { long id; if(amsSaleOrderMaterialMapper.selectMaxId()==null){ id = 1; }else { id = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1; } //生成主键id amsSaleOrderMaterial.setSaleOrderMaterialId(new BigDecimal(id)); //生成车序号 amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(id)); //常规字段 amsSaleOrderMaterial.setInsertUsername("admin"); amsSaleOrderMaterial.setInsertTime(new Date()); amsSaleOrderMaterial.setUpdateUsername("admin"); amsSaleOrderMaterial.setUpdateTime(new Date()); amsSaleOrderMaterial.setInsertUpdateRemark("无"); amsSaleOrderMaterial.setDeleted(new BigDecimal(0)); amsSaleOrderMaterial.setUpdated(new BigDecimal(0)); return amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial); } @Override public List> selectBySaleOrderMaterialId(BigDecimal saleOrderMaterialId) { return amsSaleOrderMaterialMapper.selectBySaleOrderMaterialId(saleOrderMaterialId); } @Override public int updateAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) { amsSaleOrderMaterial.setUpdateTime(new Date()); return amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial); } @Override public int deleteAmsSaleOrderMaterialBySaleOrderMaterialId(BigDecimal saleOrderMaterialId) { AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(saleOrderMaterialId); amsSaleOrderMaterial.setDeleted(new BigDecimal(1)); return amsSaleOrderMaterialMapper.updateByPrimaryKey(amsSaleOrderMaterial); } @Override public String getAddress(BigDecimal saleOrderMaterialId) { return amsSaleOrderMaterialMapper.getAddress(saleOrderMaterialId); } @Override public int updateAddress(Map map) { String saleOrderMaterialId = map.get("saleOrderMaterialId").toString(); //查询收货地址表中是否有该地址,无则新增,有则取收货地址Id String saleShippingAddress = (String) map.get("saleShippingAddress"); BigDecimal addressId = amsSaleOrderMaterialMapper.getReceiveAddressId(saleShippingAddress); //获得原车次表信息 AmsSaleOrderMaterial amsSaleOrderMaterial1 = amsSaleOrderMaterialMapper.selectByPrimaryKey(new BigDecimal(saleOrderMaterialId)); if(addressId!=null){ long id; if(amsSaleOrderMaterialMapper.selectMaxId()==null){ id = 1; }else { id = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1; } //生成主键id amsSaleOrderMaterial1.setSaleOrderMaterialId(new BigDecimal(id)); amsSaleOrderMaterial1.setSaleShippingAddressId(addressId); //新增修改了地址的数据 amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial1); }else { //新增收货地址,取得收货地址的Id Map mapReceive = new HashMap<>(); long id; if(amsSaleOrderMaterialMapper.selectMaxIdReceive()==null){ id = 1; }else { id = amsSaleOrderMaterialMapper.selectMaxIdReceive().longValue()+1; } mapReceive.put("addressId",new BigDecimal(id)); mapReceive.put("addressDeliveryAddress",saleShippingAddress); amsSaleOrderMaterialMapper.insertReceiveAddress(mapReceive); //新增修改了地址的数据 long id1; if(amsSaleOrderMaterialMapper.selectMaxId()==null){ id1 = 1; }else { id1 = amsSaleOrderMaterialMapper.selectMaxId().longValue()+1; } //生成主键id amsSaleOrderMaterial1.setSaleOrderMaterialId(new BigDecimal(id1)); amsSaleOrderMaterial1.setSaleShippingAddressId(new BigDecimal(id)); //新增修改了地址的数据 amsSaleOrderMaterialMapper.insert(amsSaleOrderMaterial1); } //修改原地址记录状态 AmsSaleOrderMaterial amsSaleOrderMaterial2 = amsSaleOrderMaterialMapper.selectByPrimaryKey(new BigDecimal(saleOrderMaterialId)); amsSaleOrderMaterial2.setUpdated(new BigDecimal(1)); return amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial2); } @Override public List> getAddressDeliveryAddress() { return amsSaleOrderMaterialMapper.getAddressDeliveryAddress(); } public List> getSaleMaterial(Map mapValue) { return amsSaleOrderMaterialMapper.getSaleMaterial(mapValue); } public Integer selectById(BigDecimal saleOrderMaterialId) { return amsSaleOrderMaterialMapper.selectById(saleOrderMaterialId); } public Integer selectByCxh(Map m) { return amsSaleOrderMaterialMapper.selectByCxh(m); } /** * 展示车序号信息 * @param mapValue * @return */ @Override public List> getTruckNoList(Map mapValue) { List> mapList = amsSaleOrderMaterialMapper.getTruckNoList(mapValue); return mapList; } /** * 添加车序号与物资 * @param mapList * @return */ @Transactional @Override public int addTruckNo(List> mapList) { int result = 0; for (Map map : mapList) { // 销售订单id BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId")); // 车序号 BigDecimal truckNo = DataChange.dataToBigDecimal(map.get("truckNo")); AmsSaleOrderMaterial amsSaleOrderMaterial; Map saleMap = new HashMap<>(); saleMap.put("saleOrderId",saleOrderId); saleMap.put("saleOrderMaterialTruckNo",truckNo); // 检测销售订单下的车序号是否已存在 List amsSaleOrderMaterials = amsSaleOrderMaterialMapper.selectByParameters(saleMap); // 如果已存在则不处理 if (amsSaleOrderMaterials != null && amsSaleOrderMaterials.size() != 0) { amsSaleOrderMaterial = amsSaleOrderMaterials.get(0); } // 如果不存在则新增车序号 else { // 收货地址id BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shippingAddressId")); // 收货日期 String dateOfReceiptStr = (String) map.get("dateOfReceipt"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dateOfReceipt = null; try { dateOfReceipt = sdf.parse(dateOfReceiptStr); } catch (ParseException e) { e.printStackTrace(); } // 收货方姓名 String orderConsignee = (String) map.get("orderConsignee"); // 收货方联系方式 Object orderConsigneeTel = map.get("orderConsigneeTel"); amsSaleOrderMaterial = new AmsSaleOrderMaterial(); BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId(); amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId); amsSaleOrderMaterial.setSaleOrderId(saleOrderId); amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo); amsSaleOrderMaterial.setSaleShippingAddressId(shippingAddressId); amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt); amsSaleOrderMaterial.setSaleOrderConsignee(orderConsignee); if (orderConsignee != null) { amsSaleOrderMaterial.setSaleOrderConsigneeTel(orderConsigneeTel.toString()); } amsSaleOrderMaterial.setInsertTime(new Date()); amsSaleOrderMaterial.setInsertUsername("admin"); amsSaleOrderMaterial.setDeleted(new BigDecimal(0)); amsSaleOrderMaterial.setInsertUpdateRemark("无"); amsSaleOrderMaterial.setUpdated(new BigDecimal(0)); amsSaleOrderMaterial.setIssueStatus(new BigDecimal(0)); result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial); } // 新增车序号与物资中间表 AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial(); // 物资id BigDecimal materialId = DataChange.dataToBigDecimal(map.get("saleMaterialId")); // 物资数量 BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialNumber")); BigDecimal saleTrucknoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId(); amsSaleTrucknoMaterial.setTrucknoMaterialId(saleTrucknoMaterialId); amsSaleTrucknoMaterial.setMaterialId(materialId); amsSaleTrucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId()); amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber); amsSaleTrucknoMaterial.setInsertTime(new Date()); amsSaleTrucknoMaterial.setInsertUsername("admin"); amsSaleTrucknoMaterial.setInsertUpdateRemark("无"); result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial); } return result; } /** * 下发车序号 * @param mapList * @return */ @Override public int issueTruckNo(List> mapList) { int result = 0; for (Map map : mapList) { BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")); AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial(); amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId); amsSaleOrderMaterial.setIssueStatus(new BigDecimal(1)); result += amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial); } return result; } /** * 展示车序号下的物资详情 * @param saleOrderMaterialId * @return */ @Override public List> getTruckNoMaterialList(BigDecimal saleOrderMaterialId) { List> mapList = amsSaleOrderMaterialMapper.getTruckNoMaterialList(saleOrderMaterialId); return mapList; } /** * 销售订单下的物资 * @param saleOrderId * @return */ @Override public List> getSaleMaterialList(BigDecimal saleOrderId) { List> saleMaterialList = amsSaleOrderMaterialMapper.getSaleMaterialList(saleOrderId); return saleMaterialList; } }