rev:退料组盘页面优化

This commit is contained in:
2026-01-14 19:55:58 +08:00
parent c9c5fbf80c
commit 3632d03549
9 changed files with 244 additions and 74 deletions

View File

@@ -127,4 +127,16 @@ public class GroupController {
iMdPbGroupplateService.importExcel(file, request);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/queryVehicle")
@Log("查询点位下的载具")
public ResponseEntity<Object> queryVehicle(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(iMdPbGroupplateService.queryVehicle(whereJson), HttpStatus.OK);
}
@PostMapping("/queryVehicleType")
@Log("获取载具类型")
public ResponseEntity<Object> queryVehicleType(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(iMdPbGroupplateService.queryVehicleType(whereJson), HttpStatus.OK);
}
}

View File

@@ -85,9 +85,9 @@ public interface IPdmBomCallMaterialService extends IService<PdmBomCallMaterial>
* @param whereJson {
* material_id
* }
* @return List<PdmBomCallMaterial>
* @return List<PdmBomCallMaterialDto>
*/
List<PdmBomCallMaterial> queryMaterialBom(JSONObject whereJson);
List<PdmBomCallMaterialDto> queryMaterialBom(JSONObject whereJson);
/**
* 添加领导人

View File

@@ -46,5 +46,12 @@ public interface PdmBomCallMaterialMapper extends BaseMapper<PdmBomCallMaterial>
*/
List<PdmBomCallMaterialDto> queryBomInfo(@Param("param") JSONObject whereJson);
/**
* 查询当天工单
* @param whereJson {
* material_id
* }
* @return List<PdmBomCallMaterialDto>
*/
List<PdmBomCallMaterialDto> queryMaterialBom(@Param("param") JSONObject whereJson);
}

View File

@@ -129,4 +129,25 @@
ORDER BY bom.create_time Desc
</select>
<select id="queryMaterialBom" resultType="org.nl.wms.pdm_manage.service.dto.PdmBomCallMaterialDto">
SELECT
bom.*,
mater.material_code,
mater.material_name,
mater.material_spec
FROM
pdm_bom_callmaterial bom
INNER JOIN md_me_materialbase mater ON mater.material_id = bom.material_id
<where>
bom.bom_status = '5'
<if test="param.to_day != null and param.to_day != ''">
AND
bom.start_time = #{param.to_day}
</if>
</where>
ORDER BY bom.real_weigh_qty Desc
</select>
</mapper>

View File

@@ -157,14 +157,10 @@ public class PdmBomCallMaterialServiceImpl extends ServiceImpl<PdmBomCallMateria
}
@Override
public List<PdmBomCallMaterial> queryMaterialBom(JSONObject whereJson) {
return this.list(
new QueryWrapper<PdmBomCallMaterial>().lambda()
.eq(PdmBomCallMaterial::getStart_time, DateUtil.today())
.eq(PdmBomCallMaterial::getMaterial_id, whereJson.getString("material_id"))
.eq(PdmBomCallMaterial::getBom_status, BomEnum.CALL_BOM_STATUS.code("完成"))
.orderByDesc(PdmBomCallMaterial::getReal_weigh_qty)
);
public List<PdmBomCallMaterialDto> queryMaterialBom(JSONObject whereJson) {
whereJson.put("to_day", DateUtil.today());
this.baseMapper.queryMaterialBom(whereJson);
return this.baseMapper.queryMaterialBom(whereJson);
}
@Override

View File

@@ -7,7 +7,9 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.pda.util.PdaResponse;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.springframework.web.multipart.MultipartFile;
@@ -119,4 +121,22 @@ public interface IMdPbGroupplateService extends IService<GroupPlate> {
* @param dto 实体类
*/
void outReceiveGroup(GroupPlate dto);
/**
* 查询点位下的载具
* @param whereJson {
* point_code
* }
* @return List<SchBaseTask>
*/
List<SchBaseTask> queryVehicle(JSONObject whereJson);
/**
* 获取载具类型
* @param whereJson {
* vehicle_code
* }
* @return MdPbStoragevehicleinfo
*/
MdPbStoragevehicleinfo queryVehicleType(JSONObject whereJson);
}

View File

@@ -5,15 +5,11 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
@@ -35,6 +31,10 @@ import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialDtlService;
import org.nl.wms.pdm_manage.service.IPdmBomCallMaterialService;
import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterial;
import org.nl.wms.pdm_manage.service.dao.PdmBomCallMaterialDtl;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.tasks.CallReceiveEmpTask;
import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
@@ -42,7 +42,6 @@ import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -104,6 +103,9 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
@Autowired
private IPdmBomCallMaterialDtlService iPdmBomCallMaterialDtlService;
@Autowired
private ISchBaseTaskService iSchBaseTaskService;
@Override
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()),
@@ -232,7 +234,7 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
@Override
@Transactional
public void outReceiveGroup(GroupPlate dto){
public void outReceiveGroup(GroupPlate dto) {
// 插入组盘记录
dto.setGroup_id(this.create(dto));
// 转换为集合
@@ -249,6 +251,13 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
.in(PdmBomCallMaterial::getBom_code, bomCodeList)
.orderByDesc(PdmBomCallMaterial::getReal_weigh_qty)
);
// 判断所选工单物料是否一致
boolean is_like = bomDaoList.stream()
.allMatch(row -> row.getMaterial_id().equals(dto.getMaterial_id()));
if (!is_like) {
throw new BadRequestException("当前所有工单物料不一致,请重新选择!");
}
// 判断工单总的可退重量是否满足组盘总量
Double sumQty = bomDaoList.stream()
.map(row -> row.getReal_weigh_qty().doubleValue())
@@ -277,6 +286,23 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
}
@Override
public List<SchBaseTask> queryVehicle(JSONObject whereJson) {
// 查询此点位下正在执行的空载具任务
return iSchBaseTaskService.list(
new QueryWrapper<SchBaseTask>().lambda()
.eq(SchBaseTask::getIs_delete, IOSConstant.ZERO)
.eq(SchBaseTask::getPoint_code2, whereJson.getString("point_code"))
.eq(SchBaseTask::getConfig_code, CallReceiveEmpTask.class.getSimpleName())
.eq(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode())
);
}
@Override
public MdPbStoragevehicleinfo queryVehicleType(JSONObject whereJson) {
return iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code"));
}
/**
* 创建退料明细
*
@@ -300,7 +326,7 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
dtlDao.setCreate_id(SecurityUtils.getCurrentUserId());
dtlDao.setCreate_name(SecurityUtils.getCurrentNickName());
dtlDao.setCreate_time(DateUtil.now());
dtlDao.setConfirm_time( "" );
dtlDao.setConfirm_time("");
dtlDao.setRemark("由退料组盘创建");
dtlDao.setGroup_id(plate.getGroup_id());
iPdmBomCallMaterialDtlService.save(dtlDao);