diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/mold/vo/MoldPageReqVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/mold/vo/MoldPageReqVO.java index 60e005343..54eb9850f 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/mold/vo/MoldPageReqVO.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/mold/vo/MoldPageReqVO.java @@ -61,6 +61,9 @@ public class MoldPageReqVO extends PageParam { @Schema(description = "id集合导出用") private String ids; + @Schema(description = "status集合") + private List statuss; + @Schema(description = "附件地址") private String fileUrl; diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldMapper.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldMapper.java index 581ab0b20..10a2335a4 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldMapper.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldMapper.java @@ -24,7 +24,7 @@ public interface MoldMapper extends BaseMapperX { default PageResult selectPage(MoldPageReqVO reqVO) { LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); wrapper - .eqIfPresent(MoldDO::getCode, reqVO.getCode()) + .likeIfPresent(MoldDO::getCode, reqVO.getCode()) .likeIfPresent(MoldDO::getName, reqVO.getName()) .eqIfPresent(MoldDO::getUnitId, reqVO.getUnitId()) .eqIfPresent(MoldDO::getMachineId, reqVO.getMachineId()) @@ -37,7 +37,7 @@ public interface MoldMapper extends BaseMapperX { .eqIfPresent(MoldDO::getIsEnable, reqVO.getIsEnable()) .betweenIfPresent(MoldDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(MoldDO::getBrandId, reqVO.getBrandId()) - .likeIfPresent(MoldDO::getFileUrl, reqVO.getFileUrl()) + .eqIfPresent(MoldDO::getStatus, reqVO.getStatus()) .orderByDesc(MoldDO::getId); if (StringUtils.isNotBlank(reqVO.getIds())) { @@ -48,6 +48,9 @@ public interface MoldMapper extends BaseMapperX { wrapper.in(MoldDO::getId, idList); } + if (reqVO.getStatuss() != null && !reqVO.getStatuss().isEmpty()) { + wrapper.in(MoldDO::getStatus, reqVO.getStatuss()); + } return selectPage(reqVO, wrapper); } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java index 5f62644f7..3d2fffa75 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java @@ -103,4 +103,13 @@ public class MoldController { List doList = moldService.getInTransitMoldAllList(); return success(doList); } + + @GetMapping("/getMoldListByStatus") + @Operation(summary = "根据状态获得模具列表") + @Parameter(name = "id", description = "设备id", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-operate:query')") + public CommonResult> getMoldListByStatus(@RequestParam("status") Long status) { + List moldDO = moldService.getMoldListByStatus(status); + return success(moldDO); + } } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java index 94746e10b..a7bfeb0e1 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java @@ -39,6 +39,11 @@ public class ErpStockInSaveReqVO { @Valid private List items; + + @Schema(description = "仓库编号", example = "3113") + private Long warehouseId; + + @Data public static class Item { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java index 8c4d65e17..e88ac0e5e 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java @@ -87,6 +87,7 @@ public interface MoldBrandService { * @return 模具分页 */ PageResult getMoldPage(MoldPageReqVO pageReqVO); + List getMoldList(); /** diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java index 5a38b2e39..77d2d84c2 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java @@ -100,4 +100,6 @@ public interface MoldService { List buildMoldVOList(List list); List getInTransitMoldAllList(); + + List getMoldListByStatus(Long status); } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java index ba625aee7..97a1e4c1e 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java @@ -129,4 +129,11 @@ public class MoldServiceImpl implements MoldService { public List getInTransitMoldAllList() { return moldMapper.selectList(Wrappers.lambdaQuery().eq(MoldDO::getStatus,3)); } + + @Override + public List getMoldListByStatus(Long status) { + LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() + .eqIfPresent(MoldDO::getStatus, status); + return moldMapper.selectList(queryWrapper); + } } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java index 60a5e9663..36fb28975 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java @@ -4,9 +4,9 @@ import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.common.controller.admin.mold.vo.MoldSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO; -import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO; @@ -83,6 +83,11 @@ public class ErpStockInServiceImpl implements ErpStockInService { // 2.2 插入入库单项 stockInItems.forEach(o -> o.setInId(stockIn.getId())); stockInItemMapper.insertBatch(stockInItems); + for (ErpStockInItemDO item : stockInItems) { + MoldDO moldDO = moldService.getMold(item.getProductId()); + moldDO.setStatus(ErpAuditStatus.PROCESS.getStatus()); // 未审核 + moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); + } return stockIn.getId(); } @@ -144,6 +149,17 @@ public class ErpStockInServiceImpl implements ErpStockInService { bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime())); } }); + // 更改状态 + if (Objects.equals(stockIn.getInType(), "模具入库")) { + for (ErpStockInItemDO item : stockInItems) { + if (item.getProductId() != null) { + MoldDO moldDO = moldService.getMold(item.getProductId()); + moldDO.setStatus(1); // 在库 + moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); + } + + } + } } private List validateStockInItems(List list,String outType) { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java index d053aac85..4b5daa402 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.common.controller.admin.mold.vo.MoldSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInItemDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO; import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockOutItemMapper; @@ -87,6 +89,11 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { // 2.2 插入出库单项 stockOutItems.forEach(o -> o.setOutId(stockOut.getId())); stockOutItemMapper.insertBatch(stockOutItems); + for (ErpStockOutItemDO item : stockOutItems) { + MoldDO moldDO = moldService.getMold(item.getProductId()); + moldDO.setStatus(ErpAuditStatus.PROCESS.getStatus()); // 未审核 + moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); + } return stockOut.getId(); } @@ -149,7 +156,17 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { bizType, stockOutItem.getOutId(), stockOutItem.getId(), stockOut.getNo(),stockOut.getOutTime())); } - }); + }); + // 更改状态 + if (Objects.equals(stockOut.getOutType(), "模具出库")) { + for (ErpStockOutItemDO item : stockOutItems) { + if (item.getProductId() != null) { + MoldDO moldDO = moldService.getMold(item.getProductId()); + moldDO.setStatus(3); // 在途 + moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); + } + } + } } private List validateStockOutItems(List list,String outType) { diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java index 0adee7da9..87a58d324 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java @@ -58,6 +58,7 @@ public class DeviceController { // @Resource // private IMqttservice mqttService; + @PostMapping("/create") @Operation(summary = "创建物联设备") @PreAuthorize("@ss.hasPermission('iot:device:create')") @@ -127,6 +128,40 @@ public class DeviceController { return success(list); } + @GetMapping("/noUsedlist") + @Operation(summary = "获得未关联设备台账列表") + @PreAuthorize("@ss.hasPermission('mes:device-ledger:query')") + public CommonResult> getDeviceLedgerListByNoUsed() { + DevicePageReqVO pageReqVO = new DevicePageReqVO(); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = deviceService.getDevicePage(pageReqVO).getList(); + List ids = deviceService.deviceLedgerList(); + List filteredList = list.stream() + .filter(device -> !ids.contains(device.getId())) + .collect(Collectors.toList()); + return success(filteredList); + } + + @GetMapping("/noUsedlist2") + @Operation(summary = "获得未关联设备台账列表") + @PreAuthorize("@ss.hasPermission('mes:device-ledger:query')") + public CommonResult> getDeviceLedgerList2ByNoUsed(@RequestParam("id") Long id) { + DevicePageReqVO pageReqVO = new DevicePageReqVO(); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = deviceService.getDevicePage(pageReqVO).getList(); + List ids = deviceService.deviceLedgerList(); + + List filteredList = list.stream() + .filter(device -> { + if (id != null && id.equals(device.getId())) { + return true; + } + return !ids.contains(device.getId()); + }) + .collect(Collectors.toList()); + return success(filteredList); + } + @PostMapping("/connect") @Operation(summary = "连接") // @PreAuthorize("@ss.hasPermission('iot:device:create')") diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java index d25529d32..9ce7fab89 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java @@ -102,6 +102,8 @@ public interface DeviceMapper extends BaseMapperX { String lineDeviceLedgerPage(@Param("id") Long id); + List deviceLedgerList(); + List> selectWorkshopBatch(@Param("deviceIds") List deviceIds); List lineDeviceList(@Param("pageReqVO") LineDeviceRequestVO pageReqVO); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java index 13401bfa9..ca2e3a1d4 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java @@ -140,6 +140,8 @@ public interface DeviceService { List getDeviceAttributeList(Long deviceId); + List deviceLedgerList(); + void updateDeviceEnabled(@Valid DeviceUpdateEnabledReqVO updateEnabledReqVO) throws MqttException; DeviceDO getDeviceByMqttTopic(String topic); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java index 6d113fe30..582a23b1f 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java @@ -129,7 +129,7 @@ public class DeviceServiceImpl implements DeviceService { @Override -// @Transactional(rollbackFor = Exception.class) + @Transactional(rollbackFor = Exception.class) public DeviceDO createDevice(DeviceSaveReqVO createReqVO) { // if(StringUtils.isNotBlank(createReqVO.getReadTopic())){ // DeviceDO temp = deviceMapper.selectByTopic(createReqVO.getReadTopic()); @@ -181,7 +181,6 @@ public class DeviceServiceImpl implements DeviceService { //创建时序数据库 // createTDengine(device.getId()); - tdengineService.createTdengineTable(device.getId(),contactModelList); //新增规则点位 addNewRulePoints(createReqVO.getDeviceModelId(),device.getId()); @@ -1364,4 +1363,10 @@ public class DeviceServiceImpl implements DeviceService { } + + @Override + public List deviceLedgerList() { + return deviceMapper.deviceLedgerList(); + } + } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml index 615fca9ac..33ad11d49 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml @@ -62,10 +62,19 @@ SELECT mo.workshop FROM mes_device_ledger mo WHERE mo.deleted = 0 - and dv_id = #{id} - LIMIT 1 + and mo.dv_id = #{id} + LIMIT 1 + + +