fix: 修复

dev_no_inv
chenhc 10 months ago
parent 8050f09f3f
commit 483a136e34

@ -3,23 +3,27 @@ package com.glxp.api.controller.basic;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.CusRedissonAnnotation;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.RedissonCacheKey;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.SysWorkplaceBus;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.res.basic.UserWorkResponse;
import com.glxp.api.res.basic.WorkBindWorkResponse;
import com.glxp.api.service.basic.SysWorkplaceBusService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@ -36,6 +40,8 @@ public class SysWorkplaceDocumentController extends BaseController {
*/
@Resource
private SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
private SysWorkplaceBusService sysWorkplaceBusService;
@GetMapping("/udiwms/sysWorkplace/getWorkBindBusTypes")
@ -48,6 +54,16 @@ public class SysWorkplaceDocumentController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/sysWorkplace/filterListByWorkplace")
public BaseResponse filterListByWorkplace(WorkBindBusTypeRequest request) {
List<SysWorkplaceDocumentResponse> page = sysWorkplaceDocumentService.filterListByWorkplace(request);
PageInfo<SysWorkplaceDocumentResponse> pageInfo = new PageInfo<>(page);
PageSimpleResponse<SysWorkplaceDocumentResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(page);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/sysWorkplace/workBindBusType")
public BaseResponse workBindBusType(@RequestBody WorkBindBusTypeRequest request) {
Long userId = this.getUserId();
@ -58,21 +74,47 @@ public class SysWorkplaceDocumentController extends BaseController {
return ResultVOUtils.success("绑定成功");
}
@PostMapping("/udiwms/sysWorkplace/addBusType")
public BaseResponse addBusType(@RequestBody SysWorkplaceDocumentEntity entity) {
Long userId = this.getUserId();
SysWorkplaceDocumentEntity one = sysWorkplaceDocumentService.getOne(new LambdaQueryWrapper<SysWorkplaceDocumentEntity>().eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, entity.getDocumentTypeCode())
.eq(SysWorkplaceDocumentEntity::getWorkplaceCode, entity.getWorkplaceCode()));
if (one != null) {
return ResultVOUtils.error("该工位已经有当前类型单据");
@PostMapping("/udiwms/sysWorkplace/workplaceBindBusType")
public BaseResponse workplaceBindBusType(@RequestBody WorkBindBusTypeRequest request) {
Long workplaceCode = request.getWorkplaceCode();
List<String> documentTypeCodes = request.getDocumentTypeCodes();
if (documentTypeCodes.size() == 0){
return ResultVOUtils.error("请选择绑定的业务类型");
}
boolean save = sysWorkplaceDocumentService.addBusType(entity, userId);
if (!save) {
return ResultVOUtils.error("新增失败");
List<SysWorkplaceBus> adds = new ArrayList<>();
for (String documentTypeCode : documentTypeCodes) {
SysWorkplaceBus one = sysWorkplaceBusService.getOne(new LambdaQueryWrapper<SysWorkplaceBus>().eq(SysWorkplaceBus::getBusTypeCode, documentTypeCode).eq(SysWorkplaceBus::getWorkplaceCode, workplaceCode));
if (one!= null) {
return ResultVOUtils.error("该工位已经绑定该单据类型");
}
SysWorkplaceBus sysWorkplaceBus = new SysWorkplaceBus();
sysWorkplaceBus.setWorkplaceCode(workplaceCode);
sysWorkplaceBus.setBusTypeCode(documentTypeCode);
adds.add(sysWorkplaceBus);
}
return ResultVOUtils.success("新增成功");
boolean save = sysWorkplaceBusService.saveBatch(adds);
if (!save){
return ResultVOUtils.success("绑定失败");
}
return ResultVOUtils.success("绑定成功");
}
// @PostMapping("/udiwms/sysWorkplace/addBusType")
// public BaseResponse addBusType(@RequestBody SysWorkplaceDocumentEntity entity) {
// Long userId = this.getUserId();
// SysWorkplaceDocumentEntity one = sysWorkplaceDocumentService.getOne(new LambdaQueryWrapper<SysWorkplaceDocumentEntity>().eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, entity.getDocumentTypeCode())
// .eq(SysWorkplaceDocumentEntity::getWorkplaceCode, entity.getWorkplaceCode()));
// if (one != null) {
// return ResultVOUtils.error("该工位已经有当前类型单据");
// }
// boolean save = sysWorkplaceDocumentService.addBusType(entity, userId);
// if (!save) {
// return ResultVOUtils.error("新增失败");
// }
// return ResultVOUtils.success("新增成功");
// }
@PostMapping("/udiwms/sysWorkplace/updateType")
public BaseResponse updateType(@RequestBody SysWorkplaceDocumentEntity entity) {
@ -100,6 +142,16 @@ public class SysWorkplaceDocumentController extends BaseController {
return ResultVOUtils.success("移除成功");
}
@CusRedissonAnnotation(cacheName = RedissonCacheKey.RM_WORK_BUS_TYPE, key = {"#entity.documentTypeCode"}, waitTime = 3, timeOutMsg = "请勿重复提交")
@PostMapping("/udiwms/sysWorkplace/removeBusTypeByBusTypeAndWorkplace")
public BaseResponse removeBusTypeByBusTypeAndWorkplace(@RequestBody SysWorkplaceDocumentEntity entity) {
Boolean save = sysWorkplaceDocumentService.removeBusTypeByBusTypeAndWorkplace(entity.getWorkplaceCode(),entity.getDocumentTypeCode());
if (!save) {
return ResultVOUtils.error("移除失败");
}
return ResultVOUtils.success("移除成功");
}
}

@ -0,0 +1,9 @@
package com.glxp.api.dao.basic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.basic.SysWorkplaceBus;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysWorkplaceBusMapper extends BaseMapper<SysWorkplaceBus> {
}

@ -20,6 +20,7 @@ import java.util.List;
public interface SysWorkplaceDocumentDao extends BaseMapperPlus<SysWorkplaceDocumentDao, SysWorkplaceDocumentEntity, SysWorkplaceDocumentEntity>{
List<SysWorkplaceDocumentResponse> filterList(WorkBindBusTypeRequest request);
List<SysWorkplaceDocumentResponse> filterListByWorkplace(WorkBindBusTypeRequest request);
Integer findMaxNumberByWorkplaceCode(Long workplaceCode);
}

@ -0,0 +1,35 @@
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 java.io.Serializable;
import lombok.Data;
/**
*
*/
@ApiModel(value="com-glxp-api-entity-collect-SysWorkplaceBus")
@Data
@TableName(value = "sys_workplace_bus")
public class SysWorkplaceBus implements Serializable {
/**
* code
*/
@TableField(value = "workplaceCode")
@ApiModelProperty(value="工位编码code")
private Long workplaceCode;
/**
* code
*/
@TableField(value = "busTypeCode")
@ApiModelProperty(value="单据类型表code")
private String busTypeCode;
private static final long serialVersionUID = 1L;
}

@ -21,11 +21,6 @@ public class SysWorkplaceDocumentEntity {
private Long id;
//工位编码
@TableField(value = "workplaceCode")
private Long workplaceCode;
//单据编码
@TableField(value = "documentTypeCode")
private String documentTypeCode;
@ -178,5 +173,8 @@ public class SysWorkplaceDocumentEntity {
private Integer checkBatchInsert;
//工位编码
@TableField(exist = false)
private Long workplaceCode;
}

@ -13,7 +13,7 @@ import java.util.List;
@Data
public class WorkBindBusTypeRequest extends ListPageRequest {
// private List<String> documentTypeCode;
private List<String> documentTypeCodes;
private Long workplaceCode;
private String code;
private String busKey;

@ -0,0 +1,10 @@
package com.glxp.api.service.basic;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.basic.SysWorkplaceBus;
import com.glxp.api.dao.basic.SysWorkplaceBusMapper;
@Service
public class SysWorkplaceBusService extends ServiceImpl<SysWorkplaceBusMapper, SysWorkplaceBus> {
}

@ -1,18 +1,24 @@
package com.glxp.api.service.basic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.SysWorkplaceDocumentDao;
import com.glxp.api.entity.basic.BasicCollectUserEntity;
import com.glxp.api.entity.basic.SysWorkplaceBus;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.res.basic.WorkBindWorkResponse;
import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -28,21 +34,51 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
@Resource
private SysWorkplaceDocumentDao sysWorkplaceDocumentDao;
@Resource
private SysWorkplaceBusService sysWorkplaceBusService;
public List<SysWorkplaceDocumentResponse> filterList(WorkBindBusTypeRequest request) {
if (request == null) {
return Collections.emptyList();
}
if (request.getPage() != null) {
int offset = (request.getPage() - 1) * request.getLimit();
PageHelper.offsetPage(offset, request.getLimit());
}
List<SysWorkplaceDocumentResponse> list = sysWorkplaceDocumentDao.filterList(request);
return list;
}
public List<SysWorkplaceDocumentResponse> filterListByWorkplace(WorkBindBusTypeRequest request) {
if (request == null) {
return Collections.emptyList();
}
if (request.getPage() != null) {
int offset = (request.getPage() - 1) * request.getLimit();
PageHelper.offsetPage(offset, request.getLimit());
}
List<SysWorkplaceDocumentResponse> list = sysWorkplaceDocumentDao.filterListByWorkplace(request);
return list;
}
public SysWorkplaceDocumentEntity findByBusType(String busType) {
return sysWorkplaceDocumentDao.selectOne(new LambdaQueryWrapper<SysWorkplaceDocumentEntity>().eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, busType).last("limit 1"));
}
public SysWorkplaceDocumentEntity findByWorkplaceCode(Long workplaceCode, String busType) {
return sysWorkplaceDocumentDao.selectOne(new LambdaQueryWrapper<SysWorkplaceDocumentEntity>()
.eq(SysWorkplaceDocumentEntity::getWorkplaceCode, workplaceCode)
.eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, busType).last("limit 1"));
WorkBindBusTypeRequest request = new WorkBindBusTypeRequest();
request.setWorkplaceCode(workplaceCode);
request.setDocumentTypeCode(busType);
List<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(request);
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)){
SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse = sysWorkplaceDocumentResponses.get(0);
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = new SysWorkplaceDocumentEntity();
BeanUtils.copyProperties(sysWorkplaceDocumentResponse,sysWorkplaceDocumentEntity);
return sysWorkplaceDocumentEntity;
}else
return null;
}
@ -111,5 +147,9 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
}
return true;
}
public Boolean removeBusTypeByBusTypeAndWorkplace(Long workplaceCode, String documentTypeCode) {
return sysWorkplaceBusService.remove(new LambdaUpdateWrapper<SysWorkplaceBus>().eq(SysWorkplaceBus::getWorkplaceCode,workplaceCode).eq(SysWorkplaceBus::getBusTypeCode,documentTypeCode));
}
}

