fix:1、新增根据单据获取物料详情接口 2、修改组盘实际数量和分配数量更新规则

This commit is contained in:
zhengxuming
2025-08-12 13:25:29 +08:00
parent dc61857ff2
commit e19c51021b
6 changed files with 84 additions and 12 deletions

View File

@@ -39,6 +39,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -107,7 +108,7 @@ public class GroupController {
if (!CollectionUtils.isEmpty(pmFormDataList)) {
if(groupPlate.getQty().compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) > 0){
if((new BigDecimal(1)).compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) > 0){
throw new BadRequestException("组盘数量大于单据剩余数量,请核对!");
}
@@ -115,18 +116,18 @@ public class GroupController {
throw new BadRequestException("组盘的物料编码与单据的物料编码不一致,请核对!");
}
if (groupPlate.getQty().compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) == 0) {
if ((new BigDecimal(1)).compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) == 0) {
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("已分配"))
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(groupPlate.getQty()))
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(new BigDecimal(1)))
.set(PmFormData::getUpdate_time, DateUtil.now())
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
.eq(PmFormData::getCode, groupPlate.getExt_code()));
} else {
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(groupPlate.getQty()))
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(new BigDecimal(1)))
.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("执行中"))
.set(PmFormData::getUpdate_time, DateUtil.now())
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
@@ -164,7 +165,7 @@ public class GroupController {
//查询PmFormData
for (GroupPlate groupPlate : groupPlateList) {
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>().setSql("assign_qty = assign_qty - " + groupPlate.getQty())
new LambdaUpdateWrapper<PmFormData>().setSql("assign_qty = assign_qty - " + 1)
.eq(PmFormData::getCode, groupPlate.getExt_code()));
//修改点位表中的点位为空载具

View File

@@ -151,6 +151,15 @@ public class PdaIosInController {
return new ResponseEntity<>(pdaIosInService.getFormDataList(whereJson), HttpStatus.OK);
}
/**
* 中钨单据查询
*/
@PostMapping("/getFormMaterial")
@Log("中钨根据单据查询物料")
public ResponseEntity<Object> getFormMaterial(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(pdaIosInService.getFormMaterial(whereJson), HttpStatus.OK);
}
/**
* 拣选余料回库物料查询

View File

@@ -110,6 +110,14 @@ public interface PdaIosInService {
*/
PdaResponse getFormDataList(Map whereJson);
/**
* 查询单据w物料
*
* @return PdaResponse
*/
PdaResponse getFormMaterial(JSONObject whereJson);
/**
* 入库确认
*

View File

@@ -35,6 +35,7 @@ import org.nl.wms.pda_manage.util.PdaResponse;
import org.nl.wms.pm_manage.service.IPmFormDataService;
import org.nl.wms.pm_manage.service.dao.PmFormData;
import org.nl.wms.pm_manage.service.dao.PmFormDataSelectDto;
import org.nl.wms.pm_manage.service.dao.PmFormMaterialDto;
import org.nl.wms.sch_manage.enums.PointStatusEnum;
import org.nl.wms.sch_manage.enums.StatusEnum;
import org.nl.wms.sch_manage.enums.TaskEnum;
@@ -65,6 +66,7 @@ import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDtlMapper;
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -259,7 +261,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
if (!org.springframework.util.CollectionUtils.isEmpty(pmFormDataList)) {
groupDao.setPcsn(pmFormDataList.get(0).getPcsn());
if(groupDao.getQty().compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) > 0){
if((new BigDecimal(1)).compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) > 0){
throw new BadRequestException("组盘数量大于单据剩余数量,请核对!");
}
@@ -267,18 +269,18 @@ public class PdaIosInServiceImpl implements PdaIosInService {
throw new BadRequestException("组盘的物料编码与单据的物料编码不一致,请核对!");
}
if (groupDao.getQty().compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) == 0) {
if ((new BigDecimal(1)).compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getAssign_qty())) == 0) {
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("已分配"))
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(groupDao.getQty()))
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(new BigDecimal(1)))
.set(PmFormData::getUpdate_time, DateUtil.now())
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
.eq(PmFormData::getCode, groupDao.getExt_code()));
} else {
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(groupDao.getQty()))
.set(PmFormData::getAssign_qty, pmFormDataList.get(0).getAssign_qty().add(new BigDecimal(1)))
.set(PmFormData::getStatus,StatusEnum.FORM_STATUS.code("执行中"))
.set(PmFormData::getUpdate_time, DateUtil.now())
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
@@ -366,6 +368,28 @@ public class PdaIosInServiceImpl implements PdaIosInService {
return PdaResponse.requestParamOk(regionList.getRecords());
}
@Override
public PdaResponse getFormMaterial(JSONObject whereJson) {
String ext_code = whereJson.getString("ext_code");
List<PmFormData> pmFormDataList = iPmFormDataService.list(new LambdaUpdateWrapper<PmFormData>()
.eq(PmFormData::getCode, ext_code)
);
if(CollectionUtils.isEmpty(pmFormDataList)){
return PdaResponse.requestOk();
}
MdMeMaterialbase mdMeMaterialbase = iMdMeMaterialbaseService.getByCode(pmFormDataList.get(0).getMaterial_code(),false);
if(null == mdMeMaterialbase){
return PdaResponse.requestOk();
}
PmFormMaterialDto pmFormMaterialDto = new PmFormMaterialDto();
BeanUtils.copyProperties(mdMeMaterialbase,pmFormMaterialDto);
pmFormMaterialDto.setExt_code(ext_code);
return PdaResponse.requestParamOk(pmFormMaterialDto);
}
@Override
public PdaResponse getFormDataList(Map whereJson) {
List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>()

View File

@@ -0,0 +1,29 @@
package org.nl.wms.pm_manage.service.dao;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
/**
* {@code @Description:} 表单物料信息
* {@code @Author:} zhengxuming
*
* @since 2025年8月11日16:38:03
*/
@Data
public class PmFormMaterialDto extends Model<PmFormMaterialDto> {
private String material_id;
private String material_model;
private String material_name;
private String material_spec;
private String ext_code;
}

View File

@@ -35,6 +35,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
@@ -230,19 +231,19 @@ public class InBillTask extends AbstractTask {
//判断单据剩余数量(总数量-已完成数量)与组盘数量的差距
//todo 判断已经完成数量是否是actual_qty,如果后期调整,可以更改此处
if( groupPlate.getQty().compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getActual_qty())) ==0){
if( (new BigDecimal(1)).compareTo(pmFormDataList.get(0).getQty().subtract(pmFormDataList.get(0).getActual_qty())) ==0){
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成"))
.set(PmFormData::getIs_finish, 1)
.set(PmFormData::getActual_qty,pmFormDataList.get(0).getActual_qty().add(groupPlate.getQty()))
.set(PmFormData::getActual_qty,pmFormDataList.get(0).getActual_qty().add(new BigDecimal(1)))
.set(PmFormData::getUpdate_time,DateUtil.now())
.set(PmFormData::getUpdate_name, "task")
.eq(PmFormData::getCode, taskObj.getForm_data_code()));
} else {
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getActual_qty,pmFormDataList.get(0).getActual_qty().add(groupPlate.getQty()))
.set(PmFormData::getActual_qty,pmFormDataList.get(0).getActual_qty().add(new BigDecimal(1)))
.set(PmFormData::getUpdate_time,DateUtil.now())
.set(PmFormData::getUpdate_name, "task")
.eq(PmFormData::getCode, taskObj.getForm_data_code()));