From 19b596d3c05b1ca7ff80d8b802e7f6e03ad77dad Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 11 九月 2023 18:02:17 +0800
Subject: [PATCH] 修改 9.11
---
inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 115 insertions(+), 5 deletions(-)
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
index 163b889..48c3b9d 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/OrdersServiceImpl.java
@@ -1,14 +1,22 @@
package com.yuanchu.mom.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.mapper.SaleMapper;
+import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.OrdersService;
+import com.yuanchu.mom.service.SpecificationsService;
+import com.yuanchu.mom.service.StandardService;
+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;
+import java.util.Objects;
/**
* 璁㈠崟(Order)琛ㄦ湇鍔″疄鐜扮被
@@ -17,15 +25,117 @@
* @since 2023-07-31 11:57:44
*/
@Service("orderService")
-public class OrdersServiceImpl implements OrdersService {
+public class OrdersServiceImpl implements OrdersService {
@Resource
SaleMapper saleMapper;
+ @Resource
+ MaterialMapper materialMapper;
+
+ @Resource
+ StandardService standardService;
+
+ @Resource
+ SpecificationsService specificationsService;
+
+ @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 state , String time) {
- return saleMapper.selectAllOrder(page, orderCode,name,state, time);
+ 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 code = materialMapper.selMcode(manufactureOrder.getName());
+ //鍨嬪彿id
+ Integer specificationId = getSpecificationId(manufactureOrder.getName(), code, manufactureOrder.getSpecifications());
+ //榛樿鏈�鏂扮増鏈�
+ Integer version = technologyMapper.selectVerByTec(specificationId).get(0);
+ /*姝e簭鏌ヨ璇ュ瀷鍙锋渶鏂扮増鏈笅鐨勫伐鑹鸿矾绾�*/
+ LambdaQueryWrapper<Technology> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Technology::getSpecificationsId,specificationId);
+ queryWrapper.eq(Technology::getVersion,version);
+ queryWrapper.orderByAsc(Technology::getFather);
+ List<Technology> technologyList = technologyMapper.selectList(queryWrapper);
+ for (Technology technology : technologyList) {
+ ManualTechnology manualTechnology = ManualTechnology.builder()
+ .techname(technology.getName())
+ .techfather(technology.getFather())
+ .deviceGroup(technology.getDeviceGroup())
+ .manufactureOrderId(manufactureOrder.getId())
+ .productionQuota(technology.getProductionQuota())
+ .technologyId(technology.getId())
+ .build();
+ //鏂板缂栧埗宸ュ簭琛�
+ manualTechnologyMapper.insert(manualTechnology);
+ }
+ }
+
+ /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+ private Integer getSpecificationId(String name, String mcode, String specification) {
+ //鑾峰彇鐗╂枡id
+ Material material = materialMapper.selectOne(Wrappers.<Material>query()
+ .eq("name", name)
+ .eq("code", mcode));
+ if (Objects.isNull(material)) {
+ return null;
+ }
+ //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+ String[] split = specification.split("-");
+ String stName = split[0];
+ String spName = split[1];
+ //鑾峰彇瑙勬牸id
+ Standard standard = standardService.getOne(Wrappers.<Standard>query()
+ .eq("name", stName)
+ .eq("material_id", material.getId()));
+ //鑾峰彇鍨嬪彿id
+ Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+ .eq("name", spName)
+ .eq("standard_id", standard.getId()));
+ return specifications.getId();
}
}
--
Gitblit v1.9.3