platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/InventoryFlowWaterQueryDTO.java
New file @@ -0,0 +1,13 @@ package com.by4cloud.platformx.device.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data @Schema(description = "库存流水分页入参") public class InventoryFlowWaterQueryDTO { @Schema(description = "设备名称") private String deviceName; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java
@@ -1,5 +1,6 @@ package com.by4cloud.platformx.device.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import com.fasterxml.jackson.annotation.JsonFormat; @@ -9,8 +10,9 @@ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.Transient; import java.util.Date; import java.util.List; @Data @Entity @@ -78,4 +80,11 @@ @Schema(description = "承租公司") @Column(columnDefinition="bigint comment '承租公司'") private Long lesseeContractId; /** * 台账明细 */ @Transient @TableField(exist = false) private List<DeviceLeasingLedgerItem> ledgerItemList; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java
@@ -1,5 +1,6 @@ package com.by4cloud.platformx.device.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import io.swagger.v3.oas.annotations.media.Schema; @@ -8,6 +9,8 @@ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Transient; import java.util.List; @Data @Entity @@ -34,7 +37,7 @@ * 设备编码 */ @Schema(description="设备编码") @Column(columnDefinition="VARCHAR(16) comment '设备编码'") @Column(columnDefinition="VARCHAR(32) comment '设备编码'") private String deviceCode; /** @@ -71,4 +74,11 @@ @Schema(description = "数量") @Column(columnDefinition="INTEGER comment '数量'") private Integer num; /** * 台账明细 */ @Transient @TableField(exist = false) private List<String> serialNos; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java
@@ -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-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java
@@ -41,8 +41,8 @@ private Long contractItemId; @Schema(description = "数量") @Column(columnDefinition="bigint comment '数量'") private Long num; @Column(columnDefinition="integer comment '数量'") private Integer num; /** * 验收金额 @@ -94,11 +94,12 @@ @Column(columnDefinition="VARCHAR(32) comment '计量单位'") private String meteringUnit; /** * 入库时所需序列号 * 设备序列号 */ @Schema(description = "设备序列号") @Transient @TableField(exist = false) private List<String> serialNos; @Schema(description="设备序列号 逗号分隔") @Column(columnDefinition="VARCHAR(256) comment '设备序列号'") private String serialNos; } platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryFlowWaterPageVo.java
New file @@ -0,0 +1,23 @@ package com.by4cloud.platformx.device.entity.vo; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @Data public class InventoryFlowWaterPageVo { private Long id; private String devicName; private String className; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; private String operateType; private String serialNo; } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java
@@ -126,4 +126,26 @@ public List<Contract> export(Contract contract,Long[] ids) { return contractService.list(Wrappers.lambdaQuery(contract).in(ArrayUtil.isNotEmpty(ids), Contract::getId, ids)); } /** * 审批通过合同 * @param id id * @return R */ @Operation(summary = "审批通过合同" , description = "审批通过合同" ) @GetMapping("/approved/{id}" ) public R approved(@PathVariable("id" ) Long id) { return R.ok(contractService.approved(id)); } /** * 获取审批通过合同的下拉列表 * @return R */ @Operation(summary = "获取审批通过合同的下拉列表" , description = "获取审批通过合同的下拉列表" ) @GetMapping("/getApprovedContractList" ) public R getApprovedContractList() { return R.ok(contractService.getApprovedContractList()); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java
@@ -67,7 +67,7 @@ @GetMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_view')" ) public R getById(@PathVariable("id" ) Long id) { return R.ok(deviceLeasingLedgerService.getById(id)); return R.ok(deviceLeasingLedgerService.getByIdDeep(id)); } /** @@ -81,7 +81,7 @@ @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_add')" ) public R save(@RequestBody DeviceLeasingLedger deviceLeasingLedger) { deviceLeasingLedger.setLedgerCode(maxSizeService.nextNo(MaxSizeContant.LEDGER_CODE)); return R.ok(deviceLeasingLedgerService.save(deviceLeasingLedger)); return deviceLeasingLedgerService.saveDeep(deviceLeasingLedger); } /** @@ -139,4 +139,13 @@ public R getDeviceSelectList(@PathVariable("ledgerId")Long ledgerId) { return R.ok(deviceLeasingLedgerService.getDeviceSelectList(ledgerId)); } /** * 台账中设备序列号下拉下拉 */ @Operation(summary = "台账明细中设备序列号下拉",description = "台账明细中设备序列号下拉下拉") @GetMapping("/getLedgerDeviceList/{deviceId}") public R getLedgerDeviceList(@PathVariable("deviceId")Long deviceId) { return R.ok(deviceLeasingLedgerService.getLedgerDeviceList(deviceId)); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java
@@ -49,6 +49,7 @@ @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_view')" ) public R getDeviceLeasingLedgerItemPage(@ParameterObject Page page, @ParameterObject DeviceLeasingLedgerItem deviceLeasingLedgerItem) { LambdaQueryWrapper<DeviceLeasingLedgerItem> wrapper = Wrappers.lambdaQuery(); wrapper.eq(deviceLeasingLedgerItem.getLedgerId()!=null,DeviceLeasingLedgerItem::getLedgerId,deviceLeasingLedgerItem.getLedgerId()); wrapper.eq(StrUtil.isNotBlank(deviceLeasingLedgerItem.getDeviceCode()),DeviceLeasingLedgerItem::getDeviceCode,deviceLeasingLedgerItem.getDeviceCode()); return R.ok(deviceLeasingLedgerItemService.page(page, wrapper)); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InventoryFlowWaterController.java
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.device.dto.InventoryFlowWaterQueryDTO; import com.by4cloud.platformx.device.entity.InventoryFlowWater; import com.by4cloud.platformx.device.service.InventoryFlowWaterService; import org.springframework.security.access.prepost.PreAuthorize; @@ -40,15 +41,14 @@ /** * 分页查询 * @param page 分页对象 * @param inventoryFlowWater 库存流水表 * @param queryDTO 库存流水表 * @return */ @Operation(summary = "分页查询" , description = "分页查询" ) @GetMapping("/page" ) @PreAuthorize("@pms.hasPermission('platformx_inventoryFlowWater_view')" ) public R getInventoryFlowWaterPage(@ParameterObject Page page, @ParameterObject InventoryFlowWater inventoryFlowWater) { LambdaQueryWrapper<InventoryFlowWater> wrapper = Wrappers.lambdaQuery(); return R.ok(inventoryFlowWaterService.page(page, wrapper)); public R getInventoryFlowWaterPage(@ParameterObject Page page, @ParameterObject InventoryFlowWaterQueryDTO queryDTO) { return R.ok(inventoryFlowWaterService.pageNew(page, queryDTO)); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/PurchaseTendrOrderController.java
@@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.device.constant.MaxSizeContant; import com.by4cloud.platformx.device.entity.Contract; import com.by4cloud.platformx.device.service.JcMaxSizeService; import com.by4cloud.platformx.device.service.PurchaseTendrOrderService; import com.by4cloud.platformx.device.entity.PurchaseTendrOrderEntity; import com.by4cloud.platformx.device.service.PurchaseTendrOrderService; @@ -39,6 +41,7 @@ public class PurchaseTendrOrderController { private final PurchaseTendrOrderService purchaseTendrOrderService; private final JcMaxSizeService jcMaxSizeService; /** * 分页查询 @@ -79,6 +82,7 @@ @PostMapping @PreAuthorize("@pms.hasPermission('platformx_purchaseTendrOrder_add')" ) public R save(@RequestBody PurchaseTendrOrderEntity purchaseTendrOrder) { purchaseTendrOrder.setPurchasePlanCode(jcMaxSizeService.nextNo(MaxSizeContant.PURCHASE_PLAN_CODE)); return R.ok(purchaseTendrOrderService.save(purchaseTendrOrder)); } @@ -134,4 +138,14 @@ public R complete(@PathVariable("id")Long id) { return R.ok(purchaseTendrOrderService.complete(id)); } /** * 获取招标下拉列表 * @return */ @GetMapping("/getPurchaseRenderList" ) public R getPurchaseRenderList() { return R.ok(purchaseTendrOrderService.getPurchaseRenderList()); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/PurchaseWinningLetterController.java
@@ -8,9 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.device.constant.MaxSizeContant; import com.by4cloud.platformx.device.entity.Contract; import com.by4cloud.platformx.device.entity.PurchaseTendrOrderEntity; import com.by4cloud.platformx.device.entity.PurchaseWinningLetterEntity; import com.by4cloud.platformx.device.service.JcMaxSizeService; import com.by4cloud.platformx.device.service.PurchaseWinningLetterService; import org.springframework.security.access.prepost.PreAuthorize; import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; @@ -38,6 +40,7 @@ public class PurchaseWinningLetterController { private final PurchaseWinningLetterService purchaseWinningLetterService; private final JcMaxSizeService maxSizeService; /** * 分页查询 @@ -79,6 +82,7 @@ @PostMapping @PreAuthorize("@pms.hasPermission('device_purchaseWinningLetter_add')" ) public R save(@RequestBody PurchaseWinningLetterEntity purchaseWinningLetter) { purchaseWinningLetter.setWinningCode(maxSizeService.nextNo(MaxSizeContant.WINNING_CODE)); return R.ok(purchaseWinningLetterService.save(purchaseWinningLetter)); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java
@@ -73,7 +73,7 @@ @PostMapping @PreAuthorize("@pms.hasPermission('device_receivingNote_add')" ) public R save(@RequestBody ReceivingNote receivingNote) { return R.ok(receivingNoteService.saveDeep(receivingNote)); return receivingNoteService.saveDeep(receivingNote); } /** platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InventoryFlowWaterMapper.java
@@ -1,11 +1,16 @@ package com.by4cloud.platformx.device.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper; import com.by4cloud.platformx.device.dto.InventoryFlowWaterQueryDTO; import com.by4cloud.platformx.device.entity.InventoryFlowWater; import com.by4cloud.platformx.device.entity.vo.InventoryFlowWaterPageVo; import org.apache.ibatis.annotations.Mapper; @Mapper public interface InventoryFlowWaterMapper extends PlatformxBaseMapper<InventoryFlowWater> { IPage<InventoryFlowWaterPageVo> pageNew(Page page, InventoryFlowWaterQueryDTO queryDTO); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java
@@ -3,6 +3,8 @@ import com.by4cloud.platformx.device.entity.Contract; import com.github.yulichang.extension.mapping.base.MPJDeepService; import java.util.List; public interface ContractService extends MPJDeepService<Contract> { Boolean saveDeep(Contract contract); @@ -13,4 +15,8 @@ Boolean removeChild(Long[] ids); Contract getDetailById(Long id); Boolean approved(Long id); List<Contract> getApprovedContractList(); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java
@@ -1,7 +1,9 @@ package com.by4cloud.platformx.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.device.entity.Device; import com.by4cloud.platformx.device.entity.DeviceInventory; import com.by4cloud.platformx.device.entity.DeviceLeasingLedger; import java.util.List; @@ -11,4 +13,10 @@ List<DeviceLeasingLedger> getSelectList(); List<Device> getDeviceSelectList(Long ledgerId); R saveDeep(DeviceLeasingLedger deviceLeasingLedger); List<DeviceInventory> getLedgerDeviceList(Long deviceId); DeviceLeasingLedger getByIdDeep(Long id); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InventoryFlowWaterService.java
@@ -1,8 +1,12 @@ package com.by4cloud.platformx.device.service; 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.device.dto.InventoryFlowWaterQueryDTO; import com.by4cloud.platformx.device.entity.InventoryFlowWater; public interface InventoryFlowWaterService extends IService<InventoryFlowWater> { IPage pageNew(Page page, InventoryFlowWaterQueryDTO queryDTO); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/PurchaseTendrOrderService.java
@@ -3,7 +3,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.by4cloud.platformx.device.entity.PurchaseTendrOrderEntity; import java.util.List; public interface PurchaseTendrOrderService extends IService<PurchaseTendrOrderEntity> { boolean complete(Long id); List<PurchaseTendrOrderEntity> getPurchaseRenderList(); } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java
@@ -3,6 +3,7 @@ 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.ReceivingNoteQueryDTO; import com.by4cloud.platformx.device.entity.ReceivingNote; @@ -10,7 +11,7 @@ IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO); boolean saveDeep(ReceivingNote receivingNote); R saveDeep(ReceivingNote receivingNote); boolean updateByIdDeep(ReceivingNote receivingNote); platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java
@@ -31,6 +31,7 @@ @Override @Transactional(rollbackFor = Exception.class) public Boolean saveDeep(Contract contract) { contract.setStatus(0); baseMapper.insert(contract); for (ContractItem contractItem : contract.getContractItemList()) { contractItem.setContractId(contract.getId()); @@ -82,4 +83,20 @@ contract.setContractItemList(itemList); return contract; } @Override public Boolean approved(Long id) { Contract contract = baseMapper.selectById(id); contract.setStatus(1); baseMapper.updateById(contract); return Boolean.TRUE; } @Override public List<Contract> getApprovedContractList() { QueryWrapper<Contract> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status",1); List<Contract> list = baseMapper.selectList(queryWrapper); return list; } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
@@ -2,12 +2,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.device.entity.Device; import com.by4cloud.platformx.device.entity.DeviceLeasingLedger; import com.by4cloud.platformx.device.mapper.DeviceLeasingLedgerMapper; import com.by4cloud.platformx.device.mapper.DeviceMapper; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.device.entity.*; import com.by4cloud.platformx.device.mapper.*; import com.by4cloud.platformx.device.service.DeviceLeasingLedgerService; import lombok.AllArgsConstructor; import net.sf.jsqlparser.expression.operators.arithmetic.Concat; import org.springframework.stereotype.Service; import java.util.List; @@ -23,6 +23,11 @@ public class DeviceLeasingLedgerServiceImpl extends ServiceImpl<DeviceLeasingLedgerMapper, DeviceLeasingLedger> implements DeviceLeasingLedgerService { private final DeviceMapper deviceMapper; private final DeviceLeasingLedgerItemMapper itemMapper; private final ContractItemMapper contractItemMapper; private final ContractMapper contractMapper; private final DeviceInventoryMapper inventoryMapper; private final InventoryFlowWaterMapper inventoryFlowWaterMapper; @Override public List<DeviceLeasingLedger> getSelectList() { @@ -36,4 +41,113 @@ List<Device> list = deviceMapper.getDeviceSelectListByLedgerId(ledgerId); return list; } @Override public R saveDeep(DeviceLeasingLedger deviceLeasingLedger) { //明细设备数量与合同中签订数据比对 QueryWrapper<Contract> contractQueryWrapper = new QueryWrapper<>(); contractQueryWrapper.eq("number",deviceLeasingLedger.getContractCode()); Contract contract = contractMapper.selectOne(contractQueryWrapper); if (contract == null) { return R.failed("合同不存在"); } //查询合同明细中设备情况 QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("contract_id",contract.getId()); List<ContractItem> list = contractItemMapper.selectList(queryWrapper); //比较设备种类是否一致 if (list.size()!=deviceLeasingLedger.getLedgerItemList().size()){ return R.failed("合同中设备种类与台账明细中不一致"); } //比较单个设备台账数量是否与合同中一致 for (ContractItem contractItem:list ) { for (DeviceLeasingLedgerItem item:deviceLeasingLedger.getLedgerItemList() ) { if (contractItem.getDeviceId()==item.getDeviceId()){ if (contractItem.getNum()!=item.getNum()) { return R.failed("合同中"+contract.getName()+"设备数量与台账明细中不一致"); } } } } //入库 baseMapper.insert(deviceLeasingLedger); for (DeviceLeasingLedgerItem item:deviceLeasingLedger.getLedgerItemList() ) { item.setLedgerId(deviceLeasingLedger.getId()); itemMapper.insert(item); for (String serialNo:item.getSerialNos() ) { Device device = deviceMapper.selectById(item.getDeviceId()); 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(0); //出库操作 库存状态为 租赁中 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); } } } //更新合同状态为完成 contract.setStatus(2); contractMapper.updateById(contract); return R.ok(); } @Override public List<DeviceInventory> getLedgerDeviceList(Long deviceId) { QueryWrapper<DeviceInventory> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("device_id",deviceId); queryWrapper.eq("inventory_status",1); List<DeviceInventory> list = inventoryMapper.selectList(queryWrapper); return list; } @Override public DeviceLeasingLedger getByIdDeep(Long id) { DeviceLeasingLedger deviceLeasingLedger = baseMapper.selectById(id); QueryWrapper<DeviceLeasingLedgerItem> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ledger_id",id); List<DeviceLeasingLedgerItem> itemList = itemMapper.selectList(queryWrapper); deviceLeasingLedger.setLedgerItemList(itemList); return deviceLeasingLedger; } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InventoryFlowWaterServiceImpl.java
@@ -1,6 +1,9 @@ package com.by4cloud.platformx.device.service.impl; 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.device.dto.InventoryFlowWaterQueryDTO; import com.by4cloud.platformx.device.entity.InventoryFlowWater; import com.by4cloud.platformx.device.mapper.InventoryFlowWaterMapper; import com.by4cloud.platformx.device.service.InventoryFlowWaterService; @@ -13,4 +16,8 @@ */ @Service public class InventoryFlowWaterServiceImpl extends ServiceImpl<InventoryFlowWaterMapper, InventoryFlowWater> implements InventoryFlowWaterService { @Override public IPage pageNew(Page page, InventoryFlowWaterQueryDTO queryDTO) { return baseMapper.pageNew(page,queryDTO); } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/PurchaseTendrOrderServiceImpl.java
@@ -9,6 +9,9 @@ import com.by4cloud.platformx.device.service.PurchaseTendrOrderService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; /** * 招标采购单 * @@ -19,21 +22,25 @@ @RequiredArgsConstructor public class PurchaseTendrOrderServiceImpl extends ServiceImpl<PurchaseTendrOrderMapper, PurchaseTendrOrderEntity> implements PurchaseTendrOrderService { private final PurchaseTendrOrderMapper purchaseTendrOrderMapper; private final PurchaseWinningLetterMapper purchaseWinningLetterMapper; @Override public boolean complete(Long id) { PurchaseTendrOrderEntity orderEntity = purchaseTendrOrderMapper.selectById(id); PurchaseTendrOrderEntity orderEntity = baseMapper.selectById(id); PurchaseWinningLetterEntity entity = BeanUtil.copyProperties(orderEntity, PurchaseWinningLetterEntity.class); entity.setWinningPrice(orderEntity.getEstimatePrice()); entity.setTotalWinningAmount(orderEntity.getTotalPlanndAmount()); purchaseWinningLetterMapper.insert(entity); orderEntity.setStatus("2"); purchaseTendrOrderMapper.updateById(orderEntity); baseMapper.updateById(orderEntity); return true; } @Override public List<PurchaseTendrOrderEntity> getPurchaseRenderList() { List<PurchaseTendrOrderEntity> list = baseMapper.selectList(null); return list; } } platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
@@ -4,15 +4,22 @@ 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.constant.MaxSizeContant; import com.by4cloud.platformx.device.dto.ReceivingNoteQueryDTO; import com.by4cloud.platformx.device.entity.*; import com.by4cloud.platformx.device.mapper.*; import com.by4cloud.platformx.device.service.JcMaxSizeService; import com.by4cloud.platformx.device.service.ReceivingNoteService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 验收表 @@ -22,13 +29,16 @@ */ @Service @AllArgsConstructor @Slf4j public class ReceivingNoteServiceImpl extends ServiceImpl<ReceivingNoteMapper, ReceivingNote> implements ReceivingNoteService { private final JcMaxSizeService maxSizeService; private final ReceivingNoteItemMapper itemMapper; private final DeviceInventoryMapper inventoryMapper; private final InventoryFlowWaterMapper inventoryFlowWaterMapper; private final DeviceMapper deviceMapper; private final ContractMapper contractMapper; private final ContractItemMapper contractItemMapper; @Override public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) { @@ -36,19 +46,55 @@ } @Override public boolean saveDeep(ReceivingNote entity) { public R saveDeep(ReceivingNote entity) { //明细设备数量与合同中签订数据比对 Contract contract = contractMapper.selectById(entity.getContractId()); if (contract == null) { return R.failed("合同不存在"); } //查询合同明细中设备情况 QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("contract_id",contract.getId()); List<ContractItem> list = contractItemMapper.selectList(queryWrapper); //比较设备种类是否一致 if (list.size()!=entity.getNoteItemList().size()){ return R.failed("合同中设备种类与验收明细中不一致"); } //比较单个设备台账数量是否与合同中一致 for (ContractItem contractItem:list ) { for (ReceivingNoteItem item:entity.getNoteItemList() ) { if (contractItem.getDeviceId().equals(item.getDeviceId())){ if (contractItem.getNum()!=item.getNum()) { return R.failed("合同中"+item.getDeviceName()+"设备数量与验收明细中不一致"); } } } } //生成验收单编号 entity.setReleaseCode(maxSizeService.nextNo(MaxSizeContant.RELEASE_CODE)); //入库 baseMapper.insert(entity); if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){ for (ReceivingNoteItem item:entity.getNoteItemList() ) { List<String> serialArr = new ArrayList<>(); if (item.getSerialNos()!=null&&!"".equals(item.getSerialNos())) { item.setSerialNos(item.getSerialNos()); serialArr = Arrays.stream(item.getSerialNos().split(",")).collect(Collectors.toList()); } item.setNoteId(entity.getId()); itemMapper.insert(item); //设备库存同步新增 if (item.getSerialNos()!=null&&item.getSerialNos().size()>0){ for (String serialNo:item.getSerialNos() if (serialArr.size()>0){ for (String serialNo:serialArr ) { Device device = deviceMapper.selectById(item.getDeviceId()); Contract contract = contractMapper.selectById(entity.getContractId()); if (device!=null) { DeviceInventory inventory = new DeviceInventory(); inventory.setDeviceId(item.getDeviceId()); @@ -83,7 +129,12 @@ } } } return Boolean.TRUE; //更新合同状态为完成 contract.setStatus(2); contractMapper.updateById(contract); return R.ok(); } @Override @@ -111,4 +162,10 @@ note.setNoteItemList(itemList); return note; } public static void main(String[] args) { Long l1= 1905442028714270722l; long l2 = 1905442028714270722l; System.out.println(l1==l2); } } platformx-device-biz/src/main/resources/mapper/InventoryFlowWaterMapper.xml
@@ -18,4 +18,23 @@ <result property="updateTime" column="update_time"/> <result property="delFlag" column="del_flag"/> </resultMap> <select id="pageNew" resultType="com.by4cloud.platformx.device.entity.vo.InventoryFlowWaterPageVo"> select ifw.id, d.name devicName, dc.name className, d.create_time , ifw.operate_type, di.serial_no from inventory_flow_water ifw join device d on d.id = ifw.device_id join device_class dc on dc.id = ifw.class_id join device_inventory di on di.id = ifw.inventory_id where ifw.del_flag = '0' <if test="queryDTO.deviceName != null and queryDTO.deviceName !=''"> and d.name like CONCAT('%', #{queryDTO.deviceName}, '%') </if> </select> </mapper>