@ -0,0 +1,14 @@
<?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.SysWorkplaceBusMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.basic.SysWorkplaceBus">
<!--@mbg.generated-->
<!--@Table udi_wms_ct.sys_workplace_bus-->
<result column="workplaceCode" jdbcType="BIGINT" property="workplaceCode" />
<result column="busTypeCode" jdbcType="VARCHAR" property="busTypeCode" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
workplaceCode, busTypeCode
</sql>
</mapper>

@ -27,12 +27,34 @@
)
</if>
</where>
ORDER BY
CASE
WHEN sys_workplace_document.number IS NOT NULL THEN 1
ELSE 2
END,
sys_workplace_document.number
ORDER BY sys_workplace_document.number
</select>
<select id="filterListByWorkplace" resultType="com.glxp.api.res.basic.SysWorkplaceDocumentResponse">
select sys_workplace_document.*,
basic_bussiness_type.name innerBusName,
thr_bustype_origin.name outBusName
from sys_workplace_bus
LEFT JOIN sys_workplace_document ON sys_workplace_document.documentTypeCode = sys_workplace_bus.busTypeCode
left join basic_bussiness_type on sys_workplace_document.documentTypeCode = basic_bussiness_type.action
left join thr_bustype_origin on thr_bustype_origin.action = sys_workplace_document.documentTypeCode
<where>
<if test="workplaceCode != '' and workplaceCode != null">
AND sys_workplace_bus.workplaceCode = #{workplaceCode}
</if>
<if test="documentTypeCode != '' and documentTypeCode != null">
AND sys_workplace_document.documentTypeCode = #{documentTypeCode}
</if>
<if test="isPopular >= 0 and isPopular != null">
AND sys_workplace_document.isPopular = #{isPopular}
</if>
<if test="busKey != null and busKey != ''">
AND (sys_workplace_document.documentTypeCode like concat('%', #{busKey}, '%')
or sys_workplace_document.busName like concat('%', #{busKey}, '%')
)
</if>
</where>
</select>
<select id="findMaxNumberByWorkplaceCode" resultType="java.lang.Integer">
SELECT MAX(number) AS maxNumber

Loading…
Cancel
Save