上传关联
parent
dbe6477e09
commit
c565b37b4f
@ -0,0 +1,66 @@
|
||||
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;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class RelCodeBatchController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private RelCodeBatchService relCodeBatchService;
|
||||
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/udiwms/relCode/batch/xmlUpload")
|
||||
public BaseResponse xmlUpload(@RequestBody RelCodeBatchRequest relCodeBatchRequest, @RequestParam("file") MultipartFile file) {
|
||||
relCodeBatchService.xmlUpload(file);
|
||||
return ResultVOUtils.success("保存成功!");
|
||||
}
|
||||
|
||||
@GetMapping("/udiwms/relCode/batch/filter")
|
||||
public BaseResponse list(RelCodeBatchRequest relCodeBatchRequest, BindingResult bindingResult) {
|
||||
List<RelCodeBatchResponse> relCodeBatchResponses = relCodeBatchService.filterList(relCodeBatchRequest);
|
||||
PageInfo<RelCodeBatchResponse> pageInfo = new PageInfo<>(relCodeBatchResponses);
|
||||
PageSimpleResponse<RelCodeBatchResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
||||
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
||||
pageSimpleResponse.setList(relCodeBatchResponses);
|
||||
return ResultVOUtils.success(pageSimpleResponse);
|
||||
}
|
||||
|
||||
@GetMapping("/udiwms/relCode/batch/get")
|
||||
public BaseResponse get(Long id) {
|
||||
RelCodeBatch relCodeBatch = relCodeBatchService.getById(id);
|
||||
return ResultVOUtils.success(relCodeBatch);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/udiwms/relCode/batch/update")
|
||||
public BaseResponse update(@RequestBody @Valid RelCodeBatch relCodeBatch) {
|
||||
relCodeBatchService.updateById(relCodeBatch);
|
||||
return ResultVOUtils.success("修改成功!");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.glxp.api.controller.collect;
|
||||
|
||||
|
||||
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.service.collect.RelCodeDetailService;
|
||||
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 javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class RelCodeDetailController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private RelCodeDetailService relCodeDetailService;
|
||||
|
||||
@GetMapping("/udiwms/relCode/detail/get")
|
||||
public BaseResponse get(Long id) {
|
||||
RelCodeDetail relCodeDetail = relCodeDetailService.getById(id);
|
||||
return ResultVOUtils.success(relCodeDetail);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/udiwms/relCode/detail/update")
|
||||
public BaseResponse update(@RequestBody @Valid RelCodeDetail relCodeDetail) {
|
||||
relCodeDetailService.updateById(relCodeDetail);
|
||||
return ResultVOUtils.success("修改成功!");
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package com.glxp.api.req.collect;
|
||||
|
||||
import com.glxp.api.util.page.ListPageRequest;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class RelCodeBatchRequest extends ListPageRequest {
|
||||
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 产品编码
|
||||
*/
|
||||
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;
|
||||
|
||||
String keyWords;
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.glxp.api.res.collect;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class RelCodeBatchResponse {
|
||||
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 产品编码
|
||||
*/
|
||||
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,12 +1,126 @@
|
||||
package com.glxp.api.service.collect;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.XmlUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.glxp.api.entity.collect.RelCodeDetail;
|
||||
import com.glxp.api.exception.JsonException;
|
||||
import com.glxp.api.req.collect.RelCodeBatchRequest;
|
||||
import com.glxp.api.res.collect.RelCodeBatchResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.glxp.api.dao.collect.RelCodeBatchMapper;
|
||||
import com.glxp.api.entity.collect.RelCodeBatch;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCodeBatch> {
|
||||
|
||||
|
||||
@Resource
|
||||
private RelCodeDetailService relCodeDetailService;
|
||||
|
||||
/**
|
||||
* 上传保存关联信息
|
||||
* @param file
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void xmlUpload(MultipartFile file) {
|
||||
String fileName = file.getOriginalFilename();
|
||||
String suffix = FileUtil.getSuffix(fileName);
|
||||
if(! "xml".equals(suffix)){
|
||||
throw new JsonException("上传文件类型错误:"+suffix);
|
||||
}
|
||||
log.info(file.getSize()+"文件长度");
|
||||
try {
|
||||
List<RelCodeDetail> relCodeDetails = new ArrayList<>();
|
||||
Document document = XmlUtil.readXML(file.getInputStream());
|
||||
//获取根
|
||||
Element rootElement = XmlUtil.getRootElement(document);
|
||||
//截取Relation
|
||||
NodeList relation = rootElement.getElementsByTagName("Relation");
|
||||
Element relationE = (Element) relation.item(0);
|
||||
String productCode = relationE.getAttribute("productCode");
|
||||
String subTypeNo = relationE.getAttribute("subTypeNo");
|
||||
String cascade = relationE.getAttribute("cascade");
|
||||
String packageSpec = relationE.getAttribute("packageSpec");
|
||||
String comment = relationE.getAttribute("comment");
|
||||
//截取Batch
|
||||
NodeList batch = rootElement.getElementsByTagName("Batch");
|
||||
for (int i = 0; i < batch.getLength(); i++) {
|
||||
Node batchNode = batch.item(i);
|
||||
RelCodeBatch relCodeBatch = new RelCodeBatch();
|
||||
String batchNo;
|
||||
if (batchNode.getNodeType() == Node.ELEMENT_NODE) {
|
||||
Element batchE = (Element) batchNode;
|
||||
relCodeBatch.setProductCode(productCode);
|
||||
relCodeBatch.setSubTypeNo(subTypeNo);
|
||||
relCodeBatch.setCascadeRatio(cascade);
|
||||
relCodeBatch.setPackageSpec(packageSpec);
|
||||
relCodeBatch.setComment(comment);
|
||||
batchNo = batchE.getAttribute("batchNo");
|
||||
relCodeBatch.setBatchNo(batchNo);
|
||||
String madeDate = batchE.getAttribute("madeDate");
|
||||
relCodeBatch.setMadeDate(DateUtil.parse(madeDate,"yyyy-MM-dd"));
|
||||
String validateDate = batchE.getAttribute("validateDate");
|
||||
relCodeBatch.setValidateDate(DateUtil.parse(validateDate,"yyyy-MM-dd"));
|
||||
String workShop = batchE.getAttribute("workShop");
|
||||
relCodeBatch.setWorkShop(workShop);
|
||||
String lineName = batchE.getAttribute("lineName");
|
||||
relCodeBatch.setLineName(lineName);
|
||||
String lineManager = batchE.getAttribute("lineManager");
|
||||
relCodeBatch.setLineManager(lineManager);
|
||||
this.save(relCodeBatch);
|
||||
}
|
||||
//batch下的节点code
|
||||
NodeList code = batchNode.getChildNodes();
|
||||
for (int j = 0; j < code.getLength(); j++) {
|
||||
Node codeNode = code.item(j);
|
||||
RelCodeDetail relCodeDetail = new RelCodeDetail();
|
||||
if (codeNode.getNodeType() == Node.ELEMENT_NODE) {
|
||||
Element codeE = (Element) codeNode;
|
||||
relCodeDetail.setBatchIdFk(relCodeBatch.getId());
|
||||
String curCode = codeE.getAttribute("curCode");
|
||||
relCodeDetail.setCurCode(curCode);
|
||||
String packLayer = codeE.getAttribute("packLayer");
|
||||
relCodeDetail.setPackLayer(Integer.valueOf(packLayer));
|
||||
String parentCode = codeE.getAttribute("parentCode");
|
||||
relCodeDetail.setParentCode(parentCode);
|
||||
String flag = codeE.getAttribute("flag");
|
||||
relCodeDetail.setFlag(Integer.valueOf(flag));
|
||||
relCodeDetails.add(relCodeDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
relCodeDetailService.saveBatch(relCodeDetails);
|
||||
}catch (Exception e){
|
||||
throw new JsonException("上传失败:"+e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<RelCodeBatchResponse> filterList(RelCodeBatchRequest relCodeBatchRequest) {
|
||||
if (relCodeBatchRequest == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
if (relCodeBatchRequest.getPage() != null) {
|
||||
int offset = (relCodeBatchRequest.getPage() - 1) * relCodeBatchRequest.getLimit();
|
||||
PageHelper.offsetPage(offset, relCodeBatchRequest.getLimit());
|
||||
}
|
||||
return this.baseMapper.filterList(relCodeBatchRequest);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue