add:增加料箱/托盘称重检测功能。
This commit is contained in:
@@ -62,7 +62,7 @@ public class LimitStorageRuleHandler extends Decisioner<StIvtStructattr, JSONObj
|
|||||||
String start_point = param.getString("start_point");
|
String start_point = param.getString("start_point");
|
||||||
String errorTask = param.getString("errorTask");
|
String errorTask = param.getString("errorTask");
|
||||||
log.info("限位策略:起点为" + start_point + ",载具号:" + vehicleCode + "执行策略前仓位位数为:" + list.size() + ",第一个仓位为:" + list.get(0).getStruct_code());
|
log.info("限位策略:起点为" + start_point + ",载具号:" + vehicleCode + "执行策略前仓位位数为:" + list.size() + ",第一个仓位为:" + list.get(0).getStruct_code());
|
||||||
if ((StringUtils.isNotBlank(start_point) || StringUtils.isNotBlank(errorTask))) {
|
if ((StringUtils.isNotBlank(start_point) || StringUtils.isNotBlank(errorTask))&&!vehicleCode.contains("T")) {
|
||||||
list = list.stream().filter(struct -> struct.getCol_num() > 2).collect(Collectors.toList());
|
list = list.stream().filter(struct -> struct.getCol_num() > 2).collect(Collectors.toList());
|
||||||
if ("1109".equals(start_point)) {
|
if ("1109".equals(start_point)) {
|
||||||
log.info("限位策略:起点为1109,载具号:" + vehicleCode + "排除小于3排的仓位成功!");
|
log.info("限位策略:起点为1109,载具号:" + vehicleCode + "排除小于3排的仓位成功!");
|
||||||
@@ -98,6 +98,7 @@ public class LimitStorageRuleHandler extends Decisioner<StIvtStructattr, JSONObj
|
|||||||
vehicle.setW(0);
|
vehicle.setW(0);
|
||||||
vehicle.setL(0);
|
vehicle.setL(0);
|
||||||
vehicle.setWeight(0);
|
vehicle.setWeight(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
BmVehicleInfo finalVehicle = vehicle;
|
BmVehicleInfo finalVehicle = vehicle;
|
||||||
Predicate<StIvtStructattr> eqLimt = stIvtStructattr -> {
|
Predicate<StIvtStructattr> eqLimt = stIvtStructattr -> {
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ public class InStorageTask extends AbstractTask {
|
|||||||
throw new BadRequestException("申请任务失败:载具" + vehicle_code + "已经存任务" + list.get(0).getTask_code());
|
throw new BadRequestException("申请任务失败:载具" + vehicle_code + "已经存任务" + list.get(0).getTask_code());
|
||||||
}else {
|
}else {
|
||||||
task.setStatus(StatusEnum.FORM_STATUS.code("待回传"));
|
task.setStatus(StatusEnum.FORM_STATUS.code("待回传"));
|
||||||
|
task.setRemark("该任务属于混托任务多个任务中只需数据回传的任务");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
task.setId(IdUtil.getStringId());
|
task.setId(IdUtil.getStringId());
|
||||||
|
|||||||
@@ -66,37 +66,42 @@ public class PalletInStorageTask extends AbstractTask {
|
|||||||
String point_code1 = data.getString("start_point");
|
String point_code1 = data.getString("start_point");
|
||||||
String vehicle_code = data.getString("vehicle_code");
|
String vehicle_code = data.getString("vehicle_code");
|
||||||
String h = data.getString("height");
|
String h = data.getString("height");
|
||||||
|
String w = data.getString("weight");
|
||||||
if (StringUtils.isEmpty(point_code1)){
|
if (StringUtils.isEmpty(point_code1)){
|
||||||
throw new BadRequestException("申请任务失败:请求参数点位数据异常");
|
throw new BadRequestException("weightError-申请任务失败:请求参数点位数据异常");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(vehicle_code)){
|
if (StringUtils.isEmpty(vehicle_code)){
|
||||||
throw new BadRequestException("申请任务失败:请求参数托盘数据异常");
|
throw new BadRequestException("weightError-申请任务失败:请求参数托盘数据异常");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(h)){
|
if (StringUtils.isEmpty(h)){
|
||||||
throw new BadRequestException("申请任务失败:请求参数高度点位数据异常");
|
throw new BadRequestException("weightError-申请任务失败:请求参数高度点位数据异常");
|
||||||
}
|
}
|
||||||
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
|
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
|
||||||
.eq("vehicle_code", vehicle_code));
|
.eq("vehicle_code", vehicle_code));
|
||||||
if (vehicleInfo == null) {
|
if (vehicleInfo == null) {
|
||||||
throw new BadRequestException("申请任务失败:载具" + vehicle_code + "信息不存在");
|
throw new BadRequestException("weightError-申请任务失败:载具" + vehicle_code + "信息不存在");
|
||||||
|
}
|
||||||
|
if (!(vehicleInfo.getWeight() > 0)) {
|
||||||
|
throw new BadRequestException("weightError-"+String.format(vehicle_code + "的重量未维护,请在载具管理中维护该类型载具重量。"));
|
||||||
}
|
}
|
||||||
List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicle_code);
|
List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicle_code);
|
||||||
if (CollectionUtils.isEmpty(item)) {
|
if (CollectionUtils.isEmpty(item)) {
|
||||||
throw new BadRequestException("申请任务失败:载具" + vehicle_code + "载具物料信息信息不存在");
|
throw new BadRequestException("weightError-申请任务失败:载具" + vehicle_code + "载具物料信息信息不存在");
|
||||||
}
|
}
|
||||||
List<MdPbVehicleMaterVo> newVehicleMater =new ArrayList<>();
|
iMdGruopDickService.pdaInWeightCheck(point_code1,w,vehicleInfo.getWeight(),item);
|
||||||
|
List<MdPbVehicleMaterVo> newVehicleMater;
|
||||||
//混托任务判断
|
//混托任务判断
|
||||||
if (item.get(0).getVehicle_code().contains("T")&&item.size() > 1) {
|
if (item.get(0).getVehicle_code().contains("T")&&item.size() > 1) {
|
||||||
newVehicleMater= item.stream().filter(r -> r.getNeed_pick() == null || !r.getNeed_pick()).collect(Collectors.toList());
|
newVehicleMater= item.stream().filter(r -> r.getNeed_pick() == null || !r.getNeed_pick()).collect(Collectors.toList());
|
||||||
if (newVehicleMater.size() ==item.size()) {
|
if (newVehicleMater.size() ==item.size()) {
|
||||||
newVehicleMater.get(0).setNeed_pick(true);
|
newVehicleMater.get(0).setNeed_pick(true);
|
||||||
}else{
|
}else{
|
||||||
item.stream().filter(r -> r.getNeed_pick() != null && r.getNeed_pick()).findFirst().ifPresent(newVehicleMater::add);
|
item.stream().filter(r -> r.getNeed_pick() != null&&StringUtils.isNotBlank(r.getGroup_id())&&r.getNeed_pick()).findFirst().ifPresent(newVehicleMater::add);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
newVehicleMater = item;
|
newVehicleMater = item;
|
||||||
}
|
}
|
||||||
newVehicleMater.forEach(r -> {
|
for (MdPbVehicleMaterVo r : newVehicleMater) {
|
||||||
String remark = r.getRemark();
|
String remark = r.getRemark();
|
||||||
String isCheck = StringUtils.isNotBlank(r.getIs_check()) ? "1" : r.getIs_check();
|
String isCheck = StringUtils.isNotBlank(r.getIs_check()) ? "1" : r.getIs_check();
|
||||||
if ("空托盘入库".equals(remark)) {
|
if ("空托盘入库".equals(remark)) {
|
||||||
@@ -120,7 +125,8 @@ public class PalletInStorageTask extends AbstractTask {
|
|||||||
String groupId = r.getGroup_id();
|
String groupId = r.getGroup_id();
|
||||||
MdGruopDick mst = iMdGruopDickService.getById(groupId);
|
MdGruopDick mst = iMdGruopDickService.getById(groupId);
|
||||||
if (mst == null) {
|
if (mst == null) {
|
||||||
throw new BadRequestException("申请任务失败,载具没有组盘信息!");
|
continue;
|
||||||
|
//throw new BadRequestException("申请任务失败,载具没有组盘信息!");
|
||||||
}
|
}
|
||||||
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")).select("vehicle_code"));
|
.lt("status", StatusEnum.FORM_STATUS.code("完成")).select("vehicle_code"));
|
||||||
@@ -129,14 +135,6 @@ public class PalletInStorageTask extends AbstractTask {
|
|||||||
throw new BadRequestException("申请任务失败:载具" + vehicle_code + "已经存任务" + list.get(0).getTask_code());
|
throw new BadRequestException("申请任务失败:载具" + vehicle_code + "已经存任务" + list.get(0).getTask_code());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// SchBaseTask schBaseTask = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>()
|
|
||||||
// .eq("vehicle_code", vehicle_code).select("task_code","vehicle_code")
|
|
||||||
// .lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
|
||||||
// if (schBaseTask != null) {
|
|
||||||
// if (!schBaseTask.getVehicle_code().contains("T")) {
|
|
||||||
// throw new BadRequestException("申请任务失败:载具" + vehicle_code + "已经存任务" + schBaseTask.getTask_code());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
iBmVehicleInfoService.update(new UpdateWrapper<BmVehicleInfo>()
|
iBmVehicleInfoService.update(new UpdateWrapper<BmVehicleInfo>()
|
||||||
.set("h", Integer.valueOf(h))
|
.set("h", Integer.valueOf(h))
|
||||||
.set("update_time", DateUtil.now())
|
.set("update_time", DateUtil.now())
|
||||||
@@ -157,7 +155,7 @@ public class PalletInStorageTask extends AbstractTask {
|
|||||||
.build("md_pb_vehicleMater", item)
|
.build("md_pb_vehicleMater", item)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||||
if (ObjectUtils.isNotEmpty(list)) {
|
if (ObjectUtils.isNotEmpty(list)) {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
|
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
|
||||||
@@ -45,6 +46,7 @@ public class AcsToWmsService {
|
|||||||
private ISchBasePointService iSchBasePointService;
|
private ISchBasePointService iSchBasePointService;
|
||||||
|
|
||||||
public String applyTask(String service, String type, JSONObject data, InteracteDto<Map> param) {
|
public String applyTask(String service, String type, JSONObject data, InteracteDto<Map> param) {
|
||||||
|
String errorMsg = null;
|
||||||
if ("InStorage".equals(service)) {
|
if ("InStorage".equals(service)) {
|
||||||
try {
|
try {
|
||||||
JSONObject task = applyTaskMap.get(type).createTask(data);
|
JSONObject task = applyTaskMap.get(type).createTask(data);
|
||||||
@@ -58,7 +60,14 @@ public class AcsToWmsService {
|
|||||||
String title = param.getType() + DateUtil.today() + param.getData().toString();
|
String title = param.getType() + DateUtil.today() + param.getData().toString();
|
||||||
iSchBasePointService.sendErrorMsg("1", title, "任务申请失败,申请参数为:" + JSON.toJSONString(param) + "请查看错误日志" + e);
|
iSchBasePointService.sendErrorMsg("1", title, "任务申请失败,申请参数为:" + JSON.toJSONString(param) + "请查看错误日志" + e);
|
||||||
}
|
}
|
||||||
throw new BadRequestException("申请任务失败,申请参数为:" + JSON.toJSONString(param) + "请查看错误日志:" + e);
|
if (StringUtils.isNotBlank(e.getMessage())) {
|
||||||
|
if (e.getMessage().contains("weightError")) {
|
||||||
|
errorMsg = e.getMessage().substring(e.getMessage().indexOf("weightError"));
|
||||||
|
} else {
|
||||||
|
errorMsg = "申请任务失败,申请参数为:" + JSON.toJSONString(param) + "请查看错误日志:" + e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new BadRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -156,5 +156,10 @@ public class SyncErpService {
|
|||||||
return erpServiceUtils.queryBills(query);
|
return erpServiceUtils.queryBills(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,4 +49,14 @@ public interface IMdGruopDickService extends IService<MdGruopDick> {
|
|||||||
*/
|
*/
|
||||||
List<MdPbVehicleMaterVo> getGroupDtl(String vehicle);
|
List<MdPbVehicleMaterVo> getGroupDtl(String vehicle);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验称重是否超出误差范围
|
||||||
|
* deviceCode 点位名称
|
||||||
|
* w 称重
|
||||||
|
* 载具单重
|
||||||
|
* 组盘信息
|
||||||
|
*/
|
||||||
|
void pdaInWeightCheck(String deviceCode, String w,Integer weight, List<MdPbVehicleMaterVo> item);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
|||||||
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||||
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||||
|
import org.nl.wms.external_system.dto.InteracteDto;
|
||||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||||
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
||||||
@@ -38,7 +39,10 @@ import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
|||||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||||
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
||||||
|
import org.nl.wms.system_manage.service.param.ISysParamService;
|
||||||
|
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||||
import org.nl.wms.system_manage.service.quartz.task.SyncErpBillsScheduleService;
|
import org.nl.wms.system_manage.service.quartz.task.SyncErpBillsScheduleService;
|
||||||
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -63,7 +67,8 @@ import java.util.stream.Collectors;
|
|||||||
@Service
|
@Service
|
||||||
public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGruopDick> implements IMdGruopDickService {
|
public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGruopDick> implements IMdGruopDickService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysParamService iSysParamService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -243,6 +248,10 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
}
|
}
|
||||||
JSONObject item0 = new JSONObject(tableData.get(0));
|
JSONObject item0 = new JSONObject(tableData.get(0));
|
||||||
String vehicle0 = item0.getString("vehicle_code");
|
String vehicle0 = item0.getString("vehicle_code");
|
||||||
|
if (StringUtils.isBlank(vehicle0)) {
|
||||||
|
throw new BadRequestException("组盘失败:载具号不能为空!");
|
||||||
|
}
|
||||||
|
vehicle0 = vehicle0.trim();
|
||||||
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicle0);
|
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicle0);
|
||||||
if (vehicleInfo == null) {
|
if (vehicleInfo == null) {
|
||||||
throw new BadRequestException("组盘失败:载具" + vehicle0 + "信息不存在请在载具信息中维护");
|
throw new BadRequestException("组盘失败:载具" + vehicle0 + "信息不存在请在载具信息中维护");
|
||||||
@@ -525,6 +534,7 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
throw new BadRequestException("导入失败" + ex.getMessage());
|
throw new BadRequestException("导入失败" + ex.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MdPbVehicleMaterVo> getGroupDtl(String vehicle_code) {
|
public List<MdPbVehicleMaterVo> getGroupDtl(String vehicle_code) {
|
||||||
if (StringUtils.isEmpty(vehicle_code)) {
|
if (StringUtils.isEmpty(vehicle_code)) {
|
||||||
@@ -532,4 +542,129 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
|||||||
}
|
}
|
||||||
return iMdPbVehicleMaterService.getVehicleMaters(vehicle_code);
|
return iMdPbVehicleMaterService.getVehicleMaters(vehicle_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验称重是否超出误差范围
|
||||||
|
*
|
||||||
|
* @param deviceCode 点位名称
|
||||||
|
* @param weight 载具皮重
|
||||||
|
* @param item 组盘物料信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void pdaInWeightCheck(String deviceCode, String w, Integer weight, List<MdPbVehicleMaterVo> item) {
|
||||||
|
//称重检测校验是否开启
|
||||||
|
Param isCheck = iSysParamService.findByCode("weight_check");
|
||||||
|
if ("1".equals(isCheck.getValue())) {
|
||||||
|
if (CollectionUtils.isEmpty(item)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//实际称重kg
|
||||||
|
BigDecimal actualWeightKg = BigDecimal.ZERO;
|
||||||
|
//同步并校验物料单重
|
||||||
|
K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi();
|
||||||
|
SyncFormMapping syncFormMapping = syncFormMappingServiceImpl.getOne(
|
||||||
|
new LambdaQueryWrapper<SyncFormMapping>()
|
||||||
|
.in(SyncFormMapping::getForm_type, "BD_MATERIAL")
|
||||||
|
);
|
||||||
|
String materialMappingString = JSON.toJSONString(syncFormMapping.getMapping_json());
|
||||||
|
for (MdPbVehicleMaterVo r : item) {
|
||||||
|
MdMeMaterialbase materialInfo =
|
||||||
|
syncErpBillsScheduleService.queryMaterialResult(
|
||||||
|
materialMappingString,
|
||||||
|
"BD_MATERIAL",
|
||||||
|
false,
|
||||||
|
r.getMaterial_code(),
|
||||||
|
k3CloudApi
|
||||||
|
);
|
||||||
|
if (materialInfo == null) {
|
||||||
|
throw new BadRequestException(
|
||||||
|
"weightError-载具" + item.get(0).getVehicle_code()
|
||||||
|
+ "上的物料:" + r.getMaterial_code()
|
||||||
|
+ "在ERP系统上检索不到相关物料信息,请检查!"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
r.setSingle_weight(materialInfo.getSingle_weight());
|
||||||
|
}
|
||||||
|
//过滤出需要称重校验的物料(单重 > 0)
|
||||||
|
List<MdPbVehicleMaterVo> validItems = item.stream()
|
||||||
|
.filter(r -> r.getSingle_weight() != null
|
||||||
|
&& r.getSingle_weight().compareTo(BigDecimal.ZERO) > 0)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (validItems.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(w)) {
|
||||||
|
try {
|
||||||
|
actualWeightKg = new BigDecimal(w.trim());
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new BadRequestException("weightError-称重数据格式非法:" + deviceCode + w);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
InteracteDto<Object> dto = InteracteDto.builder()
|
||||||
|
.service("wmsToAcsService")
|
||||||
|
.trace_id(MDC.get("trace_id"))
|
||||||
|
.type("getWeight")
|
||||||
|
.data(new JSONObject().fluentPut("device_code", deviceCode))
|
||||||
|
.build();
|
||||||
|
TableDataInfo result = InterationUtil.notifyExt(
|
||||||
|
"/api/wmsToAcs/apply",
|
||||||
|
(JSONObject) JSON.toJSON(dto)
|
||||||
|
);
|
||||||
|
if ("200".equals(result.getCode()) && result.getData() != null) {
|
||||||
|
JSONObject data = JSONObject.parseObject(result.getData().toString());
|
||||||
|
String weightStr = data.getString("weight");
|
||||||
|
if (ObjectUtil.isNotEmpty(weightStr)) {
|
||||||
|
actualWeightKg = new BigDecimal(weightStr.trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("获取称重失败" + deviceCode + ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (actualWeightKg.compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
|
throw new BadRequestException(
|
||||||
|
String.format("weightError-该点位:%s,反馈称重为0,称重异常,请检查。", deviceCode)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
//查询出入库配置规则
|
||||||
|
Param byCode = iSysParamService.findByCode(item.get(0).getVehicle_code().contains("T") ? "tp_range" : "lx_range");
|
||||||
|
if (byCode == null || StringUtils.isEmpty(byCode.getValue())) {
|
||||||
|
throw new BadRequestException("weightError-未配置托盘或料箱的误差值,请检查。");
|
||||||
|
}
|
||||||
|
// 误差值
|
||||||
|
BigDecimal relativeError = new BigDecimal(byCode.getValue().trim());
|
||||||
|
// 物料理论总重量 = Σ(单重 × 数量)
|
||||||
|
BigDecimal materialWeight = validItems.stream()
|
||||||
|
.map(r -> {
|
||||||
|
BigDecimal singleWeight = r.getSingle_weight();
|
||||||
|
// 辅助单位包含 kg
|
||||||
|
if (StringUtils.isNotBlank(r.getAssist_unit_id())) {
|
||||||
|
if (r.getAssist_unit_id().toLowerCase().contains("kg")) {
|
||||||
|
singleWeight = singleWeight.multiply(BigDecimal.valueOf(1000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 单重 × 数量
|
||||||
|
return singleWeight.multiply(r.getQty());
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
//实际称重换算克
|
||||||
|
BigDecimal actualWeightG = actualWeightKg.multiply(BigDecimal.valueOf(1000));
|
||||||
|
// 净重 = 实际称重 - 载具皮重
|
||||||
|
BigDecimal netWeight = actualWeightG.subtract(BigDecimal.valueOf(weight));
|
||||||
|
if (netWeight.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
netWeight = BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
// 差异重量 = 净重 - 理论重量 - 误差
|
||||||
|
BigDecimal diffWeight = netWeight
|
||||||
|
.subtract(materialWeight)
|
||||||
|
.abs();
|
||||||
|
if (diffWeight.compareTo(relativeError) > 0) {
|
||||||
|
throw new BadRequestException(
|
||||||
|
String.format("weightError-该载具:%s,称重重量为%s,与物料实际重量:%s,进行对比已超过误差值:%sg,不允许入库,请检查。",
|
||||||
|
item.get(0).getVehicle_code(), netWeight, materialWeight, diffWeight)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public interface IMdPbVehicleMaterService extends IService<MdPbVehicleMater> {
|
|||||||
/**
|
/**
|
||||||
* 载具编码与id对应关系
|
* 载具编码与id对应关系
|
||||||
* @param vehicle_code
|
* @param vehicle_code
|
||||||
* @return
|
* @return 1
|
||||||
*/
|
*/
|
||||||
Map<String, String> getVehicleCode2Id(String material_id,String...vehicle_code);
|
Map<String, String> getVehicleCode2Id(String material_id,String...vehicle_code);
|
||||||
|
|
||||||
|
|||||||
@@ -17,13 +17,14 @@
|
|||||||
<result property="material_name" column="material_name"/>
|
<result property="material_name" column="material_name"/>
|
||||||
<result property="material_spec" column="material_spec"/>
|
<result property="material_spec" column="material_spec"/>
|
||||||
<result property="single_weight" column="single_weight"/>
|
<result property="single_weight" column="single_weight"/>
|
||||||
|
<result property="assist_unit_id" column="assist_unit_id"/>
|
||||||
<result property="unit_name" column="unit_name"/>
|
<result property="unit_name" column="unit_name"/>
|
||||||
<result property="form_data" column="form_data"
|
<result property="form_data" column="form_data"
|
||||||
typeHandler="org.nl.common.domain.mybatis.handler.FastjsonSortTypeHandler"/>
|
typeHandler="org.nl.common.domain.mybatis.handler.FastjsonSortTypeHandler"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<select id="getVehicleMaters"
|
<select id="getVehicleMaters"
|
||||||
resultMap="VoResultMap">
|
resultMap="VoResultMap">
|
||||||
select md_pb_vehicleMater.*, material_code, material_name, material_spec
|
select md_pb_vehicleMater.*, material_code, material_name, material_spec,single_weight,assist_unit_id
|
||||||
from md_pb_vehicleMater
|
from md_pb_vehicleMater
|
||||||
left join md_me_materialbase
|
left join md_me_materialbase
|
||||||
on md_pb_vehicleMater.material_id = md_me_materialbase.material_id
|
on md_pb_vehicleMater.material_id = md_me_materialbase.material_id
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ public class MdPbVehicleMaterVo extends MdPbVehicleMater {
|
|||||||
private String material_code;
|
private String material_code;
|
||||||
private String material_name;
|
private String material_name;
|
||||||
private String material_spec;
|
private String material_spec;
|
||||||
private String single_weight;
|
//辅助重量
|
||||||
|
private String assist_unit_id;
|
||||||
|
private BigDecimal single_weight;
|
||||||
private String unit_name;
|
private String unit_name;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ import cn.hutool.core.lang.Assert;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.utils.ErpServiceUtils;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.RedissonUtils;
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||||
@@ -20,6 +22,7 @@ import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
|
|||||||
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.dispatch_manage.task.handler.impl.TranforTask;
|
import org.nl.wms.dispatch_manage.task.handler.impl.TranforTask;
|
||||||
import org.nl.wms.external_system.acs.service.WmsToAcsService;
|
import org.nl.wms.external_system.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||||
import org.nl.wms.pda_manage.devicemanage.dto.ComTp;
|
import org.nl.wms.pda_manage.devicemanage.dto.ComTp;
|
||||||
@@ -41,10 +44,13 @@ import java.util.Map;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备操控
|
* 设备操控
|
||||||
|
*
|
||||||
* @author generator
|
* @author generator
|
||||||
* @since 2024-03-28
|
* @since 2024-03-28
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
@Slf4j
|
||||||
@RequestMapping("api/deviceManage")
|
@RequestMapping("api/deviceManage")
|
||||||
public class DeviceManageController {
|
public class DeviceManageController {
|
||||||
|
|
||||||
@@ -60,8 +66,14 @@ public class DeviceManageController {
|
|||||||
private TranforTask tranforTask;
|
private TranforTask tranforTask;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtStructattrService iStIvtStructattrService;
|
private IStIvtStructattrService iStIvtStructattrService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdGruopDickService iMdGruopDickService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 切换出入库模式
|
* 切换出入库模式
|
||||||
|
*
|
||||||
* @param form
|
* @param form
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -106,29 +118,33 @@ public class DeviceManageController {
|
|||||||
Assert.noNullElements(new Object[]{form.getDevice_code(), form.getVehicle_code()}, "请求参数不能为空");
|
Assert.noNullElements(new Object[]{form.getDevice_code(), form.getVehicle_code()}, "请求参数不能为空");
|
||||||
String device_code = form.getDevice_code();
|
String device_code = form.getDevice_code();
|
||||||
String vehicleCode = form.getVehicle_code();
|
String vehicleCode = form.getVehicle_code();
|
||||||
String is_check = form.getIs_check();
|
String isCheck = form.getIs_check();
|
||||||
if (StringUtils.isBlank(is_check)) {
|
if (StringUtils.isBlank(isCheck)) {
|
||||||
is_check = "1";
|
isCheck = "1";
|
||||||
}
|
}
|
||||||
SchBasePoint code = iSchBasePointService.getOne(new QueryWrapper<SchBasePoint>().eq("code", device_code));
|
SchBasePoint code = iSchBasePointService.getOne(new QueryWrapper<SchBasePoint>().eq("code", device_code));
|
||||||
if (code != null && !code.getIs_used()) {
|
if (code != null && !code.getIs_used()) {
|
||||||
throw new BadRequestException(String.format("输送线%s模式不正确不允许下发运动", device_code));
|
throw new BadRequestException("weightError-"+String.format("输送线%s模式不正确不允许下发运动", device_code));
|
||||||
}
|
}
|
||||||
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
|
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
|
||||||
.eq("vehicle_code", vehicleCode));
|
.eq("vehicle_code", vehicleCode));
|
||||||
if (vehicleInfo == null) {
|
if (vehicleInfo == null) {
|
||||||
throw new BadRequestException(String.format(vehicleCode + "载具信息不存在"));
|
throw new BadRequestException("weightError-"+String.format(vehicleCode + "载具信息不存在"));
|
||||||
|
}
|
||||||
|
if (!(vehicleInfo.getWeight() > 0)) {
|
||||||
|
throw new BadRequestException("weightError-"+String.format(vehicleCode + "的重量未维护,请在载具管理中维护该类型载具重量。"));
|
||||||
}
|
}
|
||||||
List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicleCode);
|
List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicleCode);
|
||||||
if (CollectionUtils.isEmpty(item)) {
|
if (CollectionUtils.isEmpty(item)) {
|
||||||
throw new BadRequestException(String.format(vehicleCode + "载具组盘信息不存在"));
|
throw new BadRequestException("weightError-"+String.format(vehicleCode + "载具组盘信息不存在"));
|
||||||
}
|
}
|
||||||
for (MdPbVehicleMaterVo materVo : item) {
|
for (MdPbVehicleMaterVo materVo : item) {
|
||||||
if (materVo.getQty().intValue() == 0) {
|
if (materVo.getQty().intValue() == 0) {
|
||||||
throw new BadRequestException(String.format(vehicleCode + "组盘异常,确认是否出库后组盘"));
|
throw new BadRequestException(String.format("weightError-"+vehicleCode + "组盘异常,确认是否出库后组盘"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ("1".equals(is_check)) {
|
iMdGruopDickService.pdaInWeightCheck(device_code,null,vehicleInfo.getWeight(), item);
|
||||||
|
if ("1".equals(isCheck)) {
|
||||||
//校验料箱是否还存在库存
|
//校验料箱是否还存在库存
|
||||||
RedissonUtils.lock(() -> {
|
RedissonUtils.lock(() -> {
|
||||||
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||||
|
|||||||
@@ -1,8 +1,15 @@
|
|||||||
package org.nl.wms.pda_manage.iostorage.sevice;
|
package org.nl.wms.pda_manage.iostorage.sevice;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.ErpServiceUtils;
|
||||||
|
import org.nl.common.utils.InterationUtil;
|
||||||
import org.nl.common.utils.ListOf;
|
import org.nl.common.utils.ListOf;
|
||||||
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||||
@@ -10,15 +17,24 @@ import org.nl.wms.base_manage.measure.service.IBmMeasureUnitService;
|
|||||||
import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit;
|
import org.nl.wms.base_manage.measure.service.dao.BmMeasureUnit;
|
||||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||||
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||||
|
import org.nl.wms.external_system.dto.InteracteDto;
|
||||||
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
||||||
import org.nl.wms.pda_manage.group.dto.GroupItemData;
|
import org.nl.wms.pda_manage.group.dto.GroupItemData;
|
||||||
import org.nl.wms.pda_manage.group.dto.MaterGroupDto;
|
import org.nl.wms.pda_manage.group.dto.MaterGroupDto;
|
||||||
import org.nl.wms.pda_manage.group.dto.MaterItem;
|
import org.nl.wms.pda_manage.group.dto.MaterItem;
|
||||||
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormInMst;
|
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormInMst;
|
||||||
|
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||||
|
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
||||||
|
import org.nl.wms.system_manage.service.quartz.task.SyncErpBillsScheduleService;
|
||||||
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class PdaInIOService {
|
public class PdaInIOService {
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -32,6 +48,17 @@ public class PdaInIOService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
IBmMeasureUnitService iBmMeasureUnitService;
|
IBmMeasureUnitService iBmMeasureUnitService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ErpServiceUtils erpServiceUtils;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private SyncErpBillsScheduleService syncErpBillsScheduleService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合格证入库
|
* 合格证入库
|
||||||
* 确认参数完整性
|
* 确认参数完整性
|
||||||
@@ -76,6 +103,10 @@ public class PdaInIOService {
|
|||||||
}
|
}
|
||||||
String materialId = mst.getMaterial_id();
|
String materialId = mst.getMaterial_id();
|
||||||
String vehicleCode = mst.getVehicle_code();
|
String vehicleCode = mst.getVehicle_code();
|
||||||
|
if (StringUtils.isBlank(vehicleCode)) {
|
||||||
|
throw new BadRequestException("组盘失败:载具号不能为空!");
|
||||||
|
}
|
||||||
|
vehicleCode = vehicleCode.trim();
|
||||||
String unitId = mst.getUnit_id();
|
String unitId = mst.getUnit_id();
|
||||||
mst.setStockId("FStockPallet".equals(mst.getStor_code()) ? "24" : "25");
|
mst.setStockId("FStockPallet".equals(mst.getStor_code()) ? "24" : "25");
|
||||||
if (StringUtils.isBlank(mst.getSrcBillNo())) {
|
if (StringUtils.isBlank(mst.getSrcBillNo())) {
|
||||||
@@ -139,5 +170,4 @@ public class PdaInIOService {
|
|||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
LEFT JOIN md_pb_vehicleMater ON st_ivt_structattr.vehicle_code = md_pb_vehicleMater.vehicle_code
|
LEFT JOIN md_pb_vehicleMater ON st_ivt_structattr.vehicle_code = md_pb_vehicleMater.vehicle_code
|
||||||
WHERE st_ivt_structattr.vehicle_code is not null and md_pb_vehicleMater.frozen_qty = 0
|
WHERE st_ivt_structattr.vehicle_code is not null and md_pb_vehicleMater.frozen_qty = 0
|
||||||
and md_pb_vehicleMater.is_lock = false
|
and md_pb_vehicleMater.is_lock = false
|
||||||
|
and md_pb_vehicleMater.is_delete = false
|
||||||
<if test="stor_code != null and stor_code != ''">
|
<if test="stor_code != null and stor_code != ''">
|
||||||
and st_ivt_structattr.stor_code = #{stor_code}
|
and st_ivt_structattr.stor_code = #{stor_code}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import org.nl.common.domain.entity.PageQuery;
|
|||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.*;
|
import org.nl.common.utils.*;
|
||||||
|
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.decision_manage.handler.decisioner.impl.base.SameBlockNumRuleHandler;
|
import org.nl.wms.decision_manage.handler.decisioner.impl.base.SameBlockNumRuleHandler;
|
||||||
import org.nl.wms.dispatch_manage.task.handler.impl.MoveStorageTask;
|
import org.nl.wms.dispatch_manage.task.handler.impl.MoveStorageTask;
|
||||||
import org.nl.wms.dispatch_manage.task.handler.impl.OutStorageTask;
|
import org.nl.wms.dispatch_manage.task.handler.impl.OutStorageTask;
|
||||||
@@ -70,7 +72,8 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
private IMdPbVehicleMaterService vehicleMaterService;
|
private IMdPbVehicleMaterService vehicleMaterService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtStructivtflowService structivtflowService;
|
private IStIvtStructivtflowService structivtflowService;
|
||||||
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService mdMeMaterialbaseService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StIvtStructattrMapper stIvtStructattrMapper;
|
private StIvtStructattrMapper stIvtStructattrMapper;
|
||||||
|
|
||||||
@@ -139,6 +142,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
//更新冻结数量
|
//更新冻结数量
|
||||||
for (MdPbVehicleMater vehicleMater : vehicleMaters) {
|
for (MdPbVehicleMater vehicleMater : vehicleMaters) {
|
||||||
String vehicleCode = vehicleMater.getVehicle_code();
|
String vehicleCode = vehicleMater.getVehicle_code();
|
||||||
|
MdMeMaterialbase materialbase = mdMeMaterialbaseService.getById(vehicleMater.getMaterial_id());
|
||||||
BigDecimal subtract = vehicleMater.getQty().subtract(vehicleMater.getFrozen_qty());
|
BigDecimal subtract = vehicleMater.getQty().subtract(vehicleMater.getFrozen_qty());
|
||||||
//100-出50 = 50
|
//100-出50 = 50
|
||||||
UpdateWrapper<MdPbVehicleMater> update = new UpdateWrapper<MdPbVehicleMater>()
|
UpdateWrapper<MdPbVehicleMater> update = new UpdateWrapper<MdPbVehicleMater>()
|
||||||
@@ -150,6 +154,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
if (subtract.intValue() > 0) {
|
if (subtract.intValue() > 0) {
|
||||||
//托盘拣选
|
//托盘拣选
|
||||||
if (vehicleCode.contains("T")) {
|
if (vehicleCode.contains("T")) {
|
||||||
|
if (vehicleMater.getFrozen_qty().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
String groupId = vehicleMater.getGroup_id();
|
String groupId = vehicleMater.getGroup_id();
|
||||||
MdGruopDick mst = iMdGruopDickService.getById(groupId);
|
MdGruopDick mst = iMdGruopDickService.getById(groupId);
|
||||||
if (mst != null) {
|
if (mst != null) {
|
||||||
@@ -160,10 +165,9 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
.eq("id", groupId));
|
.eq("id", groupId));
|
||||||
}
|
}
|
||||||
update.set("need_pick", true);
|
update.set("need_pick", true);
|
||||||
if (vehicleMater.getFrozen_qty().compareTo(BigDecimal.ZERO) > 0) {
|
|
||||||
//托盘出库提示拣选信息
|
//托盘出库提示拣选信息
|
||||||
if (!growth) {
|
if (!growth) {
|
||||||
update.set("remark", "该托盘需要拣选数量为:" + vehicleMater.getFrozen_qty() + ",拣选完请把托盘剩余物料拉到入库口进行回库");
|
update.set("remark", "该托盘需要拣选的物料为:" + materialbase.getMaterial_name() + ",物料编码为:" + materialbase.getMaterial_code() + ",数量为:" + vehicleMater.getFrozen_qty() + ",拣选完请把托盘剩余物料拉到入库口进行回库");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//托盘入库清除拣选信息
|
//托盘入库清除拣选信息
|
||||||
@@ -178,7 +182,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
//托盘整出需要扣库存,除了二楼料箱整出不扣库存,其他都扣库存
|
//托盘整出需要扣库存,除了二楼料箱整出不扣库存,其他都扣库存
|
||||||
if (!("2114").equals(point_code2)) {
|
if (!("2114").equals(point_code2)) {
|
||||||
if (vehicleCode.contains("T")) {
|
if (vehicleCode.contains("T")) {
|
||||||
update.set("remark", "该托盘需要取走全部数量,拣选数量为:" + vehicleMater.getFrozen_qty() + ",拣选完该物料数量为0,如果托盘不存在其他类型物料,则作为空托盘使用,无需回库");
|
update.set("remark", "该托盘需要拣选的物料为:"+materialbase.getMaterial_name()+",物料编码为:"+materialbase.getMaterial_code()+",数量为:"+ vehicleMater.getFrozen_qty() + ",拣选完该物料数量为0,如果托盘不存在其他类型物料,则作为空托盘使用,无需回库").set("need_pick",false);
|
||||||
}
|
}
|
||||||
if (!task_type.equals(StatusEnum.IOBILL_TYPE_OUT.code("盘点出库"))) {
|
if (!task_type.equals(StatusEnum.IOBILL_TYPE_OUT.code("盘点出库"))) {
|
||||||
update.set("qty", subtract);
|
update.set("qty", subtract);
|
||||||
@@ -419,7 +423,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
@Override
|
@Override
|
||||||
public List<StructAssignQty> getStructIvtAssign(List<String> materials, String stor_code) {
|
public List<StructAssignQty> getStructIvtAssign(List<String> materials, String stor_code) {
|
||||||
if (StringUtils.isEmpty(stor_code) || materials == null || materials.size() == 0) {
|
if (StringUtils.isEmpty(stor_code) || materials == null || materials.size() == 0) {
|
||||||
throw new BadRequestException("查询可用库存失败:物料或仓库未指定");
|
throw new BadRequestException("查询可用库存失败:该单据的物料或仓库不属于料箱库或托盘库,请检查ERP单据的物料或仓库信息是否正确");
|
||||||
}
|
}
|
||||||
List<StructAssignQty> mst_detail = this.baseMapper.getStructIvtAssign(materials, stor_code);
|
List<StructAssignQty> mst_detail = this.baseMapper.getStructIvtAssign(materials, stor_code);
|
||||||
return mst_detail;
|
return mst_detail;
|
||||||
|
|||||||
@@ -3,19 +3,22 @@ package org.nl.wms.system_manage.service.param.impl;
|
|||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
|
||||||
import org.nl.common.domain.entity.PageQuery;
|
import org.nl.common.domain.entity.PageQuery;
|
||||||
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||||
|
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||||
import org.nl.wms.system_manage.service.param.ISysParamService;
|
import org.nl.wms.system_manage.service.param.ISysParamService;
|
||||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||||
import org.nl.wms.system_manage.service.param.dao.mapper.SysParamMapper;
|
import org.nl.wms.system_manage.service.param.dao.mapper.SysParamMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -39,6 +42,9 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
|
|||||||
|
|
||||||
private final SysParamMapper paramMapper;
|
private final SysParamMapper paramMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBmVehicleInfoService iBmVehicleInfoService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<Param> queryPage(Map whereJson, PageQuery page) {
|
public IPage<Param> queryPage(Map whereJson, PageQuery page) {
|
||||||
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
|
||||||
@@ -75,6 +81,13 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
|
|||||||
param.setUpdate_name(SecurityUtils.getCurrentNickName());
|
param.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
param.setUpdate_time(new Date());
|
param.setUpdate_time(new Date());
|
||||||
paramMapper.updateById(param);
|
paramMapper.updateById(param);
|
||||||
|
if (param.getCode().contains("blx_weight") && param.getName().contains("大料箱")) {
|
||||||
|
iBmVehicleInfoService.update(new LambdaUpdateWrapper<BmVehicleInfo>().set(BmVehicleInfo::getWeight, param.getValue()).eq(BmVehicleInfo::getVehicle_type, "02"));
|
||||||
|
} else if (param.getCode().contains("mlx_weight") && param.getName().contains("中料箱")) {
|
||||||
|
iBmVehicleInfoService.update(new LambdaUpdateWrapper<BmVehicleInfo>().set(BmVehicleInfo::getWeight, param.getValue()).eq(BmVehicleInfo::getVehicle_type, "03"));
|
||||||
|
} else if (param.getCode().contains("btp_weight") && param.getName().contains("铁托盘")) {
|
||||||
|
iBmVehicleInfoService.update(new LambdaUpdateWrapper<BmVehicleInfo>().set(BmVehicleInfo::getWeight, param.getValue()).eq(BmVehicleInfo::getVehicle_type, "01"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,14 +13,12 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.enums.StatusEnum;
|
|
||||||
import org.nl.common.utils.*;
|
import org.nl.common.utils.*;
|
||||||
import org.nl.config.lucene.LuceneAppender;
|
import org.nl.config.lucene.LuceneAppender;
|
||||||
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||||
import org.nl.wms.config_manage.form_struc.service.impl.BmFormStrucServiceImpl;
|
import org.nl.wms.config_manage.form_struc.service.impl.BmFormStrucServiceImpl;
|
||||||
import org.nl.wms.dispatch_manage.task.service.impl.SchBaseTaskServiceImpl;
|
|
||||||
import org.nl.wms.external_system.erp.dto.ErpQuery;
|
import org.nl.wms.external_system.erp.dto.ErpQuery;
|
||||||
import org.nl.wms.external_system.erp.dto.ErpSec;
|
import org.nl.wms.external_system.erp.dto.ErpSec;
|
||||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||||
@@ -35,6 +33,7 @@ import org.springframework.context.annotation.Lazy;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
@@ -54,8 +53,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||||
@Autowired
|
|
||||||
private SchBaseTaskServiceImpl schBaseTaskServiceImpl;
|
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -135,7 +133,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
// 获取当前日期
|
// 获取当前日期
|
||||||
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
calendar.add(Calendar.DAY_OF_MONTH, -15);
|
calendar.add(Calendar.DAY_OF_MONTH, -210);
|
||||||
String sevenDaysAgo = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
|
String sevenDaysAgo = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
|
||||||
String filterString;
|
String filterString;
|
||||||
if (StringUtils.isNotBlank(billCode)) {
|
if (StringUtils.isNotBlank(billCode)) {
|
||||||
@@ -370,9 +368,6 @@ public class SyncErpBillsScheduleService {
|
|||||||
List<Object> result = new ArrayList<>();
|
List<Object> result = new ArrayList<>();
|
||||||
result.add(view.getResult().getResult());
|
result.add(view.getResult().getResult());
|
||||||
getData(mappingJson, formType, dtlSplit, result);
|
getData(mappingJson, formType, dtlSplit, result);
|
||||||
} else {
|
|
||||||
ArrayList<RepoError> errors = status.getErrors();
|
|
||||||
String errorMsg = errors.stream().map(RepoError::getMessage).collect(Collectors.joining(","));
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("处理ID [{}] 时出现异常: {}", fid, e.getMessage());
|
log.error("处理ID [{}] 时出现异常: {}", fid, e.getMessage());
|
||||||
@@ -387,10 +382,53 @@ public class SyncErpBillsScheduleService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MdMeMaterialbase queryMaterialResult(String mappingJson, String formType, Boolean dtlSplit, String id, K3CloudApi cloudApi) {
|
||||||
|
MdMeMaterialbase materialBase = new MdMeMaterialbase();
|
||||||
|
try {
|
||||||
|
{
|
||||||
|
ErpQuery query = new ErpQuery();
|
||||||
|
query.setFilterString(id.contains(".") ? "FUseOrgId='750572' AND FNUMBER ='" + id + "'" : "FUseOrgId='750572' AND FMATERIALID ='" + id + "'");
|
||||||
|
query.setFormId(formType);
|
||||||
|
query.setFieldKeys("FMATERIALID");
|
||||||
|
query.setLimit(0);
|
||||||
|
String jsonString = JSON.toJSONString(query);
|
||||||
|
List<List<Object>> lists = cloudApi.executeBillQuery(jsonString);
|
||||||
|
// Set<String> exitFormDataList = pmFormDataMapper.existFormDataList();
|
||||||
|
for (List<Object> list : lists) {
|
||||||
|
for (Object r : list) {
|
||||||
|
String fid = r.toString();
|
||||||
|
if (StringUtils.isEmpty(fid)) {
|
||||||
|
log.error("单据同步失败,没有找到FID");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
OperateParam param = new OperateParam();
|
||||||
|
param.setId(fid);
|
||||||
|
OperatorResult view = cloudApi.view(formType, param);
|
||||||
|
RepoStatus status = view.getResult().getResponseStatus();
|
||||||
|
if (status.isIsSuccess()) {
|
||||||
|
List<Object> result = new ArrayList<>();
|
||||||
|
result.add(view.getResult().getResult());
|
||||||
|
materialBase = getData(mappingJson, formType, dtlSplit, result);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("处理ID [{}] 时出现异常: {}", fid, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return materialBase;
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("同步数据时出现异常: {}", ex.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理物料信息
|
* 处理物料信息
|
||||||
*/
|
*/
|
||||||
private void getData(String mappingJson, String formType, Boolean dtlSplit, List<Object> result) {
|
private MdMeMaterialbase getData(String mappingJson, String formType, Boolean dtlSplit, List<Object> result) {
|
||||||
|
MdMeMaterialbase materialBase = new MdMeMaterialbase();
|
||||||
外部:
|
外部:
|
||||||
for (Object r : result) {
|
for (Object r : result) {
|
||||||
try {
|
try {
|
||||||
@@ -398,12 +436,19 @@ public class SyncErpBillsScheduleService {
|
|||||||
List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
|
List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
|
||||||
if (ObjectUtils.isNotEmpty(formDataList)) {
|
if (ObjectUtils.isNotEmpty(formDataList)) {
|
||||||
String assistUint = "0";
|
String assistUint = "0";
|
||||||
|
String netWeight = "0";
|
||||||
JSONArray uintJsonArray = JSONObject.parseObject(JSON.toJSONString(r)).getJSONArray("MaterialStock");
|
JSONArray uintJsonArray = JSONObject.parseObject(JSON.toJSONString(r)).getJSONArray("MaterialStock");
|
||||||
if (ObjectUtils.isNotEmpty(uintJsonArray)) {
|
if (ObjectUtils.isNotEmpty(uintJsonArray)) {
|
||||||
JSONObject u1 = JSONObject.parseObject(JSON.toJSONString(uintJsonArray.get(0)));
|
JSONObject u1 = JSONObject.parseObject(JSON.toJSONString(uintJsonArray.get(0)));
|
||||||
JSONObject u2 = u1.getJSONObject("AuxUnitID");
|
JSONObject u2 = u1.getJSONObject("AuxUnitID");
|
||||||
assistUint = u2 != null ? u2.getString("Number") : "0";
|
assistUint = u2 != null ? u2.getString("Number") : "0";
|
||||||
}
|
}
|
||||||
|
JSONArray netWeightArray = JSONObject.parseObject(JSON.toJSONString(r)).getJSONArray("MaterialBase");
|
||||||
|
if (ObjectUtils.isNotEmpty(netWeightArray)) {
|
||||||
|
JSONObject u1 = JSONObject.parseObject(JSON.toJSONString(netWeightArray.get(0)));
|
||||||
|
String u2 = u1.getString("NETWEIGHT");
|
||||||
|
netWeight = StringUtils.isNotBlank(u2) ? u2 : "0";
|
||||||
|
}
|
||||||
PmFormData mainFormData = formDataList.stream().filter(rs1 -> "BD_MATERIAL".equals(rs1.getForm_type())).collect(Collectors.toList()).get(0);
|
PmFormData mainFormData = formDataList.stream().filter(rs1 -> "BD_MATERIAL".equals(rs1.getForm_type())).collect(Collectors.toList()).get(0);
|
||||||
JSONObject object = mainFormData.getForm_data();
|
JSONObject object = mainFormData.getForm_data();
|
||||||
String m_code = object.getString("m_code");
|
String m_code = object.getString("m_code");
|
||||||
@@ -412,6 +457,21 @@ public class SyncErpBillsScheduleService {
|
|||||||
String m_unit = mainFormData.getUnit_id();
|
String m_unit = mainFormData.getUnit_id();
|
||||||
PmFormData formData = formDataList.stream().filter(rs1 -> "BD_MATERIAL_1".equals(rs1.getForm_type())).collect(Collectors.toList()).get(0);
|
PmFormData formData = formDataList.stream().filter(rs1 -> "BD_MATERIAL_1".equals(rs1.getForm_type())).collect(Collectors.toList()).get(0);
|
||||||
MdMeMaterialbase materialInfo = iMdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", mainFormData.getId()));
|
MdMeMaterialbase materialInfo = iMdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", mainFormData.getId()));
|
||||||
|
materialBase.setMaterial_id(mainFormData.getId());
|
||||||
|
materialBase.setMaterial_code(m_code);
|
||||||
|
materialBase.setMaterial_name(m_name);
|
||||||
|
materialBase.setMaterial_spec(m_spec);
|
||||||
|
materialBase.setQty_unit_id(m_unit);
|
||||||
|
materialBase.setAssist_unit_id(assistUint);
|
||||||
|
BigDecimal netWeightGet = new BigDecimal(netWeight);
|
||||||
|
//辅助单位净重为kg
|
||||||
|
if (netWeightGet.compareTo(BigDecimal.ZERO) > 0 && assistUint.contains("kg")) {
|
||||||
|
BigDecimal newWeightGet = netWeightGet.multiply(new BigDecimal(1000));
|
||||||
|
materialBase.setNet_weight(newWeightGet);
|
||||||
|
} else {
|
||||||
|
materialBase.setNet_weight(netWeightGet);
|
||||||
|
}
|
||||||
|
materialBase.setPrint_no(formData.getPcsn());
|
||||||
if (materialInfo != null) {
|
if (materialInfo != null) {
|
||||||
iMdMeMaterialbaseService.update(new LambdaUpdateWrapper<MdMeMaterialbase>()
|
iMdMeMaterialbaseService.update(new LambdaUpdateWrapper<MdMeMaterialbase>()
|
||||||
.set(MdMeMaterialbase::getMaterial_id, mainFormData.getId())
|
.set(MdMeMaterialbase::getMaterial_id, mainFormData.getId())
|
||||||
@@ -424,14 +484,6 @@ public class SyncErpBillsScheduleService {
|
|||||||
.set(MdMeMaterialbase::getEnglish_name, "id变更前id:" + materialInfo.getMaterial_id())
|
.set(MdMeMaterialbase::getEnglish_name, "id变更前id:" + materialInfo.getMaterial_id())
|
||||||
.eq(MdMeMaterialbase::getMaterial_code, m_code));
|
.eq(MdMeMaterialbase::getMaterial_code, m_code));
|
||||||
} else {
|
} else {
|
||||||
MdMeMaterialbase materialBase = new MdMeMaterialbase();
|
|
||||||
materialBase.setMaterial_id(mainFormData.getId());
|
|
||||||
materialBase.setMaterial_code(m_code);
|
|
||||||
materialBase.setMaterial_name(m_name);
|
|
||||||
materialBase.setMaterial_spec(m_spec);
|
|
||||||
materialBase.setQty_unit_id(m_unit);
|
|
||||||
materialBase.setAssist_unit_id(assistUint);
|
|
||||||
materialBase.setPrint_no(formData.getPcsn());
|
|
||||||
iMdMeMaterialbaseService.save(materialBase);
|
iMdMeMaterialbaseService.save(materialBase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -439,6 +491,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
log.error("解析数据 [{}] 时出现异常: {}", JSON.toJSONString(r), e.getMessage());
|
log.error("解析数据 [{}] 时出现异常: {}", JSON.toJSONString(r), e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return materialBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -506,7 +559,4 @@ public class SyncErpBillsScheduleService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ spring:
|
|||||||
db-type: com.alibaba.druid.pool.DruidDataSource
|
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||||
driverClassName: com.mysql.cj.jdbc.Driver
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
# url: jdbc:mysql://${DB_HOST:192.168.8.218}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimxezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
# url: jdbc:mysql://${DB_HOST:192.168.8.218}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimxezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||||
url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_hs2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false&socketTimeout=28800000
|
url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_hs4}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false&socketTimeout=28800000
|
||||||
username: ${DB_USER:root}
|
username: ${DB_USER:root}
|
||||||
password: ${DB_PWD:123456}
|
password: ${DB_PWD:123456}
|
||||||
|
|
||||||
@@ -156,9 +156,9 @@ lucene:
|
|||||||
index:
|
index:
|
||||||
path: D:\lms\lucene\index
|
path: D:\lms\lucene\index
|
||||||
kdapi:
|
kdapi:
|
||||||
appId: 295539_RY4pS/CH0vl8TfUo652sR+1KULwdQNOG
|
appId: 295539_RY4pS/CH0vl8TfUo652sR+1KULwdQNOG111
|
||||||
appSecret: 0d47d08ee5014643b91a764e121e0bcb
|
appSecret: 0d47d08ee5014643b91a764e121e0bcb1111
|
||||||
userName: 管理员
|
userName: 管理员
|
||||||
pwd: ty.87016362
|
pwd: ty.870163621
|
||||||
serverUrl: http://192.168.16.249/k3cloud/
|
serverUrl: http://192.168.16.249/k3cloud/111
|
||||||
dCID: 65b078e7ea0ce6
|
dCID: 65b078e7ea0ce6
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ spring:
|
|||||||
runTimeout: 5000
|
runTimeout: 5000
|
||||||
task:
|
task:
|
||||||
pool:
|
pool:
|
||||||
|
# 线程大小设置
|
||||||
# 核心线程池大小
|
# 核心线程池大小
|
||||||
core-pool-size: 10
|
core-pool-size: 10
|
||||||
# 最大线程数
|
# 最大线程数
|
||||||
|
|||||||
Reference in New Issue
Block a user