diff --git a/src/main/java/com/glxp/udidl/admin/dao/collect/RelCodeBatchMapper.java b/src/main/java/com/glxp/udidl/admin/dao/collect/RelCodeBatchMapper.java new file mode 100644 index 0000000..1ad6e51 --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/dao/collect/RelCodeBatchMapper.java @@ -0,0 +1,15 @@ +package com.glxp.udidl.admin.dao.collect; + +import com.glxp.udidl.admin.dao.BaseMapperPlus; +import com.glxp.udidl.admin.entity.collect.RelCodeBatch; +import com.glxp.udidl.admin.req.collect.RelCodeBatchRequest; +import com.glxp.udidl.admin.res.collect.RelCodeBatchResponse; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface RelCodeBatchMapper extends BaseMapperPlus { + List filterList(RelCodeBatchRequest relCodeBatchRequest); + +} diff --git a/src/main/java/com/glxp/udidl/admin/dao/collect/RelCodeDetailMapper.java b/src/main/java/com/glxp/udidl/admin/dao/collect/RelCodeDetailMapper.java new file mode 100644 index 0000000..9a18138 --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/dao/collect/RelCodeDetailMapper.java @@ -0,0 +1,15 @@ +package com.glxp.udidl.admin.dao.collect; + +import com.glxp.udidl.admin.dao.BaseMapperPlus; +import com.glxp.udidl.admin.entity.collect.RelCodeDetail; +import com.glxp.udidl.admin.req.collect.RelCodeDetailRequest; +import com.glxp.udidl.admin.res.collect.RelCodeDetailResponse; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface RelCodeDetailMapper extends BaseMapperPlus { + List filterList(RelCodeDetailRequest relCodeDetailRequest); + +} diff --git a/src/main/java/com/glxp/udidl/admin/entity/collect/RelCodeBatch.java b/src/main/java/com/glxp/udidl/admin/entity/collect/RelCodeBatch.java new file mode 100644 index 0000000..8ab11ba --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/entity/collect/RelCodeBatch.java @@ -0,0 +1,115 @@ +package com.glxp.udidl.admin.entity.collect; + +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(value="com-glxp-api-entity-collect-RelCodeBatch") +@Data +@TableName(value = "rel_code_batch") +public class RelCodeBatch implements Serializable { + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value="") + private Integer id; + + /** + * 产品编码 + */ + @TableField(value = "productCode") + @ApiModelProperty(value="产品编码") + private String productCode; + + /** + * 类型编码 + */ + @TableField(value = "subTypeNo") + @ApiModelProperty(value="类型编码") + private String subTypeNo; + + /** + * 包装比例 + */ + @TableField(value = "cascadeRatio") + @ApiModelProperty(value="包装比例") + private String cascadeRatio; + + /** + * 包装规格 + */ + @TableField(value = "packageSpec") + @ApiModelProperty(value="包装规格") + private String packageSpec; + + /** + * 备注 + */ + @TableField(value = "comment") + @ApiModelProperty(value="备注") + private String comment; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + @ApiModelProperty(value="批次号") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "madeDate") + @ApiModelProperty(value="生产日期") + private String madeDate; + + /** + * 有效期至 + */ + @TableField(value = "validateDate") + @ApiModelProperty(value="有效期至") + private String validateDate; + + /** + * 生产车间 + */ + @TableField(value = "workShop") + @ApiModelProperty(value="生产车间") + private String workShop; + + /** + * 生产线 + */ + @TableField(value = "lineName") + @ApiModelProperty(value="生产线") + private String lineName; + + /** + * 负责人 + */ + @TableField(value = "lineManager") + @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; + +} diff --git a/src/main/java/com/glxp/udidl/admin/entity/collect/RelCodeDetail.java b/src/main/java/com/glxp/udidl/admin/entity/collect/RelCodeDetail.java new file mode 100644 index 0000000..a64afb5 --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/entity/collect/RelCodeDetail.java @@ -0,0 +1,56 @@ +package com.glxp.udidl.admin.entity.collect; + +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; + +@ApiModel(value="com-glxp-api-entity-collect-RelCodeDetail") +@Data +@TableName(value = "rel_code_detail") +public class RelCodeDetail implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="") + private Integer id; + + /** + * 当前条码 + */ + @TableField(value = "curCode") + @ApiModelProperty(value="当前条码") + private String curCode; + + /** + * 包装级别 + */ + @TableField(value = "packLayer") + @ApiModelProperty(value="包装级别") + private Integer packLayer; + + /** + * 父级码 + */ + @TableField(value = "parentCode") + @ApiModelProperty(value="父级码") + private String parentCode; + + /** + * 状态 + */ + @TableField(value = "flag") + @ApiModelProperty(value="状态") + private Integer flag; + + /** + * 产品批次ID外键 + */ + @TableField(value = "batchIdFk") + @ApiModelProperty(value="产品批次ID外键") + private Integer batchIdFk; + +} diff --git a/src/main/java/com/glxp/udidl/admin/exception/JsonException.java b/src/main/java/com/glxp/udidl/admin/exception/JsonException.java index 9e7eb36..6427248 100644 --- a/src/main/java/com/glxp/udidl/admin/exception/JsonException.java +++ b/src/main/java/com/glxp/udidl/admin/exception/JsonException.java @@ -25,4 +25,8 @@ public class JsonException extends RuntimeException { super(message); this.code = code; } + public JsonException(String message) { + super(message); + this.code = 500; + } } diff --git a/src/main/java/com/glxp/udidl/admin/req/collect/RelCodeBatchRequest.java b/src/main/java/com/glxp/udidl/admin/req/collect/RelCodeBatchRequest.java new file mode 100644 index 0000000..1953830 --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/req/collect/RelCodeBatchRequest.java @@ -0,0 +1,84 @@ +package com.glxp.udidl.admin.req.collect; + +import com.glxp.udidl.admin.req.ListPageRequest; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@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 String madeDate; + + /** + * 有效期至 + */ + private String 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; + + private List detailList; + + private String code; + private String startDate; + private String endDate; +} diff --git a/src/main/java/com/glxp/udidl/admin/req/collect/RelCodeDetailRequest.java b/src/main/java/com/glxp/udidl/admin/req/collect/RelCodeDetailRequest.java new file mode 100644 index 0000000..f61797b --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/req/collect/RelCodeDetailRequest.java @@ -0,0 +1,103 @@ +package com.glxp.udidl.admin.req.collect; + +import com.glxp.udidl.admin.req.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; + +} diff --git a/src/main/java/com/glxp/udidl/admin/res/collect/RelCodeBatchResponse.java b/src/main/java/com/glxp/udidl/admin/res/collect/RelCodeBatchResponse.java new file mode 100644 index 0000000..7f4f4c4 --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/res/collect/RelCodeBatchResponse.java @@ -0,0 +1,84 @@ +package com.glxp.udidl.admin.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; + + /** + * 产品名称,通用名称 + */ + private String cpmctymc; + /** + * 包含下级数量 + */ + private Integer bhxjsl; + + /** + * 包装单位 + */ + private String packUnit; + /** + * 包装级别 + */ + private Integer packLayer; +} diff --git a/src/main/java/com/glxp/udidl/admin/res/collect/RelCodeDetailResponse.java b/src/main/java/com/glxp/udidl/admin/res/collect/RelCodeDetailResponse.java new file mode 100644 index 0000000..6be05bc --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/res/collect/RelCodeDetailResponse.java @@ -0,0 +1,108 @@ +package com.glxp.udidl.admin.res.collect; + +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; + + /** + * 产品名称,通用名称 + */ + private String cpmctymc; + /** + * 包含下级数量 + */ + private Integer bhxjsl; + + /** + * 包装单位 + */ + private String packUnit; + +} diff --git a/src/main/java/com/glxp/udidl/admin/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/udidl/admin/service/collect/RelCodeBatchService.java new file mode 100644 index 0000000..0115cf8 --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/service/collect/RelCodeBatchService.java @@ -0,0 +1,220 @@ +package com.glxp.udidl.admin.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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.glxp.udidl.admin.dao.collect.RelCodeBatchMapper; +import com.glxp.udidl.admin.entity.auth.AuthAdmin; +import com.glxp.udidl.admin.entity.collect.RelCodeBatch; +import com.glxp.udidl.admin.entity.collect.RelCodeDetail; +import com.glxp.udidl.admin.exception.JsonException; +import com.glxp.udidl.admin.req.collect.RelCodeBatchRequest; +import com.glxp.udidl.admin.req.collect.RelCodeDetailRequest; +import com.glxp.udidl.admin.res.collect.RelCodeBatchResponse; +//import com.glxp.udidl.admin.service.auth.CustomerService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +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.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class RelCodeBatchService extends ServiceImpl { + + + @Resource + private RelCodeDetailService relCodeDetailService; +// @Resource +// private CustomerService customerService; + + /** + * 上传保存关联信息 + * @param file + */ + @Transactional(rollbackFor = Exception.class) + public void xmlUpload(MultipartFile file) { +// try { +// String fileName = file.getOriginalFilename(); +// String suffix = FileUtil.getSuffix(fileName); +// if(! "xml".equals(suffix)){ +// throw new JsonException("仅支持XML,文件类型错误"+suffix); +// } +// log.info(file.getSize()+"文件长度"); +// if(file.getSize() > 5 * 1024 *1024){ +// throw new JsonException("上传文件超过5M"); +// } +// List relCodeDetails = new ArrayList<>(); +// Document document = XmlUtil.readXML(file.getInputStream()); +// //获取根 +// Element rootElement = XmlUtil.getRootElement(document); +// //截取Relation +// NodeList relation = rootElement.getElementsByTagName("Relation"); +// if(relation == null){ +// throw new JsonException("XML文件解析错误"); +// } +// 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"); +// 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(); +// 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); +// String batchNo = batchE.getAttribute("batchNo"); +// relCodeBatch.setBatchNo(batchNo); +// String madeDate = batchE.getAttribute("madeDate"); +// relCodeBatch.setMadeDate(madeDate); +//// relCodeBatch.setMadeDate(DateUtil.parse(madeDate,"yyyy-MM-dd")); +// String validateDate = batchE.getAttribute("validateDate"); +//// relCodeBatch.setValidateDate(DateUtil.offsetDay(DateUtil.parse(validateDate,"yyyy-MM-dd"),1)); +// relCodeBatch.setValidateDate(String.valueOf(DateUtil.offsetDay(DateUtil.parse(validateDate,"yyyy-MM-dd"),1))); +// String workShop = batchE.getAttribute("workShop"); +// relCodeBatch.setWorkShop(workShop); +// String lineName = batchE.getAttribute("lineName"); +// 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 +// 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(StrUtil.isNotBlank(parentCode)?parentCode:"0"); +// String flag = codeE.getAttribute("flag"); +// relCodeDetail.setFlag(Integer.valueOf(flag)); +// relCodeDetails.add(relCodeDetail); +// } +// } +// } +// relCodeDetailService.saveBatch(relCodeDetails); +// }catch (Exception e){ +// throw new JsonException("上传失败:"+e.getMessage()); +// } + + } + + /** + * 手动添加 + * @param relCodeBatchRequest + */ + @Transactional(rollbackFor = Exception.class) + public void add(RelCodeBatchRequest relCodeBatchRequest) { +// List detailList = relCodeBatchRequest.getDetailList(); +// if(CollUtil.isEmpty(detailList)){ +// throw new JsonException("关联明细不能为空!"); +// } +// AuthAdmin user = customerService.getUserBean(); +// RelCodeBatch relCodeBatch = new RelCodeBatch(); +// BeanUtils.copyProperties(relCodeBatchRequest,relCodeBatch); +// relCodeBatch.setCreateTime(new Date()); +// relCodeBatch.setCreateUser(user.getUserName()); +// relCodeBatch.setUpdateTime(new Date()); +// relCodeBatch.setUpdateUser(user.getUserName()); +// this.save(relCodeBatch); +// List 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 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); + } + + @Transactional(rollbackFor = Exception.class) + public void delete(Long id) { + if(id == null){ + throw new JsonException("id 不能为空"); + } + relCodeDetailService.remove(new LambdaQueryWrapper().eq(RelCodeDetail::getBatchIdFk,id)); + this.removeById(id); + } + + @Transactional(rollbackFor = Exception.class) + public void addRelCodeSpellBox(List relCodeBatchRequests) { + if (CollUtil.isEmpty(relCodeBatchRequests)){ + throw new JsonException("单据信息异常!"); + } + relCodeBatchRequests.forEach( item -> { + this.add(item); + }); + } + + @Transactional(rollbackFor = Exception.class) + public void deleteDetail(String curCode) { + List list = relCodeDetailService.list(new LambdaQueryWrapper().eq(RelCodeDetail::getParentCode, curCode)); + if (CollUtil.isNotEmpty(list)){ + List batchIds = list.stream().map(RelCodeDetail::getBatchIdFk).collect(Collectors.toList()); + this.removeBatchByIds(batchIds); + relCodeDetailService.remove(new LambdaQueryWrapper().in(RelCodeDetail::getBatchIdFk,batchIds)); + } + } + + @Transactional(rollbackFor = Exception.class) + public void deleteAllDetail(List detailList) { + if (CollUtil.isNotEmpty(detailList)){ + detailList.forEach( item -> { + String curCode = item.getCurCode(); + this.deleteDetail(curCode); + }); + } + } +} diff --git a/src/main/java/com/glxp/udidl/admin/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/udidl/admin/service/collect/RelCodeDetailService.java new file mode 100644 index 0000000..a83353f --- /dev/null +++ b/src/main/java/com/glxp/udidl/admin/service/collect/RelCodeDetailService.java @@ -0,0 +1,116 @@ +package com.glxp.udidl.admin.service.collect; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +//import com.glxp.udidl.admin.dao.basic.BasicProductsDao; +import com.glxp.udidl.admin.dao.collect.RelCodeDetailMapper; +//import com.glxp.udidl.admin.entity.basic.BasicProductsEntity; +//import com.glxp.udidl.admin.entity.basic.UdiEntity; +import com.glxp.udidl.admin.entity.collect.RelCodeDetail; +import com.glxp.udidl.admin.exception.JsonException; +import com.glxp.udidl.admin.req.collect.RelCodeDetailRequest; +import com.glxp.udidl.admin.res.collect.RelCodeDetailResponse; +//import com.glxp.udidl.admin.util.udi.FilterUdiUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class RelCodeDetailService extends ServiceImpl { + +// @Resource +// private BasicProductsDao basicProductsDao; + + /** + * 扫码获取关联 + * @param relCodeDetailRequest + * @return + */ +// public RelCodeDetailResponse scanCode(RelCodeDetailRequest relCodeDetailRequest) { +// String curCode = relCodeDetailRequest.getCurCode(); +// String parentCode = relCodeDetailRequest.getParentCode(); +// if(StrUtil.isBlank(curCode)){ +// throw new JsonException("追溯码不能为空"); +// } +// if (curCode.endsWith("\u001D")) { +// curCode = curCode.replace("\u001D", ""); +// } +// UdiEntity curCodeUdi = FilterUdiUtils.getUdi(curCode); +// if (curCodeUdi == null){ +// throw new JsonException("无效条码!"); +// } +// RelCodeDetailResponse relCodeDetailResponse = new RelCodeDetailResponse(); +// LambdaQueryWrapper cw = new LambdaQueryWrapper() +// .eq(BasicProductsEntity::getNameCode, curCodeUdi.getUdi()) +// .last("limit 1"); +// BasicProductsEntity cur = basicProductsDao.selectOne(cw); +// if(cur == null){ +// throw new JsonException("产品信息不存在"); +// } +// //是否已存在数据库中 +// List list = this.baseMapper.selectList(new LambdaQueryWrapper().eq(RelCodeDetail::getCurCode, curCode)); +// if (CollUtil.isNotEmpty(list)){ +// throw new JsonException("当前条码关联关系已被维护!"); +// } +// if(StrUtil.isNotBlank(parentCode)){ +// if (parentCode.endsWith("\u001D")) { +// parentCode = parentCode.replace("\u001D", ""); +// } +// if(StrUtil.equals(curCode,parentCode)){ +// throw new JsonException("录入条码重复!"); +// } +// UdiEntity parentCodeUdi = FilterUdiUtils.getUdi(parentCode); +// if (parentCodeUdi == null){ +// throw new JsonException("无效父级条码!"); +// } +// LambdaQueryWrapper pw = new LambdaQueryWrapper() +// .eq(BasicProductsEntity::getNameCode, parentCodeUdi.getUdi()) +// .last("limit 1"); +// BasicProductsEntity parent = basicProductsDao.selectOne(pw); +// if(parent == null){ +// throw new JsonException("父级产品信息不存在"); +// } +// if(!StrUtil.equals(parent.getUuid(),cur.getUuid())){ +// throw new JsonException("当前条码不是同一产品"); +// } +// if(Integer.valueOf(parent.getPackLevel()) - Integer.valueOf(cur.getPackLevel()) != 1){ +// throw new JsonException("当前条码不属于子条码"); +// } +// }else { +// parentCode = "0"; +// } +// relCodeDetailResponse.setCurCode(curCode); +// relCodeDetailResponse.setParentCode(parentCode); +// relCodeDetailResponse.setPackLayer(Integer.valueOf(cur.getPackLevel())); +// relCodeDetailResponse.setFlag(1); +// relCodeDetailResponse.setCpmctymc(cur.getCpmctymc()); +// relCodeDetailResponse.setProductCode(cur.getNameCode()); +// relCodeDetailResponse.setBhxjsl(cur.getBhxjsl()); +// relCodeDetailResponse.setPackageSpec(cur.getBzgg()); +// relCodeDetailResponse.setCascadeRatio(cur.getPackRatio()); +// relCodeDetailResponse.setPackUnit(cur.getPackUnit()); +// return relCodeDetailResponse; +// } + + /** + * 明细列表 + * @param relCodeDetailRequest + * @return + */ + public List 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); + } + +} diff --git a/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml b/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml new file mode 100644 index 0000000..62fcbba --- /dev/null +++ b/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + id, productCode, subTypeNo, `cascadeRatio`, packageSpec, `comment`, batchNo, madeDate, + validateDate, workShop, lineName, lineManager + + + + diff --git a/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml new file mode 100644 index 0000000..a89292f --- /dev/null +++ b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + id, curCode, packLayer, parentCode, flag, batchIdFk + + + +