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