refactor(system): 优化 BOM 和工艺路线相关逻辑
- 添加 jcifs 依赖用于共享文件夹操作 - 优化 BOM明细和工艺路线的数据处理逻辑 - 修复材料单位为根时的数量处理问题 - 优化材料属性的设置和处理 - 调整工艺路线的查询和更新逻辑 - 优化日志输出和错误处理
This commit is contained in:
parent
b297a172fe
commit
31240dee30
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
|
||||||
<!-- Spring框架基本的核心工具 -->
|
<!-- Spring框架基本的核心工具 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
@ -212,7 +213,12 @@
|
|||||||
<version>9.1.9490</version>
|
<version>9.1.9490</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- jcifs 共享文件夹目录 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>eu.agno3.jcifs</groupId>
|
||||||
|
<artifactId>jcifs-ng</artifactId>
|
||||||
|
<version>2.1.9</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.xiaoymin</groupId>
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
<artifactId>knife4j-springdoc-ui</artifactId>
|
<artifactId>knife4j-springdoc-ui</artifactId>
|
||||||
|
|||||||
@ -722,6 +722,8 @@ public class BomDetailsController extends BaseController {
|
|||||||
fTreeEntityItem.addProperty("F_HBYT_BJBM", details.getPartdiagramCode());
|
fTreeEntityItem.addProperty("F_HBYT_BJBM", details.getPartdiagramCode());
|
||||||
fTreeEntityItem.addProperty("F_HBYT_BJMC", details.getPartdiagramName());
|
fTreeEntityItem.addProperty("F_HBYT_BJMC", details.getPartdiagramName());
|
||||||
fTreeEntityItem.addProperty("FDOSAGETYPE", "2");
|
fTreeEntityItem.addProperty("FDOSAGETYPE", "2");
|
||||||
|
//判断这个在原材料表中单位如果是根,的话 那分子就是1 分母就是分子
|
||||||
|
|
||||||
fTreeEntityItem.addProperty("FNUMERATOR", details.getQuantity());
|
fTreeEntityItem.addProperty("FNUMERATOR", details.getQuantity());
|
||||||
fTreeEntityItem.addProperty("FDENOMINATOR", details.getDenominator());
|
fTreeEntityItem.addProperty("FDENOMINATOR", details.getDenominator());
|
||||||
|
|
||||||
|
|||||||
@ -647,7 +647,7 @@ public class ProcessRouteController extends BaseController {
|
|||||||
materialBom.setUnit(materialUsageDTO.getChildUnit());
|
materialBom.setUnit(materialUsageDTO.getChildUnit());
|
||||||
materialBom.setMaterialType(materialUsageDTO.getCaizhi());
|
materialBom.setMaterialType(materialUsageDTO.getCaizhi());
|
||||||
//保留四位小数
|
//保留四位小数
|
||||||
materialBom.setQuantity( new BigDecimal(materialUsageDTO.getFenzi()).divide(new BigDecimal(materialUsageDTO.getFenmu()),2, RoundingMode.HALF_UP));
|
materialBom.setQuantity( new BigDecimal(materialUsageDTO.getFenzi()).divide(new BigDecimal(materialUsageDTO.getFenmu()),4, RoundingMode.HALF_UP));
|
||||||
|
|
||||||
return materialBom;
|
return materialBom;
|
||||||
}
|
}
|
||||||
@ -659,8 +659,9 @@ public class ProcessRouteController extends BaseController {
|
|||||||
bomDetails.setFName(materialAndRoute.getMaterialName());
|
bomDetails.setFName(materialAndRoute.getMaterialName());
|
||||||
bomDetails.setPartNumber(materialUsageDTO.getMaterialCode());
|
bomDetails.setPartNumber(materialUsageDTO.getMaterialCode());
|
||||||
bomDetails.setUnitWeight("是");
|
bomDetails.setUnitWeight("是");
|
||||||
|
bomDetails.setWareHouse(materialUsageDTO.getChildUnit());
|
||||||
//子项分子
|
//子项分子
|
||||||
bomDetails.setQuantity(Double.valueOf(materialUsageDTO.getFenzi()));
|
bomDetails.setQuantity(materialUsageDTO.getFenzi());
|
||||||
//子项分母
|
//子项分母
|
||||||
bomDetails.setDenominator(Double.valueOf(materialUsageDTO.getFenmu()));
|
bomDetails.setDenominator(Double.valueOf(materialUsageDTO.getFenmu()));
|
||||||
bomDetails.setName(materialUsageDTO.getMaterialName());
|
bomDetails.setName(materialUsageDTO.getMaterialName());
|
||||||
@ -703,7 +704,8 @@ public class ProcessRouteController extends BaseController {
|
|||||||
processRoute.setFirstBatchQuantity(Double.valueOf(materialAndRoute.getDantai()));
|
processRoute.setFirstBatchQuantity(Double.valueOf(materialAndRoute.getDantai()));
|
||||||
List<MaterialUseDTO> materialUsageDTOList = materialAndRoute.getMaterialUseDTOS();
|
List<MaterialUseDTO> materialUsageDTOList = materialAndRoute.getMaterialUseDTOS();
|
||||||
for (MaterialUseDTO materialUsageDTO : materialUsageDTOList) {
|
for (MaterialUseDTO materialUsageDTO : materialUsageDTOList) {
|
||||||
processRoute.setUnitQuantity(Double.valueOf(materialUsageDTO.getFenzi()));
|
processRoute.setUnitQuantity(materialUsageDTO.getFenzi());
|
||||||
|
processRoute.setBomMaterial(materialUsageDTO.getCaizhi());
|
||||||
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
||||||
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
||||||
processRoute.setBomUnit(materialUsageDTO.getChildUnit());
|
processRoute.setBomUnit(materialUsageDTO.getChildUnit());
|
||||||
@ -783,6 +785,7 @@ public class ProcessRouteController extends BaseController {
|
|||||||
List<MaterialUsageDTO> materialUsageDTOList = combinedDTO.getMaterialUsageDTOList();
|
List<MaterialUsageDTO> materialUsageDTOList = combinedDTO.getMaterialUsageDTOList();
|
||||||
for (MaterialUsageDTO materialUsageDTO : materialUsageDTOList) {
|
for (MaterialUsageDTO materialUsageDTO : materialUsageDTOList) {
|
||||||
processRoute.setUnitQuantity(materialUsageDTO.getFNumerator());
|
processRoute.setUnitQuantity(materialUsageDTO.getFNumerator());
|
||||||
|
processRoute.setBomMaterial(materialUsageDTO.getChildMaterial());
|
||||||
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
||||||
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
||||||
processRoute.setBomUnit(materialUsageDTO.getUnit());
|
processRoute.setBomUnit(materialUsageDTO.getUnit());
|
||||||
@ -805,6 +808,7 @@ public class ProcessRouteController extends BaseController {
|
|||||||
bomDetails.setFName(combinedDTO.getMaterialName());
|
bomDetails.setFName(combinedDTO.getMaterialName());
|
||||||
bomDetails.setPartNumber(materialUsageDTO.getMaterialCode());
|
bomDetails.setPartNumber(materialUsageDTO.getMaterialCode());
|
||||||
bomDetails.setUnitWeight("是");
|
bomDetails.setUnitWeight("是");
|
||||||
|
bomDetails.setWareHouse(materialUsageDTO.getUnit());
|
||||||
//子项分子
|
//子项分子
|
||||||
bomDetails.setQuantity(materialUsageDTO.getFNumerator());
|
bomDetails.setQuantity(materialUsageDTO.getFNumerator());
|
||||||
//子项分母
|
//子项分母
|
||||||
@ -866,7 +870,7 @@ public class ProcessRouteController extends BaseController {
|
|||||||
.headRowNumber(3)
|
.headRowNumber(3)
|
||||||
.doRead();
|
.doRead();
|
||||||
List<ProcessRouteVo> list = listener.getExcelResult().getList();
|
List<ProcessRouteVo> list = listener.getExcelResult().getList();
|
||||||
List<JDMaterialAndRoute> list1 = iProcessRouteService.getProcessRouteGD(list);
|
List<JDMaterialAndRoute> list1 = iProcessRouteService.getProcessRouteGD(list);
|
||||||
|
|
||||||
List<BomDetails> bomDetailsList = new ArrayList<>();
|
List<BomDetails> bomDetailsList = new ArrayList<>();
|
||||||
List<ProcessRoute> routeList = new ArrayList<>();
|
List<ProcessRoute> routeList = new ArrayList<>();
|
||||||
|
|||||||
@ -23,7 +23,7 @@ public class MaterialUseDTO
|
|||||||
private String materialName;
|
private String materialName;
|
||||||
//分子
|
//分子
|
||||||
@JsonProperty("FNUMERATOR")
|
@JsonProperty("FNUMERATOR")
|
||||||
private Integer fenzi;
|
private Double fenzi;
|
||||||
//分母
|
//分母
|
||||||
@JsonProperty("FDENOMINATOR")
|
@JsonProperty("FDENOMINATOR")
|
||||||
private Integer fenmu;
|
private Integer fenmu;
|
||||||
|
|||||||
@ -117,7 +117,7 @@ public class updatePcessPlanConver {
|
|||||||
if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
|
if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
|
||||||
System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult()));
|
System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult()));
|
||||||
} else {
|
} else {
|
||||||
fail("接口返回结果: " + gson.toJson(repoRet.getResult().getResponseStatus()));
|
fail("接口返回结果: " + gson.toJson(repoRet.getResult().getResponseStatus().getErrors().get(1)));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
fail(e.getMessage());
|
fail(e.getMessage());
|
||||||
|
|||||||
@ -76,21 +76,21 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
return baseMapper.selectVoList(lqw);
|
return baseMapper.selectVoList(lqw);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* private LambdaQueryWrapper<BomDetails> buildQueryWrapper(BomDetailsBo bo) {
|
/* private LambdaQueryWrapper<BomDetails> buildQueryWrapper(BomDetailsBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
Map<String, Object> params = bo.getParams();
|
||||||
LambdaQueryWrapper<BomDetails> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<BomDetails> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getPartNumber()), BomDetails::getPartNumber, bo.getPartNumber());
|
lqw.eq(StringUtils.isNotBlank(bo.getPartNumber()), BomDetails::getPartNumber, bo.getPartNumber());
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getName()), BomDetails::getName, bo.getName());
|
lqw.like(StringUtils.isNotBlank(bo.getName()), BomDetails::getName, bo.getName());
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getFName()), BomDetails::getFName, bo.getFName());
|
lqw.like(StringUtils.isNotBlank(bo.getFName()), BomDetails::getFName, bo.getFName());
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getFNumber()), BomDetails::getFNumber, bo.getFNumber());
|
lqw.like(StringUtils.isNotBlank(bo.getFNumber()), BomDetails::getFNumber, bo.getFNumber());
|
||||||
lqw.eq(bo.getQuantity() != null, BomDetails::getQuantity, bo.getQuantity());
|
lqw.eq(bo.getQuantity() != null, BomDetails::getQuantity, bo.getQuantity());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getMaterial()), BomDetails::getMaterial, bo.getMaterial());
|
lqw.eq(StringUtils.isNotBlank(bo.getMaterial()), BomDetails::getMaterial, bo.getMaterial());
|
||||||
lqw.eq(bo.getUnitWeight() != null, BomDetails::getUnitWeight, bo.getUnitWeight());
|
lqw.eq(bo.getUnitWeight() != null, BomDetails::getUnitWeight, bo.getUnitWeight());
|
||||||
lqw.eq(bo.getTotalWeight() != null, BomDetails::getTotalWeight, bo.getTotalWeight());
|
lqw.eq(bo.getTotalWeight() != null, BomDetails::getTotalWeight, bo.getTotalWeight());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), BomDetails::getRemarks, bo.getRemarks());
|
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), BomDetails::getRemarks, bo.getRemarks());
|
||||||
lqw.orderByAsc(BomDetails::getTotalWeight);
|
lqw.orderByAsc(BomDetails::getTotalWeight);
|
||||||
return lqw;
|
return lqw;
|
||||||
}*/
|
}*/
|
||||||
private LambdaQueryWrapper<BomDetails> buildQueryWrapper(BomDetailsBo bo) {
|
private LambdaQueryWrapper<BomDetails> buildQueryWrapper(BomDetailsBo bo) {
|
||||||
Map<String, Object> params = bo.getParams();
|
Map<String, Object> params = bo.getParams();
|
||||||
LambdaQueryWrapper<BomDetails> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<BomDetails> lqw = Wrappers.lambdaQuery();
|
||||||
@ -109,6 +109,7 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
lqw.orderByAsc(BomDetails::getTotalWeight);
|
lqw.orderByAsc(BomDetails::getTotalWeight);
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增bom明细
|
* 新增bom明细
|
||||||
*/
|
*/
|
||||||
@ -124,6 +125,7 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean insertByVo(BomDetailsVo vo) {
|
public Boolean insertByVo(BomDetailsVo vo) {
|
||||||
BomDetails add = BeanUtil.toBean(vo, BomDetails.class);
|
BomDetails add = BeanUtil.toBean(vo, BomDetails.class);
|
||||||
@ -134,6 +136,7 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改bom明细
|
* 修改bom明细
|
||||||
*/
|
*/
|
||||||
@ -147,7 +150,7 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(BomDetails entity){
|
private void validEntityBeforeSave(BomDetails entity) {
|
||||||
//TODO 做一些数据校验,如唯一约束
|
//TODO 做一些数据校验,如唯一约束
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,7 +159,7 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
if(isValid){
|
if (isValid) {
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
@ -171,18 +174,18 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BomDetails> selectByFNumber1(String fNumber,String partNumber,String partName) {
|
public List<BomDetails> selectByFNumber1(String fNumber, String partNumber, String partName) {
|
||||||
LambdaQueryWrapper<BomDetails> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<BomDetails> lqw = Wrappers.lambdaQuery();
|
||||||
lqw.eq(StringUtils.isNotBlank(fNumber), BomDetails::getFNumber, fNumber);
|
lqw.eq(StringUtils.isNotBlank(fNumber), BomDetails::getFNumber, fNumber);
|
||||||
lqw.eq(StringUtils.isNotBlank(partNumber),BomDetails::getPartNumber,partNumber);
|
lqw.eq(StringUtils.isNotBlank(partNumber), BomDetails::getPartNumber, partNumber);
|
||||||
lqw.eq(StringUtils.isNotBlank(partName),BomDetails::getFName,partName);
|
lqw.eq(StringUtils.isNotBlank(partName), BomDetails::getFName, partName);
|
||||||
return baseMapper.selectList(lqw);
|
return baseMapper.selectList(lqw);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BomDetails selectBOMFNumber(String fnumbers) {
|
public BomDetails selectBOMFNumber(String fnumbers) {
|
||||||
LambdaQueryWrapper<BomDetails> wrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<BomDetails> wrapper = Wrappers.lambdaQuery();
|
||||||
wrapper.eq(BomDetails::getFNumber,fnumbers);
|
wrapper.eq(BomDetails::getFNumber, fnumbers);
|
||||||
return baseMapper.selectOne(wrapper);
|
return baseMapper.selectOne(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,6 +209,7 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
|
|
||||||
// 使用Map缓存MaterialBom,避免双重循环带来的性能问题
|
// 使用Map缓存MaterialBom,避免双重循环带来的性能问题
|
||||||
if (!materialBoms.isEmpty() && !bomDetails.isEmpty()) {
|
if (!materialBoms.isEmpty() && !bomDetails.isEmpty()) {
|
||||||
|
|
||||||
Map<String, MaterialBom> materialBomMap = materialBoms.stream()
|
Map<String, MaterialBom> materialBomMap = materialBoms.stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
mb -> mb.getMaterialCode() + "-" + mb.getMaterialName(),
|
mb -> mb.getMaterialCode() + "-" + mb.getMaterialName(),
|
||||||
@ -217,7 +221,13 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
String key = bomDetail.getPartNumber() + "-" + bomDetail.getName();
|
String key = bomDetail.getPartNumber() + "-" + bomDetail.getName();
|
||||||
MaterialBom matchedMaterialBom = materialBomMap.get(key);
|
MaterialBom matchedMaterialBom = materialBomMap.get(key);
|
||||||
if (matchedMaterialBom != null) {
|
if (matchedMaterialBom != null) {
|
||||||
bomDetail.setQuantity(Double.valueOf(String.valueOf(matchedMaterialBom.getQuantity())));
|
if (matchedMaterialBom.getUnit().equals("根")) {
|
||||||
|
bomDetail.setQuantity(1.0);
|
||||||
|
bomDetail.setDenominator(Double.valueOf(String.valueOf(matchedMaterialBom.getQuantity())));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
bomDetail.setQuantity(Double.valueOf(String.valueOf(matchedMaterialBom.getQuantity())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -242,10 +252,10 @@ public class BomDetailsServiceImpl implements IBomDetailsService {
|
|||||||
model.addProperty("FNumber", bomDetails1.getPartNumber());
|
model.addProperty("FNumber", bomDetails1.getPartNumber());
|
||||||
model.addProperty("FName", bomDetails1.getName());
|
model.addProperty("FName", bomDetails1.getName());
|
||||||
MaterialProperties materialProperties = iMaterialPropertiesService.selectByAttribute(bomDetails1.getMaterial());
|
MaterialProperties materialProperties = iMaterialPropertiesService.selectByAttribute(bomDetails1.getMaterial());
|
||||||
if (materialProperties!=null){
|
if (materialProperties != null) {
|
||||||
JsonObject FSVRIAssistant = new JsonObject();
|
JsonObject FSVRIAssistant = new JsonObject();
|
||||||
FSVRIAssistant.addProperty("FNumber", materialProperties.getMaterialAttributeId());
|
FSVRIAssistant.addProperty("FNumber", materialProperties.getMaterialAttributeId());
|
||||||
model.add("F_SVRI_Assistant",FSVRIAssistant);
|
model.add("F_SVRI_Assistant", FSVRIAssistant);
|
||||||
}
|
}
|
||||||
// 创建FMaterialGroup对象,并加入Model
|
// 创建FMaterialGroup对象,并加入Model
|
||||||
JsonObject fMaterialGroup = new JsonObject();
|
JsonObject fMaterialGroup = new JsonObject();
|
||||||
|
|||||||
@ -50,6 +50,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.math.MathContext;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -197,11 +199,13 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
bomDetailsVo.setRouteDescription(bomDetail.getTotalWeight());
|
bomDetailsVo.setRouteDescription(bomDetail.getTotalWeight());
|
||||||
bomDetailsVo.setMaterialCode(bomDetail.getFNumber());
|
bomDetailsVo.setMaterialCode(bomDetail.getFNumber());
|
||||||
bomDetailsVo.setMaterialName(bomDetail.getFName());
|
bomDetailsVo.setMaterialName(bomDetail.getFName());
|
||||||
bomDetailsVo.setMaterial(bomDetail.getMaterial());
|
bomDetailsVo.setMaterial(processRoute.getMaterial());
|
||||||
bomDetailsVo.setDiscUsage(bomDetail.getQuantity());
|
bomDetailsVo.setDiscUsage(bomDetail.getQuantity());
|
||||||
bomDetailsVo.setRawMaterialCode(bomDetail.getPartNumber());
|
bomDetailsVo.setRawMaterialCode(bomDetail.getPartNumber());
|
||||||
bomDetailsVo.setRawMaterialName(bomDetail.getName());
|
bomDetailsVo.setRawMaterialName(bomDetail.getName());
|
||||||
|
bomDetailsVo.setBomMaterial(processRoute.getBomMaterial());
|
||||||
bomDetailsVo.setBomUnit(bomDetail.getWareHouse());
|
bomDetailsVo.setBomUnit(bomDetail.getWareHouse());
|
||||||
|
bomDetailsVo.setBomDanZhong(processRoute.getBomDanZhong());
|
||||||
|
|
||||||
|
|
||||||
// 找到对应的 ProcessRouteVo 位置并插入
|
// 找到对应的 ProcessRouteVo 位置并插入
|
||||||
@ -261,7 +265,6 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//表格错乱错行了
|
//表格错乱错行了
|
||||||
|
|
||||||
JDMaterialAndRoute jdMaterialAndRoute = new JDMaterialAndRoute();
|
JDMaterialAndRoute jdMaterialAndRoute = new JDMaterialAndRoute();
|
||||||
jdMaterialAndRoute.setMaterialCode(processRoute.getRouteDescription());
|
jdMaterialAndRoute.setMaterialCode(processRoute.getRouteDescription());
|
||||||
jdMaterialAndRoute.setMaterialName(processRoute.getMaterialCode());
|
jdMaterialAndRoute.setMaterialName(processRoute.getMaterialCode());
|
||||||
@ -704,8 +707,16 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
materialBom.setMaterialName(processRoute.getRawMaterialName());
|
materialBom.setMaterialName(processRoute.getRawMaterialName());
|
||||||
materialBom.setUnit(unit);
|
materialBom.setUnit(unit);
|
||||||
materialBom.setMaterialType(materialType);
|
materialBom.setMaterialType(materialType);
|
||||||
//保留4位小数
|
// 保留4位小数,转换成米(当单位为 mm 时)
|
||||||
materialBom.setQuantity(new BigDecimal(quantity));
|
if ("mm".equals(unit)) {
|
||||||
|
// 将毫米转换为米并保留4位小数
|
||||||
|
materialBom.setQuantity(new BigDecimal(quantity).divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP));
|
||||||
|
} else {
|
||||||
|
// 其他单位直接使用原值,保留2位小数
|
||||||
|
materialBom.setQuantity(new BigDecimal(quantity).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 这里插入 materialBom 数据
|
// 这里插入 materialBom 数据
|
||||||
materialBomMapper.insert(materialBom);
|
materialBomMapper.insert(materialBom);
|
||||||
}
|
}
|
||||||
@ -1557,7 +1568,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
for (Model numDTO : numDTOS) {
|
for (Model numDTO : numDTOS) {
|
||||||
tasks.add(() -> {
|
tasks.add(() -> {
|
||||||
for (ProcessRoute processRoute : rawBomList) {
|
for (ProcessRoute processRoute : rawBomList) {
|
||||||
ProcessTimeInfo processTimeInfo = selectProcessRouteByMaterialCode(numDTO.getFProcessId_number());
|
ProcessTimeInfo processTimeInfo = selectProcessRouteByMaterialCode(numDTO.getFProcessId_number(),rooteProdet);
|
||||||
if (numDTO.getFProcessId_number().equals(processRoute.getMaterialCode())) {
|
if (numDTO.getFProcessId_number().equals(processRoute.getMaterialCode())) {
|
||||||
numDTO.setFPlanStartTime(processTimeInfo.getTenthProcessStartTime());
|
numDTO.setFPlanStartTime(processTimeInfo.getTenthProcessStartTime());
|
||||||
numDTO.setFPlanFinishTime(processTimeInfo.getLastProcessEndTime());
|
numDTO.setFPlanFinishTime(processTimeInfo.getLastProcessEndTime());
|
||||||
@ -1597,7 +1608,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
log.info("更新成功" + repoRet.getResult().getResponseStatus().getSuccessEntitys().toString());
|
log.info("更新成功" + repoRet.getResult().getResponseStatus().getSuccessEntitys().toString());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
log.info("更新失败" + repoRet.getResult().getResponseStatus().getErrors().toString());
|
log.info("更新失败" + repoRet.getResult().getResponseStatus().getErrors().get(0));
|
||||||
}
|
}
|
||||||
return numDTOS;
|
return numDTOS;
|
||||||
}
|
}
|
||||||
@ -2017,9 +2028,10 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
return dateTime.format(formatter);
|
return dateTime.format(formatter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProcessTimeInfo selectProcessRouteByMaterialCode(String materialCode) {
|
public ProcessTimeInfo selectProcessRouteByMaterialCode(String materialCode,String rooteProdet) {
|
||||||
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(ProcessRoute::getMaterialCode, materialCode);
|
wrapper.eq(ProcessRoute::getMaterialCode, materialCode)
|
||||||
|
.eq(ProcessRoute::getRouteDescription, rooteProdet);
|
||||||
List<ProcessRoute> processRoutes = baseMapper.selectList(wrapper);
|
List<ProcessRoute> processRoutes = baseMapper.selectList(wrapper);
|
||||||
ProcessTimeInfo timeInfo = new ProcessTimeInfo(); // 创建返回对象
|
ProcessTimeInfo timeInfo = new ProcessTimeInfo(); // 创建返回对象
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user