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;
|
|
/**
|
* <p>
|
* 转移管理 前端控制器
|
* </p>
|
*
|
* @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<PageDTO<getVolumeProductionRkgCodeVO>> getVolumeProductionRkgCode(@RequestBody VolumeProductionZyglCodeQuery volumeProductionRkgCodeQuery) {
|
tokenService.getLoginUser();
|
// 通过转移管理获取 转移列表 获取入库id
|
Page<SlVolumeProductionZy> 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<SlVolumeProductionZy> page2 = slVolumeProductionZyService.page(page, wrapper1);
|
PageDTO<getVolumeProductionRkgCodeVO> SlGoodsShelfDTO = PageDTO.of(page2, getVolumeProductionRkgCodeVO.class);
|
List<getVolumeProductionRkgCodeVO> 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<PageDTO<VolumeProductionzZyglVO>> 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<VolumeProductionZyglInfoVO> getVolumeProductionzZyglnfo(@RequestBody ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) {
|
tokenService.getLoginUser();
|
return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglnfo(managementimgVolumeProductionZyQuery));
|
}
|
|
@GetMapping("/getVolumeProductionZyglnventory/{id}")
|
@ApiOperation(value = "获取转移管理打印清单")
|
public R<VolumeProductionZyglInventoryVO> 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<SlAudit> 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<SlVolumeProductionZy> list = slVolumeProductionZyService.list(new QueryWrapper<SlVolumeProductionZy>()
|
.eq("zygl_id", id)
|
.eq("del_flag", "0"));
|
List<Long> 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<ManagementGoodsMaterials> 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<SlVolumeProductionRk> list1 = slVolumeProductionRkService.list(new QueryWrapper<SlVolumeProductionRk>()
|
.in("id",collect)
|
.eq("del_flag","0"));
|
|
// 删除入库记录
|
slVolumeProductionRkService.remove(new QueryWrapper<SlVolumeProductionRk>().in("id",collect));
|
// 取消后删除转移记录
|
QueryWrapper<SlVolumeProductionZy> 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());
|
}
|
}
|