From de817ef51196e589c28b18946fc79400bd37aa3f Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Wed, 12 Mar 2025 13:09:31 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96ERP=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=94=81=EF=BC=8C=E5=8D=95=E6=8D=AE=E6=8E=A8=E9=80=81=E6=9A=82?= =?UTF-8?q?=E5=81=9C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/constant/DictConstantPool.java | 1 + .../org/nl/common/utils/ErpServiceUtils.java | 68 ++++++--------- .../controller/BmFormStrucController.java | 4 +- .../form_struc/service/dao/BmFormStruc.java | 5 ++ .../service/impl/SchBaseTaskServiceImpl.java | 9 +- .../form_data/service/dao/PmFormData.java | 5 ++ .../form_data/service/dto/PmFormDataDto.java | 4 + .../service/impl/PmFormDataServiceImpl.java | 4 + .../task/SyncErpBillsScheduleService.java | 18 +--- .../views/wms/dispatch_manage/point/index.vue | 82 ++++++++++--------- 10 files changed, 100 insertions(+), 100 deletions(-) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java index 55e7ec56..79dc7c31 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/constant/DictConstantPool.java @@ -27,6 +27,7 @@ public class DictConstantPool { ,"qty","申请数量" ,"plan_qty","计划数量" ,"assign_qty","已领数量" + ,"actual_qty","实际数量" ,"bar_code","条码" ,"unit_id","单位" ,"pcsn","批次" diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/ErpServiceUtils.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/ErpServiceUtils.java index ed5f964d..f2ca050d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/ErpServiceUtils.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/ErpServiceUtils.java @@ -30,7 +30,7 @@ import java.util.stream.Collectors; public class ErpServiceUtils { @Resource ErpSec erpSec; - private final ReentrantLock lock = new ReentrantLock(); + /** @@ -50,48 +50,39 @@ public class ErpServiceUtils { if (StringUtils.isBlank(query.getFormId())) { throw new BadRequestException("参数异常"); } - boolean islock = lock.tryLock(); List result = new ArrayList<>(); try { - if (islock) { - String jsonString = JSON.toJSONString(query); - K3CloudApi cloudApi = getCloudApi(); - List> lists = cloudApi.executeBillQuery(jsonString); - for (List 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(query.getFormId(), param); - RepoStatus status = view.getResult().getResponseStatus(); - if (status.isIsSuccess()) { - new ArrayList<>(); - result.add(view.getResult().getResult()); - } else { - ArrayList errors = status.getErrors(); - log.error("查询ID [{}] 时出现异常: {}", fid, errors.stream().map(RepoError::getMessage).collect(Collectors.joining(","))); - } - } catch (Exception e) { - log.error("查询ID [{}] 时出现异常: {}", fid, e.getMessage()); + String jsonString = JSON.toJSONString(query); + K3CloudApi cloudApi = getCloudApi(); + List> lists = cloudApi.executeBillQuery(jsonString); + for (List 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(query.getFormId(), param); + RepoStatus status = view.getResult().getResponseStatus(); + if (status.isIsSuccess()) { + new ArrayList<>(); + result.add(view.getResult().getResult()); + } else { + ArrayList errors = status.getErrors(); + log.error("查询ID [{}] 时出现异常: {}", fid, errors.stream().map(RepoError::getMessage).collect(Collectors.joining(","))); } + } catch (Exception e) { + log.error("查询ID [{}] 时出现异常: {}", fid, e.getMessage()); } } - } else { - throw new BadRequestException("系统正在自动同步ERP单据,正占用接口资源,请稍后再试1"); } + return JSON.parseArray(JSON.toJSONString(result)); } catch (Exception ex) { throw new BadRequestException(ex.getMessage()); - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); - } } - return JSON.parseArray(JSON.toJSONString(result)); } /** @@ -101,10 +92,8 @@ public class ErpServiceUtils { if (StringUtils.isBlank(query.getFormId())) { throw new BadRequestException("参数异常"); } - boolean islock = lock.tryLock(); List result = new ArrayList<>(); try { - if (islock) { String jsonString = JSON.toJSONString(query); K3CloudApi cloudApi = getCloudApi(); List> lists = cloudApi.executeBillQuery(jsonString); @@ -114,15 +103,8 @@ public class ErpServiceUtils { jsonObject.put("erpCounts",list.get(1)); result.add(jsonObject); } - } else { - throw new BadRequestException("系统正在自动同步ERP单据,正占用接口资源,请稍后再试2"); - } } catch (Exception ex) { throw new BadRequestException(ex.getMessage()); - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); - } } return result; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/controller/BmFormStrucController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/controller/BmFormStrucController.java index 72db5feb..f5bef0fe 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/controller/BmFormStrucController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/controller/BmFormStrucController.java @@ -115,7 +115,7 @@ public class BmFormStrucController { @GetMapping("/getParentFormTypes") public ResponseEntity getParentFormTypes(){ //参数判读,参数解析,调用参数入库 - QueryWrapper queryWrapper = new QueryWrapper().select("form_type", "form_name").isNull("parent_id").groupBy("form_type"); + QueryWrapper queryWrapper = new QueryWrapper().select("form_type", "form_name").isNull("parent_id").isNotNull("sort").groupBy("form_type").orderByAsc("sort");; List> select = iBmFormStrucService.listMaps(queryWrapper); List list = new ArrayList<>(); for (Map map : select) { @@ -128,7 +128,7 @@ public class BmFormStrucController { //参数判读,参数解析,调用参数入库 QueryWrapper queryWrapper = new QueryWrapper().select("form_type", "form_name").isNull("parent_id").groupBy("form_type").orderByAsc("sort"); if (StringUtils.isNotEmpty(desc)){ - queryWrapper.like("form_desc",desc); + queryWrapper.like("form_desc",desc).isNotNull("sort"); } List> select = iBmFormStrucService.listMaps(queryWrapper); List list = new ArrayList<>(); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java index 8ea29ba2..daf255d1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/config_manage/form_struc/service/dao/BmFormStruc.java @@ -106,6 +106,11 @@ public class BmFormStruc implements Serializable { */ private String plan_qty; + /** + * 实际数量 + */ + private String actual_qty; + /** * 已领取数量 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java index 08635697..0d520eb7 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java @@ -153,11 +153,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl() + List vehicleMaterList = iMdPbVehicleMaterService.list(new QueryWrapper() .eq("vehicle_code", task.getVehicle_code()) .eq("is_delete", false)); - if (vehicleMater != null && !StringUtils.isEmpty(vehicleMater.getProc_inst_id())) { - FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMater.getProc_inst_id(), null, null); + if (ObjectUtils.isEmpty(vehicleMaterList)) { + throw new BadRequestException("当前任务未找到组盘信息"); + } + if (StringUtils.isEmpty(vehicleMaterList.get(0).getProc_inst_id())) { + FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMaterList.get(0).getProc_inst_id(), null, null); BussEventMulticaster.Publish(continueEvent); } else { handleFinishTask(param, task); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java index b1b9905f..444699a0 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/PmFormData.java @@ -83,6 +83,11 @@ public class PmFormData implements Serializable { */ private BigDecimal assign_qty; + /** + * 实际数量 + */ + private BigDecimal actual_qty; + /** * 单位 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java index 63565291..79c7f87c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java @@ -125,6 +125,10 @@ public class PmFormDataDto implements Serializable { * 已分配数量 */ private BigDecimal assign_qty; + /** + * 实际数量 + */ + private BigDecimal actual_qty; /** * 单位 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java index 45a326fa..cfbaceb1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java @@ -353,6 +353,8 @@ public class PmFormDataServiceImpl extends ServiceImpl 0 ? total : BigDecimal.ZERO); } } dataDto.setChildren(children); @@ -415,6 +417,8 @@ public class PmFormDataServiceImpl extends ServiceImpl a.getSto_qty().intValue()).sum())); child.setPcsn(""); } + BigDecimal total = child.getPlan_qty().subtract(child.getAssign_qty().add(child.getActual_qty() == null ? BigDecimal.ZERO : child.getActual_qty())); + child.setQty(total.compareTo(BigDecimal.ZERO) > 0 ? total : BigDecimal.ZERO); } pmFormDataDto.setChildren(childs); return pmFormDataDto; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/quartz/task/SyncErpBillsScheduleService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/quartz/task/SyncErpBillsScheduleService.java index 0f37dbb2..0dd7a9e8 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/quartz/task/SyncErpBillsScheduleService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/quartz/task/SyncErpBillsScheduleService.java @@ -180,11 +180,11 @@ public class SyncErpBillsScheduleService { * 手动同步 */ private String manualSyncData(String mappingJson, String formType, Boolean dtlSplit, String code, String start, String end) { - boolean islock = lock.tryLock(); + Map errorMsg = new HashMap<>(); try { - if (islock) { - //单据同步总数 + + //单据同步总数 JSONArray result; // 获取当前日期 String timeEnd = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); @@ -211,15 +211,8 @@ public class SyncErpBillsScheduleService { } else { return "同步成功,共计" + result.size() + "条"; } - }else { - throw new BadRequestException("3系统正在自动同步ERP单据,正占用接口资源,请稍后再试3"); - } } catch (Exception ex) { throw new BadRequestException(ex.getMessage()); - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); - } } } @@ -303,21 +296,18 @@ public class SyncErpBillsScheduleService { //单据明细 if (StringUtils.isBlank(f.getCode())) { PmFormData existDtlData = formDataService.getOne(new QueryWrapper().eq("id", id).select("qty")); - //existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0||f.getPlan_qty().compareTo(f.getAssign_qty()) > 0 if (existDtlData.getQty() != null) { - if (existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0) { formDataService.update(new LambdaUpdateWrapper() .set(PmFormData::getMaterial_id, f.getMaterial_id()) - .set(PmFormData::getQty, f.getQty()) .set(PmFormData::getUnit_id, f.getUnit_id()) .set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data())) .set(PmFormData::getPlan_qty, f.getPlan_qty()) + .set(PmFormData::getTaxPrice, f.getActual_qty()) .set(PmFormData::getBar_code, f.getBar_code()) .set(PmFormData::getUpdate_name, DateUtil.now()) .set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName()) .eq(PmFormData::getId, id)); } - } } } else { //单据明细 diff --git a/wms_pro/qd/src/views/wms/dispatch_manage/point/index.vue b/wms_pro/qd/src/views/wms/dispatch_manage/point/index.vue index 6634ab9c..ae147a7f 100644 --- a/wms_pro/qd/src/views/wms/dispatch_manage/point/index.vue +++ b/wms_pro/qd/src/views/wms/dispatch_manage/point/index.vue @@ -86,12 +86,12 @@ /> - + - + @@ -131,13 +131,13 @@ - + - + - + - + - + - - - + + + - + - +