package com.steerinfo.dil.service.impl; import com.steerinfo.dil.mapper.AmstruckPurplanMapper; import com.steerinfo.dil.mapper.AmstruckPurplanMaterialMapper; import com.steerinfo.dil.model.AmstruckPurplan; import com.steerinfo.dil.model.AmstruckPurplanMaterial; import com.steerinfo.dil.service.IAmstruckPurplanService; 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.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * AmstruckPurplan服务实现: * @author TXF * @version 1.0-SNAPSHORT 2021-09-02 10:38 * 类描述 * 修订历史: * 日期:2021-09-02 * 作者:generator * 参考: * 描述:AmstruckPurplan服务实现 * @see null * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved. */ @Service(value = "amstruckPurplanService") public class AmstruckPurplanServiceImpl implements IAmstruckPurplanService { @Autowired private AmstruckPurplanMapper amstruckPurplanMapper; @Autowired private AmstruckPurplanMaterialMapper amstruckPurplanMaterialMapper; /** * 查询所有运输计划 * @param map * @return */ @Override public List> getAllPurPlan(Map map) { return amstruckPurplanMapper.getAllPurPlan(map); } /** * 通过主键Id查询运输计划 * @param planId * @return */ @Override public List> getPurPlanById(Integer planId) { return amstruckPurplanMapper.getPurPlanById(planId); } /** * 新增运输计划 * @param amstruckPurplan * @return */ @Override @Transactional public int addPurPlan(AmstruckPurplan amstruckPurplan) { //生成主键Id long id; BigDecimal maxId = amstruckPurplanMapper.selectMaxId(); id = maxId == null ? 1 : maxId.longValue() + 1; BigDecimal planId = new BigDecimal(id); amstruckPurplan.setPlanId(planId); //生成运输计划号 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String planNumber = "WYSJF" + sdf.format(new Date()); planNumber += id < 10 ? "0000000" + id : id < 100 ? "000000" + id : id < 1000 ? "00000" + id : id < 10000 ? "0000" + id : id < 100000 ? "000" + id : id < 1000000 ? "00" + id : id < 10000000 ? "0" + id : id; amstruckPurplan.setPlanNo(planNumber); //新增状态为未下发:0 amstruckPurplan.setPlanStatus(new BigDecimal(0)); //记录创建人 amstruckPurplan.setInsertUsername("admin"); //生成子表数据 AmstruckPurplanMaterial amstruckPurplanMaterial = new AmstruckPurplanMaterial(); //生成主键 long childId; BigDecimal selectMaxId = amstruckPurplanMaterialMapper.selectMaxId(); childId = selectMaxId == null? 1 :selectMaxId.longValue() + 1; amstruckPurplanMaterial.setPurplanPlanMaterialId(new BigDecimal(childId)); //设置父表主键 amstruckPurplanMaterial.setPlanId(planId); //设置子表未分配数量重量 = 总重量 amstruckPurplanMaterial.setMaterialUnallocatedWeight(amstruckPurplan.getMaterialTotalWeight()); //设置已分配重量 初始为 0 amstruckPurplanMaterial.setMaterialAllocatedWeight(new BigDecimal(0)); int i = amstruckPurplanMaterialMapper.insertSelective(amstruckPurplanMaterial); int i1 = amstruckPurplanMapper.insertSelective(amstruckPurplan); return i + i1; } /** * 修改运输计划 * @param amstruckPurplan * @return */ @Override @Transactional public int updatePurPlan(AmstruckPurplan amstruckPurplan) { int i = amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan); //通过计划ID查询子表主键ID BigDecimal childId = amstruckPurplanMaterialMapper.getChildIdByPlanId(amstruckPurplan.getPlanId()); //修改子表数据未分配物资重量 AmstruckPurplanMaterial amstruckPurplanMaterial = new AmstruckPurplanMaterial(); amstruckPurplanMaterial.setId(childId); amstruckPurplanMaterial.setMaterialUnallocatedWeight(amstruckPurplan.getMaterialTotalWeight()); int i1 = amstruckPurplanMaterialMapper.updateByPrimaryKeySelective(amstruckPurplanMaterial); return i + i1; } /** * 逻辑删除运输计划 3 * @param amstruckPurplan * @return */ @Override public int deletePurPlan(AmstruckPurplan amstruckPurplan) { return amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan); } /** * 下发运输计划 * @param amstruckPurplan * @return */ @Override public int sendPurPlan(AmstruckPurplan amstruckPurplan) { //记录下发计划时间 amstruckPurplan.setInsertTime(new Date()); return amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan); } /** * 接收运输计划 * @param amstruckPurplan * @return */ @Override public int receptionPurPlan(AmstruckPurplan amstruckPurplan) { //记录接收计划时间 amstruckPurplan.setUpdateTime((new Date())); return amstruckPurplanMapper.updateByPrimaryKeySelective(amstruckPurplan); } }