11/6 货架管理1.0
parent
efdc7cb70f
commit
af8e236530
@ -0,0 +1,58 @@
|
|||||||
|
package com.glxp.api.controller.auth;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import com.glxp.api.common.res.BaseResponse;
|
||||||
|
import com.glxp.api.common.util.ResultVOUtils;
|
||||||
|
import com.glxp.api.controller.BaseController;
|
||||||
|
import com.glxp.api.req.basic.SysWorkplaceLayerRequest;
|
||||||
|
import com.glxp.api.res.PageSimpleResponse;
|
||||||
|
import com.glxp.api.res.basic.SysWorkplaceFreightResponse;
|
||||||
|
import com.glxp.api.res.basic.SysWorkplaceLayerResponse;
|
||||||
|
import com.glxp.api.service.basic.SysWorkplaceFreightService;
|
||||||
|
import com.glxp.api.service.basic.SysWorkplaceLayerService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : zhuzhu
|
||||||
|
* @date : 2024/11/6 10:14
|
||||||
|
* @modyified By :
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
public class SysWorkplaceLayerController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
SysWorkplaceLayerService sysWorkplaceLayerService;
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/udiwms/WorkplaceLayer/createCodeByFreightCode")
|
||||||
|
public BaseResponse createFreightCode(String freightCode) {
|
||||||
|
String code = sysWorkplaceLayerService.createCodeByFreightCode(freightCode);
|
||||||
|
return ResultVOUtils.success(code);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/udiwms/WorkplaceLayer/getLayerPage")
|
||||||
|
public BaseResponse createFreightCode(SysWorkplaceLayerRequest request) {
|
||||||
|
List<SysWorkplaceLayerResponse> page = sysWorkplaceLayerService.filterList(request);
|
||||||
|
PageInfo<SysWorkplaceLayerResponse> pageInfo = new PageInfo<>(page);
|
||||||
|
PageSimpleResponse<SysWorkplaceLayerResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
||||||
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
||||||
|
pageSimpleResponse.setList(page);
|
||||||
|
return ResultVOUtils.success(pageSimpleResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/udiwms/WorkplaceLayer/save")
|
||||||
|
public BaseResponse saveCode(@RequestBody SysWorkplaceLayerRequest request){
|
||||||
|
Boolean save = sysWorkplaceLayerService.addSysWorkplaceLayer(request,getUserId());
|
||||||
|
return ResultVOUtils.success();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.glxp.api.dao.basic;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.glxp.api.entity.basic.SysWorkplaceLayer;
|
||||||
|
import com.glxp.api.req.basic.SysWorkplaceLayerRequest;
|
||||||
|
import com.glxp.api.res.basic.SysWorkplaceLayerResponse;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface SysWorkplaceLayerMapper extends BaseMapper<SysWorkplaceLayer> {
|
||||||
|
|
||||||
|
SysWorkplaceLayer getMaxCodeByFreightCode(String freightCode);
|
||||||
|
|
||||||
|
List<SysWorkplaceLayerResponse> filterList(SysWorkplaceLayerRequest request);
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.glxp.api.entity.basic;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@ApiModel(description = "sys_workplace_layer")
|
||||||
|
@Data
|
||||||
|
@TableName(value = "sys_workplace_layer")
|
||||||
|
public class SysWorkplaceLayer implements Serializable {
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.INPUT)
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 摆货层code
|
||||||
|
*/
|
||||||
|
@TableField(value = "code")
|
||||||
|
@ApiModelProperty(value = "货位编码")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@TableField(value = "remark")
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@TableField(value = "createTime")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@TableField(value = "updateTime")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Date updateTime;
|
||||||
|
|
||||||
|
@TableField(value = "`createUser`")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String createUser;
|
||||||
|
|
||||||
|
@TableField(value = "updateUser")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String updateUser;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取货架code
|
||||||
|
*/
|
||||||
|
@TableField(value = "freightCode")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String freightCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出货槽数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "queueNum")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Integer queueNum;
|
||||||
|
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.glxp.api.req.basic;
|
||||||
|
|
||||||
|
import com.glxp.api.util.page.ListPageRequest;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : zhangsan
|
||||||
|
* @date : 2024/10/30 10:42
|
||||||
|
* @modyified By :
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SysWorkplaceLayerRequest extends ListPageRequest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String code;
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private Integer queueNum;
|
||||||
|
/**
|
||||||
|
* 货架code
|
||||||
|
*/
|
||||||
|
private String freightCode;
|
||||||
|
|
||||||
|
private Long workPlaceIdFk;
|
||||||
|
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package com.glxp.api.res.basic;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : zhuzhu
|
||||||
|
* @date : 2024/11/4 11:08
|
||||||
|
* @modyified By :
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SysWorkplaceLayerResponse {
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.INPUT)
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 摆货层code
|
||||||
|
*/
|
||||||
|
@TableField(value = "code")
|
||||||
|
@ApiModelProperty(value = "货位编码")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@TableField(value = "remark")
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@TableField(value = "createTime")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@TableField(value = "updateTime")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Date updateTime;
|
||||||
|
|
||||||
|
@TableField(value = "`createUser`")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String createUser;
|
||||||
|
|
||||||
|
@TableField(value = "updateUser")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String updateUser;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取货架code
|
||||||
|
*/
|
||||||
|
@TableField(value = "freightCode")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String freightCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出货槽数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "queueNum")
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private Integer queueNum;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,125 @@
|
|||||||
|
package com.glxp.api.service.basic;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import com.glxp.api.dao.basic.SysWorkplaceLayerMapper;
|
||||||
|
import com.glxp.api.dao.basic.SysWorkplaceQueueMapper;
|
||||||
|
import com.glxp.api.entity.basic.SysWorkplaceFreight;
|
||||||
|
import com.glxp.api.entity.basic.SysWorkplaceLayer;
|
||||||
|
import com.glxp.api.req.basic.SysWorkplaceLayerRequest;
|
||||||
|
import com.glxp.api.req.basic.SysWorkplaceQueueRequest;
|
||||||
|
import com.glxp.api.res.basic.SysWorkplaceLayerResponse;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class SysWorkplaceLayerService extends ServiceImpl<SysWorkplaceLayerMapper, SysWorkplaceLayer> {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysWorkplaceLayerMapper sysWorkplaceLayerMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysWorkplaceQueueService sysWorkplaceQueueService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysWorkplaceFreightService sysWorkplaceFreightService;
|
||||||
|
|
||||||
|
|
||||||
|
public String createCodeByFreightCode(String freightCode) {
|
||||||
|
String code = "";
|
||||||
|
SysWorkplaceLayer sysWorkplaceLayer = sysWorkplaceLayerMapper.getMaxCodeByFreightCode(freightCode);
|
||||||
|
if (sysWorkplaceLayer == null) {
|
||||||
|
//该货架没有摆货层
|
||||||
|
int result = 1;
|
||||||
|
String sixDigitResult = String.format("%02d", result);
|
||||||
|
code = freightCode + sixDigitResult;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String code1 = sysWorkplaceLayer.getCode();
|
||||||
|
String withoutDMQ = code1.replace(freightCode, "");
|
||||||
|
Integer result = Integer.parseInt(withoutDMQ.trim());
|
||||||
|
result += 1;
|
||||||
|
String sixDigitResult = String.format("%02d", result);
|
||||||
|
code = freightCode + sixDigitResult;
|
||||||
|
}
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Boolean addSysWorkplaceLayer(SysWorkplaceLayerRequest request, Long userId) {
|
||||||
|
SysWorkplaceFreight sysWorkplaceFreight = sysWorkplaceFreightService.getOne(new LambdaQueryWrapper<SysWorkplaceFreight>().eq(SysWorkplaceFreight::getCode, request.getFreightCode()));
|
||||||
|
if (sysWorkplaceFreight == null) {
|
||||||
|
SysWorkplaceFreight freight = new SysWorkplaceFreight();
|
||||||
|
freight.setCode(request.getFreightCode());
|
||||||
|
freight.setWorkPlaceIdFk(request.getWorkPlaceIdFk());
|
||||||
|
freight.setRemark(request.getRemark());
|
||||||
|
freight.setCreateTime(new Date());
|
||||||
|
freight.setCreateUser(userId + "");
|
||||||
|
freight.setUpdateUser(userId + "");
|
||||||
|
freight.setUpdateTime(new Date());
|
||||||
|
sysWorkplaceFreightService.WorkplaceFreight(freight);
|
||||||
|
}
|
||||||
|
|
||||||
|
SysWorkplaceLayer workplaceLayer = this.getOne(new LambdaQueryWrapper<SysWorkplaceLayer>().eq(SysWorkplaceLayer::getCode, request.getCode()));
|
||||||
|
SysWorkplaceQueueRequest sysWorkplaceQueueRequest = new SysWorkplaceQueueRequest();
|
||||||
|
sysWorkplaceQueueRequest.setLayerCode(request.getCode());
|
||||||
|
Integer num = 0;
|
||||||
|
if (workplaceLayer != null) {
|
||||||
|
//已经有该编码的摆货层 可能根据原来的增加 也可能是根据原来的删减出货槽
|
||||||
|
Integer queueNum = workplaceLayer.getQueueNum();
|
||||||
|
Integer newQueueNum = request.getQueueNum();
|
||||||
|
if (queueNum == newQueueNum){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (queueNum > newQueueNum) {
|
||||||
|
num = queueNum - newQueueNum;
|
||||||
|
//删减
|
||||||
|
sysWorkplaceQueueRequest.setGrids(num);
|
||||||
|
sysWorkplaceQueueService.deleteQueue(sysWorkplaceQueueRequest);
|
||||||
|
} else if (queueNum < request.getQueueNum()) {
|
||||||
|
//增加
|
||||||
|
num = newQueueNum - queueNum;
|
||||||
|
sysWorkplaceQueueRequest.setGrids(num);
|
||||||
|
sysWorkplaceQueueService.addLayer(sysWorkplaceQueueRequest, userId);
|
||||||
|
}
|
||||||
|
workplaceLayer.setQueueNum(newQueueNum);
|
||||||
|
this.updateById(workplaceLayer);
|
||||||
|
return true;
|
||||||
|
}else {
|
||||||
|
SysWorkplaceLayer sysWorkplaceLayer = new SysWorkplaceLayer();
|
||||||
|
BeanUtils.copyProperties(request, sysWorkplaceLayer);
|
||||||
|
initLayer(sysWorkplaceLayer, userId);
|
||||||
|
sysWorkplaceLayerMapper.insert(sysWorkplaceLayer);
|
||||||
|
//增加卡槽
|
||||||
|
Integer queueNum = request.getQueueNum();
|
||||||
|
sysWorkplaceQueueRequest.setGrids(queueNum);
|
||||||
|
sysWorkplaceQueueRequest.setLayerCode(request.getCode());
|
||||||
|
sysWorkplaceQueueService.addLayer(sysWorkplaceQueueRequest, userId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initLayer(SysWorkplaceLayer sysWorkplaceLayer, Long userId) {
|
||||||
|
sysWorkplaceLayer.setCreateUser(userId + "");
|
||||||
|
sysWorkplaceLayer.setCreateTime(new Date());
|
||||||
|
sysWorkplaceLayer.setUpdateTime(new Date());
|
||||||
|
sysWorkplaceLayer.setCreateUser(userId + "");
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SysWorkplaceLayerResponse> filterList(SysWorkplaceLayerRequest request) {
|
||||||
|
if (null == request) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
if (null != request.getPage() && null != request.getLimit()) {
|
||||||
|
PageHelper.offsetPage((request.getPage() - 1) * request.getLimit(), request.getLimit());
|
||||||
|
}
|
||||||
|
return sysWorkplaceLayerMapper.filterList(request);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.glxp.api.dao.basic.SysWorkplaceLayerMapper">
|
||||||
|
|
||||||
|
|
||||||
|
<select id="getMaxCodeByFreightCode" resultType="com.glxp.api.entity.basic.SysWorkplaceLayer">
|
||||||
|
select max(code) as code from sys_workplace_layer
|
||||||
|
<where>
|
||||||
|
<if test=" freightCode != null and freightCode != ''">
|
||||||
|
AND freightCode = #{freightCode}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
<select id="filterList" resultType="com.glxp.api.res.basic.SysWorkplaceLayerResponse">
|
||||||
|
select swl.*
|
||||||
|
from sys_workplace_layer swl
|
||||||
|
<where>
|
||||||
|
<if test=" freightCode != null and freightCode != ''">
|
||||||
|
AND freightCode = #{freightCode}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue