现场新需求提交

This commit is contained in:
psh
2024-05-17 17:32:04 +08:00
parent 90cb23708a
commit 4f4ee3f59d
9 changed files with 327 additions and 13 deletions

View File

@@ -0,0 +1,38 @@
package org.nl.wms.sch.data.controller;
import org.nl.wms.sch.data.service.MaterialDataService;
import org.nl.wms.sch.data.service.dto.MaterialDataDto;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
/**
* @author psh
* @date 2024-05-17
**/
@RestController
@RequiredArgsConstructor
@Api(tags = "data管理")
@RequestMapping("/api/materialData")
@Slf4j
public class MaterialDataController {
private final MaterialDataService materialDataService;
@GetMapping
@ApiOperation("查询data")
//@PreAuthorize("@el.check('materialData:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(materialDataService.queryAll(whereJson,page),HttpStatus.OK);
}
}

View File

@@ -0,0 +1,28 @@
package org.nl.wms.sch.data.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.sch.data.service.dto.MaterialDataDto;
import org.nl.wms.sch.material.service.dao.Material;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @description 服务接口
* @author psh
* @date 2024-05-17
**/
public interface MaterialDataService extends IService<MaterialDataDto> {
/**
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
}

View File

@@ -0,0 +1,13 @@
package org.nl.wms.sch.data.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.sch.data.service.dto.MaterialDataDto;
import org.nl.wms.sch.material.service.dao.Material;
/**
* @author lyd
* @date 2023-05-16
**/
public interface MaterialDataMapper extends BaseMapper<MaterialDataDto> {
}

View File

@@ -0,0 +1,48 @@
package org.nl.wms.sch.data.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.math.BigDecimal;
import java.io.Serializable;
/**
* @description /
* @author psh
* @date 2024-05-17
**/
@Data
public class MaterialDataDto implements Serializable {
/** 客户编码 */
private String supplierCode;
/** 客户名称 */
private String supplierName;
/** 物料编码 */
private String productName;
/** 规格 */
private String specification;
/** 来料批次 */
private String batch;
/** 棒源等级 */
private String barLevel;
/** 领料批次 */
private String pickingBatch;
/** 长度 */
private BigDecimal length;
/** 重量 */
private BigDecimal weight;
/** 日期 */
private Timestamp createTime;
/** 操作类型1-来料2-领料 */
private Integer type;
}

View File

@@ -0,0 +1,70 @@
package org.nl.wms.sch.data.service.dto;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
/**
* @description /
* @author psh
* @date 2024-05-17
**/
@Data
public class MaterialDataQuery implements Serializable {
/** 客户编码 */
private String supplierCode;
/** 客户名称 */
private String supplierName;
/** 物料编码 */
private String productName;
/** 规格 */
private String specification;
/** 来料批次 */
private String batch;
/** 棒源等级 */
private String barLevel;
/** 领料批次 */
private String pickingBatch;
/** 长度 */
private BigDecimal length;
/** 重量 */
private BigDecimal weight;
/** 日期 */
private Timestamp createTime;
/** 上月长度 */
private BigDecimal sy_length;
/** 上月重量 */
private BigDecimal sy_weight;
/** 来料长度 */
private BigDecimal ll_length;
/** 来料重量 */
private BigDecimal ll_weight;
/** 生产长度 */
private BigDecimal sc_length;
/** 生产重量 */
private BigDecimal sc_weight;
/** 结存长度 */
private BigDecimal jc_length;
/** 结存重量 */
private BigDecimal jc_weight;
}

View File

@@ -0,0 +1,44 @@
package org.nl.wms.sch.data.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.sch.data.service.MaterialDataService;
import org.nl.wms.sch.data.service.dao.mapper.MaterialDataMapper;
import org.nl.wms.sch.data.service.dto.MaterialDataDto;
import org.nl.wms.sch.material.service.dao.Material;
import org.nl.wms.sch.material.service.dao.mapper.MaterialMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Pageable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import cn.hutool.core.util.ObjectUtil;
/**
* @description 服务实现
* @author psh
* @date 2024-05-17
**/
@Service
@RequiredArgsConstructor
@Slf4j
public class MaterialDataServiceImpl extends ServiceImpl<MaterialDataMapper, MaterialDataDto> implements MaterialDataService {
@Override
public Map<String,Object> queryAll(Map whereJson, Pageable page){
//todo
return new HashMap<>();
}
}

View File

@@ -56,6 +56,9 @@ public class Material implements Serializable {
private String incomingchipping;
@ApiModelProperty(value = "绑定状态")
private String group_bind_material_status;
@ApiModelProperty(value = "棒源等级")
private String barLevel;
public void copyFrom(QPMES060RequestBody source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.task_manage.task.tasks;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -17,6 +18,8 @@ import org.nl.wms.mes.domain.QPMES065Request;
import org.nl.wms.mes.domain.QPMES065RequestBody;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.data.service.dao.mapper.MaterialDataMapper;
import org.nl.wms.sch.data.service.dto.MaterialDataDto;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.material.service.dao.Material;
@@ -40,9 +43,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -74,6 +75,8 @@ public class YCLCKTask extends AbstractTask {
private PointMapper pointMapper;
@Autowired
private MaterialMapper materialMapper;
@Autowired
private MaterialDataMapper materialDataMapper;
@Override
@@ -228,11 +231,10 @@ public class YCLCKTask extends AbstractTask {
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setGroup_id(ObjectUtil.isNotEmpty(one)?one.getGroup_id():null);
taskObj.setRemark("任务完成");
List<Material> materialList = materialMapper.selectList(new LambdaQueryWrapper<Material>()
.eq(Material::getPalletSN, taskObj.getVehicle_code2())
.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()));
try {
//todo 待确认具体传值
List<Material> materialList = materialMapper.selectList(new LambdaQueryWrapper<Material>()
.eq(Material::getPalletSN, taskObj.getVehicle_code2())
.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()));
if (ObjectUtil.isNotEmpty(materialList)) {
String url = "http://192.168.9.124/sitAppWebApi/PDSToWMS/Api/QPMES065";
QPMES065Request qpmes065Request = new QPMES065Request();
@@ -246,7 +248,6 @@ public class YCLCKTask extends AbstractTask {
QPMES065RequestBody qpmes065RequestBody=new QPMES065RequestBody();
double qty=0;
for(Material material:materialList) {
qpmes065RequestBody.setMoname(extGroupData.getString("workorder_code"));
qpmes065RequestBody.setLotSN(material.getPalletSN());
qty+=Double.parseDouble(material.getQty());
@@ -268,6 +269,39 @@ public class YCLCKTask extends AbstractTask {
} catch (Exception e) {
log.error("原材料出库上报MES失败{}", e.getMessage(), e);
}
try{
Map<String, List<Material>> groupedBy = materialList.stream()
.collect(Collectors.groupingBy(Material::getProductName));
if(ObjectUtil.isNotEmpty(groupedBy)) {
Iterator<Map.Entry<String, List<Material>>> iterator = groupedBy.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, List<Material>> next = iterator.next();
List<Material> tempList = next.getValue();
Material material = tempList.get(0);
double length = 0.0;
double weight = 0.0;
for (Material temp : tempList) {
length += Double.parseDouble(temp.getIncomingLength());
weight += Double.parseDouble(temp.getIncomingWeight());
}
MaterialDataDto materialDataDto = new MaterialDataDto();
materialDataDto.setSupplierCode(material.getSupplierCode());
materialDataDto.setSupplierName(material.getSupplierName());
materialDataDto.setProductName(material.getProductName());
materialDataDto.setSpecification(material.getSpecification());
materialDataDto.setPickingBatch(extGroupData.getString("batch"));
materialDataDto.setBarLevel(material.getBarLevel());
materialDataDto.setLength(BigDecimal.valueOf(length));
materialDataDto.setWeight(BigDecimal.valueOf(weight));
materialDataDto.setCreateTime(new DateTime().toTimestamp());
materialDataDto.setType(2);
materialDataMapper.insert(materialDataDto);
}
}
}catch (Exception e){
log.error("原材料入库暂存入库数据失败{}",e.getMessage(),e);
}
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
// 终点解锁

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.task_manage.task.tasks;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -15,6 +16,8 @@ import org.nl.wms.mes.domain.QPMES062Request;
import org.nl.wms.mes.domain.QPMES062RequestBody;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.data.service.dao.mapper.MaterialDataMapper;
import org.nl.wms.sch.data.service.dto.MaterialDataDto;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.material.service.dao.Material;
@@ -38,11 +41,9 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author: psh
@@ -73,6 +74,8 @@ public class YCLRKTask extends AbstractTask {
private PointMapper pointMapper;
@Autowired
private MaterialMapper materialMapper;
@Autowired
private MaterialDataMapper materialDataMapper;
@Override
// @Transactional(rollbackFor = Exception.class)
@@ -239,6 +242,39 @@ public class YCLRKTask extends AbstractTask {
}catch (Exception e){
log.error("原材料入库上报MES失败{}",e.getMessage(),e);
}
try{
Map<String, List<Material>> groupedBy = materialList.stream()
.collect(Collectors.groupingBy(Material::getProductName));
if(ObjectUtil.isNotEmpty(groupedBy)) {
Iterator<Map.Entry<String, List<Material>>> iterator = groupedBy.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, List<Material>> next = iterator.next();
List<Material> tempList=next.getValue();
Material material = tempList.get(0);
double length = 0.0;
double weight = 0.0;
for (Material temp : tempList) {
length += Double.parseDouble(temp.getIncomingLength());
weight += Double.parseDouble(temp.getIncomingWeight());
}
MaterialDataDto materialDataDto = new MaterialDataDto();
materialDataDto.setSupplierCode(material.getSupplierCode());
materialDataDto.setSupplierName(material.getSupplierName());
materialDataDto.setProductName(material.getProductName());
materialDataDto.setSpecification(material.getSpecification());
materialDataDto.setBatch(material.getBatch());
materialDataDto.setBarLevel(material.getBarLevel());
materialDataDto.setLength(BigDecimal.valueOf(length));
materialDataDto.setWeight(BigDecimal.valueOf(weight));
materialDataDto.setCreateTime(new DateTime().toTimestamp());
materialDataDto.setType(1);
materialDataMapper.insert(materialDataDto);
}
}
}catch (Exception e){
log.error("原材料入库暂存入库数据失败{}",e.getMessage(),e);
}
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
// 终点解锁