platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java
@@ -44,5 +44,7 @@ @Column(columnDefinition="int comment '来源 0仓库 1购买 2子单位闲置'") private Integer source; @Schema(description = "库存状态") @Column(columnDefinition="int comment '库存状态 1 可用 2 租赁中 3 冻结 4 报废'") private Integer inventoryStatus; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InventoryFlowWater.java
@@ -47,7 +47,11 @@ @Column(columnDefinition="VARCHAR(200) comment '备注'") private String remark; @Schema(description = "设备序列号") @Column(columnDefinition="VARCHAR(64) comment '设备序列号'") private String serialNo; @Schema(description = "操作类型") @Column(columnDefinition="integer comment ' 操作类型 1 出库 2 入库'") private Integer operateType; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java
@@ -29,16 +29,16 @@ @Table(appliesTo = "receiving_note", comment = "验收表") public class ReceivingNote extends BaseModel<ReceivingNote> { /** * 承租合同Id * 合同Id */ @Column(columnDefinition="long comment '承租合同Id'") private Long lesseeContractId; @Column(columnDefinition="long comment '合同Id'") private Long contractId; /** * 租用合同Id */ @Column(columnDefinition="long comment '租用合同Id'") private Long rentContractId; // /** // * 租用合同Id // */ // @Column(columnDefinition="long comment '租用合同Id'") // private Long rentContractId; @Schema(description = "验收公司") @Column(columnDefinition="VARCHAR(64) comment '验收公司'") @@ -126,9 +126,9 @@ /** * 使用公司 */ @Schema(description = "使用公司") @Column(columnDefinition="long comment '使用公司'") private Long deptId; // @Schema(description = "使用公司") // @Column(columnDefinition="long comment '使用公司'") // private Long deptId; @Transient @TableField(exist = false) platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java
@@ -70,7 +70,7 @@ @GetMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('platformx_contract_view')" ) public R getById(@PathVariable("id" ) Long id) { return R.ok(contractService.getById(id)); return R.ok(contractService.getDetailById(id)); } /** @@ -84,7 +84,7 @@ @PreAuthorize("@pms.hasPermission('platformx_contract_add')" ) public R save(@RequestBody Contract contract) { contract.setNumber(maxSizeService.nextNo(MaxSizeContant.CONTRACT_NUM)); return R.ok(contractService.save(contract)); return R.ok(contractService.saveDeep(contract)); } /** @@ -97,7 +97,7 @@ @PutMapping @PreAuthorize("@pms.hasPermission('platformx_contract_edit')" ) public R updateById(@RequestBody Contract contract) { return R.ok(contractService.updateById(contract)); return R.ok(contractService.updateDeep(contract)); } /** @@ -110,7 +110,7 @@ @DeleteMapping @PreAuthorize("@pms.hasPermission('platformx_contract_del')" ) public R removeById(@RequestBody Long[] ids) { return R.ok(contractService.removeBatchByIds(CollUtil.toList(ids))); return R.ok(contractService.removeDeep(ids)); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteItemController.java
@@ -116,4 +116,15 @@ public List<ReceivingNoteItem> export(ReceivingNoteItem receivingNoteItem,Long[] ids) { return receivingNoteItemService.list(Wrappers.lambdaQuery(receivingNoteItem).in(ArrayUtil.isNotEmpty(ids), ReceivingNoteItem::getId, ids)); } /** * 根据合同查询合同内的设备 * @param contractId * @return */ @Operation(summary = "根据合同查询合同内的设备" , description = "根据合同查询合同内的设备") @GetMapping("/getDeviceListByContractId/{contractId}") public R getDeviceListByContractId(@PathVariable("contractId")Long contractId) { return receivingNoteItemService.getDeviceListByContractId(contractId); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java
@@ -12,4 +12,6 @@ List<Device> getDeviceSelectListByLedgerId(@Param("ledgerId") Long ledgerId); List<Device> getDeviceListByContractId(@Param("contractId")Long contractId); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java
@@ -12,4 +12,5 @@ Boolean removeChild(Long[] ids); Contract getDetailById(Long id); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteItemService.java
@@ -3,10 +3,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.device.dto.ReceivingNoteItemQueryDTO; import com.by4cloud.platformx.device.entity.ReceivingNoteItem; public interface ReceivingNoteItemService extends IService<ReceivingNoteItem> { IPage pageNew(Page page, ReceivingNoteItemQueryDTO queryDTO); R getDeviceListByContractId(Long contractId); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java
@@ -1,5 +1,6 @@ package com.by4cloud.platformx.device.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.device.entity.Contract; @@ -14,6 +15,7 @@ import lombok.RequiredArgsConstructor; import java.io.Serializable; import java.util.List; import java.util.Objects; /** * 合同表 @@ -42,14 +44,17 @@ @Transactional(rollbackFor = Exception.class) public Boolean updateDeep(Contract contract) { baseMapper.updateById(contract); for (ContractItem contractItem : contract.getContractItemList()) { if (Objects.isNull(contractItem.getId())) { contractItem.setContractId(contract.getId()); contractItemMapper.insert(contractItem); } else { contractItemMapper.updateById(contractItem); } } if (contract.getContractItemList() != null&&contract.getContractItemList().size()>0) { QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("contract_id",contract.getId()); contractItemMapper.delete(queryWrapper); for (ContractItem contractItem : contract.getContractItemList()) { contractItem.setId(null); contractItem.setContractId(contract.getId()); contractItemMapper.insert( contractItem); } } return Boolean.TRUE; } @@ -69,7 +74,12 @@ } @Override public Contract getByIdDeep(Serializable id) { return ContractService.super.getByIdDeep(id); public Contract getDetailById(Long id) { Contract contract = baseMapper.selectById(id); QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("contract_id",id); List<ContractItem> itemList = contractItemMapper.selectList(queryWrapper); contract.setContractItemList(itemList); return contract; } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteItemServiceImpl.java
@@ -3,11 +3,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.device.dto.ReceivingNoteItemQueryDTO; import com.by4cloud.platformx.device.entity.Device; import com.by4cloud.platformx.device.entity.ReceivingNoteItem; import com.by4cloud.platformx.device.mapper.DeviceMapper; import com.by4cloud.platformx.device.mapper.ReceivingNoteItemMapper; import com.by4cloud.platformx.device.service.ReceivingNoteItemService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; /** * 验收子项表 * @@ -15,9 +22,19 @@ * @date 2025-03-13 11:04:28 */ @Service @AllArgsConstructor public class ReceivingNoteItemServiceImpl extends ServiceImpl<ReceivingNoteItemMapper, ReceivingNoteItem> implements ReceivingNoteItemService { private final DeviceMapper deviceMapper; @Override public IPage pageNew(Page page, ReceivingNoteItemQueryDTO queryDTO) { return baseMapper.pageNew(page,queryDTO); } @Override public R getDeviceListByContractId(Long contractId) { List<Device> deviceList = deviceMapper.getDeviceListByContractId(contractId); return R.ok(deviceList); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
@@ -5,12 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.device.dto.ReceivingNoteQueryDTO; import com.by4cloud.platformx.device.entity.DeviceInventory; import com.by4cloud.platformx.device.entity.ReceivingNote; import com.by4cloud.platformx.device.entity.ReceivingNoteItem; import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper; import com.by4cloud.platformx.device.mapper.ReceivingNoteItemMapper; import com.by4cloud.platformx.device.mapper.ReceivingNoteMapper; import com.by4cloud.platformx.device.entity.*; import com.by4cloud.platformx.device.mapper.*; import com.by4cloud.platformx.device.service.ReceivingNoteService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +26,9 @@ private final ReceivingNoteItemMapper itemMapper; private final DeviceInventoryMapper inventoryMapper; private final InventoryFlowWaterMapper inventoryFlowWaterMapper; private final DeviceMapper deviceMapper; private final ContractMapper contractMapper; @Override public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) { @@ -48,13 +47,37 @@ if (item.getSerialNos()!=null&&item.getSerialNos().size()>0){ for (String serialNo:item.getSerialNos() ) { DeviceInventory inventory = new DeviceInventory(); inventory.setDeviceId(item.getDeviceId()); inventory.setDeviceNumber(item.getDeviceCode()); inventory.setName(item.getDeviceName()); inventory.setSerialNo(serialNo); inventory.setSource(1); inventoryMapper.insert(inventory); Device device = deviceMapper.selectById(item.getDeviceId()); Contract contract = contractMapper.selectById(entity.getContractId()); if (device!=null) { DeviceInventory inventory = new DeviceInventory(); inventory.setDeviceId(item.getDeviceId()); inventory.setDeviceNumber(item.getDeviceCode()); inventory.setName(device.getName()); inventory.setSerialNo(serialNo); if (contract!=null&&(contract.getType()==1||contract.getType()==2)){ inventory.setSource(1); inventory.setInventoryStatus(1); } if (contract!=null&&contract.getType()==0){ inventory.setSource(1); inventory.setInventoryStatus(2); } inventoryMapper.insert(inventory); //设备库存流水同步新增 InventoryFlowWater flowWater = new InventoryFlowWater(); flowWater.setDeviceId(item.getDeviceId()); flowWater.setSerialNo(serialNo); flowWater.setInventoryId(inventory.getId()); flowWater.setClassId(device.getClassId()); if (contract!=null&&(contract.getType()==1||contract.getType()==2)){ flowWater.setOperateType(2); } if (contract!=null&&contract.getType()==0){ flowWater.setOperateType(1); } inventoryFlowWaterMapper.insert(flowWater); } } } platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
@@ -49,4 +49,21 @@ dll.id = #{ledgerId} and d.id = ci.device_id ); </select> <select id="getDeviceListByContractId" resultType="com.by4cloud.platformx.device.entity.Device"> select * from device d where d.del_flag = '0' and exists ( select ci.device_id from contract_item ci where ci.del_flag = '0' and ci.contract_id = #{contractId} and ci.device_id = d.id ) </select> </mapper>