上传关联2.0

dev_no_inv
zane 9 months ago
parent 8b1cc5b0f9
commit adb7d0ed2c

@ -1,20 +1,15 @@
package com.glxp.api.controller.collect;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.CusRedissonAnnotation;
import com.glxp.api.annotation.RepeatSubmit;
import com.glxp.api.common.enums.ResultEnum;
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.collect.IoCollectOrder;
import com.glxp.api.entity.collect.RelCodeBatch;
import com.glxp.api.req.collect.IoCollectCodeRequest;
import com.glxp.api.req.collect.RelCodeBatchRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.IoCollectCodeResponse;
import com.glxp.api.res.collect.RelCodeBatchResponse;
import com.glxp.api.service.collect.RelCodeBatchService;
import lombok.extern.slf4j.Slf4j;
@ -33,6 +28,12 @@ public class RelCodeBatchController extends BaseController {
@Resource
private RelCodeBatchService relCodeBatchService;
/**
*
* @param uuid
* @param file
* @return
*/
@RepeatSubmit()
@CusRedissonAnnotation(cacheName = RedissonCacheKey.XML_UPLOAD, key = {"#uuid"}, timeOutMsg = "系统正在处理,请勿重复上传")
@PostMapping("/udiwms/relCode/batch/xmlUpload")
@ -41,6 +42,19 @@ public class RelCodeBatchController extends BaseController {
return ResultVOUtils.successMsg("上传成功!");
}
/**
*
* @param relCodeBatchRequest
* @return
*/
@RepeatSubmit()
@CusRedissonAnnotation(cacheName = RedissonCacheKey.XML_UPLOAD, key = {"#relCodeBatchRequest.productCode", "#relCodeBatchRequest.subTypeNo"}, timeOutMsg = "系统正在处理,请勿重复上传")
@PostMapping("/udiwms/relCode/batch/add")
public BaseResponse add(@RequestBody @Valid RelCodeBatchRequest relCodeBatchRequest,BindingResult bindingResult) {
relCodeBatchService.add(relCodeBatchRequest);
return ResultVOUtils.successMsg("添加成功!");
}
@GetMapping("/udiwms/relCode/batch/filter")
public BaseResponse list(RelCodeBatchRequest relCodeBatchRequest, BindingResult bindingResult) {
List<RelCodeBatchResponse> relCodeBatchResponses = relCodeBatchService.filterList(relCodeBatchRequest);

@ -1,13 +1,21 @@
package com.glxp.api.controller.collect;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.RepeatSubmit;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.collect.IoCollectSet;
import com.glxp.api.entity.collect.RelCodeDetail;
import com.glxp.api.req.collect.RelCodeBatchRequest;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.RelCodeBatchResponse;
import com.glxp.api.res.collect.RelCodeDetailResponse;
import com.glxp.api.service.collect.RelCodeDetailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -24,6 +32,32 @@ public class RelCodeDetailController extends BaseController {
@Resource
private RelCodeDetailService relCodeDetailService;
/**
*
* @param relCodeDetailRequest
* @return
*/
@RepeatSubmit()
@PostMapping("/udiwms/relCode/detail/scanCode")
public BaseResponse scanCode(@RequestBody @Valid RelCodeDetailRequest relCodeDetailRequest, BindingResult bindingResult) {
RelCodeDetailResponse relCodeDetailResponse = relCodeDetailService.scanCode(relCodeDetailRequest);
return ResultVOUtils.success(relCodeDetailResponse);
}
@GetMapping("/udiwms/relCode/detail/filter")
public BaseResponse list(RelCodeDetailRequest relCodeDetailRequest, BindingResult bindingResult) {
List<RelCodeDetailResponse> relCodeDetailResponses = relCodeDetailService.filterList(relCodeDetailRequest);
PageInfo<RelCodeDetailResponse> pageInfo = new PageInfo<>(relCodeDetailResponses);
PageSimpleResponse<RelCodeDetailResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(relCodeDetailResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/relCode/detail/get")
public BaseResponse get(Long id) {
RelCodeDetail relCodeDetail = relCodeDetailService.getById(id);

@ -2,8 +2,14 @@ package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.RelCodeDetail;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.collect.RelCodeDetailResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface RelCodeDetailMapper extends BaseMapper<RelCodeDetail> {
}
List<RelCodeDetailResponse> filterList(RelCodeDetailRequest relCodeDetailRequest);
}

@ -95,4 +95,20 @@ public class RelCodeBatch implements Serializable {
@ApiModelProperty(value="负责人")
private String lineManager;
@TableField(value = "createTime")
@ApiModelProperty(value = "")
private Date createTime;
@TableField(value = "`createUser`")
@ApiModelProperty(value = "")
private String createUser;
@TableField(value = "updateTime")
@ApiModelProperty(value = "")
private Date updateTime;
@TableField(value = "updateUser")
@ApiModelProperty(value = "")
private String updateUser;
}

@ -1,9 +1,12 @@
package com.glxp.api.req.collect;
import com.baomidou.mybatisplus.annotation.TableField;
import com.glxp.api.util.page.ListPageRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class RelCodeBatchRequest extends ListPageRequest {
@ -65,5 +68,15 @@ public class RelCodeBatchRequest extends ListPageRequest {
*/
private String lineManager;
String keyWords;
private Date createTime;
private String createUser;
private Date updateTime;
private String updateUser;
private String keyWords;
private List<RelCodeDetailRequest> detailList;
}

@ -0,0 +1,103 @@
package com.glxp.api.req.collect;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
@Data
public class RelCodeDetailRequest extends ListPageRequest {
private Integer id;
/**
*
*/
private String curCode;
/**
*
*/
private Integer packLayer;
/**
*
*/
private String parentCode;
/**
*
*/
private Integer flag;
/**
* ID
*/
private Integer batchIdFk;
/**
*
*/
private String productCode;
/**
*
*/
private String subTypeNo;
/**
*
*/
private String cascadeRatio;
/**
*
*/
private String packageSpec;
/**
*
*/
private String comment;
/**
*
*/
private String batchNo;
/**
*
*/
private Date madeDate;
/**
*
*/
private Date validateDate;
/**
*
*/
private String workShop;
/**
* 线
*/
private String lineName;
/**
*
*/
private String lineManager;
private Date createTime;
private String createUser;
private Date updateTime;
private String updateUser;
private String keyWords;
}

@ -0,0 +1,95 @@
package com.glxp.api.res.collect;
import com.glxp.api.entity.basic.BasicProductsEntity;
import lombok.Data;
import java.util.Date;
@Data
public class RelCodeDetailResponse {
private Integer id;
/**
*
*/
private String curCode;
/**
*
*/
private Integer packLayer;
/**
*
*/
private String parentCode;
/**
*
*/
private Integer flag;
/**
* ID
*/
private Integer batchIdFk;
//=======================具体详情========================
/**
*
*/
private String productCode;
/**
*
*/
private String subTypeNo;
/**
*
*/
private String cascadeRatio;
/**
*
*/
private String packageSpec;
/**
*
*/
private String comment;
/**
*
*/
private String batchNo;
/**
*
*/
private Date madeDate;
/**
*
*/
private Date validateDate;
/**
*
*/
private String workShop;
/**
* 线
*/
private String lineName;
/**
*
*/
private String lineManager;
}

@ -1,15 +1,21 @@
package com.glxp.api.service.collect;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.XmlUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.collect.RelCodeDetail;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.RelCodeBatchRequest;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.collect.RelCodeBatchResponse;
import com.glxp.api.service.auth.CustomerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.RelCodeBatchMapper;
@ -24,6 +30,7 @@ import org.w3c.dom.NodeList;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@ -33,6 +40,8 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
@Resource
private RelCodeDetailService relCodeDetailService;
@Resource
private CustomerService customerService;
/**
*
@ -70,6 +79,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
if(batch == null){
throw new JsonException("XML文件解析错误");
}
AuthAdmin user = customerService.getUserBean();
for (int i = 0; i < batch.getLength(); i++) {
Node batchNode = batch.item(i);
RelCodeBatch relCodeBatch = new RelCodeBatch();
@ -92,6 +102,10 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
relCodeBatch.setLineName(lineName);
String lineManager = batchE.getAttribute("lineManager");
relCodeBatch.setLineManager(lineManager);
relCodeBatch.setCreateTime(new Date());
relCodeBatch.setCreateUser(user.getUserName());
relCodeBatch.setUpdateTime(new Date());
relCodeBatch.setUpdateUser(user.getUserName());
this.save(relCodeBatch);
}
//batch下的节点code
@ -107,7 +121,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
String packLayer = codeE.getAttribute("packLayer");
relCodeDetail.setPackLayer(Integer.valueOf(packLayer));
String parentCode = codeE.getAttribute("parentCode");
relCodeDetail.setParentCode(parentCode);
relCodeDetail.setParentCode(StrUtil.isNotBlank(parentCode)?parentCode:"0");
String flag = codeE.getAttribute("flag");
relCodeDetail.setFlag(Integer.valueOf(flag));
relCodeDetails.add(relCodeDetail);
@ -121,6 +135,36 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
}
/**
*
* @param relCodeBatchRequest
*/
@Transactional(rollbackFor = Exception.class)
public void add(RelCodeBatchRequest relCodeBatchRequest) {
List<RelCodeDetailRequest> detailList = relCodeBatchRequest.getDetailList();
if(CollUtil.isEmpty(detailList)){
throw new JsonException("关联明细不能为空!");
}
AuthAdmin user = customerService.getUserBean();
RelCodeBatch relCodeBatch = new RelCodeBatch();
relCodeBatch.setCreateTime(new Date());
relCodeBatch.setCreateUser(user.getUserName());
relCodeBatch.setUpdateTime(new Date());
relCodeBatch.setUpdateUser(user.getUserName());
BeanUtils.copyProperties(relCodeBatchRequest,relCodeBatch);
this.save(relCodeBatch);
List<RelCodeDetail> relCodeDetails = new ArrayList<>();
for(RelCodeDetailRequest request : detailList){
RelCodeDetail relCodeDetail = new RelCodeDetail();
String parentCode = request.getParentCode();
request.setParentCode(StrUtil.isNotBlank(parentCode)?parentCode:"0");
BeanUtils.copyProperties(request,relCodeDetail);
relCodeDetail.setBatchIdFk(relCodeBatch.getId());
relCodeDetails.add(relCodeDetail);
}
relCodeDetailService.saveBatch(relCodeDetails);
}
public List<RelCodeBatchResponse> filterList(RelCodeBatchRequest relCodeBatchRequest) {
if (relCodeBatchRequest == null) {
return Collections.emptyList();

@ -1,7 +1,16 @@
package com.glxp.api.service.collect;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.collect.RelCodeDetailResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.RelCodeDetailMapper;
@ -9,4 +18,49 @@ import com.glxp.api.entity.collect.RelCodeDetail;
@Service
public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCodeDetail> {
@Resource
private BasicProductsDao basicProductsDao;
/**
*
* @param relCodeDetailRequest
* @return
*/
public RelCodeDetailResponse scanCode(RelCodeDetailRequest relCodeDetailRequest) {
//todo 查询子集
String parentCode = relCodeDetailRequest.getParentCode();
if(StrUtil.isBlank(parentCode)){
throw new JsonException("父级码不能为空");
}
RelCodeDetailResponse relCodeDetailResponse = new RelCodeDetailResponse();
LambdaQueryWrapper<BasicProductsEntity> qw = new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getNameCode, relCodeDetailRequest.getParentCode())
.last("limit 1");
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(qw);
if(basicProductsEntity == null){
throw new JsonException("");
}
relCodeDetailResponse.setCurCode(basicProductsEntity.getNameCode());
relCodeDetailResponse.setPackLayer(Integer.valueOf(basicProductsEntity.getPackLevel()));
relCodeDetailResponse.setParentCode(parentCode);
relCodeDetailResponse.setFlag(Integer.valueOf(basicProductsEntity.getMajorStatus()));
return relCodeDetailResponse;
}
/**
*
* @param relCodeDetailRequest
* @return
*/
public List<RelCodeDetailResponse> filterList(RelCodeDetailRequest relCodeDetailRequest) {
if (relCodeDetailRequest == null) {
return Collections.emptyList();
}
if (relCodeDetailRequest.getPage() != null) {
int offset = (relCodeDetailRequest.getPage() - 1) * relCodeDetailRequest.getLimit();
PageHelper.offsetPage(offset, relCodeDetailRequest.getLimit());
}
return this.baseMapper.filterList(relCodeDetailRequest);
}
}

@ -15,4 +15,51 @@
<!--@mbg.generated-->
id, curCode, packLayer, parentCode, flag, batchIdFk
</sql>
</mapper>
<select id="filterList" parameterType="com.glxp.api.req.collect.RelCodeDetailRequest" resultType="com.glxp.api.res.collect.RelCodeDetailResponse">
select
rcd.id,
rcd.curCode,
rcd.packLayer,
rcd.parentCode,
rcd.flag,
rcd.batchIdFk,
rcb.productCode,
rcb.subTypeNo,
rcb.cascadeRatio,
rcb.packageSpec,
rcb.comment,
rcb.batchNo,
rcb.madeDate,
rcb.validateDate,
rcb.workShop,
rcb.lineName,
rcb.lineManager,
rcb.createTime,
rcb.createUser,
rcb.updateTime,
rcb.updateUser
from rel_code_detail rcd
left join rel_code_batch rcb on rcb.id = rcd.batchIdFk
<where>
<if test="productCode != '' and productCode != null">
AND rcb.productCode LIKE concat('%', #{productCode}, '%')
</if>
<if test="batchNo != null and batchNo != ''">
AND rcb.batchNo = #{batchNo}
</if>
<if test="keyWords != '' and keyWords != null">
and (
rcb.productCode LIKE concat('%', #{keyWords}, '%')
or rcb.subTypeNo LIKE concat('%', #{keyWords}, '%')
or rcb.packageSpec LIKE concat('%', #{keyWords}, '%'))
</if>
<if test="lineName != '' and lineName != null">
AND rcb.lineName LIKE concat('%', #{lineName}, '%')
</if>
<if test="lineManager != '' and lineManager != null">
AND rcb.lineManager LIKE concat('%', #{lineManager}, '%')
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save