Commit 354a109e by 赵剑炜

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-zhaojw

parents 9acefb35 28d569e1
......@@ -133,6 +133,7 @@ public class InventoryDto implements Serializable {
//是否过期
private int TermState;
private String photo;
}
......@@ -47,4 +47,6 @@ public class OrderMainDto implements Serializable {
private String note;
private Date createTime;
}
......@@ -40,6 +40,7 @@ public class PolicemanDto {
private Boolean isCreatedAccount;
//指纹信息列表
private List<PoliceFingerDto> fingersList;
private String fileContent;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class TypeTreeDto {
private String id;
private String name;
private String unit;
private String unitType;
private String parentId;
private String code;
private Integer state;
private Integer type;
private String warrantyPeriod;
private String maintenancePeriod;
private Boolean isLeaf;
private List<TypeTreeDto> children = new ArrayList<>();
}
......@@ -55,11 +55,11 @@ public class OrderMainReq extends BaseRequest {
private String attachmentLocation;
private String invList;
/**
* 组织机构id
*/
@NotNull(message = "组织机构不能为空",groups = {edit.class, add.class})
private Long orgId;
// /**
// * 组织机构id
// */
// @NotNull(message = "组织机构不能为空",groups = {edit.class, add.class})
// private Long orgId;
/**
* 创建时间
......@@ -78,4 +78,6 @@ public class OrderMainReq extends BaseRequest {
private String startTime;
//结束时间
private String endTime;
private String typeId;
}
package com.junmp.jyzb.api.bean.req;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class BaseOrderItemReq extends BaseRequest {
/**
* 子单据id
*/
private Long id;
/**
* 主单据id
*/
private String orderId;
/**
* 装备号型id
*/
private String sizeId;
/**
* 号型名称
*/
private String sizeName;
/**
* 类型id
*/
private String typeId;
/**
* 类型名称
*/
private String typeName;
/**
* 供应商id
*/
private String supplierId;
/**
* 供应商名称
*/
private String supplierName;
/**
* 价格
*/
private BigDecimal price;
/**
* 数量
*/
private Integer num;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新人员
*/
private String updateUser;
}
package com.junmp.jyzb.api.bean.req;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class BaseOrderReq extends BaseRequest {
/**
* 单子id
*/
@NotBlank(message = "id不能为空",groups = {edit.class})
private String id;
/**
* 工作流id
*/
private String processId;
/**
* 单据类型(个人装备的移交handOver,报废broken,维修fix)
*/
private String bussinessType;
/**
* 申请时间
*/
private Date applyTime;
/**
* 申请人
*/
private String applicantId;
/**
* 接收人
*/
private String recipientId;
/**
* 申请理由
*/
private String applyReason;
/**
* 仓库id
*/
private String locationId;
/**
* 总数量
*/
private Integer totalNum;
/**
* 总价格
*/
private BigDecimal price;
/**
* 审核状态:none,未接入审核流,working审批中,finished
*/
private String examineState;
/**
* 申请人组织机构id
*/
private Long orgId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新人员
*/
private String updateUser;
/**
* 子单据
*/
private List<BaseOrderItemReq> orderItemList;
/**
* 删除装备列表
*/
private List<Long> deleteList;
}
......@@ -10,7 +10,7 @@ public class DetailListReq implements Serializable {
/**
* 类型
*/
private String Id;
private Long id;
/**
* 单据类型,out出库,in入库
*/
......
......@@ -32,6 +32,7 @@ public class UpdateEquipmentTypeReq {
private int maintenancePeriod;
private int type;
private String photo;
private List<String> supplierList;
}
......@@ -99,7 +99,7 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
/**
* 删除装备列表
*/
private List<String> deleteList;
private List<Long> deleteList;
/**
* 明细列表
*/
......
......@@ -58,5 +58,7 @@ public class UpdatePolicemanReq extends BaseRequest {
@NotNull(message = "状态不能为空", groups = {updateStatus.class})
private Integer state;
private String fileContent;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.TypeTreeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
......@@ -82,6 +83,13 @@ public class EquipmentTypeController {
return returnMsg;
}
//返回整棵物资树
@PostMapping("/GetTypeTree")
@ApiOperation("/获取整棵物资树")
public ApiRes<List<TypeTreeDto>> GetTypeTree(){
return ApiRes.success(equipmentTypeService.GetTypeTree());
}
}
......@@ -5,8 +5,10 @@ import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.api.bean.dto.OrderMainDto;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.query.OrderUploadReq;
import com.junmp.jyzb.api.bean.req.BaseOrderReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.service.OrderMainService;
import com.junmp.jyzb.service.OrderService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
......@@ -30,6 +32,9 @@ public class OrderController {
@Resource
public OrderMainService orderMainService;
@Resource
public OrderService orderService;
//通过工作流进行操作处理的
@PostMapping("/AddOrder")
@ApiOperation("新增任务单")
......@@ -46,11 +51,6 @@ public class OrderController {
return ApiRes.success(orderMainService.AddOrder(req));
}
//装备移交
// @PostMapping("/EquipmentHandover")
// @ApiOperation("/装备移交")
// public ApiRes<String>
//内部处理,任务单状态直接设置成finished 添加到数据并且直接推送到消息队列中去
......@@ -112,4 +112,27 @@ public class OrderController {
//个人装备管理申请单(移交申请,维修,报废申请等)
@PostMapping("/AddPersonalEqsOrder")
@ApiOperation("/新增个人装备申请单")
public ApiRes<List<String>> AddPersonalEqsOrder(@RequestBody BaseOrderReq req){
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessId()))
{
req.setExamineState("none");
}
else
{
req.setExamineState("working");
}
return ApiRes.success(orderService.EquipmentHandover(req));
}
//个人装备管理申请单的修改()
@PostMapping("/UpdatePersonalEqsOrder")
@ApiOperation("修改个人装备申请单")
public ApiRes<Boolean> UpdatePersonalEqsOrder(@RequestBody BaseOrderReq req) {
return ApiRes.success(orderService.UpdatePersonalEqsOrder(req));
}
}
......@@ -28,5 +28,7 @@ public class ToOutController {
return ApiRes.success(policeEquipmentService.AddBorrowEqs(req));
}
//警员领用装备后在数据库中增加相关领用装备数据
// @PostMapping("/AddTakeEqs")
// @ApiOperation("增加警员领用装备数据信息")
}
......@@ -113,5 +113,8 @@ public class EquipmentType implements Serializable {
@ApiModelProperty(value = "物资阈值")
private Integer threshold;
private String photo;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* @TableName bussiness_order
* @TableName base_order
*/
@TableName(value ="bussiness_order")
@TableName(value ="base_order")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order implements Serializable {
/**
* 单子id
*/
@TableId(value = "id",type = IdType.ASSIGN_UUID)
private String id;
/**
* 号型id
* 工作流id
*/
@TableField("size_id")
private String sizeId;
@TableField("process_id")
private String processId;
/**
* 号型名称
* 单据类型(个人装备的移交handOver,报废broken,维修fix)
*/
@TableField("size_name")
private String sizeName;
/**
* 类别id
*/
@TableField("type_id")
private String typeId;
/**
* 类别名称
*/
@TableField("size_name")
private String typeName;
@TableField("bussiness_type")
private String bussinessType;
/**
* 申请时间
......@@ -81,21 +63,38 @@ public class Order implements Serializable {
private String locationId;
/**
* 总数量
*/
@TableField("total_num")
private Integer totalNum;
/**
* 总价格
*/
private BigDecimal price;
/**
* 审核状态:none,未接入审核流,working审批中,finished
*/
@TableField("examine_state")
private String examineState;
/**
* 申请人组织机构id
*/
@TableField("org_id")
private Long orgId;
/**
* 创时间
* 创时间
*/
@TableField("create_time")
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新时间
*/
@TableField("update_time")
@TableField(value = "update_time",fill = FieldFill.UPDATE)
private Date updateTime;
/**
......@@ -110,7 +109,6 @@ public class Order implements Serializable {
@TableField("update_user")
private String updateUser;
private static final long serialVersionUID = 1L;
......
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName base_order_items
*/
@TableName(value ="base_order_items")
@Data
public class OrderItems implements Serializable {
/**
* 子单据id
*/
private Long id;
/**
* 主单据id
*/
@TableField("order_id")
private String orderId;
/**
* 装备号型id
*/
@TableField("size_id")
private String sizeId;
/**
* 号型名称
*/
@TableField("size_name")
private String sizeName;
/**
* 类型id
*/
@TableField("type_id")
private String typeId;
/**
* 类型名称
*/
@TableField("type_name")
private String typeName;
/**
* 供应商id
*/
@TableField("supplier_id")
private String supplierId;
/**
* 供应商名称
*/
@TableField("supplier_name")
private String supplierName;
/**
* 价格
*/
private BigDecimal price;
/**
* 数量
*/
private Integer num;
/**
* 创建时间
*/
@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;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -56,7 +56,7 @@ public class Policeman implements Serializable {
@TableField(value = "photo")
private String photo;
@TableField(value = "phone")
@TableField(value = "phone",updateStrategy = FieldStrategy.IGNORED)
private String phone;
@TableField(fill = FieldFill.INSERT, value = "create_time")
......@@ -77,5 +77,8 @@ public class Policeman implements Serializable {
@TableField(value = "user_id",updateStrategy = FieldStrategy.IGNORED)
private Long UserId;
@TableField(value = "file_content")
private String fileContent;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.OrderItems;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【base_order_items】的数据库操作Mapper
* @createDate 2023-09-12 12:53:49
* @Entity com.junmp.jyzb.entity.OrderItems
*/
public interface OrderItemsMapper extends BaseMapper<OrderItems> {
}
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.entity.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -16,4 +21,12 @@ public interface OrderMainMapper extends BaseMapper<OrderMain> {
void updateOrder(OrderMain order);
IPage<OrderMain> getOrderPage(Page<OrderMain> page1, @Param("bussinessType")String bussinessType ,
@Param("startOrgId") Long startOrgId, @Param("endOrgId") Long endOrgId,
@Param("orderState") String orderState , @Param("examineState") String examineState,
@Param("startTime") String startTime, @Param("endTime") String endTime,
@Param("typeId") String typeId, @Param("orderType") String orderType);
IPage<OrderMain> getOrderPage(Page<OrderMain> page1,OrderMainReq req);
}
\ No newline at end of file
......@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_order】的数据库操作Mapper
* @createDate 2023-09-08 16:28:58
* @description 针对表【base_order】的数据库操作Mapper
* @createDate 2023-09-12 12:53:49
* @Entity com.junmp.jyzb.entity.Order
*/
public interface OrderMapper extends BaseMapper<Order> {
......
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.TypeTreeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
import com.junmp.jyzb.entity.EquipmentType;
......@@ -30,4 +31,5 @@ public interface EquipmentTypeService extends IService<EquipmentType> {
ResponseResult setTypeParentIds();
List<TypeTreeDto> GetTypeTree();
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.entity.OrderItems;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author lxh专属坐骑
* @description 针对表【base_order_items】的数据库操作Service
* @createDate 2023-09-12 12:53:49
*/
public interface OrderItemsService extends IService<OrderItems> {
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.req.BaseOrderReq;
import com.junmp.jyzb.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【base_order】的数据库操作Service
* @createDate 2023-09-08 16:28:58
* @createDate 2023-09-12 12:53:49
*/
public interface OrderService extends IService<Order> {
//个人装备管理申请单(移交申请,维修,报废申请等)
List<String> EquipmentHandover(BaseOrderReq req);
//个人装备管理申请单的修改
boolean UpdatePersonalEqsOrder(BaseOrderReq req);
}
......@@ -9,6 +9,7 @@ import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
import com.junmp.jyzb.entity.Application;
import com.junmp.jyzb.service.ApplicationService;
import com.junmp.jyzb.mapper.ApplicationMapper;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
......@@ -40,7 +41,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
BeanPlusUtil.copyProperties(req,application);
//判断id是否传递,如果传递则默认他是修改,根据数据库对比id,判断是否id传递错误;如果不传递默认新增
if (req.getId()==null || req.getId().trim().isEmpty()){
application.setCreateTime(DateTimeUtil.getCurrentDateTime());
save(application);
return application.getId();
}else {
......@@ -48,6 +49,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
if (ObjectUtil.isNull(app)){
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
application.setUpdateTime(DateTimeUtil.getCurrentDateTime());
updateById(application);
return application.getId();
}
......
......@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.TypeTreeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
......@@ -273,6 +274,45 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
//获取type整棵树
@Override
public List<TypeTreeDto> GetTypeTree() {
//创建一个list存放整棵树
//获取第一层数据
List<EquipmentType> list = list(new LambdaQueryWrapper<EquipmentType>()
.eq(EquipmentType::getParentId, "00000000-0000-0000-0000-000000000000")
.ne(EquipmentType::getId,"00000000-0000-0000-0000-000000000000"));
//遍历第一层数据
List<TypeTreeDto> collect = list.stream().map(equipmentType -> {
TypeTreeDto typeTreeDto = new TypeTreeDto();
BeanPlusUtil.copyProperties(equipmentType, typeTreeDto);
typeTreeDto.setIsLeaf(false);
//遍历第二层数据
List<TypeTreeDto> collect1 = queryChildren(typeTreeDto.getId()).stream().map(equipmentType1 -> {
TypeTreeDto typeTreeDto1 = new TypeTreeDto();
BeanPlusUtil.copyProperties(equipmentType1, typeTreeDto1);
typeTreeDto1.setIsLeaf(false);
//遍历第三层数据
List<TypeTreeDto> collect2 = queryChildren(typeTreeDto1.getId()).stream().map(equipmentType2 -> {
TypeTreeDto typeTreeDto2 = new TypeTreeDto();
BeanPlusUtil.copyProperties(equipmentType2, typeTreeDto2);
typeTreeDto2.setIsLeaf(true);
return typeTreeDto2;
}).collect(Collectors.toList());
typeTreeDto1.setChildren(collect2);
return typeTreeDto1;
}).collect(Collectors.toList());
typeTreeDto.setChildren(collect1);
return typeTreeDto;
}).collect(Collectors.toList());
return collect;
}
private List<EquipmentType> queryChildren(String parentId){
return list(new LambdaQueryWrapper<EquipmentType>().eq(EquipmentType::getParentId,parentId));
}
private LambdaQueryWrapper<EquipmentType> createWrapper(QueryEquipmentTypeReq req) {
LambdaQueryWrapper<EquipmentType> wrapper = new LambdaQueryWrapper<>();
......
......@@ -340,6 +340,9 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
String orgName = pubOrgService.getOne(new LambdaQueryWrapper<PubOrg>().eq(PubOrg::getOrgId, inventory.getOrgId())).getOrgName();
inventoryDto.setOrgName(orgName);
//查询图片并返回
String photo = equipmentTypeService.getById(inventory.getTypeId()).getPhoto();
inventoryDto.setPhoto(photo);
return inventoryDto;
}).collect(Collectors.toList());
Page<InventoryDto> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
......@@ -369,7 +372,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
warehouseService.WarehoustExist(shelf.getWarehouseId());
Page<InventorySummary> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
IPage<InventorySummary> pages = inventoryMapper.ShelfInventoryPage(page,req.getShelfId());
pages.setRecords(pages.getRecords());
page.setRecords(pages.getRecords());
return PageResultFactory.createPageResult(page);
}
......@@ -502,7 +505,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//获取装备的出入库信息
@Override
public List<InOutRecordsDto> getInOutRecords(InventoryReq req) {
//通过装备id获取出入库记录(判断id是否存在
//通过装备id获取出入库记录(判断id是否存在)
InventoryExist(req.getId());
List<LogDetail> list = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getInventoryId, req.getId()));
......
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.OrderItems;
import com.junmp.jyzb.service.OrderItemsService;
import com.junmp.jyzb.mapper.OrderItemsMapper;
import org.springframework.stereotype.Service;
/**
* @author lxh专属坐骑
* @description 针对表【base_order_items】的数据库操作Service实现
* @createDate 2023-09-12 12:53:49
*/
@Service
public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderItems>
implements OrderItemsService{
}
......@@ -31,8 +31,6 @@ public class OrderLogServiceImpl extends ServiceImpl<OrderLogMapper, OrderLog>
@Override
public List<OrderLog> getLogsList(OrderMainReq req) {
//判断组织机构id是否传递,如果传递判断是否存在,否则抛出异常
pubOrgService.PubOrgExist(req.getOrgId());
//判断orderType业务是入库还是出库,根据出入库的不同,查询的单据也不同
if (req.getOrderType().equals("in")){
// list(new LambdaQueryWrapper<OrderLog>()
......
......@@ -2,6 +2,7 @@ package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.OrderDetailDto;
......@@ -34,6 +35,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -55,6 +58,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Resource
private PubOrgService pubOrgService;
@Resource
private OrderMainMapper orderMainMapper;
//新增任务单
......@@ -68,6 +74,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//设置单据单号(订单号)
OrderNum orderNum = setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
order.setOrderCode(orderNum.getBussinessType()+"-"+orderNum.getOutInType()+"-"+orderNum.getYear()+"-"+codeValue);
//设置总价格和应出入库数量
//设置id
......@@ -178,7 +185,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//更新任务单(进入工作流中之后不能进行更改)
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean updateOrder(UpdateOrderReq req) {
public Boolean updateOrder(UpdateOrderReq req) {
OrderMain order = orderMainExist(req.getId());
if (!order.getExamineState().equals("none"))
{
......@@ -186,15 +193,15 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
List<OrderDetail> list= orderDetailService.QueryList(req.getId());
//idSet中存放的是存在数据库中的任务单中的orderDetail中的id(原始的工作单中的数据id)
Set<String> idSet =new HashSet<>();
Set<Long> idSet =new HashSet<>();
for (OrderDetail orderDetail:list){
idSet.add(Long.toString(orderDetail.getId()));
idSet.add(orderDetail.getId());
}
//将该任务单的所有id转换为String,并添加到updateList中,用来判断删除或者修改新增的是否存在
//判断删除列表是否为空,如果不为空则进行批量删除
if (ObjectUtil.isNotNull(req.getDeleteList())&& ObjectUtil.isNotEmpty(req.getDeleteList())) {
//判断传递的list Id是否存在,如果不存在则抛出异常
for (String s:req.getDeleteList()){
for (Long s:req.getDeleteList()){
if (idSet.contains(s)){
//将要删除的装备价格和数据进行查询出来,并别对任务单的总数量和总价格进行更改
OrderDetail one = orderDetailService.getOne(new LambdaQueryWrapper<OrderDetail>()
......@@ -227,7 +234,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
updateList.add(one);
}else {
//否则判断id是否为空或者错误,如果为空则添加,不为空则抛出异常
if (ObjectUtil.isNull(detailListReq.getId()) || detailListReq.getId().equals("") || ObjectUtil.isEmpty(detailListReq.getId())){
if (ObjectUtil.isNull(detailListReq.getId()) || ObjectUtil.isEmpty(detailListReq.getId())){
OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(detailListReq, detail);
detail.setOrderId(req.getId());
......@@ -260,35 +267,45 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//查询任务列表(根据组织机构id)
@Override
public PageResult<OrderMainDto> getOrderPage(OrderMainReq req) {
//判断组织机构是否存在
pubOrgService.PubOrgExist(req.getOrgId());
//判断是出库单还是入库单,选择的查询条件也不相同
Page<OrderMain> page=new Page<>();
Page<OrderMain> page = new Page<>();
LambdaQueryWrapper<OrderMain> wrapper = createWrapper(req);
if (req.getOrderType() != null && req.getOrderType().equals("in")){//入库单
LambdaQueryWrapper<OrderMain> eq = wrapper.eq(OrderMain::getOrderType, req.getOrderType())
.eq(OrderMain::getEndOrgId, req.getOrgId())
// .eq()
// .eq()
// .eq()
.orderByDesc(OrderMain::getCreateTime);
page=this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),eq);
//如果typeId为空,直接查主单据(不用根据子单据查询)
if (req.getTypeId()==null || req.getTypeId().trim().isEmpty()){
LambdaQueryWrapper<OrderMain> eq = wrapper.eq(OrderMain::getEndOrgId, req.getEndOrgId());
long size = list(wrapper).size();
page=this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),eq);
page.setTotal(size);
}else{//根据子单据向上查出主单据并返回
Page<OrderMain> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
IPage<OrderMain> inOrderPage = orderMainMapper.getOrderPage(page1,req.getBussinessType(),req.getStartOrgId(),req.getEndOrgId(),req.getOrderState(),req.getExamineState(),req.getStartTime(),req.getEndTime(),req.getTypeId(),req.getOrderType());
page.setRecords(inOrderPage.getRecords());
page.setTotal(inOrderPage.getTotal());
}
}
if (req.getOrderType() != null && req.getOrderType().equals("out")) {//出库单
LambdaQueryWrapper<OrderMain> eq = wrapper.eq(OrderMain::getOrderType, req.getOrderType()).eq(OrderMain::getStartOrgId, req.getOrgId());
page=this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),eq);
//typeId为空,直接查询主单据
if (req.getTypeId()==null || req.getTypeId().trim().isEmpty()){
LambdaQueryWrapper<OrderMain> eq = wrapper.eq(OrderMain::getStartOrgId, req.getStartOrgId());
long size = list(wrapper).size();
page=this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),eq);
page.setTotal(size);
}else {//根据子单据向上查出主单据并返回
Page<OrderMain> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
IPage<OrderMain> outOrderPage = orderMainMapper.getOrderPage(page1,req.getBussinessType(),req.getStartOrgId(),req.getEndOrgId(),req.getOrderState(),req.getExamineState(),req.getStartTime(),req.getEndTime(),req.getTypeId(),req.getOrderType());
page.setRecords(outOrderPage.getRecords());
page.setTotal(outOrderPage.getTotal());
}
}
List<OrderMainDto> orderMainDtoList=new ArrayList<>();
//遍历page,(如果出入库的组织机构为同一个的时候需要进行去重处理,不然会存在两条重复的数据)
for (OrderMain orderMain : page.getRecords()){
List<OrderMainDto> orderMainDtoList = page.getRecords().stream().map(orderMain -> {
OrderMainDto orderMainDto = new OrderMainDto();
BeanPlusUtil.copyProperties(orderMain,orderMainDto);
if (!orderMainDtoList.contains(orderMainDto)){
orderMainDtoList.add(orderMainDto);
}
}
return orderMainDto;
}).collect(Collectors.toList());
Page<OrderMainDto> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
page1.setTotal(orderMainDtoList.size());
page1.setTotal(page.getTotal());
page1.setRecords(orderMainDtoList);
return PageResultFactory.createPageResult(page1);
}
......@@ -478,8 +495,29 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
wrapper.eq(ObjectUtil.isNotEmpty(req.getOrderState()), OrderMain::getOrderState, req.getOrderState());
//审核状态:none,未接入审核流,working审批中,finished已完成
wrapper.eq(ObjectUtil.isNotEmpty(req.getExamineState()), OrderMain::getExamineState, req.getExamineState());
//业务类型
wrapper.eq(ObjectUtil.isNotEmpty(req.getBussinessType()), OrderMain::getBussinessType, req.getBussinessType());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//查询出指定时间内的单据
// wrapper.ge(ObjectUtil.isNotEmpty(req.getStartTime()),OrderMain::getCreateTime,)
String startTime="";
String endTime="";
if (req.getStartTime()!=null && !req.getStartTime().trim().isEmpty()){
startTime=req.getStartTime()+" 00:00:00";
try {
wrapper.ge(OrderMain::getCreateTime,dateFormat.parse(startTime));
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
if (req.getEndTime()!=null && !req.getEndTime().trim().isEmpty()){
endTime=req.getEndTime()+" 23:59:59";
try {
wrapper.le(OrderMain::getCreateTime,dateFormat.parse(endTime));
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
//时间降序
wrapper.orderByDesc(OrderMain::getCreateTime);
return wrapper;
......
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.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.req.BaseOrderItemReq;
import com.junmp.jyzb.api.bean.req.BaseOrderReq;
import com.junmp.jyzb.api.bean.req.DetailListReq;
import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.entity.Order;
import com.junmp.jyzb.entity.OrderDetail;
import com.junmp.jyzb.entity.OrderItems;
import com.junmp.jyzb.service.OrderItemsService;
import com.junmp.jyzb.service.OrderService;
import com.junmp.jyzb.mapper.OrderMapper;
import com.junmp.jyzb.utils.DateTimeUtil;
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.math.BigDecimal;
import java.util.*;
/**
* @author lxh专属坐骑
* @description 针对表【base_order】的数据库操作Service实现
* @createDate 2023-09-08 16:28:58
* @createDate 2023-09-12 12:53:49
*/
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order>
implements OrderService{
@Resource
private OrderItemsService orderItemsService;
//装备移交申请
@Override
public List<String> EquipmentHandover(BaseOrderReq req) {
//存放主单据和子单据id
List<String> list=new ArrayList<>();
//添加单据存储到数据库
Order order = new Order();
BeanPlusUtil.copyProperties(req,order);
//设置总价格和应出入库数量
//设置id
String id= UUID.randomUUID().toString();
order.setId(id);
Integer sumNum=0;
BigDecimal priceTotal=new BigDecimal(0);
List<OrderItems> itemsList=new ArrayList<>();
//通过遍历批量保存详细信息
for (BaseOrderItemReq listReq:req.getOrderItemList()) {
OrderItems orderItems = new OrderItems();
BeanPlusUtil.copyProperties(listReq, orderItems);
orderItems.setOrderId(order.getId());
//将数量和价格进行累加
sumNum += orderItems.getNum();
priceTotal = priceTotal.add(BigDecimal.valueOf(orderItems.getNum()).multiply(orderItems.getPrice())) ;
orderItems.setCreateTime(DateTimeUtil.getCurrentDateTime());
itemsList.add(orderItems);
}
orderItemsService.saveBatch(itemsList);
//设置总价格和总数量
order.setPrice(priceTotal);
order.setTotalNum(sumNum);
order.setCreateTime(DateTimeUtil.getCurrentDateTime());
//保存
this.save(order);
list.add(order.getId());
for (OrderItems orderItems:itemsList) {
list.add(Long.toString(orderItems.getId()));
}
return list;
}
//个人装备管理申请单的修改
@Override
@Transactional(rollbackFor = Exception.class)
public boolean UpdatePersonalEqsOrder(BaseOrderReq req) {
Order order = getById(req.getId());
if (!req.getExamineState().equals("none"))
{
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
.eq(OrderItems::getOrderId, req.getId()));
//idSet中存放的是存在数据库中的子单据中的id(原始的工作单中的数据id)
Set<Long> idSet =new HashSet<>();
for (OrderItems orderItems:list){
idSet.add(orderItems.getId());
}
//将该任务单的所有id转换为String,并添加到updateList中,用来判断删除或者修改新增的是否存在
//判断删除列表是否为空,如果不为空则进行批量删除
if (ObjectUtil.isNotNull(req.getDeleteList())&& ObjectUtil.isNotEmpty(req.getDeleteList())) {
//判断传递的list Id是否存在,如果不存在则抛出异常
for (Long s:req.getDeleteList()){
if (idSet.contains(s)){
//将要删除的装备价格和数据进行查询出来,并别对任务单的总数量和总价格进行更改
OrderItems one = orderItemsService.getOne(new LambdaQueryWrapper<OrderItems>()
.eq(OrderItems::getOrderId, s));
order.setPrice(order.getPrice().subtract(one.getPrice().multiply(BigDecimal.valueOf(one.getNum()))));
order.setTotalNum(order.getTotalNum() - one.getNum());
orderItemsService.removeBatchByIds(req.getDeleteList());
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
}
}
//对detaillist进行处理
List<OrderItems> addList = new ArrayList<>();//新增的
List<OrderItems> updateList = new ArrayList<>();//更新
for (BaseOrderItemReq baseOrderItemReq :req.getOrderItemList()) {
//判断是否存在,存在则进行修改
if (idSet.contains(baseOrderItemReq.getId())){
OrderItems one = orderItemsService.getOne(new LambdaQueryWrapper<OrderItems>()
.eq(OrderItems::getId, baseOrderItemReq.getId()));
BeanPlusUtil.copyProperties(baseOrderItemReq,one);
//判断数量和价格是否有变动,如果有变动,则将order的总价和总数量进行更新操作,否则不变
if (one.getNum().equals(baseOrderItemReq.getNum()) && one.getPrice().compareTo(baseOrderItemReq.getPrice())!=0){
order.setPrice(order.getPrice().subtract(one.getPrice().multiply(BigDecimal.valueOf(one.getNum())))
.add(baseOrderItemReq.getPrice().multiply(BigDecimal.valueOf(baseOrderItemReq.getNum()))));
order.setTotalNum(order.getTotalNum() - one.getNum()+ baseOrderItemReq.getNum());
}
one.setUpdateTime(DateTimeUtil.getCurrentDateTime());
updateList.add(one);
}else {
//否则判断id是否为空或者错误,如果为空则添加,不为空则抛出异常
if (ObjectUtil.isNull(baseOrderItemReq.getId()) || ObjectUtil.isEmpty(baseOrderItemReq.getId())){
OrderItems detail=new OrderItems();
BeanPlusUtil.copyProperties(baseOrderItemReq, detail);
detail.setOrderId(req.getId());
//将数量和价格进行相加处理
order.setPrice(order.getPrice().add(baseOrderItemReq.getPrice().multiply(BigDecimal.valueOf(baseOrderItemReq.getNum()))));
order.setTotalNum(order.getTotalNum() + baseOrderItemReq.getNum());
detail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
addList.add(detail);
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
}
}
orderItemsService.updateBatchById(updateList);
orderItemsService.saveBatch(addList);
BeanPlusUtil.copyProperties(req,order);
return this.updateById(order);
}
}
......
<?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.junmp.jyzb.mapper.OrderItemsMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.OrderItems">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="orderId" column="order_id" jdbcType="VARCHAR"/>
<result property="sizeId" column="size_id" jdbcType="VARCHAR"/>
<result property="sizeName" column="size_name" jdbcType="VARCHAR"/>
<result property="typeId" column="type_id" jdbcType="VARCHAR"/>
<result property="typeName" column="type_name" jdbcType="VARCHAR"/>
<result property="supplierId" column="supplier_id" jdbcType="VARCHAR"/>
<result property="supplierName" column="supplier_name" jdbcType="VARCHAR"/>
<result property="price" column="price" jdbcType="DECIMAL"/>
<result property="num" column="num" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,order_id,size_id,
size_name,type_id,type_name,
supplier_id,supplier_name,price,
num,create_time,update_time,
create_user,update_user
</sql>
</mapper>
......@@ -63,6 +63,32 @@
update_time=#{updateTime}
where o.id =#{id}
</update>
<select id="getOrderPage" resultType="com.junmp.jyzb.entity.OrderMain">
select * FROM bussiness_order_main WHERE id in(
SELECT order_id FROM bussiness_order_detail WHERE equipment_type = #{typeId}) and order_type=#{orderType}
<if test="null != bussinessType and '' != bussinessType ">
and bussiness_type = #{bussinessType}
</if>
<if test="startOrgId != null and startOrgId != ''">
and start_org_id = #{startOrgId}
</if>
<if test="endOrgId != null and endOrgId != ''">
and end_org_id = #{endOrgId}
</if>
<if test="orderState !=null and orderState != ''">
and order_state = #{orderState}
</if>
<if test="examineState !=null and examineState != ''">
and examine_state = #{examineState}
</if>
<if test="startTime != null and startTime != ''">
and create_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and create_time &lt;= #{endTime}
</if>
ORDER BY create_time DESC
</select>
......
......@@ -6,15 +6,16 @@
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.Order">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="sizeId" column="size_id" jdbcType="VARCHAR"/>
<result property="sizeName" column="size_name" jdbcType="VARCHAR"/>
<result property="typeId" column="type_id" jdbcType="VARCHAR"/>
<result property="typeName" column="type_name" jdbcType="VARCHAR"/>
<result property="processId" column="process_id" jdbcType="VARCHAR"/>
<result property="bussinessType" column="bussiness_type" jdbcType="VARCHAR"/>
<result property="applyTime" column="apply_time" jdbcType="TIMESTAMP"/>
<result property="applicantId" column="applicant_id" jdbcType="VARCHAR"/>
<result property="recipientId" column="recipient_id" jdbcType="VARCHAR"/>
<result property="applyReason" column="apply_reason" jdbcType="VARCHAR"/>
<result property="locationId" column="location_id" jdbcType="VARCHAR"/>
<result property="totalNum" column="total_num" jdbcType="INTEGER"/>
<result property="price" column="price" jdbcType="DECIMAL"/>
<result property="examineState" column="examine_state" jdbcType="VARCHAR"/>
<result property="orgId" column="org_id" jdbcType="BIGINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
......@@ -23,10 +24,11 @@
</resultMap>
<sql id="Base_Column_List">
id,size_id,size_name,
type_id,type_name,apply_time,
applicant_id,recipient_id,apply_reason,
location_id,org_id,create_time,
update_time,create_user,update_user
id,process_id,bussiness_type,
apply_time,applicant_id,recipient_id,
apply_reason,location_id,total_num,
price,examine_state,org_id,
create_time,update_time,create_user,
update_user
</sql>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论