Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z

dev_no_inv
yewj 9 months ago
commit c93e9c68a2

@ -16,6 +16,7 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.dto.DictDto;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.auth.DeptEntity;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.auth.WarehouseUserEntity;
import com.glxp.api.entity.basic.BasicCollectPointEntity;
@ -78,6 +79,8 @@ public class SysWorkplaceController extends BaseController {
@Resource
private SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
DeptService deptService;
@PostMapping("/udiwms/sysWorkplace/page")
@ -88,6 +91,10 @@ public class SysWorkplaceController extends BaseController {
// .or()
// .like(StrUtil.isNotBlank(request.getKey()),SystemWorkplace::getWorkplaceName,request.getKey())
// );
DeptEntity deptEntity = deptService.selectByCode(request.getDeptCode());
if (deptEntity.getPid() == 0){
request.setDeptCode(null);
}
List<SysWorkplaceResponse> page = sysWorkplaceService.filterList(request);
PageInfo<SysWorkplaceResponse> pageInfo = new PageInfo<>(page);
PageSimpleResponse<SysWorkplaceResponse> pageSimpleResponse = new PageSimpleResponse<>();
@ -258,8 +265,7 @@ public class SysWorkplaceController extends BaseController {
@Resource
private WarehouseUserService warehouseUserService;
@Resource
DeptService deptService;
@Resource
private AuthAdminService authAdminService;

@ -0,0 +1,72 @@
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(@RequestParam("id") Long id) {
RelCodeBatch relCodeBatch = relCodeBatchService.getById(id);
return ResultVOUtils.success(relCodeBatch);
}
@GetMapping("/udiwms/relCode/batch/delete")
public BaseResponse delete(@RequestParam("id") Long id) {
relCodeBatchService.delete(id);
return ResultVOUtils.success("删除成功");
}
@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("修改成功!");
}
}

@ -102,6 +102,9 @@ public class IoOrderController extends BaseController {
@Resource
UdiProductDao udiProductDao;
@Resource
IoSplitFifoCodeService fifoCodeService;
/**
*
*
@ -393,6 +396,26 @@ public class IoOrderController extends BaseController {
if (baseResponse != null)
return baseResponse;
//上货校验追溯码是否重复
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
for (IoCodeTempEntity codeTempEntity :codeTempEntities){
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(), null);
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() +"已存在!");
}
}
}
//退货校验追溯码是否重复
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
for (IoCodeTempEntity codeTempEntity :codeTempEntities){
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(), null);
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() +"已存在!");
}
}
}
String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo");
if (IntUtil.value(priceFifo) > 0 && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
List<IoCodeTempEntity> resultList = new ArrayList<>();

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

@ -100,6 +100,12 @@ public class SysWorkplace implements Serializable {
@TableField(value = "workplaceType")
private Integer workplaceType;
/**
* 1:; 2:
*/
@TableField(value = "workplaceClass")
private Integer workPlaceClass;
@TableField(exist = false)
private String invName;

@ -14,7 +14,7 @@ import lombok.Data;
@Data
@TableName(value = "rel_code_batch")
public class RelCodeBatch implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="")
private Integer id;
@ -35,9 +35,9 @@ public class RelCodeBatch implements Serializable {
/**
*
*/
@TableField(value = "cascade")
@TableField(value = "cascadeRatio")
@ApiModelProperty(value="包装比例")
private String cascade;
private String cascadeRatio;
/**
*
@ -95,4 +95,4 @@ public class RelCodeBatch implements Serializable {
@ApiModelProperty(value="负责人")
private String lineManager;
}
}

@ -29,7 +29,7 @@ public class RelCodeDetail implements Serializable {
*/
@TableField(value = "packLayer")
@ApiModelProperty(value="包装级别")
private Byte packLayer;
private Integer packLayer;
/**
*
@ -43,7 +43,7 @@ public class RelCodeDetail implements Serializable {
*/
@TableField(value = "flag")
@ApiModelProperty(value="状态")
private Byte flag;
private Integer flag;
/**
* ID
@ -52,4 +52,4 @@ public class RelCodeDetail implements Serializable {
@ApiModelProperty(value="产品批次ID外键")
private Integer batchIdFk;
}
}

@ -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;
}

@ -137,6 +137,12 @@ public class SysWorkplaceResponse {
@TableField(value = "workplaceType")
private Integer workplaceType;
/**
* 1:; 2:
*/
@TableField(value = "workPlaceClass")
private Integer workPlaceClass;
@TableField(exist = false)
private String invName;

@ -76,6 +76,7 @@ public class UserWorkResponse {
private Integer workplaceStatus;
private Integer workplaceType;
private String deptCodeName;
private Integer workPlaceClass;

@ -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,143 @@
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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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) {
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<RelCodeDetail> 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文件解析错误");
}
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);
}
public void delete(Long id) {
if(id == null){
throw new JsonException("id 不能为空");
}
relCodeDetailService.remove(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getBatchIdFk,id));
this.removeById(id);
}
}

