Commit cc0589e4 by 赵剑炜

订单相关

parent 5756c6df
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class UpdateOrderReq {
private String Id;
private String examineState;
private String processType;
/**
* 状态
*/
@NotNull(message = "状态不能为空", groups = {ValidationApi.updateStatus.class})
private String orderType;
/**
* 单据类型:入库单/出库单
*/
private String processId;
/**
* 工作流ID
*/
private String bussinessType;
/**
* 单据业务类型
*/
private String orderCode;
/**
* 订单号
*/
private String startOrgId;
/**
* 发物单位
*/
private String startOrgName;
/**
* 发物单位名称
*/
private String endOrgId;
/**
* 收物单位
*/
private String endOrgName;
/**
* 发物单位负责人id
*/
private String startOrgUserId;
/**
* 发物单位负责人姓名
*/
private String startOrgUserName;
/**
* 收物单位负责人id
*/
private String endOrgUserId;
/**
* 收物单位负责人姓名
*/
private String endOrgUserName;
/**
* 总价格
*/
private String price;
/**
* 应入库数量
*/
private String inventoryQuantity;
/**
* 附件地址
*/
private String attachmentLocation;
/**
* 单据包含的物资集合
*/
private String invList;
/**
* 表单内容
*/
private String formItem;
// /**
// * 表单内容
// */
// private String detailList;
/**
* 组织机构列表
*/
private List<String> deleteList;
/**
* 组织机构列表
*/
private List<DetailList> detailList;
@Data
public class DetailList {
/**
* 类型
*/
private String Id;
/**
* 类型
*/
private String typeId;
/**
* 类型名称
*/
private String typeName;
/**
* 号型
*/
private String sizeId;
private String sizeName;
private String supplierId;
private String supplierName;
private String planNum;
private String price;
}
}
package com.junmp.jyzb.api.exception.enums;
import com.junmp.v2.common.constant.CommonConstant;
import com.junmp.v2.common.exception.IExceptionEnum;
import lombok.Getter;
@Getter
public enum OrderExceptionEnum implements IExceptionEnum {
ORDER_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"单据不存在"),
ERROR_COMMOAND(CommonConstant.DEFAULT_USER_ERROR_CODE,"操作有误,无法既删除又修改"),
ORDER_CAN_NOT_UPDATE(CommonConstant.DEFAULT_USER_ERROR_CODE,"进行中的单据无法修改");
/**
* 错误编码
*/
private final Integer code;
/**
* 提示用户信息
*/
private final String message;
OrderExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.query.ProductSkuReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.service.OrderService;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -23,11 +29,23 @@ public class OrderController {
@PostMapping("/AddOrder")
@ApiOperation("新增任务单")
public ResponseResult addOrder(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = orderService.addOrder(msg);
return null;
public ApiRes<String> addOrder(@RequestBody UpdateOrderReq req) {
if (ObjectUtil.isNotEmpty(req.getProcessId()))
{
req.setExamineState("none");
}
else
{
req.setExamineState("working");
}
return ApiRes.success(orderService.AddOrder(req));
}
@PostMapping("/AddFinishOrder")
@ApiOperation("新增已完成的任务单")
public ApiRes<String> AddFinishOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateOrderReq req) {
req.setExamineState("finished");
return ApiRes.success(orderService.AddOrder(req));
}
@PostMapping("/ShowOrder")
@ApiOperation("查询任务列表")
public ResponseResult showOrder(@RequestBody Map<String,Object> msg) {
......@@ -37,9 +55,8 @@ public class OrderController {
@PostMapping("/UpdateOrder")
@ApiOperation("修改任务单")
public ResponseResult updateOrder(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg =orderService.updateOrder(msg);
return null;
public ApiRes<Boolean> updateOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateOrderReq req) {
return ApiRes.success(orderService.updateOrder(req));
}
@PostMapping("/GetOrderDetail")
......
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("bussiness_order_detail")
public class OrderDetail implements Serializable {
@TableField("id")
private Long id;
@TableField("order_id")
private String orderId;
@TableField("type")
private String type;
@TableField("equipment_type")
private String equipmentType;
@TableField("equipment_type_name")
private String equipmentTypeName;
@TableField("equipment_size")
private Long equipmentSize;
@TableField("equipment_size_name")
private String equipmentSizeName;
@TableField("equipment_supplier")
private Long equipment_supplier;
@TableField("equipment_supplier_name")
private String equipmentSupplierName;
@TableField("plan_num")
private String planNum;
@TableField("actual_num")
private String actualNum;
@TableField("price")
private String price;
@TableField("order_type")
private String orderType;
/**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime;
@TableField("create_user")
private String createUser;
@TableField("update_user")
private String updateUser;
}
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -8,6 +9,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.xml.soap.Text;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -19,13 +21,16 @@ import java.util.Date;
@TableName("bussiness_order_main")
public class OrderMain implements Serializable {
@TableField("id")
private Long id;
private String id;
@TableField("order_type")
private String orderType;
@TableField("process_id")
private String processId;
@TableField("examine_state")
private String examineState;
@TableField("bussiness_type")
private String bussinessType;
......@@ -78,10 +83,20 @@ public class OrderMain implements Serializable {
@TableField("inv_list")
private String invList;
@TableField("create_time")
@TableField("form_item")
private String formItem;
@TableField("order_detail")
private Text orderDetail;
/**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField("update_time")
/**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime;
@TableField("create_user")
......
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.entity.OrderDetail;
import com.junmp.jyzb.entity.Product;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OrderDetailMapper extends BaseMapper<OrderDetail> {
}
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.entity.Product;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
public interface OrderMainMapper {
public interface OrderMainMapper extends BaseMapper<OrderMain> {
Long addOrder(OrderMain order);
List<Map<String, Object>> showOrder(String orgId);
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.entity.EquipmentType;
import com.junmp.jyzb.entity.OrderDetail;
import java.util.List;
public interface OrderDetailService extends IService<OrderDetail> {
List<OrderDetail> QueryList(String orderId);
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.entity.OrderDetail;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.Map;
public interface OrderService {
ResponseResult addOrder(Map<String, Object> msg);
public interface OrderService extends IService<OrderMain> {
String AddOrder(UpdateOrderReq req);
ResponseResult showOrder(Map<String, Object> msg);
ResponseResult updateOrder(Map<String, Object> msg);
Boolean updateOrder(UpdateOrderReq req);
ResponseResult getOrderDetail(Map<String, Object> msg);
}
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.query.QueryEquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.OrderDetailMapper;
import com.junmp.jyzb.mapper.OrderMainMapper;
import com.junmp.jyzb.service.OrderDetailService;
import com.junmp.jyzb.service.OrderService;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import java.util.List;
public class OrderDetailServiceImpl extends ServiceImpl<OrderDetailMapper, OrderDetail> implements OrderDetailService {
public List<OrderDetail> QueryList(String orderId) {
LambdaQueryWrapper<OrderDetail> wrapper = new LambdaQueryWrapper<>();
//根据主单据查询
wrapper.eq(ObjectUtil.isNotEmpty(orderId), OrderDetail::getOrderId, orderId);
return this.list(wrapper);
}
}
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.entity.OrderMain;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.OrderMainMapper;
import com.junmp.jyzb.service.OrderDetailService;
import com.junmp.jyzb.service.OrderService;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
@Service
public class OrderServiceImpl implements OrderService {
public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> implements OrderService {
@Resource
private OrderMainMapper orderMapper;
private OrderDetailService orderDetailService;
@Resource
private OrderMainMapper orderMapper;
@Transactional
@Override
public ResponseResult addOrder(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("orderType"), "orderType不能为空");
checkNotBlank(msg.get("processId"), "processId不能为空");
checkNotBlank(msg.get("bussinessType"), "bussinessType不能为空");
checkNotBlank(msg.get("orderCode"), "orderCode不能为空");
checkNotBlank(msg.get("orgId"), "orgId不能为空");
checkNotBlank(msg.get("inventoryQuantity"), "inventoryQuantity不能为空");
checkNotBlank(msg.get("manualState"), "manualState不能为空");
checkNotBlank(msg.get("orderState"), "orderState不能为空");
checkNotBlank(msg.get("attachmentLocation"), "attachmentLocation不能为空");
checkNotBlank(msg.get("invList"), "invList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
public String AddOrder(UpdateOrderReq req) {
OrderMain order = new OrderMain();
//生成当前时间
Date currentDate = DateTimeUtil.getCurrentDateTime();
order.setCreateTime(currentDate);
order.setUpdateTime(currentDate);
order.setOrderType((String) msg.get("orderType"));
order.setProcessId((String) msg.get("processId"));
order.setBussinessType((String) msg.get("bussinessType"));
order.setOrderCode((String) msg.get("orderCode"));
order.setInventoryQuantity((Integer) msg.get("inventoryQuantity"));
order.setManualState((Integer) msg.get("manualState"));
order.setOrderState((Integer) msg.get("orderState"));
order.setAttachmentLocation((String) msg.get("attachmentLocation"));
order.setInvList((String) msg.get("invList"));
Long id = orderMapper.addOrder(order);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,id);
String orderId=UUID.randomUUID().toString();
BeanPlusUtil.copyProperties(req, order);
order.setId(orderId);
List<OrderDetail> detailList = new ArrayList<>();
req.getDetailList().forEach(p->
{
OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(p, detail);
detail.setOrderId(orderId);
detailList.add(detail);
});
orderDetailService.saveBatch(detailList);
this.save(order);
return orderId;
}
@Override
......@@ -73,46 +66,61 @@ public class OrderServiceImpl implements OrderService {
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,allMsg);
}
@Transactional
@Override
public ResponseResult updateOrder(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
checkNotBlank(msg.get("orderType"), "orderType不能为空");
checkNotBlank(msg.get("processId"), "processId不能为空");
checkNotBlank(msg.get("bussinessType"), "bussinessType不能为空");
checkNotBlank(msg.get("orderCode"), "orderCode不能为空");
checkNotBlank(msg.get("orgId"), "orgId不能为空");
checkNotBlank(msg.get("inventoryQuantity"), "inventoryQuantity不能为空");
checkNotBlank(msg.get("manualState"), "manualState不能为空");
checkNotBlank(msg.get("orderState"), "orderState不能为空");
checkNotBlank(msg.get("attachmentLocation"), "attachmentLocation不能为空");
checkNotBlank(msg.get("invList"), "invList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
public Boolean updateOrder(UpdateOrderReq req) {
OrderMain order = this.query(req);
if (!order.getExamineState().equals("none"))
{
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
List<OrderDetail> updateList= orderDetailService.QueryList(order.getId());
List<String> updateCheckList=new ArrayList<>();
List<OrderDetail> addList = new ArrayList<>();
req.getDetailList().forEach(detail -> {
updateCheckList.add(detail.getId()); // 将id转换为String并添加到updateList中
});
boolean checkResult = this.hasCommonElements(updateCheckList,req.getDeleteList());
if (req.getDeleteList().size()>0)
{
orderDetailService.removeBatchByIds(req.getDeleteList());
}
req.getDetailList().forEach(p->
{
if (p.getId()!=null)//修改
{
updateList.forEach(detail->
{
if (detail.getId().equals(p.getId()))
{
BeanPlusUtil.copyProperties(p, detail);
}
});
OrderMain order = new OrderMain();
//生成当前时间
order.setId((Long) msg.get("id"));
Date currentDate = DateTimeUtil.getCurrentDateTime();
order.setUpdateTime(currentDate);
order.setOrderType((String) msg.get("orderType"));
order.setProcessId((String) msg.get("processId"));
order.setBussinessType((String) msg.get("bussinessType"));
order.setOrderCode((String) msg.get("orderCode"));
order.setInventoryQuantity((Integer) msg.get("inventoryQuantity"));
order.setManualState((Integer) msg.get("manualState"));
order.setOrderState((Integer) msg.get("orderState"));
order.setAttachmentLocation((String) msg.get("attachmentLocation"));
order.setInvList((String) msg.get("invList"));
orderMapper.updateOrder(order);
}
else//新增
{
OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(p, detail);
detail.setOrderId(order.getId());
addList.add(detail);
}
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
});
orderDetailService.updateBatchById(updateList);
orderDetailService.saveBatch(addList);
this.save(order);
return true;
}
public boolean hasCommonElements(List<?> list1, List<?> list2) {
for (Object item1 : list1) {
if (list2.contains(item1)) {
return true; // 找到相同值
}
}
return false; // 没有相同值
}
@Override
......@@ -128,4 +136,14 @@ public class OrderServiceImpl implements OrderService {
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,oneMsg);
}
private OrderMain query(UpdateOrderReq req) {
OrderMain order = this.getById(req.getId());
if (ObjectUtil.isNull(order)) {
throw new ServiceException(OrderExceptionEnum.ORDER_NOT_EXIST);
}
return order;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论