package com.yuanchu.mom.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.yuanchu.mom.mapper.*;
|
import com.yuanchu.mom.pojo.*;
|
import com.yuanchu.mom.service.OrdersService;
|
import com.yuanchu.mom.utils.MyUtil;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 订单(Order)表服务实现类
|
*
|
* @author zss
|
* @since 2023-07-31 11:57:44
|
*/
|
@Service("orderService")
|
public class OrdersServiceImpl implements OrdersService {
|
|
@Resource
|
SaleMapper saleMapper;
|
|
@Resource
|
SaleMaterialMapper saleMaterialMapper;
|
|
@Resource
|
ManufactureOrderMapper manufactureOrderMapper;
|
|
@Resource
|
ManualTechnologyMapper manualTechnologyMapper;
|
|
@Resource
|
SpecificationsMapper specificationsMapper;
|
|
@Resource
|
TechnologyMapper technologyMapper;
|
|
|
|
//查询所有订单列表
|
@Override
|
public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type , String time) {
|
return saleMapper.selectAllOrder(page, orderCode,name,type, time);
|
}
|
|
//编制订单BOM
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void compile(Integer id) {
|
/*更改订单BOM的状态为已编制1*/
|
SaleMaterial saleMaterial = saleMaterialMapper.selectById(id);
|
saleMaterial.setType(1);
|
saleMaterialMapper.updateById(saleMaterial);
|
/*新增生产订单+编制工序*/
|
//查询订单信息
|
Sale sale = saleMapper.selectById(saleMaterial.getSaleId());
|
ManufactureOrder manufactureOrder = ManufactureOrder.builder()
|
.orderCode(sale.getOrderNumber())
|
.customerCode(sale.getCode())
|
.proname(sale.getProname())
|
.saleman(sale.getSaleman())
|
.name(saleMaterial.getName())
|
.specifications(saleMaterial.getSpecifications())
|
.unit(saleMaterial.getUnit())
|
.number(saleMaterial.getNumber())
|
.downtime(sale.getCreateTime())
|
.deltime(sale.getDelTime())
|
.qualityTraceability(MyUtil.getTimeSixNumberCode("GPT", "GPT"))
|
.downman(sale.getOrderName())
|
.build();
|
//新增生产订单
|
manufactureOrderMapper.insert(manufactureOrder);
|
//查询产品的工序
|
String[] split = manufactureOrder.getSpecifications().split("-");
|
Specifications specifications = specificationsMapper.selectOne(Wrappers.<Specifications>query().eq("name", split[1]));
|
List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query().eq("specifications_id", specifications.getId()));
|
for (Technology technology : technologyList) {
|
ManualTechnology manualTechnology = ManualTechnology.builder()
|
.techname(technology.getName())
|
.techfather(technology.getFather())
|
.deviceGroup(technology.getDeviceGroup())
|
.manufactureOrderId(manufactureOrder.getId())
|
.period((int) Math.ceil((double)manufactureOrder.getNumber()/technology.getProductionQuota()))
|
.build();
|
//新增编制工序表
|
manualTechnologyMapper.insert(manualTechnology);
|
}
|
}
|
|
}
|