Merge branch 'main' into hhk

# Conflicts:
#	yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java
#	yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java
hhk
HuangHuiKang 1 month ago
commit 7acd167a8b

@ -61,6 +61,9 @@ public class MoldPageReqVO extends PageParam {
@Schema(description = "id集合导出用") @Schema(description = "id集合导出用")
private String ids; private String ids;
@Schema(description = "status集合")
private List<Long> statuss;
@Schema(description = "附件地址") @Schema(description = "附件地址")
private String fileUrl; private String fileUrl;

@ -24,7 +24,7 @@ public interface MoldMapper extends BaseMapperX<MoldDO> {
default PageResult<MoldDO> selectPage(MoldPageReqVO reqVO) { default PageResult<MoldDO> selectPage(MoldPageReqVO reqVO) {
LambdaQueryWrapperX<MoldDO> wrapper = new LambdaQueryWrapperX<>(); LambdaQueryWrapperX<MoldDO> wrapper = new LambdaQueryWrapperX<>();
wrapper wrapper
.eqIfPresent(MoldDO::getCode, reqVO.getCode()) .likeIfPresent(MoldDO::getCode, reqVO.getCode())
.likeIfPresent(MoldDO::getName, reqVO.getName()) .likeIfPresent(MoldDO::getName, reqVO.getName())
.eqIfPresent(MoldDO::getUnitId, reqVO.getUnitId()) .eqIfPresent(MoldDO::getUnitId, reqVO.getUnitId())
.eqIfPresent(MoldDO::getMachineId, reqVO.getMachineId()) .eqIfPresent(MoldDO::getMachineId, reqVO.getMachineId())
@ -37,7 +37,7 @@ public interface MoldMapper extends BaseMapperX<MoldDO> {
.eqIfPresent(MoldDO::getIsEnable, reqVO.getIsEnable()) .eqIfPresent(MoldDO::getIsEnable, reqVO.getIsEnable())
.betweenIfPresent(MoldDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(MoldDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(MoldDO::getBrandId, reqVO.getBrandId()) .eqIfPresent(MoldDO::getBrandId, reqVO.getBrandId())
.likeIfPresent(MoldDO::getFileUrl, reqVO.getFileUrl()) .eqIfPresent(MoldDO::getStatus, reqVO.getStatus())
.orderByDesc(MoldDO::getId); .orderByDesc(MoldDO::getId);
if (StringUtils.isNotBlank(reqVO.getIds())) { if (StringUtils.isNotBlank(reqVO.getIds())) {
@ -48,6 +48,9 @@ public interface MoldMapper extends BaseMapperX<MoldDO> {
wrapper.in(MoldDO::getId, idList); wrapper.in(MoldDO::getId, idList);
} }
if (reqVO.getStatuss() != null && !reqVO.getStatuss().isEmpty()) {
wrapper.in(MoldDO::getStatus, reqVO.getStatuss());
}
return selectPage(reqVO, wrapper); return selectPage(reqVO, wrapper);
} }

@ -103,4 +103,13 @@ public class MoldController {
List<MoldDO> doList = moldService.getInTransitMoldAllList(); List<MoldDO> doList = moldService.getInTransitMoldAllList();
return success(doList); 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<List<MoldDO>> getMoldListByStatus(@RequestParam("status") Long status) {
List<MoldDO> moldDO = moldService.getMoldListByStatus(status);
return success(moldDO);
}
} }

@ -39,6 +39,11 @@ public class ErpStockInSaveReqVO {
@Valid @Valid
private List<Item> items; private List<Item> items;
@Schema(description = "仓库编号", example = "3113")
private Long warehouseId;
@Data @Data
public static class Item { public static class Item {

@ -87,6 +87,7 @@ public interface MoldBrandService {
* @return * @return
*/ */
PageResult<MoldRespVO> getMoldPage(MoldPageReqVO pageReqVO); PageResult<MoldRespVO> getMoldPage(MoldPageReqVO pageReqVO);
List<MoldDO> getMoldList(); List<MoldDO> getMoldList();
/** /**

@ -100,4 +100,6 @@ public interface MoldService {
List<MoldRespVO> buildMoldVOList(List<MoldDO> list); List<MoldRespVO> buildMoldVOList(List<MoldDO> list);
List<MoldDO> getInTransitMoldAllList(); List<MoldDO> getInTransitMoldAllList();
List<MoldDO> getMoldListByStatus(Long status);
} }

@ -129,4 +129,11 @@ public class MoldServiceImpl implements MoldService {
public List<MoldDO> getInTransitMoldAllList() { public List<MoldDO> getInTransitMoldAllList() {
return moldMapper.selectList(Wrappers.<MoldDO>lambdaQuery().eq(MoldDO::getStatus,3)); return moldMapper.selectList(Wrappers.<MoldDO>lambdaQuery().eq(MoldDO::getStatus,3));
} }
@Override
public List<MoldDO> getMoldListByStatus(Long status) {
LambdaQueryWrapperX<MoldDO> queryWrapper = new LambdaQueryWrapperX<MoldDO>()
.eqIfPresent(MoldDO::getStatus, status);
return moldMapper.selectList(queryWrapper);
}
} }

@ -4,9 +4,9 @@ import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.ErpStockInPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO; 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.common.dal.dataobject.mold.MoldDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO;
@ -83,6 +83,11 @@ public class ErpStockInServiceImpl implements ErpStockInService {
// 2.2 插入入库单项 // 2.2 插入入库单项
stockInItems.forEach(o -> o.setInId(stockIn.getId())); stockInItems.forEach(o -> o.setInId(stockIn.getId()));
stockInItemMapper.insertBatch(stockInItems); 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(); return stockIn.getId();
} }
@ -144,6 +149,17 @@ public class ErpStockInServiceImpl implements ErpStockInService {
bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime())); 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<ErpStockInItemDO> validateStockInItems(List<ErpStockInSaveReqVO.Item> list,String outType) { private List<ErpStockInItemDO> validateStockInItems(List<ErpStockInSaveReqVO.Item> list,String outType) {

@ -4,10 +4,12 @@ import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.ErpStockOutPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; 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.common.dal.dataobject.mold.MoldDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; 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.ErpStockOutDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO;
import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockOutItemMapper; import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockOutItemMapper;
@ -87,6 +89,11 @@ public class ErpStockOutServiceImpl implements ErpStockOutService {
// 2.2 插入出库单项 // 2.2 插入出库单项
stockOutItems.forEach(o -> o.setOutId(stockOut.getId())); stockOutItems.forEach(o -> o.setOutId(stockOut.getId()));
stockOutItemMapper.insertBatch(stockOutItems); 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(); return stockOut.getId();
} }
@ -150,6 +157,16 @@ public class ErpStockOutServiceImpl implements ErpStockOutService {
} }
}); });
// 更改状态
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<ErpStockOutItemDO> validateStockOutItems(List<ErpStockOutSaveReqVO.Item> list,String outType) { private List<ErpStockOutItemDO> validateStockOutItems(List<ErpStockOutSaveReqVO.Item> list,String outType) {

@ -58,6 +58,7 @@ public class DeviceController {
// @Resource // @Resource
// private IMqttservice mqttService; // private IMqttservice mqttService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建物联设备") @Operation(summary = "创建物联设备")
@PreAuthorize("@ss.hasPermission('iot:device:create')") @PreAuthorize("@ss.hasPermission('iot:device:create')")
@ -127,6 +128,40 @@ public class DeviceController {
return success(list); return success(list);
} }
@GetMapping("/noUsedlist")
@Operation(summary = "获得未关联设备台账列表")
@PreAuthorize("@ss.hasPermission('mes:device-ledger:query')")
public CommonResult<List<DeviceRespVO>> getDeviceLedgerListByNoUsed() {
DevicePageReqVO pageReqVO = new DevicePageReqVO();
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<DeviceRespVO> list = deviceService.getDevicePage(pageReqVO).getList();
List<Long> ids = deviceService.deviceLedgerList();
List<DeviceRespVO> 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<List<DeviceRespVO>> getDeviceLedgerList2ByNoUsed(@RequestParam("id") Long id) {
DevicePageReqVO pageReqVO = new DevicePageReqVO();
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<DeviceRespVO> list = deviceService.getDevicePage(pageReqVO).getList();
List<Long> ids = deviceService.deviceLedgerList();
List<DeviceRespVO> 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") @PostMapping("/connect")
@Operation(summary = "连接") @Operation(summary = "连接")
// @PreAuthorize("@ss.hasPermission('iot:device:create')") // @PreAuthorize("@ss.hasPermission('iot:device:create')")

@ -102,6 +102,8 @@ public interface DeviceMapper extends BaseMapperX<DeviceDO> {
String lineDeviceLedgerPage(@Param("id") Long id); String lineDeviceLedgerPage(@Param("id") Long id);
List<Long> deviceLedgerList();
List<Map<String,Object>> selectWorkshopBatch(@Param("deviceIds") List<Long> deviceIds); List<Map<String,Object>> selectWorkshopBatch(@Param("deviceIds") List<Long> deviceIds);
List<LineDeviceRespVO> lineDeviceList(@Param("pageReqVO") LineDeviceRequestVO pageReqVO); List<LineDeviceRespVO> lineDeviceList(@Param("pageReqVO") LineDeviceRequestVO pageReqVO);

@ -140,6 +140,8 @@ public interface DeviceService {
List<DeviceContactModelDO> getDeviceAttributeList(Long deviceId); List<DeviceContactModelDO> getDeviceAttributeList(Long deviceId);
List<Long> deviceLedgerList();
void updateDeviceEnabled(@Valid DeviceUpdateEnabledReqVO updateEnabledReqVO) throws MqttException; void updateDeviceEnabled(@Valid DeviceUpdateEnabledReqVO updateEnabledReqVO) throws MqttException;
DeviceDO getDeviceByMqttTopic(String topic); DeviceDO getDeviceByMqttTopic(String topic);

@ -129,7 +129,7 @@ public class DeviceServiceImpl implements DeviceService {
@Override @Override
// @Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public DeviceDO createDevice(DeviceSaveReqVO createReqVO) { public DeviceDO createDevice(DeviceSaveReqVO createReqVO) {
// if(StringUtils.isNotBlank(createReqVO.getReadTopic())){ // if(StringUtils.isNotBlank(createReqVO.getReadTopic())){
// DeviceDO temp = deviceMapper.selectByTopic(createReqVO.getReadTopic()); // DeviceDO temp = deviceMapper.selectByTopic(createReqVO.getReadTopic());
@ -181,7 +181,6 @@ public class DeviceServiceImpl implements DeviceService {
//创建时序数据库 //创建时序数据库
// createTDengine(device.getId()); // createTDengine(device.getId());
tdengineService.createTdengineTable(device.getId(),contactModelList);
//新增规则点位 //新增规则点位
addNewRulePoints(createReqVO.getDeviceModelId(),device.getId()); addNewRulePoints(createReqVO.getDeviceModelId(),device.getId());
@ -1364,4 +1363,10 @@ public class DeviceServiceImpl implements DeviceService {
} }
@Override
public List<Long> deviceLedgerList() {
return deviceMapper.deviceLedgerList();
}
} }

@ -62,10 +62,19 @@
SELECT mo.workshop SELECT mo.workshop
FROM mes_device_ledger mo FROM mes_device_ledger mo
WHERE mo.deleted = 0 WHERE mo.deleted = 0
and dv_id = #{id} and mo.dv_id = #{id}
LIMIT 1 LIMIT 1
</select> </select>
<select id="deviceLedgerList" resultType="java.lang.Long">
SELECT mo.dv_id
FROM mes_device_ledger mo
WHERE mo.deleted = 0
AND mo.dv_id IS NOT NULL
AND mo.dv_id != 0
</select>
<select id="getDeviceOperationalStatus" <select id="getDeviceOperationalStatus"
resultType="cn.iocoder.yudao.module.iot.controller.admin.device.vo.DeviceOperationStatusRespVO"> resultType="cn.iocoder.yudao.module.iot.controller.admin.device.vo.DeviceOperationStatusRespVO">
SELECT SELECT

@ -166,7 +166,18 @@ public class DeviceLedgerController {
public CommonResult<List<DeviceLedgerDO>> getDeviceLedgerListByNoUsed() { public CommonResult<List<DeviceLedgerDO>> getDeviceLedgerListByNoUsed() {
List<DeviceLedgerDO> deviceLedgerDOList = deviceLedgerService.getDeviceLedgerList(); List<DeviceLedgerDO> deviceLedgerDOList = deviceLedgerService.getDeviceLedgerList();
deviceLedgerDOList.removeIf(device -> deviceLedgerDOList.removeIf(device ->
device.getWorkshop() != null device.getWorkshop() != null && !device.getWorkshop().trim().isEmpty()
);
return success(deviceLedgerDOList);
}
@GetMapping("/noUsedlist2")
@Operation(summary = "获得未关联设备台账列表")
@PreAuthorize("@ss.hasPermission('mes:device-ledger:query')")
public CommonResult<List<DeviceLedgerDO>> getDeviceLedgerList2ByNoUsed(@RequestParam("id") Long id) {
List<DeviceLedgerDO> deviceLedgerDOList = deviceLedgerService.getDeviceLedgerList();
deviceLedgerDOList.removeIf(device ->
device.getWorkshop() != null && !device.getWorkshop().trim().isEmpty() && !Objects.equals(device.getId(), id)
); );
return success(deviceLedgerDOList); return success(deviceLedgerDOList);
} }

@ -79,4 +79,11 @@ import java.time.LocalDateTime;
@Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED)
private String deviceName; private String deviceName;
@Schema(description = "关联采集设备id")
private Long dvId;
@Schema(description = "关联采集设备")
@ExcelProperty("关联采集设备")
private Long dvName;
} }

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.controller.admin.organization.vo; package cn.iocoder.yudao.module.mes.controller.admin.organization.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -50,4 +51,10 @@ public class OrganizationSaveReqVO {
@Schema(description = "组织类型") @Schema(description = "组织类型")
private String orgType; private String orgType;
@Schema(description = "关联采集设备id")
private Long dvId;
@Schema(description = "关联采集设备")
private Long dvName;
} }

@ -88,4 +88,9 @@ public class OrganizationDO extends BaseDO {
*/ */
private String deviceName; private String deviceName;
/**
* id
*/
private Long dvId;
} }

@ -56,5 +56,4 @@ public interface MoldOperateService {
List<MoldDO> getLowerMoldList(Long id); List<MoldDO> getLowerMoldList(Long id);
} }

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.service.moldoperate; package cn.iocoder.yudao.module.mes.service.moldoperate;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO;
import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldMapper; import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldMapper;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
@ -171,4 +172,5 @@ public class MoldOperateServiceImpl implements MoldOperateService {
return moldDOList; return moldDOList;
} }
} }
Loading…
Cancel
Save