Merge remote-tracking branch 'origin/master'
commit
4775da6533
@ -0,0 +1,123 @@
|
||||
package com.glxp.api.controller.inout;
|
||||
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.glxp.api.annotation.AuthRuleAnnotation;
|
||||
import com.glxp.api.common.res.BaseResponse;
|
||||
import com.glxp.api.common.util.ResultVOUtils;
|
||||
import com.glxp.api.constant.Constant;
|
||||
import com.glxp.api.controller.BaseController;
|
||||
import com.glxp.api.dao.inout.IoOrderDao;
|
||||
import com.glxp.api.dao.inout.IoOrderDetailBizDao;
|
||||
import com.glxp.api.entity.auth.AuthAdmin;
|
||||
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
||||
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
|
||||
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
|
||||
import com.glxp.api.entity.inout.IoOrderEntity;
|
||||
import com.glxp.api.req.inout.AddBizProductReqeust;
|
||||
import com.glxp.api.req.system.DeleteRequest;
|
||||
import com.glxp.api.res.PageSimpleResponse;
|
||||
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
||||
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
||||
import com.glxp.api.service.basic.UdiRelevanceService;
|
||||
import com.glxp.api.service.inout.IoOrderDetailBizService;
|
||||
import com.glxp.api.service.inout.IoOrderService;
|
||||
import com.glxp.api.util.GennerOrderUtils;
|
||||
import com.glxp.api.util.OrderNoTypeBean;
|
||||
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 java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单据业务详情
|
||||
*/
|
||||
|
||||
@RestController
|
||||
public class IoOrderDetailBizController extends BaseController {
|
||||
|
||||
@Resource
|
||||
IoOrderService orderService;
|
||||
@Resource
|
||||
IoOrderDetailBizService orderDetailBizService;
|
||||
@Resource
|
||||
UdiRelevanceService udiRelevanceService;
|
||||
@Resource
|
||||
GennerOrderUtils gennerOrderUtils;
|
||||
@Resource
|
||||
private IBasicBussinessTypeService basicBussinessTypeService;
|
||||
@Resource
|
||||
IoOrderDetailBizDao ioOrderDetailBizDao;
|
||||
|
||||
//获取单据业务详情---临时接口查询
|
||||
@AuthRuleAnnotation("")
|
||||
@GetMapping("udiwms/inout/order/draft/biz")
|
||||
public BaseResponse getDraftsDetailCode() {
|
||||
List<IoOrderDetailBizEntity> orderEntityList = ioOrderDetailBizDao.selectList();
|
||||
PageSimpleResponse<IoOrderDetailBizEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
||||
pageSimpleResponse.setTotal(100l);
|
||||
pageSimpleResponse.setList(orderEntityList);
|
||||
return ResultVOUtils.success(pageSimpleResponse);
|
||||
}
|
||||
|
||||
|
||||
//录入业务单据详情
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/udiwms/inout/order/addBizProduct")
|
||||
public BaseResponse addBizProduct(@RequestBody AddBizProductReqeust addBizProductReqeust) {
|
||||
|
||||
AuthAdmin authAdmin = getUser();
|
||||
if (addBizProductReqeust.getRelId() == null)
|
||||
return ResultVOUtils.error(500, "未选择产品信息");
|
||||
if (addBizProductReqeust.getOrderEntity() == null)
|
||||
return ResultVOUtils.error(500, "未指定订单");
|
||||
IoOrderEntity orderEntity = addBizProductReqeust.getOrderEntity();
|
||||
if (StrUtil.isEmpty(orderEntity.getBillNo())) {
|
||||
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
|
||||
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
|
||||
orderEntity.setBillNo(orderNo);
|
||||
orderEntity.setCreateUser(authAdmin.getId() + "");
|
||||
orderEntity.setCreateTime(new Date());
|
||||
}
|
||||
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(addBizProductReqeust.getRelId());
|
||||
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
|
||||
ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo());
|
||||
ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId());
|
||||
ioOrderDetailBizEntity.setUuidFk(udiRelevanceResponse.getUuid());
|
||||
ioOrderDetailBizEntity.setCoName(udiRelevanceResponse.getCpmctymc());
|
||||
ioOrderDetailBizEntity.setCertCode(udiRelevanceResponse.getZczbhhzbapzbh());
|
||||
ioOrderDetailBizEntity.setYlqxzcrbarmc(udiRelevanceResponse.getYlqxzcrbarmc());
|
||||
ioOrderDetailBizEntity.setManufacturer(udiRelevanceResponse.getManufactory());
|
||||
ioOrderDetailBizEntity.setMeasname(udiRelevanceResponse.getMeasname());
|
||||
ioOrderDetailBizEntity.setSpec(udiRelevanceResponse.getGgxh());
|
||||
ioOrderDetailBizEntity.setPrice(udiRelevanceResponse.getPrice());
|
||||
orderDetailBizService.insert(ioOrderDetailBizEntity);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderEntity.setUpdateUser(authAdmin.getId() + "");
|
||||
orderService.insertOrUpdate(orderEntity);
|
||||
return ResultVOUtils.success(orderEntity);
|
||||
}
|
||||
|
||||
//修改业务单据详情
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/udiwms/inout/order/updateBizProduct")
|
||||
public BaseResponse updateBizProduct(@RequestBody IoOrderDetailBizEntity orderDetailBizEntity) {
|
||||
boolean isExit = orderDetailBizService.isExit(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getId());
|
||||
if (isExit) {
|
||||
return ResultVOUtils.error(500, "存在相同产品,相同批次号,请检查后保存!");
|
||||
}
|
||||
return orderDetailBizService.update(orderDetailBizEntity) > 0 ? ResultVOUtils.success("保存成功!") : ResultVOUtils.error(500, "保存失败");
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/udiwms/inout/order/delBizProduct")
|
||||
public BaseResponse delBizProduct(@RequestBody DeleteRequest deleteRequest) {
|
||||
return orderDetailBizService.deleteById(Integer.parseInt(deleteRequest.getId())) > 0 ? ResultVOUtils.success("删除成功!") : ResultVOUtils.error(500, "删除失败");
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
package com.glxp.api.entity.inv;
|
||||
|
||||
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 java.io.Serializable;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName(value = "inv_prein_detail")
|
||||
public class InvPreinDetailEntity implements Serializable {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 条码
|
||||
*/
|
||||
@TableField(value = "code")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 单据号外键
|
||||
*/
|
||||
@TableField(value = "orderId")
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 最小销售表示
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 生产日期
|
||||
*/
|
||||
@TableField(value = "produceDate")
|
||||
private String produceDate;
|
||||
|
||||
/**
|
||||
* 失效日期
|
||||
*/
|
||||
@TableField(value = "expireDate")
|
||||
private String expireDate;
|
||||
|
||||
/**
|
||||
* 序列号
|
||||
*/
|
||||
@TableField(value = "serialNo")
|
||||
private String serialNo;
|
||||
|
||||
/**
|
||||
* 耗材字典主键
|
||||
*/
|
||||
@TableField(value = "relId")
|
||||
private Integer relId;
|
||||
|
||||
/**
|
||||
* 扫码数量
|
||||
*/
|
||||
@TableField(value = "`count`")
|
||||
private Integer count;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
@TableField(value = "reCount")
|
||||
private Integer reCount;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
package com.glxp.api.entity.inv;
|
||||
|
||||
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 java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName(value = "inv_prein_order")
|
||||
public class InvPreinOrderEntity implements Serializable {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 单据号
|
||||
*/
|
||||
@TableField(value = "billNo")
|
||||
private String billNo;
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
@TableField(value = "`action`")
|
||||
private String action;
|
||||
|
||||
/**
|
||||
* 往来单位
|
||||
*/
|
||||
@TableField(value = "fromCorp")
|
||||
private String fromCorp;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
@TableField(value = "fromType")
|
||||
private String fromType;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(value = "`createUser`")
|
||||
private String createUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField(value = "updateUser")
|
||||
private String updateUser;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 验收人
|
||||
*/
|
||||
@TableField(value = "reviewUser")
|
||||
private String reviewUser;
|
||||
|
||||
/**
|
||||
* 验收时间
|
||||
*/
|
||||
@TableField(value = "auditTime")
|
||||
private Date auditTime;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@TableField(value = "customerId")
|
||||
private Integer customerId;
|
||||
|
||||
/**
|
||||
* 当前仓库
|
||||
*/
|
||||
@TableField(value = "invCode")
|
||||
private String invCode;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,120 @@
|
||||
package com.glxp.api.entity.inv;
|
||||
|
||||
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 java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName(value = "inv_product_detail")
|
||||
public class InvProductDetailEntity implements Serializable {
|
||||
@TableId(value = "id", type = IdType.INPUT)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* UDI码
|
||||
*/
|
||||
@TableField(value = "code")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 订单号外键
|
||||
*/
|
||||
@TableField(value = "orderId")
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 耗材字典ID
|
||||
*/
|
||||
@TableField(value = "relId")
|
||||
private String relId;
|
||||
|
||||
/**
|
||||
* 最小销售标识
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 生产日期
|
||||
*/
|
||||
@TableField(value = "produceDate")
|
||||
private Date produceDate;
|
||||
|
||||
/**
|
||||
* 失效日期
|
||||
*/
|
||||
@TableField(value = "expireDate")
|
||||
private Date expireDate;
|
||||
|
||||
/**
|
||||
* 序列号
|
||||
*/
|
||||
@TableField(value = "serialNo")
|
||||
private String serialNo;
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
@TableField(value = "supId")
|
||||
private Integer supId;
|
||||
|
||||
/**
|
||||
* 扫码数量
|
||||
*/
|
||||
@TableField(value = "`count`")
|
||||
private Integer count;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
@TableField(value = "reCount")
|
||||
private String reCount;
|
||||
|
||||
/**
|
||||
* 部门编码
|
||||
*/
|
||||
@TableField(value = "deptCode")
|
||||
private String deptCode;
|
||||
|
||||
/**
|
||||
* 仓库编码
|
||||
*/
|
||||
@TableField(value = "invCode")
|
||||
private String invCode;
|
||||
|
||||
/**
|
||||
* 货位编码
|
||||
*/
|
||||
@TableField(value = "invSpaceCode")
|
||||
private String invSpaceCode;
|
||||
|
||||
/**
|
||||
* 原始编码
|
||||
*/
|
||||
@TableField(value = "originCode")
|
||||
private String originCode;
|
||||
|
||||
/**
|
||||
* 采购类型
|
||||
*/
|
||||
@TableField(value = "purchaseType")
|
||||
private String purchaseType;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
package com.glxp.api.entity.inv;
|
||||
|
||||
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 java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName(value = "inv_product")
|
||||
public class InvProductEntity implements Serializable {
|
||||
@TableId(value = "id", type = IdType.INPUT)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 耗材字典ID
|
||||
*/
|
||||
@TableField(value = "relIdFk")
|
||||
private String relIdFk;
|
||||
|
||||
/**
|
||||
* 最小销售标识
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 生产日期
|
||||
*/
|
||||
@TableField(value = "productionDate")
|
||||
private Date productionDate;
|
||||
|
||||
/**
|
||||
* 失效日期
|
||||
*/
|
||||
@TableField(value = "expireDate")
|
||||
private Date expireDate;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
@TableField(value = "inCount")
|
||||
private String inCount;
|
||||
|
||||
/**
|
||||
* 出库数量
|
||||
*/
|
||||
@TableField(value = "outCount")
|
||||
private String outCount;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
@TableField(value = "reCount")
|
||||
private String reCount;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@TableField(value = "customerId")
|
||||
private Integer customerId;
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
@TableField(value = "supId")
|
||||
private Integer supId;
|
||||
|
||||
/**
|
||||
* 部门编码
|
||||
*/
|
||||
@TableField(value = "deptCode")
|
||||
private String deptCode;
|
||||
|
||||
/**
|
||||
* 仓库编码
|
||||
*/
|
||||
@TableField(value = "invCode")
|
||||
private String invCode;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.glxp.api.req.inout;
|
||||
|
||||
import com.glxp.api.entity.inout.IoOrderEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AddBizProductReqeust {
|
||||
|
||||
private IoOrderEntity orderEntity;
|
||||
private Long relId;
|
||||
private String zczbhhzbapzbh;
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.glxp.api.req.inout;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FilterOrderBizRequest {
|
||||
|
||||
private Long relId;
|
||||
private String batchNo;
|
||||
}
|
@ -0,0 +1,261 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.glxp.api.constant.ConstantStatus;
|
||||
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
||||
import com.glxp.api.entity.inout.*;
|
||||
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
||||
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 校验出入库服务
|
||||
*/
|
||||
@Service
|
||||
public class IoCheckInoutService {
|
||||
|
||||
@Resource
|
||||
IoOrderService orderService;
|
||||
@Resource
|
||||
IoCodeService codeService;
|
||||
@Resource
|
||||
IoCodeTempService codeTempService;
|
||||
@Resource
|
||||
IBasicBussinessTypeService basicBussinessTypeService;
|
||||
@Resource
|
||||
IoOrderDetailCodeService orderDetailCodeService;
|
||||
@Resource
|
||||
IoOrderDetailBizService orderDetailBizService;
|
||||
@Resource
|
||||
IoOrderDetailResultService orderDetailResultService;
|
||||
|
||||
public void check(String orderId) {
|
||||
IoOrderEntity orderEntity = orderService.findByBillNo(orderId);
|
||||
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
|
||||
if (!bussinessTypeEntity.isCheckEnable()) {
|
||||
unCheckFinish(orderEntity);
|
||||
} else {
|
||||
if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) {
|
||||
if (!bussinessTypeEntity.isCheckUdims()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) {
|
||||
if (!bussinessTypeEntity.isCheckWebNew()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) {
|
||||
if (!bussinessTypeEntity.isCheckPdaEd()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) {
|
||||
if (!bussinessTypeEntity.isCheckPdaUn()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) {
|
||||
if (!bussinessTypeEntity.isCheckPc()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) {
|
||||
if (!bussinessTypeEntity.isCheckChange()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) {
|
||||
if (!bussinessTypeEntity.isCheckBalance()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDISP) {
|
||||
if (!bussinessTypeEntity.isCheckSp()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) {
|
||||
if (!bussinessTypeEntity.isCheckCopy()) {
|
||||
unCheckFinish(orderEntity);
|
||||
return;
|
||||
}
|
||||
}
|
||||
checkFinish(orderEntity);
|
||||
}
|
||||
}
|
||||
|
||||
public void unCheckFinish(IoOrderEntity orderEntity) {
|
||||
|
||||
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
|
||||
|
||||
if (CollUtil.isEmpty(orderDetailCodeEntities)) {
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderEntity.setErrMsg("校验失败,扫码详情为空!");
|
||||
orderService.update(orderEntity);
|
||||
return;
|
||||
}
|
||||
orderDetailCodeEntities.forEach(orderDetailCodeEntity ->
|
||||
{
|
||||
//生成业务单据
|
||||
IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity();
|
||||
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity);
|
||||
orderDetailBizService.insert(orderDetailBizEntity);
|
||||
|
||||
|
||||
//生成单据结果
|
||||
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
|
||||
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity);
|
||||
orderDetailResultService.insert(orderDetailResultEntity);
|
||||
|
||||
});
|
||||
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderService.update(orderEntity);
|
||||
}
|
||||
|
||||
public void checkFinish(IoOrderEntity orderEntity) {
|
||||
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
|
||||
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo());
|
||||
|
||||
if (CollUtil.isEmpty(orderDetailCodeEntities)) {
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderEntity.setErrMsg("校验失败,扫码详情为空!");
|
||||
orderService.update(orderEntity);
|
||||
return;
|
||||
}
|
||||
|
||||
if (CollUtil.isEmpty(orderDetailBizEntities)) {
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderEntity.setErrMsg("校验失败,业务详情为空!");
|
||||
orderService.update(orderEntity);
|
||||
return;
|
||||
}
|
||||
String errMsg = "";
|
||||
//正向校验
|
||||
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
|
||||
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
|
||||
if (!bizEntity.isCheckSuccess() && !codeEntity.isCheckSuccess() && checkId(bizEntity, codeEntity) == null
|
||||
&& checkBatchNo(bizEntity, codeEntity) == null
|
||||
&& checkProductDate(bizEntity, codeEntity) == null
|
||||
&& checkExpireDate(bizEntity, codeEntity) == null
|
||||
) {
|
||||
|
||||
if (checkCount(bizEntity, codeEntity) == null) {
|
||||
bizEntity.setCheckSuccess(true);
|
||||
codeEntity.setCheckSuccess(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
|
||||
if (!bizEntity.isCheckSuccess()) {
|
||||
errMsg = errMsg + bizEntity.getCoName() + ";";
|
||||
}
|
||||
}
|
||||
|
||||
//反向校验
|
||||
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
|
||||
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
|
||||
if (!bizEntity.isCheckSuccess() && !codeEntity.isCheckSuccess() && checkId(bizEntity, codeEntity) == null
|
||||
&& checkBatchNo(bizEntity, codeEntity) == null
|
||||
&& checkProductDate(bizEntity, codeEntity) == null
|
||||
&& checkExpireDate(bizEntity, codeEntity) == null
|
||||
) {
|
||||
|
||||
if (checkCount(bizEntity, codeEntity) == null) {
|
||||
bizEntity.setCheckSuccess(true);
|
||||
codeEntity.setCheckSuccess(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
|
||||
if (!codeEntity.isCheckSuccess()) {
|
||||
errMsg = errMsg + codeEntity.getCoName() + ";";
|
||||
}
|
||||
}
|
||||
|
||||
if (StrUtil.isEmpty(errMsg)) {
|
||||
orderEntity.setErrMsg(errMsg + "校验失败");
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderService.update(orderEntity);
|
||||
} else {
|
||||
//生成单据结果
|
||||
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
|
||||
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
|
||||
BeanUtils.copyProperties(orderDetailBizEntity, orderDetailResultEntity);
|
||||
orderDetailResultService.insert(orderDetailResultEntity);
|
||||
}
|
||||
|
||||
//临时表转正式表
|
||||
List<IoCodeTempEntity> codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo());
|
||||
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
|
||||
IoCodeEnttity codeEnttity = new IoCodeEnttity();
|
||||
BeanUtils.copyProperties(codeTempEntity, codeEnttity);
|
||||
codeService.insert(codeEnttity);
|
||||
}
|
||||
codeTempService.deleteByBillNo(orderEntity.getBillNo());
|
||||
orderEntity.setErrMsg("校验成功!");
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS);
|
||||
orderEntity.setUpdateTime(new Date());
|
||||
orderService.update(orderEntity);
|
||||
}
|
||||
}
|
||||
|
||||
public String checkId(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) {
|
||||
|
||||
if (bizEntity.getBindRlFk() == codeEntity.getBindRlFk()) {
|
||||
return null;
|
||||
} else {
|
||||
return "产品ID不匹配";
|
||||
}
|
||||
}
|
||||
|
||||
public String checkBatchNo(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) {
|
||||
|
||||
if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) {
|
||||
return null;
|
||||
} else {
|
||||
return bizEntity.getCoName() + "批次号不匹配";
|
||||
}
|
||||
}
|
||||
|
||||
public String checkProductDate(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) {
|
||||
if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) {
|
||||
return null;
|
||||
} else {
|
||||
return bizEntity.getCoName() + "批次号不匹配";
|
||||
}
|
||||
}
|
||||
|
||||
public String checkExpireDate(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) {
|
||||
if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) {
|
||||
return null;
|
||||
} else {
|
||||
return bizEntity.getCoName() + "批次号不匹配";
|
||||
}
|
||||
}
|
||||
|
||||
public String checkCount(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) {
|
||||
if (bizEntity.getReCount() == codeEntity.getReCount()) {
|
||||
return null;
|
||||
}
|
||||
return bizEntity.getCoName() + "数量不匹配!";
|
||||
}
|
||||
}
|
@ -1,24 +1,30 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import com.glxp.api.entity.inout.IoCodeTempEntity;
|
||||
import com.glxp.api.entity.inout.IoCodeTempEntity;
|
||||
import com.glxp.api.req.inout.FilterIoCodeRequest;
|
||||
import com.glxp.api.util.page.PageQuery;
|
||||
import com.glxp.api.util.page.TableDataInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IoCodeTempService {
|
||||
|
||||
|
||||
IoCodeTempEntity selectById(Integer id);
|
||||
|
||||
int insert(IoCodeTempEntity codeEnttity);
|
||||
|
||||
int deleteById(Integer id);
|
||||
|
||||
boolean insertBatch(List<IoCodeTempEntity> codeEnttities);
|
||||
|
||||
int updateById(IoCodeTempEntity codeEnttity);
|
||||
|
||||
public IoCodeTempEntity findByUnique(String orderId, String code);
|
||||
IoCodeTempEntity findByUnique(String orderId, String code);
|
||||
|
||||
List<IoCodeTempEntity> findByOrderId(String billNo);
|
||||
|
||||
TableDataInfo<IoCodeTempEntity> findByOrderId(FilterIoCodeRequest filterIoCodeRequest);
|
||||
|
||||
|
||||
int deleteByBillNo(String orderId);
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class IoGenInvService {
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.glxp.api.service.inv;
|
||||
|
||||
public interface InvPreinOrderService {
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.glxp.api.service.inv;
|
||||
|
||||
public interface InvProductService {
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.glxp.api.service.inv.impl;
|
||||
|
||||
import com.glxp.api.service.inv.InvPreinOrderService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class InvPreinOrderServiceImpl implements InvPreinOrderService {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.glxp.api.service.inv.impl;
|
||||
|
||||
import com.glxp.api.service.inv.InvProductService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class InvProductServiceImpl implements InvProductService {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
<?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.inout.IoCodeDao">
|
||||
|
||||
<select id="filterCodeList" resultType="com.glxp.api.entity.inout.IoCodeEnttity">
|
||||
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue