opt:过滤无物料信息的拣选单

This commit is contained in:
2024-12-09 17:54:15 +08:00
parent 9a47d3e084
commit 23f2a8927f
6 changed files with 23 additions and 20 deletions

View File

@@ -59,14 +59,15 @@ public class BmMaterialController {
@PostMapping("/updateMaterialInfo")
public ResponseEntity<Object> updateMaterialInfo(@Validated @RequestBody MdMeMaterialbase dto) {
JSONObject result = new JSONObject();
if (BigDecimal.ZERO.compareTo(dto.getSingle_weight()) == 0 || StringUtils.isBlank(dto.getMaterial_id())) {
result.put("code", "400");
throw new BadRequestException("物料信息有误,请检查!");
}
LambdaUpdateWrapper<MdMeMaterialbase> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(MdMeMaterialbase::getNearby_weight, dto.getSingle_weight());
updateWrapper.eq(MdMeMaterialbase::getMaterial_id, dto.getMaterial_id());
materialService.update(updateWrapper);
JSONObject result = new JSONObject();
result.put("code", "200");
return new ResponseEntity<>(result, HttpStatus.OK);
}

View File

@@ -34,7 +34,7 @@ public class TaskInfo {
//理论数量
private BigDecimal theory_qty;
//称重
private BigDecimal actual_weight=BigDecimal.ZERO;
private BigDecimal actual_weight;
//剩余数量
private BigDecimal remaining_qty;
private String form_data;

View File

@@ -317,7 +317,7 @@ public class CockpitServiceImpl implements CockpitService {
}
}
BigDecimal theoryQty = BigDecimal.ZERO;
BigDecimal actual_weight = BigDecimal.ZERO;
BigDecimal actual_weight = null;
try {
String code1 = code;
if ("1308".equals(code)) {
@@ -350,16 +350,18 @@ public class CockpitServiceImpl implements CockpitService {
}
r.setActual_weight(actual_weight);
r.setActual_weight(r.getActual_weight().subtract(r.getVehicle_weight()).max(BigDecimal.ZERO).setScale(0, RoundingMode.DOWN));
//根据称重信息计算理论数量
if (r.getActual_weight().compareTo(BigDecimal.ZERO) > 0&&r.getSingle_weight().compareTo(BigDecimal.ZERO)> 0) {
//计算理论重量:称重-载具重量/单重 = 理论数量,理论数量!=需出数量:称重异常
theoryQty = r.getActual_weight().divide(r.getSingle_weight(), 0, RoundingMode.DOWN);
r.setActual_weight(r.getActual_weight().setScale(2, RoundingMode.DOWN));
if (r.getActual_weight() != null && r.getSingle_weight() != null) {
//根据称重信息计算理论数量
if (r.getActual_weight().compareTo(BigDecimal.ZERO) > 0 && r.getSingle_weight().compareTo(BigDecimal.ZERO) > 0) {
//计算理论重量:称重-载具重量/单重 = 理论数量,理论数量!=需出数量:称重异常
theoryQty = r.getActual_weight().divide(r.getSingle_weight(), 0, RoundingMode.DOWN);
r.setActual_weight(r.getActual_weight().setScale(2, RoundingMode.DOWN));
}
r.setTheory_qty(theoryQty);
//计算剩余数量
BigDecimal remaining_qty = r.getQty().subtract(theoryQty).max(BigDecimal.ZERO).setScale(0, RoundingMode.DOWN);
r.setRemaining_qty(remaining_qty);
}
r.setTheory_qty(theoryQty);
//计算剩余数量
BigDecimal remaining_qty = r.getQty().subtract(theoryQty).max(BigDecimal.ZERO).setScale(0, RoundingMode.DOWN);
r.setRemaining_qty(remaining_qty);
//单重
r.setSingle_weight(r.getSingle_weight().setScale(2, RoundingMode.DOWN));
//需出数量

View File

@@ -71,6 +71,7 @@
WHERE
JSON_UNQUOTE(JSON_EXTRACT(p.form_data, '$.point_code')) = #{code}
AND p.status = '10'
AND m.material_id is NOT NULL
ORDER BY d.create_time
LIMIT 2;
</select>

View File

@@ -147,7 +147,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
return result;
} catch (Exception ex) {
// ex.printStackTrace();
// log.error("ERP单据解析异常" + ex.getMessage());
log.error("ERP单据解析异常" + ex.getMessage());
// throw new BadRequestException(ex.getMessage());
return null;
}

View File

@@ -71,9 +71,9 @@ public class SyncErpBillsScheduleService {
MDC.put("requestIp", "127.0.0.1");
MDC.put("requestTime", DateUtil.now());
LuceneAppender.traceIdTL.set(BaseCode.intToChars(IdUtil.getLongId()));
// List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "BD_MATERIAL"));
//List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "BD_MATERIAL"));
List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "ka7c19edf9d4b4b39b8cc4a06802163b0","PRD_PPBOM","PRD_MO","SAL_SaleOrder","PUR_ReceiveBill","PUR_MRAPP"));
// List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "ka7c19edf9d4b4b39b8cc4a06802163b0","PRD_PPBOM","PRD_MO","SAL_SaleOrder","PUR_ReceiveBill","PUR_MRAPP"));
//List<SyncFormMapping> list = syncFormMappingServiceImpl.list(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "ka7c19edf9d4b4b39b8cc4a06802163b0","PRD_PPBOM","PRD_MO","SAL_SaleOrder","PUR_ReceiveBill","PUR_MRAPP"));
for (SyncFormMapping m : list) {
JSONArray mappingJson = m.getMapping_json();
String mappingString = JSON.toJSONString(mappingJson);
@@ -172,16 +172,15 @@ public class SyncErpBillsScheduleService {
if (materialCount != materials.size()) {
log.error("保存数据 [{}] 时出现异常: {}", JSON.toJSONString(formDataList), "物料信息不存在" + materials.toString());
}
for (String id : formDataList.stream().map(PmFormData::getId).collect(Collectors.toList())) {
if (exitFormDataList.contains(id)) {
for (PmFormData formData : formDataList) {
if (exitFormDataList.contains(formData.getId()+"$"+formData.getForm_type())) {
continue 外部;
}
}
for (PmFormData formData : formDataList) {
formData.setId(formData.getId()+"$"+formData.getForm_type());
formDataService.save(formData);
}
} catch (Exception e) {
//log.error("解析数据 [{}] 时出现异常: {}", JSON.toJSONString(r), e.getMessage());
log.error("解析数据 [{}] 时ID重复: {}", JSON.toJSONString(r), e.getMessage());
}
}
}