package com.ruoyi.management.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.management.domain.*; import com.ruoyi.management.domain.dto.*; import com.ruoyi.management.domain.vo.*; import com.ruoyi.management.mapper.ManagementGoodsMaterialsMapper; import com.ruoyi.management.mapper.SlAuditMapper; import com.ruoyi.management.service.*; import com.ruoyi.management.service.impl.SlVolumeProductionZyServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.Authorization; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** *

* 转移管理 前端控制器 *

* * @author hjl * @since 2024-06-25 */ @RestController @RequestMapping("/sl-volume-production-zygl") @Api(value = "转移管理接口", tags = "转移管理接口", description = "转移管理接口") public class SlVolumeProductionZyglController { @Resource private SlAuditMapper slAuditMapper; @Resource private TokenService tokenService; @Resource private SlVolumeProductionZyglService slVolumeProductionZyglService; @Resource private SlVolumeProductionZyService slVolumeProductionZyService; @Autowired private SlVolumeProductionRkService slVolumeProductionRkService; @Autowired private SlGoodsMaterialsService slGoodsMaterialsService; @Resource private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper; @PostMapping("/getVolumeProductionZyglCode") @ApiOperation(value = "获取转移管理打印二维码列表") public R> getVolumeProductionRkgCode(@RequestBody VolumeProductionZyglCodeQuery volumeProductionRkgCodeQuery) { tokenService.getLoginUser(); // 通过转移管理获取 转移列表 获取入库id Page page = new Page<>(volumeProductionRkgCodeQuery.getPageCurr(), volumeProductionRkgCodeQuery.getPageSize()); LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(SlVolumeProductionZy::getZyglId,volumeProductionRkgCodeQuery.getVolumeProductionZyglId()); wrapper1.eq( SlVolumeProductionZy::getDelFlag,"0"); if (volumeProductionRkgCodeQuery.getShelfId() != null){ wrapper1.eq(SlVolumeProductionZy::getShelfId,volumeProductionRkgCodeQuery.getShelfId()); } if (volumeProductionRkgCodeQuery.getManagementNumber() != null){ wrapper1.eq(SlVolumeProductionZy::getStoreManagementNumber,volumeProductionRkgCodeQuery.getManagementNumber()); } wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime); Page page2 = slVolumeProductionZyService.page(page, wrapper1); PageDTO SlGoodsShelfDTO = PageDTO.of(page2, getVolumeProductionRkgCodeVO.class); List list2 = SlGoodsShelfDTO.getList(); for(getVolumeProductionRkgCodeVO list:list2) { SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsService.getById(list.getMaterialsId()); list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); list.setIsConsume(slGoodsMaterials.getIsConsume()); if (list.getScrkId() != null){ SlVolumeProductionRk byId = slVolumeProductionRkService.getById(list.getScrkId()); if (byId!=null){ Integer erwmNum = byId.getErwmNum(); list.setErwmNum(erwmNum); } } } // 将list2中的数据 如果字段erwmNum为空 优先展示在前面 list2.sort((o1, o2) -> { if (o1.getErwmNum() == null) { return -1; } if (o2.getErwmNum() == null) { return 1; } return 0; }); return R.ok(SlGoodsShelfDTO); } @PostMapping("/updateQrCodeNum") @ApiOperation(value = "批量修改转移二维码生成数量") public R updateQrCodeNum(@RequestBody UpdateZyQrCodeDTO dto) { tokenService.getLoginUser(); for (UpdateQrCodeNumDTO updateQrCodeNumDTO : dto.getList()) { SlVolumeProductionZy byId = slVolumeProductionZyService.getById(updateQrCodeNumDTO.getId()); if (byId == null){ continue; } Long scrkId = byId.getScrkId(); SlVolumeProductionRk byId1 = slVolumeProductionRkService.getById(scrkId); if (byId1 == null){ continue; } byId1.setErwmNum(updateQrCodeNumDTO.getErwmNum()); if (byId1.getErwmNum()>0){ byId1.setRkModel(getLetter(updateQrCodeNumDTO.getErwmNum())); } slVolumeProductionRkService.updateById(byId1); } return R.ok(); } public static String getLetter(int num) { String[] str = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; // 如果num大于26 那么往后叠加对应的字母 比如27 那么就是AA if (num > 26) { int a = num / 26; int b = num % 26; if (b == 0) { a = a - 1; b = 26; } return getLetter(a) + getLetter(b); } return str[num - 1]; } @PostMapping("/getVolumeProductionzZyglList") @ApiOperation(value = "分页获取转移管理") public R> getVolumeProductionzZyglList(@RequestBody SlVolumeProductionZyQuery slVolumeProductionZyQuery) { tokenService.getLoginUser(); return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglList(slVolumeProductionZyQuery)); } @PostMapping("/addsVolumeProductionzZygl") @ApiOperation(value = "添加/修改转移管理") public R addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO) { tokenService.getLoginUser(); return R.ok(slVolumeProductionZyglService.addsVolumeProductionzZygl(slVolumeProductionZyDTO)); } @PostMapping("/getVolumeProductionzZyglnfo") @ApiOperation(value = "获取转移管理详情") public R getVolumeProductionzZyglnfo(@RequestBody ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) { tokenService.getLoginUser(); return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglnfo(managementimgVolumeProductionZyQuery)); } @GetMapping("/getVolumeProductionZyglnventory/{id}") @ApiOperation(value = "获取转移管理打印清单") public R getVolumeProductionZyglnventory(@ApiParam(name = "id", value = "转移管理id", required = true) @PathVariable("id") String id) { tokenService.getLoginUser(); return R.ok(slVolumeProductionZyglService.getVolumeProductionZyglnventory(id)); } @ApiOperation("取消转移管理") @GetMapping("/{id}") public R delStoreManagement( @ApiParam(name = "id", value = "转移管理id", required = true) @PathVariable("id") Long id) { tokenService.getLoginUser(); SlVolumeProductionZygl byId = slVolumeProductionZyglService.getById(id); byId.setPresentState(5); byId.setAuditStatus(7); slVolumeProductionZyglService.updateById(byId); LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); wrapper.eq(SlAudit::getType,3); wrapper.eq( SlAudit::getDelFlag,0); wrapper.eq(SlAudit::getRkId,id); SlAudit slAudit = slAuditMapper.selectOne(wrapper); slAudit.setState(6); List list = slVolumeProductionZyService.list(new QueryWrapper() .eq("zygl_id", id) .eq("del_flag", "0")); List collect = list.stream().map(SlVolumeProductionZy::getScrkId).collect(Collectors.toList()); // 回滚入库记录库存 for (SlVolumeProductionZy slVolumeProductionZy : list) { SlVolumeProductionRk byId1 = slVolumeProductionRkService.getById(slVolumeProductionZy.getRkId()); byId1.setRepertoryZhai(byId1.getRepertoryZhai()+slVolumeProductionZy.getZyNum()); slVolumeProductionRkService.updateById(byId1); // 回滚中间表记录库存 LambdaQueryWrapper wrapper2 = Wrappers.lambdaQuery(); wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,slVolumeProductionZy.getMaterialsId()); wrapper2.eq(ManagementGoodsMaterials::getManagementId,byId.getBmanagementId()); wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0); ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2); if (managementGoodsMaterials!=null){ Long repertorySum = managementGoodsMaterials.getRepertorySum(); Long repertoryZhai = managementGoodsMaterials.getRepertoryZhai(); Long re=repertorySum+Long.valueOf(slVolumeProductionZy.getZyNum()); Long re1=repertoryZhai+Long.valueOf(slVolumeProductionZy.getZyNum()); managementGoodsMaterials.setRepertorySum(re); managementGoodsMaterials.setRepertoryZhai(re1); managementGoodsMaterials.setRepertoryChu(0); managementGoodsMaterialsMapper.updateById(managementGoodsMaterials); }else{ ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials(); managementGoodsMaterials1.setManagementId(byId.getBmanagementId()); managementGoodsMaterials1.setGoodsMaterialsId(slVolumeProductionZy.getMaterialsId()); managementGoodsMaterials1.setRepertoryZhai(Long.valueOf(slVolumeProductionZy.getZyNum())); managementGoodsMaterials1.setRepertorySum(Long.valueOf(slVolumeProductionZy.getZyNum())); managementGoodsMaterials1.setRepertoryChu(slVolumeProductionZy.getZyNum()); managementGoodsMaterials1.setCreateTime(new Date()); managementGoodsMaterialsMapper.insert(managementGoodsMaterials1); } } List list1 = slVolumeProductionRkService.list(new QueryWrapper() .in("id",collect) .eq("del_flag","0")); // 删除入库记录 slVolumeProductionRkService.remove(new QueryWrapper().in("id",collect)); // 取消后删除转移记录 QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.eq("zygl_id",id); slVolumeProductionZyService.remove(wrapper1); return R.ok(); } @ApiOperation("转移管理入库") @PostMapping("/zy") public R zy(@RequestBody ZyRkDTO dto) { tokenService.getLoginUser(); slVolumeProductionZyglService.zy(dto.getCkglId(),dto.getAuthorizationUrl()); return R.ok(); } @Autowired private SlAuditService slAuditRecordService; @ApiOperation("查询审核拒绝原因") @GetMapping("/getRefuseReason") public R getRefuseReason(Long auditId) { tokenService.getLoginUser(); SlAudit byId = slAuditRecordService.getById(auditId); return R.ok(byId.getCause()); } }