diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceLayerController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceLayerController.java new file mode 100644 index 000000000..e813e1474 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceLayerController.java @@ -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 page = sysWorkplaceLayerService.filterList(request); + PageInfo pageInfo = new PageInfo<>(page); + PageSimpleResponse 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(); + } +} diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java index cda83e9ed..205470278 100644 --- a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java @@ -168,7 +168,7 @@ public class SysWorkplaceQueueController extends BaseController { //后面做的搜索可能就得在这个接口进行修改了 - @GetMapping("/udiwms/sysWorkplaceQueue/getQueueListByFreightCode") + @GetMapping("/udiwms/sysWorkplaceQueue/getQueueList") public BaseResponse getQueueListByFreightCode(SysWorkplaceQueueRequest request) { List page = sysWorkplaceQueueService.filterListFreightCode(request); PageInfo pageInfo = new PageInfo<>(page); diff --git a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceLayerMapper.java b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceLayerMapper.java new file mode 100644 index 000000000..28d986c98 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceLayerMapper.java @@ -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 getMaxCodeByFreightCode(String freightCode); + + List filterList(SysWorkplaceLayerRequest request); +} diff --git a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java index c96f0d04c..fe65d3641 100644 --- a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java +++ b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java @@ -19,4 +19,8 @@ public interface SysWorkplaceQueueMapper extends BaseMapper { List filterListFreightCode(SysWorkplaceQueueRequest request); Integer selectMaxGrid(@Param("freightCode") String freightCode,@Param("layer") Integer layer); + + String selectMaxCode(String layerCode); + + SysWorkplaceQueue selectByLayerCode(String layerCode); } diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceFreight.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceFreight.java index d059fd85e..b3481639f 100644 --- a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceFreight.java +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceFreight.java @@ -40,6 +40,14 @@ public class SysWorkplaceFreight implements Serializable { @ApiModelProperty(value = "工位ID") private Long workPlaceIdFk; + /** + * 摆货层数量 + */ + @TableField(value = "layerNum") + @ApiModelProperty(value = "摆货层数量") + private Long layerNum; + + /** * 备注 */ diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceLayer.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceLayer.java new file mode 100644 index 000000000..0ddf71e46 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceLayer.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java index c9dc61c2f..b482dc9b2 100644 --- a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java @@ -73,11 +73,11 @@ public class SysWorkplaceQueue implements Serializable { private String freightCode; /** - * 层数标记 + * 摆货层code */ - @TableField(value = "layer") + @TableField(value = "layerCode") @ApiModelProperty(value = "") - private Integer layer; + private String layerCode; /** * 格数标记 diff --git a/src/main/java/com/glxp/api/req/basic/SysWorkplaceLayerRequest.java b/src/main/java/com/glxp/api/req/basic/SysWorkplaceLayerRequest.java new file mode 100644 index 000000000..319e36a46 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/SysWorkplaceLayerRequest.java @@ -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; + + +} diff --git a/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java b/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java index 28a2add3f..8929332e8 100644 --- a/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java +++ b/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java @@ -31,6 +31,13 @@ public class SysWorkplaceQueueRequest extends ListPageRequest { */ private String freightCode; + /** + * 摆货层 code + */ + private String layerCode; + + + diff --git a/src/main/java/com/glxp/api/res/basic/SysWorkplaceFreightResponse.java b/src/main/java/com/glxp/api/res/basic/SysWorkplaceFreightResponse.java index 7d864f4b4..dd3fe6e64 100644 --- a/src/main/java/com/glxp/api/res/basic/SysWorkplaceFreightResponse.java +++ b/src/main/java/com/glxp/api/res/basic/SysWorkplaceFreightResponse.java @@ -52,6 +52,11 @@ public class SysWorkplaceFreightResponse { */ private String workPlaceName; + /** + * 摆货层数量 + */ + private Integer layerCount; + diff --git a/src/main/java/com/glxp/api/res/basic/SysWorkplaceLayerResponse.java b/src/main/java/com/glxp/api/res/basic/SysWorkplaceLayerResponse.java new file mode 100644 index 000000000..88ab2b52e --- /dev/null +++ b/src/main/java/com/glxp/api/res/basic/SysWorkplaceLayerResponse.java @@ -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; + +} diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java new file mode 100644 index 000000000..b4de7fd89 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java @@ -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 { + + @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().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().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 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); + } +} diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java index 365d07d77..cf4fa29e1 100644 --- a/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java @@ -70,18 +70,14 @@ public class SysWorkplaceQueueService extends ServiceImpl sysWorkplaceQueues = new ArrayList<>(); - //当前最大层数 - Integer layer = getLayer(request.getFreightCode()); for (int n = 1; n <= grid; n++) { - String result = String.format("%02d", layer); + String code = getMaxCode(request.getLayerCode()); +// String result = String.format("%02d", layer); SysWorkplaceQueue sysWorkplaceQueue = new SysWorkplaceQueue(); - sysWorkplaceQueue.setFreightCode(request.getFreightCode()); -// sysWorkplaceQueue.setLayer(getLayer(request.getFreightCode())); - sysWorkplaceQueue.setLayer(layer); - sysWorkplaceQueue.setGrid(Integer.valueOf(createGrid(request.getFreightCode(), layer))); - sysWorkplaceQueue.setCode(request.getFreightCode() + result + createGrid(request.getFreightCode(), layer)); + sysWorkplaceQueue.setLayerCode(request.getLayerCode()); + sysWorkplaceQueue.setCode(code); sysWorkplaceQueue.setCreateUser(userId + ""); sysWorkplaceQueue.setCreateTime(new Date()); sysWorkplaceQueue.setUpdateTime(new Date()); @@ -93,6 +89,23 @@ public class SysWorkplaceQueueService extends ServiceImpl select swf.*, - sw.workplaceName workPlaceName + sw.workplaceName workPlaceName, + COUNT(swl.freightCode) as layerCount from sys_workplace_freight swf left join sys_workplace sw on sw.workplaceId = swf.workPlaceIdFk + left join sys_workplace_layer swl on swl.freightCode = swf.code AND ( @@ -19,5 +21,7 @@ AND swf.workPlaceIdFk = #{workPlaceIdFk} + GROUP BY + swf.id diff --git a/src/main/resources/mybatis/mapper/basic/SysWorkplaceLayerMapper.xml b/src/main/resources/mybatis/mapper/basic/SysWorkplaceLayerMapper.xml new file mode 100644 index 000000000..d16406ff1 --- /dev/null +++ b/src/main/resources/mybatis/mapper/basic/SysWorkplaceLayerMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/src/main/resources/mybatis/mapper/basic/SysWorkplaceQueueMapper.xml b/src/main/resources/mybatis/mapper/basic/SysWorkplaceQueueMapper.xml index b771a2c10..8ead56016 100644 --- a/src/main/resources/mybatis/mapper/basic/SysWorkplaceQueueMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/SysWorkplaceQueueMapper.xml @@ -51,10 +51,8 @@ @@ -78,5 +76,23 @@ + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 84caa6d2b..89dc29858 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4629,6 +4629,7 @@ CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'layer', CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'grid', 'int NULL DEFAULT NULL COMMENT ''格层标记''', 1); +# CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'layerCode', 'varchar(255)', 2);