@ -14,6 +14,7 @@
sw.workplaceStatus,
sw.workplaceType,
sw.invRemindNumber,
sw.workPlaceClass,
ad.name deptCodeName
from basic_collect_user bcu
left join auth_user au on bcu.userId = au.id

@ -23,9 +23,7 @@
AND 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}, '%')
)
AND sys_workplace_document.busName like concat('%', #{busKey}, '%')
</if>
</where>
GROUP BY sys_workplace_document.documentTypeCode
@ -60,9 +58,7 @@
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}, '%')
)
AND sys_workplace_document.busName like concat('%', #{busKey}, '%')
</if>
</where>
ORDER BY sys_workplace_document.isPopular desc ,sys_workplace_document.number,sys_workplace_document.createTime

@ -7,7 +7,7 @@
<id column="id" jdbcType="INTEGER" property="id" />
<result column="productCode" jdbcType="VARCHAR" property="productCode" />
<result column="subTypeNo" jdbcType="VARCHAR" property="subTypeNo" />
<result column="cascade" jdbcType="VARCHAR" property="cascade" />
<result column="cascadeRatio" jdbcType="VARCHAR" property="cascadeRatio" />
<result column="packageSpec" jdbcType="VARCHAR" property="packageSpec" />
<result column="comment" jdbcType="VARCHAR" property="comment" />
<result column="batchNo" jdbcType="VARCHAR" property="batchNo" />
@ -19,7 +19,44 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, productCode, subTypeNo, `cascade`, packageSpec, `comment`, batchNo, madeDate,
id, productCode, subTypeNo, `cascadeRatio`, packageSpec, `comment`, batchNo, madeDate,
validateDate, workShop, lineName, lineManager
</sql>
</mapper>
<select id="filterList" parameterType="com.glxp.api.req.collect.RelCodeBatchRequest" resultType="com.glxp.api.res.collect.RelCodeBatchResponse">
select
id,
productCode,
subTypeNo,
cascadeRatio,
packageSpec,
comment,
batchNo,
madeDate,
validateDate,
workShop,
lineName,
lineManager
from rel_code_batch
<where>
<if test="productCode != '' and productCode != null">
AND productCode LIKE concat('%', #{productCode}, '%')
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
<if test="keyWords != '' and keyWords != null">
and (
productCode LIKE concat('%', #{keyWords}, '%')
or subTypeNo LIKE concat('%', #{keyWords}, '%')
or packageSpec LIKE concat('%', #{keyWords}, '%'))
</if>
<if test="lineName != '' and lineName != null">
AND lineName LIKE concat('%', #{lineName}, '%')
</if>
<if test="lineManager != '' and lineManager != null">
AND lineManager LIKE concat('%', #{lineManager}, '%')
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save