opt: 压片前段业务
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.basedata_manage.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -239,6 +240,7 @@ public class Structattr implements Serializable {
|
||||
/**
|
||||
* 存储载具号
|
||||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||
private String storagevehicle_code;
|
||||
|
||||
/**
|
||||
|
||||
@@ -48,12 +48,10 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.nl.common.utils.ValidationUtil.*;
|
||||
|
||||
@@ -113,7 +111,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("载具不存在!");
|
||||
}
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(search);
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(search, Arrays.asList("1"));
|
||||
return PdaResponse.requestParamOk(res);
|
||||
}
|
||||
|
||||
@@ -158,7 +156,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("请输入袋号编码!");
|
||||
}
|
||||
List<JSONObject> groups = groupplateService.getPalletView(search, "2");
|
||||
List<JSONObject> groups = groupplateService.getPalletView(search, Arrays.asList("1", "2"));
|
||||
if (groups.size() != 1) {
|
||||
throw new BadRequestException(groups.size() == 0 ? "组袋记录不存在,请先组袋!" : "组袋记录信息有误,请查询并清理后重试!");
|
||||
}
|
||||
@@ -195,7 +193,6 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
throw new BadRequestException("未找到当前托盘的原始库位信息!");
|
||||
}
|
||||
Structattr structattr = startPoints.get(0);
|
||||
Sectattr sectattr = sectattrService.findByCode(structattr.getSect_code(), false);
|
||||
// 手动更新库存信息
|
||||
// 1、创建出库单、明细、分配明细
|
||||
// 1.1 单据表
|
||||
@@ -247,7 +244,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
dtl.setIostorinvdtl_id(IdUtil.getStringId());
|
||||
dtl.setIostorinv_id(invId);
|
||||
dtl.setSeq_no("1");
|
||||
dtl.setMaterial_id(row.getString("material_code"));
|
||||
dtl.setMaterial_id(row.getString("material_id"));
|
||||
dtl.setPcsn(groupPlate.getPcsn());
|
||||
dtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
dtl.setQty_unit_id(groupPlate.getQty_unit_id());
|
||||
@@ -305,6 +302,13 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
if (zeroQtyVehicles.size() > 0) {
|
||||
storagevehicleextService.removeByIds(zeroQtyVehicles.stream().map(MdPbStoragevehicleext::getStoragevehicleext_id).collect(Collectors.toList()));
|
||||
}
|
||||
if (nonZeroQtyVehicles.size() == 0) {
|
||||
// 说明托盘没东西了,点位释放
|
||||
structattr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
structattr.setStoragevehicle_code(null);
|
||||
structattr.setIs_emptyvehicle("0");
|
||||
structattrService.updateById(structattr);
|
||||
}
|
||||
return PdaResponse.requestOk("取料成功!");
|
||||
}
|
||||
|
||||
@@ -326,6 +330,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public PdaResponse leftoverMaterialBack(JSONObject param) {
|
||||
// search, rows 按照托盘号原来的库区回去
|
||||
String search = param.getString("search");
|
||||
@@ -336,21 +341,33 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) {
|
||||
throw new BadRequestException("该点位没有载具信息!");
|
||||
}
|
||||
// List<GroupPlate> list = groupplateService.list(new LambdaQueryWrapper<GroupPlate>()
|
||||
// .eq(GroupPlate::getVehicle_code, search)
|
||||
// .ne(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")));
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(search);
|
||||
List<Structattr> points = structattrService.getByVehicleCode(startPoint.getVehicle_code()
|
||||
, IOSEnum.LOCK_TYPE.code("其他锁"), false);
|
||||
if (points.size() != 1) {
|
||||
throw new BadRequestException(points.size() > 1
|
||||
? "该托盘号绑定在多个点位" + points.stream().map(Structattr::getStruct_code).collect(Collectors.toList()) + ",请检查!"
|
||||
: "该托盘号未绑定到点位或者点位被禁用或者点位以上锁,请检查!");
|
||||
}
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(startPoint.getVehicle_code()
|
||||
, Arrays.asList("2"));
|
||||
if (res.size() > 0) {
|
||||
log.info("剩料回库");
|
||||
// 剩料回库
|
||||
param.put("rows", res);
|
||||
Sectattr sectattr = sectattrService.findByCode(startPoint.getOut_sect(), false);
|
||||
Structattr structattr = points.get(0);
|
||||
Sectattr sectattr = sectattrService.findByCode(structattr.getSect_code(), false);
|
||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("剩料回库"));
|
||||
// 1 创建入库单、明细、分配明细
|
||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||
invObj.put("nonChecked", "1");
|
||||
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||
// 2 调用分配
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true);
|
||||
// 2 调用手动分配
|
||||
param.put("sect_code", structattr.getSect_code());
|
||||
param.put("sect_name", structattr.getSect_name());
|
||||
param.put("struct_id", structattr.getStruct_id());
|
||||
param.put("struct_name", structattr.getStruct_name());
|
||||
param.put("struct_code", structattr.getStruct_code());
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, false);
|
||||
rawAssistIStorService.divStruct(divObj);
|
||||
// 3 创建任务
|
||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||
@@ -359,7 +376,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
log.info("空载具回库");
|
||||
// 空载具回库
|
||||
JSONObject vin = new JSONObject();
|
||||
vin.put("storagevehicle_code", search);
|
||||
vin.put("storagevehicle_code", startPoint.getVehicle_code());
|
||||
vin.put("sect_code", startPoint.getOut_sect());
|
||||
vin.put("point_code", startPoint.getPoint_code());
|
||||
vehicleInService.create(vin);
|
||||
@@ -370,7 +387,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
@Override
|
||||
public PdaResponse preProcessingDown(JSONObject param) {
|
||||
log.info("加工下料:{}", param);
|
||||
// vehicle_code、 point_code, region_code, 。。。rows
|
||||
// vehicle_code、 point_code, sect_code, 。。。rows
|
||||
assertNotBlankJson(param, "请求参数不能为空!", "vehicle_code", "point_code", "sect_code");
|
||||
String pointCode = param.getString("point_code");
|
||||
SchBasePoint startPoint = pointService.getByPointCode(pointCode, false);
|
||||
@@ -384,7 +401,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
throw new BadRequestException("该点位已创建过任务!");
|
||||
}
|
||||
String vehicleCode = param.getString("vehicle_code");
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(vehicleCode);
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(vehicleCode, Arrays.asList("1"));
|
||||
if (res.size() == 0) {
|
||||
throw new BadRequestException("当前托盘号不存在物料信息,请检查!");
|
||||
}
|
||||
@@ -480,7 +497,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("载具不存在!");
|
||||
}
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(search);
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(search, Arrays.asList("1"));
|
||||
return PdaResponse.requestParamOk(res);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.redisson.api.RedissonClient;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -63,7 +64,7 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("请输入袋号编码!");
|
||||
}
|
||||
List<JSONObject> groups = groupplateService.getPalletView(search, "0");
|
||||
List<JSONObject> groups = groupplateService.getPalletView(search, Arrays.asList("0"));
|
||||
if (groups.size() != 1) {
|
||||
throw new BadRequestException(groups.size() == 0 ? "组袋记录不存在,请先组袋!" : "组袋记录信息有误,请查询并清理后重试!");
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class PreProcessingInTask extends AbstractTask {
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
// 获取终点
|
||||
List<SchBasePoint> points = pointService.getCanUsePointByRegion(json.getString("region_code"));
|
||||
List<SchBasePoint> points = pointService.getCanUsePointByRegion(json.getString("sect_code"));
|
||||
if (ObjectUtil.isEmpty(points)) {
|
||||
throw new BadRequestException("暂无可用点位!");
|
||||
}
|
||||
@@ -55,7 +55,7 @@ public class PreProcessingInTask extends AbstractTask {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
task.setConfig_code(PreProcessingInTask.class.getSimpleName());
|
||||
task.setPoint_code1(json.getString("point_code"));
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
|
||||
@@ -95,9 +95,15 @@ public interface IMdPbGroupplateService extends IService<GroupPlate> {
|
||||
*/
|
||||
List<GroupPlate> getByBagNo(String bagNo, String status);
|
||||
|
||||
List<JSONObject> getPalletView(String search, String status);
|
||||
/**
|
||||
*
|
||||
* @param search 袋号
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> getPalletView(String search, List<String> status);
|
||||
|
||||
List<JSONObject> getPalletViewByVehicleCode(String search);
|
||||
List<JSONObject> getPalletViewByVehicleCode(String search, List<String> status);
|
||||
|
||||
List<JSONObject> getStockGroupInfo(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -64,9 +64,9 @@ public interface MdPbGroupplateMapper extends BaseMapper<GroupPlate> {
|
||||
*/
|
||||
List<JSONObject> pdaGetPointDtl(@Param("param") JSONObject whereJson);
|
||||
|
||||
List<JSONObject> getPalletView(String search, String status);
|
||||
List<JSONObject> getPalletView(String search, List<String> status);
|
||||
|
||||
List<JSONObject> getPalletViewByVehicleCode(String search);
|
||||
List<JSONObject> getPalletViewByVehicleCode(String search, List<String> status);
|
||||
|
||||
List<JSONObject> getStockGroupInfo(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -149,7 +149,10 @@
|
||||
`md_pb_groupplate` g
|
||||
LEFT JOIN md_me_materialbase m ON m.material_id = g.material_id
|
||||
LEFT JOIN md_cs_supplierbase s ON s.supp_code = g.supp_code
|
||||
WHERE g.bag_code = #{search} AND g.`status` = #{status}
|
||||
WHERE g.bag_code = #{search} AND g.`status` IN
|
||||
<foreach collection="status" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="getPalletViewByVehicleCode" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
@@ -164,7 +167,10 @@
|
||||
`md_pb_groupplate` g
|
||||
LEFT JOIN md_me_materialbase m ON m.material_id = g.material_id
|
||||
LEFT JOIN md_cs_supplierbase s ON s.supp_code = g.supp_code
|
||||
WHERE g.vehicle_code = #{search} AND g.`status` = '1'
|
||||
WHERE g.vehicle_code = #{search} AND g.`status` IN
|
||||
<foreach collection="status" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="getStockGroupInfo" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
|
||||
@@ -190,13 +190,13 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getPalletView(String search, String status) {
|
||||
public List<JSONObject> getPalletView(String search, List<String> status) {
|
||||
return this.baseMapper.getPalletView(search, status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JSONObject> getPalletViewByVehicleCode(String search) {
|
||||
return this.baseMapper.getPalletViewByVehicleCode(search);
|
||||
public List<JSONObject> getPalletViewByVehicleCode(String search, List<String> status) {
|
||||
return this.baseMapper.getPalletViewByVehicleCode(search, status);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -239,8 +239,10 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
|
||||
//判断该载具编号是否已经存在库内
|
||||
Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper<>(Structattr.class).eq(Structattr::getStoragevehicle_code, row.get("storagevehicle_code")));
|
||||
if (ObjectUtil.isNotEmpty(structattr)) {
|
||||
throw new BadRequestException("载具编码:" + row.get("storagevehicle_code") + "已存在库内,请对数据进行核实!");
|
||||
if (ObjectUtil.isEmpty(whereJson.get("nonChecked"))) {
|
||||
if (ObjectUtil.isNotEmpty(structattr)) {
|
||||
throw new BadRequestException("载具编码:" + row.get("storagevehicle_code") + "已存在库内,请对数据进行核实!");
|
||||
}
|
||||
}
|
||||
|
||||
ioStorInvDtlMapper.insert(ioStorInvDtl.toJavaObject(IOStorInvDtl.class));
|
||||
|
||||
Reference in New Issue
Block a user