ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/NotificationTypeConstant.java
@@ -10,7 +10,7 @@ String GROUP_PURCHASE = "group_purchase"; String AUCTION_GOODS = "auction_goods"; String AUCTION_SALESROOM = "auction_salesroom"; String SCANCODES = "scan_Codes"; String AUCTION_SALESROOM_GOODS = "auction_salesroom_goods"; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/InventoriesSuppliesController.java
@@ -3,10 +3,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.dto.InventoriesSuppDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesQuery; import com.ruoyi.management.domain.dto.SlGoodsMaterialsDTO; import com.ruoyi.management.domain.dto.SlGoodsMaterialsQuery; import com.ruoyi.management.domain.dto.*; import com.ruoyi.management.domain.vo.InventoriesSuppliesVO; import com.ruoyi.management.domain.vo.SlGoodsMaterialsVO; import com.ruoyi.management.service.InventoriesSuppliesService; @@ -45,4 +42,16 @@ inventoriesSuppliesService.addInventoriesSupp(inventoriesSuppDTO); return R.ok(); } @PostMapping("/scanCodes") @ApiOperation(value = "安卓扫描传输数据") public R scanCodes(@RequestBody ScanCodesDTO scanCodesDTO) { inventoriesSuppliesService.scanCodes(scanCodesDTO); return R.ok(); } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/InventoriesSuppliesInfoController.java
@@ -1,9 +1,24 @@ package com.ruoyi.management.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.InventoriesSuppliesInfo; import com.ruoyi.management.domain.dto.InventoriesSuppDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoQuery; import com.ruoyi.management.domain.dto.InventoriesSuppliesQuery; import com.ruoyi.management.domain.vo.InventoriesSuppliesInfoVO; import com.ruoyi.management.domain.vo.InventoriesSuppliesVO; import com.ruoyi.management.service.InventoriesSuppliesInfoService; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * <p> @@ -17,4 +32,39 @@ @RequestMapping("/inventories-supplies-info") public class InventoriesSuppliesInfoController { @Resource private InventoriesSuppliesInfoService inventoriesSuppliesInfoService; @PostMapping("/getInventoriesSuppliesInfoList") @ApiOperation(value = "分页获物资盘点详情") public R<PageDTO<InventoriesSuppliesInfoVO>> inventoriesSuppliesInfoService(@RequestBody InventoriesSuppliesInfoQuery inventoriesSuppliesInfoQuery) { return R.ok(inventoriesSuppliesInfoService.inventoriesSuppliesInfoService(inventoriesSuppliesInfoQuery)); } @PostMapping("/addInventoriesSuppliesInfo") @ApiOperation(value = "添加/修改物资盘点详情") public R addInventoriesSuppliesInfo(@RequestBody InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { inventoriesSuppliesInfoService.addInventoriesSuppliesInfo(inventoriesSuppliesInfoDTO); return R.ok(); } @PostMapping("/getInventoriesSuppliesInfo") @ApiOperation(value = "通过入库id查询是否已经有物资详情") public R<InventoriesSuppliesInfo> getInventoriesSuppliesInfo(@RequestBody InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { return R.ok( inventoriesSuppliesInfoService.getInventoriesSuppliesInfo(inventoriesSuppliesInfoDTO)); } @PostMapping("/submitInventoriesSuppliesInfo") @ApiOperation(value = "提交物资盘点数据") public R submitInventoriesSuppliesInfo(@RequestBody InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { inventoriesSuppliesInfoService.getInventoriesSuppliesInfo(inventoriesSuppliesInfoDTO); return R.ok(); } @PostMapping("/accomplishInventoriesSuppliesInfo") @ApiOperation(value = "完成物资盘点数据") public R accomplishInventoriesSuppliesInfo(@RequestBody InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { inventoriesSuppliesInfoService.accomplishInventoriesSuppliesInfo(inventoriesSuppliesInfoDTO); return R.ok(); } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/InventoriesSuppliesInfo.java
@@ -62,7 +62,7 @@ @TableField("update_time") private Date updateTime; @ApiModelProperty("是否匹配 1未匹配,已匹配") @ApiModelProperty("是否匹配 1已匹配,2 未匹配") @TableField("type") private Integer type; ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionRk.java
@@ -38,7 +38,7 @@ @ApiModelProperty("入库数量") @TableField("rk_num") private Integer rkNum; private Long rkNum; @ApiModelProperty("入库编号") @@ -54,6 +54,10 @@ @TableField("rk_pice") private BigDecimal rkPice; @ApiModelProperty("在库存的") @TableField("repertory_zhai") private Long repertoryZhai; @ApiModelProperty("仓库层数 1代表一层,2代表两层,3代表三层") @TableField("store_management_number") private Integer storeManagementNumber; ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/InventoriesSuppliesInfoDTO.java
New file @@ -0,0 +1,23 @@ package com.ruoyi.management.domain.dto; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("物资盘点详情数据传输对象") public class InventoriesSuppliesInfoDTO { private Long id; @ApiModelProperty("盘点数据id") private Long suppliesId; @ApiModelProperty("入库id") private Long rkId; @ApiModelProperty(" 盘点数量") private Long suppliesNum; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/InventoriesSuppliesInfoQuery.java
New file @@ -0,0 +1,14 @@ package com.ruoyi.management.domain.dto; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("物资盘点查看详情查询传输对象") public class InventoriesSuppliesInfoQuery extends BasePage { @ApiModelProperty("盘点数据id") private Long suppliesId; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ScanCodesDTO.java
New file @@ -0,0 +1,14 @@ package com.ruoyi.management.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("扫码数据数据传输对象") public class ScanCodesDTO { @ApiModelProperty("入库编号") private String rkNumber; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/InventoriesSuppliesInfoVO.java
New file @@ -0,0 +1,42 @@ package com.ruoyi.management.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "通过物资拿出库物资的数据对象", description = "通过物资拿出库物资的数据对象") public class InventoriesSuppliesInfoVO { private Long id; @ApiModelProperty("物资名称") @JsonInclude(JsonInclude.Include.ALWAYS) private String goodsMaterialsName; @ApiModelProperty("1 是非消耗,2是消耗 ") @JsonInclude(JsonInclude.Include.ALWAYS) private Integer isConsume; @ApiModelProperty("入库编号") private String rkNumber; @ApiModelProperty("入库型号") private String rkModel; @ApiModelProperty("入库id") private Long rkId; @ApiModelProperty(" 盘点数量") private Long suppliesNum; @ApiModelProperty("在库数量") private Long zkNum; @ApiModelProperty("是否匹配 1未匹配,已匹配") private Integer type; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/InventoriesSuppliesInfoService.java
@@ -1,7 +1,12 @@ package com.ruoyi.management.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.InventoriesSuppliesInfo; import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoQuery; import com.ruoyi.management.domain.vo.InventoriesSuppliesInfoVO; import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -13,4 +18,14 @@ */ public interface InventoriesSuppliesInfoService extends IService<InventoriesSuppliesInfo> { PageDTO<InventoriesSuppliesInfoVO> inventoriesSuppliesInfoService(InventoriesSuppliesInfoQuery inventoriesSuppliesInfoQuery); void addInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO); InventoriesSuppliesInfo getInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO); void submitInventoriesSuppliesInfo(@RequestBody InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO); void accomplishInventoriesSuppliesInfo(@RequestBody InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/InventoriesSuppliesService.java
@@ -6,6 +6,7 @@ import com.ruoyi.management.domain.InventoriesSupplies; import com.ruoyi.management.domain.dto.InventoriesSuppDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesQuery; import com.ruoyi.management.domain.dto.ScanCodesDTO; import com.ruoyi.management.domain.vo.InventoriesSuppliesVO; import com.ruoyi.management.domain.vo.SlGoodsMaterialsVO; import org.springframework.web.bind.annotation.RequestBody; @@ -23,4 +24,6 @@ void addInventoriesSupp(InventoriesSuppDTO inventoriesSuppDTO); void scanCodes(@RequestBody ScanCodesDTO scanCodesDTO); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesInfoServiceImpl.java
@@ -1,9 +1,25 @@ package com.ruoyi.management.service.impl; import com.ruoyi.management.domain.InventoriesSuppliesInfo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesInfoQuery; import com.ruoyi.management.domain.vo.InventoriesSuppliesInfoVO; import com.ruoyi.management.domain.vo.InventoriesSuppliesVO; import com.ruoyi.management.mapper.InventoriesSuppliesInfoMapper; import com.ruoyi.management.mapper.SlGoodsMaterialsMapper; import com.ruoyi.management.mapper.SlVolumeProductionRkMapper; import com.ruoyi.management.service.InventoriesSuppliesInfoService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.ListResourceBundle; import java.util.Set; /** * <p> @@ -16,4 +32,91 @@ @Service public class InventoriesSuppliesInfoServiceImpl extends ServiceImpl<InventoriesSuppliesInfoMapper, InventoriesSuppliesInfo> implements InventoriesSuppliesInfoService { @Resource private SlVolumeProductionRkMapper slVolumeProductionRkMapper; @Resource private SlGoodsMaterialsMapper slGoodsMaterialsMapper; @Override public PageDTO<InventoriesSuppliesInfoVO> inventoriesSuppliesInfoService(InventoriesSuppliesInfoQuery inventoriesSuppliesInfoQuery) { Page<InventoriesSuppliesInfo> page = new Page<>(inventoriesSuppliesInfoQuery.getPageCurr(), inventoriesSuppliesInfoQuery.getPageSize()); LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery(); wrapper1.gt(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoQuery.getSuppliesId()); wrapper1.eq( InventoriesSuppliesInfo::getDelFlag,0); wrapper1.orderByDesc(InventoriesSuppliesInfo::getCreateTime); wrapper1.orderByDesc(InventoriesSuppliesInfo::getType); Page<InventoriesSuppliesInfo> page2 = this.page(page, wrapper1); PageDTO<InventoriesSuppliesInfoVO> slGoodsMaterialsVO = PageDTO.of(page2, InventoriesSuppliesInfoVO.class); List<InventoriesSuppliesInfoVO> list = slGoodsMaterialsVO.getList(); for (InventoriesSuppliesInfoVO sl:list){ SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(sl.getRkId()); sl.setRkNumber(slVolumeProductionRk.getRkNumber()); sl.setRkModel(slVolumeProductionRk.getRkModel()); SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId()); sl.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); sl.setIsConsume(slGoodsMaterials.getIsConsume()); } return slGoodsMaterialsVO; } @Override public void addInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { if (inventoriesSuppliesInfoDTO.getId()==0){ InventoriesSuppliesInfo inventoriesSuppliesInf=new InventoriesSuppliesInfo(); inventoriesSuppliesInf.setSuppliesId(inventoriesSuppliesInfoDTO.getSuppliesId()); inventoriesSuppliesInf.setRkId(inventoriesSuppliesInfoDTO.getRkId()); SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(inventoriesSuppliesInfoDTO.getRkId()); inventoriesSuppliesInf.setZkNum(slVolumeProductionRk.getRepertoryZhai()); inventoriesSuppliesInf.setSuppliesNum(inventoriesSuppliesInfoDTO.getSuppliesNum()); this.save(inventoriesSuppliesInf); }else{ InventoriesSuppliesInfo byId = this.getById(inventoriesSuppliesInfoDTO.getId()); byId.setSuppliesNum(inventoriesSuppliesInfoDTO.getSuppliesNum()); this.updateById(byId); } } @Override public InventoriesSuppliesInfo getInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery(); wrapper1.gt(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoDTO.getSuppliesId()); wrapper1.gt(InventoriesSuppliesInfo::getRkId, inventoriesSuppliesInfoDTO.getSuppliesId()); wrapper1.eq( InventoriesSuppliesInfo::getDelFlag,0); InventoriesSuppliesInfo page2 = this.getOne(wrapper1); return page2; } @Override public void submitInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery(); wrapper1.gt(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoDTO.getSuppliesId()); wrapper1.eq( InventoriesSuppliesInfo::getDelFlag,0); List<InventoriesSuppliesInfo> page2 = this.list(wrapper1); for (InventoriesSuppliesInfo page:page2){ if (page.getZkNum()!=page.getSuppliesNum()){ page.setType(2); } this.updateById(page); } } @Override public void accomplishInventoriesSuppliesInfo(InventoriesSuppliesInfoDTO inventoriesSuppliesInfoDTO) { LambdaQueryWrapper< InventoriesSuppliesInfo> wrapper1= Wrappers.lambdaQuery(); wrapper1.gt(InventoriesSuppliesInfo::getSuppliesId, inventoriesSuppliesInfoDTO.getSuppliesId()); wrapper1.gt(InventoriesSuppliesInfo::getType, 2); wrapper1.eq( InventoriesSuppliesInfo::getDelFlag,0); List<InventoriesSuppliesInfo> page2 = this.list(wrapper1); for (InventoriesSuppliesInfo page:page2){ SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(page.getRkId()); slVolumeProductionRk.setRepertoryZhai(page.getSuppliesNum()); slVolumeProductionRkMapper.updateById(slVolumeProductionRk); } } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
@@ -3,29 +3,37 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.ClientTypeEnum; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.InventoriesSupplies; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.management.domain.SlGoodsShelf; import com.ruoyi.management.domain.SlStoreManagement; import com.ruoyi.management.domain.SlVolumeProductionRk; import com.ruoyi.management.domain.dto.InventoriesSuppDTO; import com.ruoyi.management.domain.dto.InventoriesSuppliesQuery; import com.ruoyi.management.domain.dto.ScanCodesDTO; import com.ruoyi.management.domain.vo.InventoriesSuppliesVO; import com.ruoyi.management.domain.vo.SlGoodsMaterialsVO; import com.ruoyi.management.domain.vo.SlGoodsShelfVO; import com.ruoyi.management.mapper.InventoriesSuppliesMapper; import com.ruoyi.management.mapper.SlStoreManagementMapper; import com.ruoyi.management.mapper.SlVolumeProductionRkMapper; import com.ruoyi.management.service.InventoriesSuppliesService; import com.ruoyi.management.service.SlVolumeProductionRkService; import com.ruoyi.system.api.constants.NotificationTypeConstant; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.domain.WebsocketMessageDTO; import com.ruoyi.system.api.feignClient.SysUserClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; /** @@ -44,6 +52,11 @@ @Resource private SysUserClient sysUserClient; @Resource private SlVolumeProductionRkMapper slVolumeProductionRkMapper; private static final ObjectMapper objectMapper = new ObjectMapper(); @Override public PageDTO<InventoriesSuppliesVO> getInventoriesSuppliesList(InventoriesSuppliesQuery inventoriesSuppliesQuery) { @@ -103,4 +116,24 @@ inventoriesSupplies.setPdrName(sysUser.getData().getNickName()); this.save(inventoriesSupplies); } @Override public void scanCodes(ScanCodesDTO scanCodesDTO) { LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); wrapper1.like(SlVolumeProductionRk::getRkNumber,scanCodesDTO.getRkNumber()); wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); SlVolumeProductionRk page2 = slVolumeProductionRkMapper.selectOne(wrapper1); Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.SCANCODES); map.put("SlVolumeProductionRk",page2); String msg = null; try { msg = objectMapper.writeValueAsString(map); } catch (JsonProcessingException e) { } sysUserClient.pushAll(msg, SecurityConstants.INNER); } }