Commit 55de5f6d by 赵剑炜

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

parents 3fdc51d5 42802810
......@@ -106,15 +106,6 @@ public class BusFormDto {
*/
private Date applyTime;
/**
* 申请人
*/
private String applyUser;
/**
* 申请人id
*/
private String applyUserId;
/**
* 调拨类型(2支拨,1价拨)
......@@ -154,7 +145,6 @@ public class BusFormDto {
*/
private String detailList;
/**
* 创建人
*/
......@@ -171,11 +161,6 @@ public class BusFormDto {
private String type;
/**
* 单据使用次数(forbidden禁止使用,outgoing 仅出库使用,incoming仅入库使用,bothuseing出入库都可以使用一次)
*/
private String useCount;
/**
* 审核人信息
*/
private String currentAssign;
......@@ -183,7 +168,7 @@ public class BusFormDto {
/**
* 生产日期
*/
private Date productionDate;
// private Date productionDate;
/**
* 质保期
......@@ -204,4 +189,7 @@ public class BusFormDto {
private String orderLastState;
private String orderMainId;
private String inOrderMainId;
private String outOrderMainId;
private String outAndInState;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName base_log_summary_second
*/
@Data
public class LogSummarySecondDto implements Serializable {
/**
* id
*/
private Long id;
/**
* summaryId
*/
private Long summaryId;
/**
* 类型名称
*/
private String typeName;
/**
* 类型id
*/
private String typeId;
/**
* 号型名称
*/
private String sizeName;
/**
* 号型id
*/
private Integer sizeId;
/**
* 数量
*/
private Integer num;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新人员
*/
private String updateUser;
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ public class OrgDto {
private String dName;
private Boolean isLeaf;
private Integer statusFlag;
private Integer delFlag;
private Integer childCount;
private List<OrgDto> children = new ArrayList<>();
......
......@@ -8,7 +8,6 @@ import java.math.BigDecimal;
public class DetailLogReq {
private Integer summaryId;
private String inventoryId;
private String bussinessType;
private String epc;
private String sizeId;
private String typeId;
......
package com.junmp.jyzb.api.bean.query.InAndOutRecordReq;
import lombok.Data;
@Data
public class LogSummarySecondReq {
private String typeName;
private String typeId;
private String sizeName;
private String sizeId;
private Integer num;
}
\ No newline at end of file
......@@ -32,4 +32,5 @@ public class SummaryLogReq {
//所属位置(0仓库1单警柜)
private Integer locationType;
private List<DetailLogReq> logDetailList;
private List<LogSummarySecondReq> sumInfoList;
}
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
*
* @TableName base_log_summary_second
*/
@Data
public class QueryLogSummarySecondReq extends BaseRequest {
/**
* id
*/
private Long id;
/**
* summaryId
*/
@NotNull(message = "出入库汇总信息id不能为空",groups = {detail.class})
private Long summaryId;
/**
* 类型名称
*/
private String typeName;
/**
* 类型id
*/
private String typeId;
/**
* 号型名称
*/
private String sizeName;
/**
* 号型id
*/
private Integer sizeId;
/**
* 数量
*/
private Integer num;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新人员
*/
private String updateUser;
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ public class QueryOrgReq {
private Integer isDepartment;
private Integer level;
private Integer delFlag;
private String dName;
}
......@@ -50,6 +50,7 @@ public class UpdateOrderDetailReq implements Serializable {
private String orderId;
//实际数量
private Integer actualNum;
private String orderType;
......@@ -62,6 +63,7 @@ public class UpdateOrderDetailReq implements Serializable {
private String updateUser;
//记账数量
private Integer modifyQuantity;
/**
......
......@@ -13,7 +13,7 @@ public class UpdateOrgReq {
/**
* 状态
*/
@NotNull(message = "状态不能为空", groups = {ValidationApi.updateStatus.class})
@NotNull(message = "状态不能为空", groups = {ValidationApi.updateStatus.class,ValidationApi.edit.class})
private Integer statusFlag;
/**
* 组织机构列表
......@@ -21,6 +21,22 @@ public class UpdateOrgReq {
@NotNull(message = "组织机构不能为空", groups = {ValidationApi.updateStatus.class})
private List<String> orgIdList;
@NotNull(message = "上级组织机构不能为空",groups = {ValidationApi.add.class})
private Long orgParentId;
private String orgParentIds;
@NotBlank(message = "组织机构名称不能为空",groups = {ValidationApi.add.class,ValidationApi.edit.class})
private String orgName;
@NotBlank(message = "组织机构编码不能为空",groups = {ValidationApi.add.class})
private String orgCode;
private Integer isDepartment;
private String areaName;
private Integer levelFlag;
private String dName;
private Integer delFlag;
private String findCode;
@NotNull(message = "组织机构id不能为空",groups = {ValidationApi.edit.class})
private Long orgId;
}
......
......@@ -18,7 +18,7 @@ public class UpdateWarehouseAreaReq extends BaseRequest {
@NotBlank(message = "仓库id不能为空", groups = {add.class,edit.class})
private String warehouseId;
@NotBlank(message = "照片不能为空", groups = {add.class,edit.class})
// @NotBlank(message = "照片不能为空", groups = {add.class,edit.class})
private String photo;
private Date createTime;
......
......@@ -14,6 +14,8 @@ public enum PubOrgExceptionEnum implements IExceptionEnum {
* 组织机构不存在或者被删除
*/
PUBORG_NOTEXIST_OR_DEL(CommonConstant.DEFAULT_USER_ERROR_CODE,"组织机构不存在或者已经被删除"),
ORG_IS_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"组织机构名称已存在")
;
/**
......
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.dto.BusFormDto;
import com.junmp.jyzb.api.bean.query.QueryBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.entity.BusForm;
import com.junmp.jyzb.service.BusFormService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
/**
* 业务单据管理模块(只针对业务单据,不包含任何出入库单据)
......@@ -42,10 +44,15 @@ public class BussinessController {
//查看业务单(可以条件查询)
@PostMapping("/showBussinessOrder")
@ApiOperation("查看业务单")
public ApiRes<PageResult<BusFormDto>> showBussinessOrder(@RequestBody QueryBusFormReq req){
public ApiRes<PageResult<BusForm>> showBussinessOrder(@RequestBody QueryBusFormReq req){
return ApiRes.success(busFormService.showBussinessOrder(req));
}
//根据业务单id查询出入库单据
@PostMapping("/showOrderByBusOrderId")
@ApiOperation("根据业务单id查询出入库单据")
public ApiRes<Object> showOrderByBusOrderId(@RequestBody QueryBusFormReq req){
return ApiRes.success(busFormService.showOrderByBusOrderId(req));
}
//根据调拨单,一键生成采购单
// @PostMapping("/GeneratePurchaseQuickly")
// @ApiOperation("快速生成采购单")
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.dto.LogDetailDto;
import com.junmp.jyzb.api.bean.dto.LogSummarySecondDto;
import com.junmp.jyzb.api.bean.dto.OrderLogDto;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.LogSummarySecondReq;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.OutInLogsReq;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.api.bean.query.LogDetailReq;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.api.bean.query.QueryLogSummarySecondReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.LogSummary;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.LogDetailService;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.jyzb.service.OrderLogService;
import com.junmp.jyzb.entity.LogSummarySecond;
import com.junmp.jyzb.service.*;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
......@@ -43,6 +44,9 @@ public class OutAndInboundController {
@Resource
private OrderLogService orderLogService;
@Resource
private LogSummarySecondService logSummarySecondService;
@ApiOperation("/查看出入库详情")
@PostMapping("/GetDetailByLogSumId")
public ApiRes<List<LogDetailDto>> GetDetailByLogSumId(@RequestBody @Validated(ValidationApi.detail.class) LogDetailReq req){
......@@ -81,5 +85,11 @@ public class OutAndInboundController {
return ApiRes.success(orderLogService.ShowRecordsByOrderId(req));
}
@PostMapping("getSecondInfoByLogSumId")
@ApiOperation("根据出入库汇总id查询二级信息")
public ApiRes<PageResult<LogSummarySecond>> getSecondInfoByLogSumId(@RequestBody @Validated(ValidationApi.detail.class) QueryLogSummarySecondReq req){
return ApiRes.success(logSummarySecondService.getSecondInfoByLogSumId(req));
}
}
......@@ -214,7 +214,7 @@ public class PoliceController {
@PostMapping("/ShowReassignmentPage")
@ApiOperation("查看警员调岗申请单")
public ApiRes<PageResult<ReassignmentDto>> ShowReassignmentPage(@RequestBody QueryReassignmentReq req){
public ApiRes<PageResult<Reassignment>> ShowReassignmentPage(@RequestBody QueryReassignmentReq req){
return ApiRes.success(policemanService.ShowReassignmentPage(req));
}
......
......@@ -73,4 +73,19 @@ public class PubOrgController {
public ApiRes<OrgDto> getUpOrgInfo(@RequestBody QueryOrgReq req){
return ApiRes.success(pubOrgService.getUpOrgInfo(req));
}
//新增
@ApiOperation("新增组织机构信息")
@PostMapping("/addPubOrg")
public ApiRes<Long> addPubOrg(@RequestBody @Validated(ValidationApi.add.class) UpdateOrgReq req){
return ApiRes.success(pubOrgService.addPubOrg(req));
}
//修改(名字,状态)
@ApiOperation("修改组织机构信息")
@PostMapping("/updatePubOrg")
public ApiRes<Boolean> updatePubOrg(@RequestBody @Validated(ValidationApi.edit.class) UpdateOrgReq req){
return ApiRes.success(pubOrgService.updatePubOrg(req));
}
}
......@@ -48,7 +48,7 @@ public class StocktakeController {
//查询单据
@PostMapping("/ShowStocktakeOrderPage")
@ApiOperation("盘库单据查询")
public ApiRes<PageResult<StocktakeDto>> ShowStocktakeOrderPage(@RequestBody @Validated(ValidationApi.edit.class)StocktakeReq req){
public ApiRes<PageResult<Stocktake>> ShowStocktakeOrderPage(@RequestBody @Validated(ValidationApi.edit.class)StocktakeReq req){
return ApiRes.success(stocktakeService.ShowStocktakeOrderPage(req));
}
......
......@@ -49,7 +49,7 @@ public class SupplierController {
//供应商分页
@PostMapping("/ShowSupplierPage")
@ApiOperation("查询供应商列表(page)")
public ApiRes<PageResult<SupplierDto>> ShowSupplierPage(@RequestBody QuerySupplierReq req){
public ApiRes<PageResult<Supplier>> ShowSupplierPage(@RequestBody QuerySupplierReq req){
return ApiRes.success(supplierService.ShowSupplierPage(req));
}
......
......@@ -121,21 +121,24 @@ public class InventorySummary implements Serializable {
@ApiModelProperty(value = "在库数")
@TableField("stock_number")
private Integer stockNumber;
@TableField(exist = false)
private BigDecimal stockNumberPrice;
/**
* 出库数量
*/
@ApiModelProperty(value = "出库数量")
@TableField("outbound_number")
private Integer outboundNumber;
@TableField(exist = false)
private BigDecimal outboundNumberPrice;
/**
* 销毁数量
*/
@ApiModelProperty(value = "销毁数量")
@TableField("destruction_number")
private Integer destructionNumber;
@TableField(exist = false)
private BigDecimal destructionNumberPrice;
/**
* 销毁金额
......@@ -143,7 +146,6 @@ public class InventorySummary implements Serializable {
@ApiModelProperty(value = "销毁金额")
@TableField("destruction_price")
private BigDecimal destructionPrice;
/**
* 过质保数量
*/
......@@ -151,13 +153,16 @@ public class InventorySummary implements Serializable {
@TableField("expire_number")
private Integer expireNumber;
@TableField(exist = false)
private BigDecimal expireNumberPrice;
/**
* 报废数量
*/
@ApiModelProperty(value = "报废数量")
@TableField("broken_number")
private Integer brokenNumber;
@TableField(exist = false)
private BigDecimal brokenNumberPrice;
/**
* 临近报废数量
*/
......
package com.junmp.jyzb.entity;
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;
/**
*
* @TableName base_log_summary_second
*/
@TableName(value ="base_log_summary_second")
@Data
public class LogSummarySecond implements Serializable {
/**
* id
*/
@TableId(value = "id",type = IdType.AUTO )
private Long id;
/**
* summaryId
*/
@TableField(value = "summary_id")
private Long summaryId;
/**
* 类型名称
*/
@TableField(value = "type_name")
private String typeName;
/**
* 类型id
*/
@TableField(value = "type_id")
private String typeId;
/**
* 号型名称
*/
@TableField(value = "size_name")
private String sizeName;
/**
* 号型id
*/
@TableField(value = "size_id")
private String sizeId;
/**
* 数量
*/
@TableField(value = "num")
private Integer num;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
private Date updateTime;
/**
* 创建人员
*/
@TableField(value = "create_user")
private String createUser;
/**
* 更新人员
*/
@TableField(value = "update_user")
private String updateUser;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -64,13 +64,13 @@ public class OrderLog implements Serializable {
/**
* 应入/出库数量
*/
@TableField(value = "inventory_quantity")
@TableField(value = "inventory_quantity",updateStrategy = FieldStrategy.IGNORED)
private Integer inventoryQuantity;
/**
* 实际数量
*/
@TableField(value = "actual_quantity")
@TableField(value = "actual_quantity",updateStrategy = FieldStrategy.IGNORED)
private Integer actualQuantity;
/**
......@@ -94,7 +94,7 @@ public class OrderLog implements Serializable {
/**
* 创建人员
*/
@TableField(value = "create_user")
@TableField(value = "create_user",updateStrategy = FieldStrategy.IGNORED)
private String createUser;
/**
......
package com.junmp.jyzb.entity;
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;
/**
*
* @TableName base_warehouse_inventory
*/
@TableName(value ="base_warehouse_inventory")
@Data
public class WarehouseInventory implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 组织机构Id
*/
@TableField(value = "org_id")
private Long orgId;
/**
* 类型id
*/
@TableField(value = "type_id")
private String typeId;
/**
* 号型id
*/
@TableField(value = "size_id")
private String sizeId;
/**
* 位置id
*/
@TableField(value = "location_id")
private String locationId;
/**
* 所属位置:0仓库,1单警柜
*/
@TableField(value = "location_type")
private String locationType;
/**
* EPC信息
*/
@TableField(value = "epc")
private String epc;
/**
* 0,正常,1不做提醒
*/
@TableField(value = "flag")
private Integer flag;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "org_id")
private Date updateTime;
/**
* 更新人员
*/
@TableField(value = "update_user")
private String updateUser;
/**
* 创建人员
*/
@TableField(value = "create_user")
private String createUser;
/**
* 在库状态:in在库,out出库
*/
@TableField(value = "location_state")
private String locationState;
/**
* 货架位置
*/
@TableField(value = "shelf_location")
private String shelfLocation;
/**
* 货架ID
*/
@TableField(value = "shelf_id")
private String shelfId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.listener;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -38,7 +39,10 @@ import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import com.junmp.junmpProcess.enums.AssigneeTypeEnums;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.runtime.Execution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -72,12 +76,24 @@ public class CounterSignListener implements ExecutionListener {
@Resource
private SysUserOrgService sysUserOrgService;
@Resource
private TaskService taskService;
@Resource
private RuntimeService runtimeService;
@Override
public void notify(DelegateExecution execution) {
String currentActivityId = execution.getCurrentActivityId();
Process mainProcess = repositoryService.getBpmnModel(execution.getProcessDefinitionId()).getMainProcess();
//获取当前流程的发起人的userId
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(execution.getProcessInstanceId())
.singleResult();
//当前流程发起人的userId
String startUserId = processInstance.getStartUserId();
UserTask userTask = (UserTask) mainProcess.getFlowElement(currentActivityId);
String flowJson = mainProcess.getAttributeValue("http://flowable.org/bpmn", "Junmp");
JSONObject jsonObject = JSONObject.parseObject(flowJson, new TypeReference<JSONObject>() {
});
......@@ -178,8 +194,10 @@ public class CounterSignListener implements ExecutionListener {
}
else if (Type.equals("1"))//上级审批
{
LoginUser StartUser= LoginContext.getContext().getLoginUser();
List<UserListDTO> userList= orgUserMapper.QueryUserWithParentOrg(StartUser.getUserId().toString());
//查找上级组织机构的userIds(拿的永远是发起人的上一级组织机构)
List<UserListDTO> userList= orgUserMapper.QueryUserWithParentOrg(startUserId);
List<String> Roles=group.getApproverIds();
String roleList="";
if (Roles.size()>0) { //角色不为空
......@@ -202,37 +220,18 @@ public class CounterSignListener implements ExecutionListener {
assigneeList.add(userId.getUserID());
}
}
else//表示他不是最上级的组织机构,还需要进行判断
{
//判断当前登录人是否在上级的userIdlist中,如果存在,则表示下一个节点的也是当前登录人所在组织机构下的userID中
boolean flag=false;
for (UserListDTO currentUser :userList) {
if (currentUser.getUserID().equals(StartUser.getUserId().toString())){
flag=true;
}
}
//如果未找到则表示下一个节点是上级组织机构下的某个角色的userId
if (!flag){
List<UserListDTO> userList1=orgUserMapper.QueryUserByRoleId(roleList, userList.get(0).getUserID());
for (UserListDTO userId :userList1)
{
assigneeList.add(userId.getUserID());
}
}
else{//下一个节点的审核人和当前灯枯人是同一个组织机构
List<UserListDTO> userList1=orgUserMapper.QueryUserByRoleId(roleList, StartUser.getUserId().toString());
for (UserListDTO userId :userList1)
{
assigneeList.add(userId.getUserID());
}
}else {//取上级的角色进行推送
List<UserListDTO> userList1=orgUserMapper.QueryUserByRoleId(roleList, userList.get(0).getUserID());
for (UserListDTO userId :userList1)
{
assigneeList.add(userId.getUserID());
}
}
}
else if (Type.equals("10"))//自己审批
{
......@@ -294,31 +293,37 @@ public class CounterSignListener implements ExecutionListener {
stocktakeService.updateById(re);
}
}
assigneeList.forEach(userId->//为相应的用户推送消息
{
if (userId!=LoginContext.getContext().getLoginUser().getUserId().toString())//非本人审核单据
{
MessageSendReq sendReq = new MessageSendReq();
sendReq.setReceiveUserIds(String.valueOf(userId));
sendReq.setMsgTitle("您有新的待办任务");
sendReq.setBizType("assign/"+execution.getVariable(ORDER_TYPE).toString());
sendReq.setBizId(Long.valueOf(execution.getProcessInstanceId()));
String StartUser=execution.getVariable(START_USER_INFO).toString();
UserInfo user= JSONObject.parseObject(StartUser, UserInfo.class);
sendReq.setMsgContent(user.getRealName()+" 提交的【"+mainProcess.getName()+"】需要您审批,请及时处理");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
messageApi.queryCount(new MessageReq());
/*推送发送未读数量*/
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(Long.valueOf(userId));
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(userId,count1);
}
});
Object skip=execution.getVariable("skip");
if (ObjectUtil.isNull(skip)){
assigneeList.forEach(userId->//为相应的用户推送消息
{
if (userId!=LoginContext.getContext().getLoginUser().getUserId().toString())//非本人审核单据
{
MessageSendReq sendReq = new MessageSendReq();
sendReq.setReceiveUserIds(String.valueOf(userId));
sendReq.setMsgTitle("您有新的待办任务");
sendReq.setBizType("assign/"+execution.getVariable(ORDER_TYPE).toString());
sendReq.setBizId(Long.valueOf(execution.getProcessInstanceId()));
String StartUser=execution.getVariable(START_USER_INFO).toString();
UserInfo user= JSONObject.parseObject(StartUser, UserInfo.class);
sendReq.setMsgContent(user.getRealName()+" 提交的【"+mainProcess.getName()+"】需要您审批,请及时处理");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
messageApi.queryCount(new MessageReq());
/*推送发送未读数量*/
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(Long.valueOf(userId));
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(userId,count1);
}
});
} else {//跳过
}
}
......
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.api.bean.dto.BusFormDto;
import com.junmp.jyzb.api.bean.query.QueryBusFormReq;
import com.junmp.jyzb.entity.BusForm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author lxh专属坐骑
......@@ -11,6 +17,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface BusFormMapper extends BaseMapper<BusForm> {
List<BusFormDto> showOrderByBusOrderId(@Param("id") String id);
}
......
......@@ -54,7 +54,7 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
//通过单警柜箱门id获取箱门下的装备汇总信息(page)
IPage<InventorySummary> EqsByCabinetBoxIdPage(Page<InventorySummary> page, String id);
IPage<InventorySummary> EqsByCabinetBoxIdPage(Page<InventorySummary> page,@Param("id") String id);
boolean insertInventorySummary(@Param("req") BatchEditingInvsReq req,@Param("brokenNumberDays")Integer brokenNumberDays);
......@@ -73,4 +73,6 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
List<InvExpireReq> selectUserListByOrgs(@Param("list") List<Long> uniqueOrgIDsList);
List<Inventory> searchExpireEqs(@Param("list") List<Object[]> searchItem);
IPage<InventoryDto> GetDetailByTerms(Page<Object> defaultPage, @Param("req") InventoryReq req);
}
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.LogSummarySecond;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_summary_second】的数据库操作Mapper
* @createDate 2023-12-08 14:44:38
* @Entity com.junmp.jyzb.entity.LogSummarySecond
*/
public interface LogSummarySecondMapper extends BaseMapper<LogSummarySecond> {
}
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.WarehouseInventory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【base_warehouse_inventory】的数据库操作Mapper
* @createDate 2023-12-08 13:23:29
* @Entity com.junmp.jyzb.entity.WarehouseInventory
*/
public interface WarehouseInventoryMapper extends BaseMapper<WarehouseInventory> {
}
......@@ -28,7 +28,7 @@ public class OutInLogsReceiver {
channel.basicAck(deliveryTag, false);
OutInLogsReq req = JSON.parseObject(msg, OutInLogsReq.class);
//将消息进行消费
Boolean result = logSummaryService.processInventoryRecords(req);
Boolean result = logSummaryService.processInventoryRecords(req);
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列ms
......
......@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.v2.db.api.page.PageResult;
import java.util.List;
import java.util.Map;
/**
* @author lxh专属坐骑
......@@ -31,7 +32,7 @@ public interface BusFormService extends IService<BusForm> {
//查看业务单(可根据条件查询)
PageResult<BusFormDto> showBussinessOrder(QueryBusFormReq req);
PageResult<BusForm> showBussinessOrder(QueryBusFormReq req);
//根据调拨单,一键生成采购单
// List<GeneratePurchaseQuicklyDto> GeneratePurchaseQuickly(GeneratePurchaseQuicklyReq req);
......@@ -40,4 +41,7 @@ public interface BusFormService extends IService<BusForm> {
boolean updateBrokenResult(BusForm busForm);
boolean addOrRevokeAgentBrokenNum(UpdateBusFormReq req,boolean flag);
Object showOrderByBusOrderId(QueryBusFormReq req);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.LogSummarySecondReq;
import com.junmp.jyzb.api.bean.query.QueryLogSummarySecondReq;
import com.junmp.jyzb.entity.LogSummarySecond;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.v2.db.api.page.PageResult;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_summary_second】的数据库操作Service
* @createDate 2023-12-08 14:44:38
*/
public interface LogSummarySecondService extends IService<LogSummarySecond> {
PageResult<LogSummarySecond> getSecondInfoByLogSumId(QueryLogSummarySecondReq req);
}
......@@ -38,7 +38,7 @@ public interface OrderMainService extends IService<OrderMain> {
//单据状态上报
boolean PushState(OrderUploadReq req);
//记账
//
boolean Accounting(UpdateOrderReq req);
//查看记账列表
......
......@@ -87,7 +87,7 @@ public interface PolicemanService extends IService<Policeman> {
String PoliceReassignment(UpdateReassignmentReq req);
//查看警员调岗申请单
PageResult<ReassignmentDto> ShowReassignmentPage(QueryReassignmentReq req);
PageResult<Reassignment> ShowReassignmentPage(QueryReassignmentReq req);
////查询组织机构下的用户以及角色信息(也可以根据别的查询条件查询)
PageResult<SysUserDto> ShowUserRole(SysUserReq req);
......
......@@ -38,4 +38,8 @@ public interface PubOrgService extends IService<PubOrg> {
//通过组织机构id获取上一层的组织机构数据
OrgDto getUpOrgInfo(QueryOrgReq req);
Long addPubOrg(UpdateOrgReq req);
boolean updatePubOrg(UpdateOrgReq req);
}
......@@ -17,10 +17,7 @@ public interface StocktakeService extends IService<Stocktake> {
String AddStocktakeOrder(UpdateStocktakeReq req);
String AddInvOrder(UpdateStocktakeReq req);
PageResult<StocktakeDto> ShowStocktakeOrderPage(StocktakeReq req);
PageResult<Stocktake> ShowStocktakeOrderPage(StocktakeReq req);
boolean UpdateStocktakeOrder(UpdateStocktakeReq req);
......
......@@ -54,5 +54,5 @@ public interface SupplierService extends IService<Supplier> {
*/
Boolean ChangeSupplierState(UpdateSupplierReq req);
PageResult<SupplierDto> ShowSupplierPage(QuerySupplierReq req);
PageResult<Supplier> ShowSupplierPage(QuerySupplierReq req);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.entity.WarehouseInventory;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author lxh专属坐骑
* @description 针对表【base_warehouse_inventory】的数据库操作Service
* @createDate 2023-12-08 13:23:29
*/
public interface WarehouseInventoryService extends IService<WarehouseInventory> {
}
......@@ -41,9 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -79,6 +77,8 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
@Resource
private BusFormRepository busFormRepository;
@Resource
private BusFormMapper busFormMapper;
public Object addEs() {
List<BusForm> esDto=this.list();
......@@ -271,15 +271,54 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
}
@Override
public Object showOrderByBusOrderId(QueryBusFormReq req) {
List<BusFormDto> busFormDtos = busFormMapper.showOrderByBusOrderId(req.getId());
Map<String,Object> map=new HashMap<>();
if (busFormDtos.size()>1){
for (BusFormDto busFormDto:busFormDtos) {
if (ObjectUtil.isNotNull(busFormDto.getOutAndInState()) && busFormDto.getOutAndInState().equals("in")){
if (map.containsKey("busForm")) {
Object busForm = map.get("busForm");
BusFormDto busForm1 = (BusFormDto) busForm;
busForm1.setInOrderMainId(busFormDto.getOrderMainId());
map.put("busForm",busForm1);
}else {
busFormDto.setInOrderMainId(busFormDto.getOrderMainId());
busFormDto.setOrderMainId(null);
map.put("busForm",busFormDto);
}
}else if (ObjectUtil.isNotNull(busFormDto.getOutAndInState()) && busFormDto.getOutAndInState().equals("out")){
if (map.containsKey("busForm")) {
Object busForm = map.get("busForm");
BusFormDto busForm1 = (BusFormDto) busForm;
busForm1.setOutOrderMainId(busFormDto.getOrderMainId());
map.put("busForm",busForm1);
}else {
busFormDto.setOutOrderMainId(busFormDto.getOrderMainId());
map.put("busForm",busFormDto);
}
}
}
}else {
map.put("busForm",busFormDtos.get(0));
}
return map.get("busForm");
}
/**
* 查询业务单,(可以根据业务单进行修改)
* @param req
* @param
* @return
*/
@Override
public PageResult<BusFormDto> showBussinessOrder(QueryBusFormReq req) {
public PageResult<BusForm> showBussinessOrder(QueryBusFormReq req) {
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("asc")|| req.getOrder().equalsIgnoreCase("desc")) &&
......@@ -289,24 +328,16 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
req.setOrder(req.getOrder().toLowerCase());
}
LambdaQueryWrapper<BusForm> eq = createWrapper(req);
long size = list(eq).size();
Page<BusForm> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
List<BusFormDto> collect = page.getRecords().stream().map(busForm -> {
BusFormDto busFormDto = new BusFormDto();
BeanPlusUtil.copyProperties(busForm, busFormDto);
return busFormDto;
}).collect(Collectors.toList());
List<BusForm> records = page.getRecords();
int size = records.size();
//是否创建创建空的数据返回前端
if(req.getIsCreateNullDate()==null || req.getIsCreateNullDate()){
Class<BusFormDto> busFormDto=BusFormDto.class;
List<BusFormDto> nullData = BusinessUtil.createNullData(size, req.getPageNo(), req.getPageSize(), busFormDto);
collect.addAll(nullData);
Class<BusForm> busForm=BusForm.class;
List<BusForm> nullData = BusinessUtil.createNullData((long)size, req.getPageNo(), req.getPageSize(), busForm);
records.addAll(nullData);
}
Page<BusFormDto> page1=new Page<>(req.getPageNo(),req.getPageSize());
page1.setRecords(collect);
page1.setTotal(size);
return PageResultFactory.createPageResult(page1);
return PageResultFactory.createPageResult(page);
}
......@@ -513,8 +544,8 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
}else {
eq.eq(ObjectUtil.isNotNull(req.getBussinessType()) && !req.getBussinessType().trim().isEmpty(), BusForm::getBussinessType, req.getBussinessType());
}
if (ObjectUtil.isNotNull(req.getUserId())){
//领用人
if (ObjectUtil.isNotNull(req.getUserId()) && req.getBussinessType().equals("use")){
//当前登录人
eq.eq(BusForm::getReturnUserId,req.getUserId());
}else {
......@@ -531,7 +562,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
if (req.getEndOrgId()!=null){
eq.eq(BusForm::getEndOrgId,req.getEndOrgId());
}
if (req.getStartOrgId()!=null && req.getEndOrgId()!=null){
if (req.getStartOrgId()==null && req.getEndOrgId()==null){
eq.and(wrapper-> wrapper.eq(BusForm::getStartOrgId,req.getOrgId()).or().eq(BusForm::getEndOrgId,req.getOrgId()));
}
eq.eq(ObjectUtil.isNotNull(req.getAllocateType()) && !req.getAllocateType().isEmpty(),BusForm::getAllocateType,req.getAllocateType());
......
......@@ -264,10 +264,10 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
//根据条件查询仓库/单警柜下的所有装备信息
@Override
public PageResult<InventoryDto> GetDetailByTerms(InventoryReq req) {
//判断组织机构是否存在
pubOrgService.PubOrgExist(req.getOrgId());
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
//根据条件查询仓库下的所有装备
LambdaQueryWrapper<Inventory> eq = new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getOrgId, req.getOrgId())
......@@ -297,17 +297,15 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
inventoryDto.setTypeName(map.get("typeName"));
//设置sizeName
inventoryDto.setSizeName(map.get("sizeName"));
//查询图片并返回
inventoryDto.setPhoto(map.get("photo"));
//如果有供应商id的前提下,设置supplierName
if (ObjectUtil.isNotNull(inventory.getSupplierId())) {
inventoryDto.setSupplierName(map.get("supplierName"));
}
String orgName = pubOrgService.getOne(new LambdaQueryWrapper<PubOrg>().eq(PubOrg::getOrgId, inventory.getOrgId())).getOrgName();
inventoryDto.setOrgName(orgName);
//查询图片并返回
String photo = equipmentSizeService.getById(inventory.getSizeId()).getPhoto();
if (photo != null){
inventoryDto.setPhoto(photo);
}
inventoryDto.setOrgName(pubOrg.getOrgName());
return inventoryDto;
}).collect(Collectors.toList());
Page<InventoryDto> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
......@@ -316,6 +314,11 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
return PageResultFactory.createPageResult(page1);
}
// public PageResult<InventoryDto> GetDetailByTerms(InventoryReq req) {
// IPage<InventoryDto> dtoIPage=inventoryMapper.GetDetailByTerms(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()),req);
// return PageResultFactory.createPageResult(null);
// }
//批量进行调整
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -551,9 +554,10 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//通用方法,用于设置对象的typeName属性,sizeName属性和supplierName属性
public Map<String,String> setNames (String typeId,String sizeId,String supplierId){
Map<String,String> map=new HashMap<>();
String sizeName = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getId, sizeId)).getName();
EquipmentSize one = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getId, sizeId));
String sizeName=one.getName();
String photo=one.getPhoto();
String typeName = equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
.eq(EquipmentType::getId, typeId)).getName();
//如果有供应商id的前提下,设置supplierName
......@@ -564,6 +568,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
map.put("sizeName",sizeName);
map.put("typeName",typeName);
map.put("photo",photo);
return map;
}
......
......@@ -98,8 +98,9 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
req.setOrder(req.getOrder().toLowerCase());
}
LambdaQueryWrapper<InventorySummary> wp = createWrapper(req);//取出仓库中总数并计算
List<InventorySummary> list = list(wp);
long size = list(wp).size();
Page<InventorySummary> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), wp);
// List<InventorySummary> list = list(wp);
// long size = list(wp).size();
//对该装备typeId进行排序
// Collections.sort(list, new Comparator<InventorySummary>() {
......@@ -109,10 +110,10 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
// }
// });
Page<InventorySummary> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
page1.setRecords(list);
page1.setTotal(size);
return PageResultFactory.createPageResult(page1);
// Page<InventorySummary> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
// page1.setRecords(list);
// page1.setTotal(size);
return PageResultFactory.createPageResult(page);
}
@Override
......
......@@ -65,7 +65,6 @@ public class LogDetailServiceImpl extends ServiceImpl<LogDetailMapper, LogDetail
//通过装备id获取出入库记录(判断id是否存在)
inventoryService.InventoryExist(req.getId());
LambdaQueryWrapper<LogDetail> eq = new LambdaQueryWrapper<LogDetail>()
.eq(ObjectUtil.isNotNull(req.getId()),LogDetail::getInventoryId,req.getId())
.eq(ObjectUtil.isNotNull(req.getEpc()),LogDetail::getEpc,req.getEpc());
Page<LogDetail> page = logDetailService.page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
return PageResultFactory.createPageResult(page);
......
package com.junmp.jyzb.service.impl;
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.InAndOutRecordReq.LogSummarySecondReq;
import com.junmp.jyzb.api.bean.query.QueryLogSummarySecondReq;
import com.junmp.jyzb.entity.LogSummarySecond;
import com.junmp.jyzb.service.LogSummarySecondService;
import com.junmp.jyzb.mapper.LogSummarySecondMapper;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import org.springframework.stereotype.Service;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_summary_second】的数据库操作Service实现
* @createDate 2023-12-08 14:44:38
*/
@Service
public class LogSummarySecondServiceImpl extends ServiceImpl<LogSummarySecondMapper, LogSummarySecond>
implements LogSummarySecondService{
@Override
public PageResult<LogSummarySecond> getSecondInfoByLogSumId(QueryLogSummarySecondReq req) {
LambdaQueryWrapper<LogSummarySecond> eq = new LambdaQueryWrapper<LogSummarySecond>()
.eq(LogSummarySecond::getSummaryId, req.getSummaryId());
Page<LogSummarySecond> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
return PageResultFactory.createPageResult(page);
}
}
......@@ -20,6 +20,8 @@ import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import liquibase.pro.packaged.S;
import liquibase.pro.packaged.W;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -63,6 +65,12 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
@Resource
private OrderLogService orderLogService;
@Resource
private LogSummarySecondService logSummarySecondService;
@Resource
private WarehouseInventoryService warehouseInventoryService;
//根据条件查询出入库记录
@Override
public PageResult<LogSummary> ShowInOutRecordsByItems(LogSummaryReq req) {
......@@ -102,30 +110,50 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
boolean a=true;
boolean b=true;
boolean c=true;
boolean c1=true;
if (ObjectUtil.isNotNull(order)){
List<DetailOrderReq> orderDetailList = order.getOrderDetail();
OrderMain one = orderMainService.getOne(new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getId, order.getId()));
one.setPrice(order.getPrice());
one.setActualQuantity(order.getActualQuantity());
if (ObjectUtil.isNull(one.getActualQuantity())){
one.setActualQuantity(0);
}
one.setActualQuantity(order.getActualQuantity()+one.getActualQuantity());
one.setOrderState(one.getOrderState());
one.setOrderState("finished");
one.setUpdateTime(DateTimeUtil.getCurrentDateTime());
a=orderMainService.updateById(one);
List<OrderDetail> collect = orderDetailList.stream().map(detailOrderReq -> {
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(detailOrderReq, orderDetail);
//记账数量默认时识别数量
orderDetail.setModifyQuantity(detailOrderReq.getActualNum());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return orderDetail;
}).collect(Collectors.toList());
b=orderDetailService.updateBatchById(collect);
List<OrderDetail> detailList = orderDetailService
.list(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, one.getId()));
for (OrderDetail orderDetail:detailList) {
for (DetailOrderReq detailReq:orderDetailList) {
if (detailReq.getId().equals(String.valueOf(orderDetail.getId()))){
if (ObjectUtil.isNull(orderDetail.getActualNum())){
orderDetail.setActualNum(0);
}
orderDetail.setModifyQuantity(orderDetail.getActualNum()+detailReq.getActualNum());
orderDetail.setActualNum(orderDetail.getActualNum()+detailReq.getActualNum());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
}
break;
}
}
// List<OrderDetail> collect = orderDetailList.stream().map(detailOrderReq -> {
// OrderDetail orderDetail = new OrderDetail();
// BeanPlusUtil.copyProperties(detailOrderReq, orderDetail);
//
// orderDetail.setModifyQuantity(detailOrderReq.getActualNum());
// orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
// return orderDetail;
// }).collect(Collectors.toList());
b=orderDetailService.updateBatchById(detailList);
//2.判断业务类型,如果是采购,更新装备库存表
if (order.getBussinessType().equals("purchase")){
List<PurchaseEqsReq> purchaseList = order.getPurchaseList();
List<Inventory> collect1=new ArrayList<>();
List<WarehouseInventory> warehouseInventoryList=new ArrayList<>();
for (PurchaseEqsReq eqsReq:purchaseList) {
Inventory inventory = new Inventory();
if (ObjectUtil.isNotNull(eqsReq.getProductionDate()) && !eqsReq.getProductionDate().trim().isEmpty()){
......@@ -136,6 +164,15 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
throw new RuntimeException(e);
}
}
WarehouseInventory warehouseInventory = new WarehouseInventory();
BeanPlusUtil.copyProperties(eqsReq,warehouseInventory);
warehouseInventory.setLocationState("in");
warehouseInventory.setLocationType("0");
warehouseInventory.setOrgId(order.getOrgId());
warehouseInventory.setFlag(0);
warehouseInventory.setCreateTime(DateTimeUtil.getCurrentDateTime());
warehouseInventoryList.add(warehouseInventory);
inventory.setEpc(eqsReq.getEpc());
inventory.setTypeId(eqsReq.getTypeId());
inventory.setSizeId(eqsReq.getSizeId());
......@@ -148,13 +185,13 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
inventory.setId(UUID.randomUUID().toString());
inventory.setCreateTime(DateTimeUtil.getCurrentDateTime());
inventory.setState("normal");
inventory.setLocationState("in");
inventory.setBussinessState("normal");
inventory.setLocationState("in");
inventory.setLocationType(0);
inventory.setOrgId(order.getOrgId());
collect1.add(inventory);
}
c1 = warehouseInventoryService.saveBatch(warehouseInventoryList);
c=inventoryService.saveBatch(collect1);
}
}
......@@ -173,7 +210,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
d = updateNumToSum(outInState, normalInOutDtos);
}
return a && b && c && d;
return a && b && c && c1 && d;
}
// 对出入库记录进行分类汇总存储()
......@@ -188,15 +225,23 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
List<Inventory> inventoryList=new ArrayList<>();
List<OrderLog> orderLogList=new ArrayList<>();
String orderMainId="";
for (SummaryLogReq logreq:logSummaryList) {
if (ObjectUtil.isNotNull(logreq.getOrderMainId())){
orderMainId=logreq.getOrderMainId();
}
//如果类型为normal,那么则表示作为日常出入库的记录,否则则作为单据的出入库记录
List<DetailLogReq> logList = logreq.getLogDetailList();
//出入库list
List<LogDetail> collect = new ArrayList<>();
LogSummary logSummary = saveLogSummary(logreq);
String string="";
if (logSummary.getOutInState().equals("in")){
string=string+logSummary.getLocationName()+":入库【"+logSummary.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"/";
}else {
string=string+logSummary.getLocationName()+":出库【"+logSummary.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"/";
}
logSummaryService.save(logSummary);
Map<String, String> map = setState(logreq.getOutInState(), logreq.getBussinessType());
//无单据的时候
......@@ -217,7 +262,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
//如果是采购则不处理,因为采购的inventory是跟着单子来处理的,其他的单子直接根据出入库记录来处理
if (!logreq.getBussinessType().equals("purchase")){
// if (logreq.getOutInState().equals("in")){
Inventory inventory = saveInventory(logreq.getOrgId(),logreq.getLocationId(),detailLogReq, map, logSummary.getOutInState());
Inventory inventory = saveInventory(logreq.getOrgId(),logreq.getLocationId(),logreq,detailLogReq, map, logSummary.getOutInState());
inventoryList.add(inventory);
// }
// else {
......@@ -230,15 +275,26 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(detailLogReq, logDetail);
logDetail.setSummaryId(logSummary.getId());
logDetail.setBussinessType(logSummary.getBussinessType());
logDetail.setCreateTime(DateTimeUtil.getCurrentDateTime());
logDetail.setBussinessType(logreq.getBussinessType());
logDetail.setOutInState(logreq.getOutInState());
collect.add(logDetail);
}
List<LogSummarySecond> collect1 = logreq.getSumInfoList().stream().map(logSecondReq -> {
LogSummarySecond logSummarySecond = new LogSummarySecond();
BeanPlusUtil.copyProperties(logSecondReq, logSummarySecond);
logSummarySecond.setSummaryId(logSummary.getId());
logSummarySecond.setCreateTime(DateTimeUtil.getCurrentDateTime());
return logSummarySecond;
}).collect(Collectors.toList());
//
boolean b1 = logSummarySecondService.saveBatch(collect1);
boolean b = logDetailService.saveBatch(collect);
//创建出入库日志
if (ObjectUtil.isNotNull(logSummary.getOrderMainId())){
OrderLog orderLog = addLog(logSummary);
OrderLog orderLog = addLog(logSummary,string);
orderLogList.add(orderLog);
}
}
......@@ -253,38 +309,55 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
//修改inventory表中的数据(如果不为空则表示不是采购单或者已经将采购单的信息过滤掉)
if (inventoryList.size()>0){
LambdaUpdateWrapper<Inventory> updateStateWrapper = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<Inventory> allocateInWrapper = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<Inventory> updateStateWrapper1 = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<Inventory> allocateInWrapper1 = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<WarehouseInventory> updateStateWrapper2 = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<WarehouseInventory> allocateInWrapper2 = Wrappers.lambdaUpdate();
for (Inventory inventory:inventoryList) {
if (inventory.getBussinessType().equals("allocate") && inventory.getLocationState().equals("in") && !ObjectUtil.isNull(ordermain)){
//调拨入库
allocateInWrapper.or().eq(Inventory::getEpc,inventory.getEpc())
allocateInWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getOrgId,inventory.getOrgId())
.set(Inventory::getLocationId,inventory.getLocationId());
allocateInWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
.set(WarehouseInventory::getOrgId,inventory.getOrgId())
.set(WarehouseInventory::getLocationId,inventory.getLocationId());
} else if (inventory.getBussinessType().equals("allocate") && inventory.getLocationState().equals("out") && !ObjectUtil.isNull(ordermain)){
//调拨出库,不操作
} else {
}else {
//其他情况
updateStateWrapper.or().eq(Inventory::getEpc,inventory.getEpc())
updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getLocationState,inventory.getLocationState())
.set(Inventory::getBussinessState,inventory.getBussinessState())
.set(Inventory::getState,inventory.getState());
updateStateWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
.set(WarehouseInventory::getLocationState,inventory.getLocationState());
}
}
if (!updateStateWrapper1.isEmptyOfWhere()){
inventoryService.update(updateStateWrapper);
inventoryService.update(updateStateWrapper1);
warehouseInventoryService.update(updateStateWrapper2);
}
if (!allocateInWrapper1.isEmptyOfWhere()){
inventoryService.update(allocateInWrapper);
inventoryService.update(allocateInWrapper1);
warehouseInventoryService.update(allocateInWrapper2);
}
}
return returnList;
}
private OrderLog addLog(LogSummary logSummary){
private OrderLog addLog(LogSummary logSummary,String string){
OrderLog orderLog = new OrderLog();
orderLog.setId(UUID.randomUUID().toString());
orderLog.setHistoryMsg(JSON.toJSONString(logSummary));
orderLog.setHistoryMsg(string);
orderLog.setOrderCode(logSummary.getOrderCode());
orderLog.setBussinessType(logSummary.getBussinessType());
orderLog.setOrderType(logSummary.getOutInState());
......@@ -308,16 +381,17 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
return logSummary;
}
private Inventory saveInventory(Long orgId,String locationId,DetailLogReq req,Map<String, String> map,String outInState){
private Inventory saveInventory(Long orgId,String locationId,SummaryLogReq logreq,DetailLogReq req,Map<String, String> map,String outInState){
Inventory inventory = new Inventory();
BeanPlusUtil.copyProperties(req,inventory);
inventory.setId(req.getInventoryId());
inventory.setLocationState(outInState);
inventory.setLocationId(locationId);
inventory.setEpc(req.getEpc());
inventory.setState(map.get("state"));
inventory.setOrgId(orgId);
inventory.setBussinessState(map.get("bussinessType"));
inventory.setBussinessType(req.getBussinessType());
inventory.setBussinessType(logreq.getBussinessType());
return inventory;
}
......
......@@ -24,6 +24,7 @@ import com.junmp.jyzb.service.*;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.RabbitMQSendMsg;
import com.junmp.jyzb.utils.RedisUtils;
import com.junmp.v2.auth.api.bean.login.LoginUser;
import com.junmp.v2.auth.api.context.LoginContext;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.common.exception.base.ServiceException;
......@@ -147,7 +148,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (one!=null){
//判断该单据是否可以进行修改(如果审核中则不允许修改)
if (ObjectUtil.isNotNull(one.getExamineState()) && !one.getExamineState().equals("working")){
if (ObjectUtil.isNotNull(one.getExamineState()) && one.getExamineState().equals("working")){
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
}
......@@ -183,6 +184,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
BigDecimal priceTotal=new BigDecimal(0);
List<OrderDetail> detailList = new ArrayList<>();
//通过遍历批量保存详细信息
String s="";
if (req.getOrderType().equals("in")){
s=s+req.getBussinessType()+"入库单:";
}else {
s=s+req.getBussinessType()+"出库单:";
}
for (UpdateOrderDetailReq listReq:req.getDetailList()) {
OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(listReq, detail);
......@@ -202,6 +209,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
throw new RuntimeException(e);
}
}
//添加日志记录
s=s+listReq.getWarehouseName()+"预计数量:"+listReq.getTypeName()+"【"+listReq.getSizeName()+"】"+listReq.getPlanNum()+"/";
detailList.add(detail);
}
orderDetailService.saveBatch(detailList);
......@@ -213,54 +222,10 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (req.getExamineState().equals("working")){
//执行工作流
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
//业务单走审核流
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setUserId(req.getUserId());
//装备列表
startProcessInstanceDTO.setInvList(req.getInvList());
startProcessInstanceDTO.setOutInState(req.getOrderType());
if (req.getOrderType().equals("in")){
//发物单位和收物单位
switch (req.getBussinessType()){
case "purchase":
case "gift":
case "repair":
case "other":
startProcessInstanceDTO.setStartOrgName(req.getSupplierName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "return":
startProcessInstanceDTO.setStartOrgName(req.getEndOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
}
}else {
//发物单位和收物单位
switch (req.getBussinessType()){
case "use":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getStartOrgName());
break;
case "return":
startProcessInstanceDTO.setStartOrgName(req.getEndOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "repair":
case "destruction":
case "other":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getSupplierName());
break;
}
}
//设置参数
startProcessInstanceDTO = setParams(startProcessInstanceDTO, req,order);
if (!req.getBussinessType().equals("quick") && req.getExamineState().equals("working"))//其他出入库单
{
startProcessInstanceDTO.setOrderType("workOrder");
......@@ -306,13 +271,68 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//判断orderId在orderLog表中是否存在,如果存在,则直接替换
//判断是否有流程id,如果有,则进行添加
if (order.getProcessId()!=null){
boolean b = addOrderLog(req,order.getId(),order.getOrderCode());
boolean b = addOrderLog(req,order.getId(),order.getOrderCode(),s);
}
return list;
}
public StartProcessInstanceDTO setParams(StartProcessInstanceDTO startProcessInstanceDTO,UpdateOrderReq req,OrderMain order){
//业务单走审核流
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setUserId(req.getUserId());
//装备列表
startProcessInstanceDTO.setInvList(req.getInvList());
startProcessInstanceDTO.setOutInState(req.getOrderType());
if (req.getOrderType().equals("in")){
//发物单位和收物单位
switch (req.getBussinessType()){
case "purchase":
case "gift":
case "repair":
case "other":
startProcessInstanceDTO.setStartOrgName(req.getSupplierName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "return":
startProcessInstanceDTO.setStartOrgName(req.getEndOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
}
}else {
//发物单位和收物单位
switch (req.getBussinessType()){
case "use":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getStartOrgName());
break;
case "return":
startProcessInstanceDTO.setStartOrgName(req.getEndOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "repair":
case "destruction":
case "other":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getSupplierName());
break;
}
}
return startProcessInstanceDTO;
}
//纪录日志
private boolean addOrderLog(UpdateOrderReq req,String orderId,String orderCode){
private boolean addOrderLog(UpdateOrderReq req,String orderId,String orderCode,String s){
LoginUser StartUser= LoginContext.getContext().getLoginUser();
//判断日志中是否存在,如果存在直接替换
OrderLog createOrder = orderLogService.getOne(new LambdaQueryWrapper<OrderLog>()
.eq(OrderLog::getOrderId, req.getId())
......@@ -322,11 +342,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (createOrder==null){
OrderLog orderLog = new OrderLog();
orderLog.setId(UUID.randomUUID().toString());
orderLog.setHistoryMsg(JSON.toJSONString(req.getDetailList()));
orderLog.setHistoryMsg(s);
orderLog.setOrderCode(orderCode);
orderLog.setBussinessType(req.getBussinessType());
orderLog.setOrderType(req.getOrderType());
orderLog.setProcessType("careteOrder");
orderLog.setCreateUser(String.valueOf(StartUser.getUserId()));
if (req.getOrderType().equals("in")){
orderLog.setOrgId(req.getEndOrgId());
orderLog.setOrgName(req.getEndOrgName());
......@@ -359,7 +380,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
BusForm one1 = setState1(req.getOrderType(),orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
//库存
......@@ -379,7 +400,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
BusForm one1 = setState1(req.getOrderType(),orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
}
//入参为空,库里不为空
......@@ -407,7 +428,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
orgId=Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
BusForm one1 = setState1(req.getOrderType(),orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
}
return one;
......@@ -434,23 +455,33 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
return busform;
}
private BusForm setState1(Long orgId,String bussinessCode){
private BusForm setState1(String orderType,Long orgId,String bussinessCode){
BusForm busform = busFormService.getOne(new LambdaQueryWrapper<BusForm>()
.eq(BusForm::getOrgId, orgId)
.in(BusForm::getBussinessCode, bussinessCode));
busform.setOrderCurrentState(busform.getOrderLastState());
switch (busform.getOrderCurrentState()){
case "bothuseing":
busform.setOrderCurrentState("outgoing");
break;
case "incoming":
busform.setOrderCurrentState("forbidden");
break;
case "outgoing":
busform.setOrderCurrentState("forbidden");
break;
if (orderType.equals("in")){
switch (busform.getOrderCurrentState()){
case "bothuseing":
busform.setOrderCurrentState("outgoing");
break;
case "outgoing":
busform.setOrderCurrentState("forbidden");
break;
}
}else {
switch (busform.getOrderCurrentState()){
case "bothuseing":
busform.setOrderCurrentState("incoming");
break;
case "incoming":
busform.setOrderCurrentState("forbidden");
break;
}
}
return busform;
}
......@@ -723,7 +754,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<OrderDetail> orderDetailList=new ArrayList<>();
//创建一个列表用于修改summary数据库表中数据。
List<UpdateOrderDetailReq> orderDetailReqList=new ArrayList<>();
List<AccountingDto> accountingDtoList=new ArrayList<>();
// List<AccountingDto> accountingDtoList=new ArrayList<>();
String s="";
//比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常
if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){
for (UpdateOrderDetailReq uploadDetailReq : reqList) {
......@@ -731,12 +763,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail);
//获取修改后的数量并且记录(modifyQuantity表示有记账数量)
if (uploadDetailReq.getModifyQuantity() >= 0 ){
// String log = "将"+uploadDetailReq.getTypeName()+"号型为"+
// uploadDetailReq.getSizeName()+"单价为"+uploadDetailReq.getPrice()+"的物资数量记为"+uploadDetailReq.getModifyQuantity()+";";
// stringBuilder.append(log);
AccountingDto accountingDto = new AccountingDto();
BeanPlusUtil.copyProperties(uploadDetailReq,accountingDto);
accountingDtoList.add(accountingDto);
//记账内容
s = s+uploadDetailReq.getTypeName()+"【"+
uploadDetailReq.getSizeName()+"】,单价:"+uploadDetailReq.getPrice()+",数量实入:"+uploadDetailReq.getActualNum()+",记账:"+uploadDetailReq.getModifyQuantity()+"/";
// AccountingDto accountingDto = new AccountingDto();
// BeanPlusUtil.copyProperties(uploadDetailReq,accountingDto);
// accountingDtoList.add(accountingDto);
//修改单子数量数据,价格
orderDetail.setModifyQuantity(uploadDetailReq.getModifyQuantity());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
......@@ -767,8 +800,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
boolean b = updateById(orderMain);
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
// boolean b = saveAccountingLog(req, stringBuilder, updateQuantity);
boolean c = saveAccountingLog(req, accountingDtoList, updateQuantity);
boolean c = saveAccountingLog(req, s, updateQuantity);
// boolean c = saveAccountingLog(req, accountingDtoList, updateQuantity);
//修改装备汇总表中的数据 inventory_summary
Long orgId;
......@@ -779,8 +812,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
orgId=orderMain.getStartOrgId();
}
PubOrg pubOrg = pubOrgService.PubOrgExist(orgId);
boolean d = updateSummaryInfo(req, orderDetailReqList, pubOrg.getOrgId(), pubOrg.getOrgCode(),pubOrg.getOrgName());
boolean d = true;
//如果是快速移库,记账完成之后新增入库单并且该单据不走审核流,但是审核状态和入库状态显示已完成
boolean g=true;
if (req.getBussinessType().equals("quick")){
g = addQuickOrder(orderMain);
}else {
d=updateSummaryInfo(req, orderDetailReqList, pubOrg.getOrgId(), pubOrg.getOrgCode(),pubOrg.getOrgName());
}
//如果是领用,警员绑定装备
boolean e=true;
if (req.getBussinessType().equals("use")){
......@@ -792,11 +831,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (req.getBussinessType().equals("return")){
f = policeUnBindEqs(req, reqList, orgId);
}
//如果是快速移库,记账完成之后新增入库单并且该单据不走审核流,但是审核状态和入库状态显示已完成
boolean g=true;
if (req.getBussinessType().equals("quick")){
g = addQuickOrder(orderMain);
}
//记账结束之后往消息队列中推送一条消息
String exchangeName="orderExchange";
MQReturnMsgDto mqReturnMsgDto = new MQReturnMsgDto();
......@@ -826,7 +861,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (PoliceEquipment pEqs:list ) {
if (upReq.getSizeId().equals(pEqs.getSizeId()) && upReq.getTypeId().equals(pEqs.getTypeId())
&& upReq.getPrice().compareTo(pEqs.getPrice())==0){
//如果数量大于的情况下直接将该条数据进行删除,否则直接修改数量并且更新
//如果数量大于等于的情况下直接将该条数据进行删除,否则直接修改数量并且更新
if (upReq.getModifyQuantity()>=pEqs.getNum()){
delList.add(pEqs);
}else {
......@@ -877,12 +912,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
public boolean saveAccountingLog (UpdateOrderReq req,List<AccountingDto> accountingDtoList,Integer updateQuantity){
public boolean saveAccountingLog (UpdateOrderReq req,String s,Integer updateQuantity){
OrderLog orderLog = new OrderLog();
BeanPlusUtil.copyProperties(req,orderLog);
orderLog.setId(UUID.randomUUID().toString());
// orderLog.setHistoryMsg(stringBuilder.toString());
orderLog.setHistoryMsg(JSON.toJSONString(accountingDtoList));
orderLog.setHistoryMsg(s);
// orderLog.setHistoryMsg(JSON.toJSONString(accountingDtoList));
orderLog.setInventoryQuantity(req.getInventoryQuantity());
orderLog.setActualQuantity(req.getActualQuantity());
orderLog.setUpdateQuantity(updateQuantity);
if (req.getOrderType().equals("in")){
orderLog.setOrgId(req.getEndOrgId());
......@@ -892,6 +929,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
orderLog.setOrgName(req.getStartOrgName());
}
orderLog.setOrderId(req.getId());
orderLog.setCreateUser(req.getUserId());
orderLog.setCreateTime(DateTimeUtil.getCurrentDateTime());
orderLog.setProcessType("accounting");
//将记账记录保存
......@@ -906,6 +944,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
Object[] criteria=new Object[]{orgId,upReq.getWarehouseId(),upReq.getTypeId(),upReq.getSizeId(),upReq.getPrice()};
searchCriteria.add(criteria);
}
//库存信息
List<InventorySummary> inventorySummaryList = inventorySummaryMapper.selectSumByItems(searchCriteria);
List<InventorySummary> addList=new ArrayList<>();
List<InventorySummary> updateList=new ArrayList<>();
......@@ -914,6 +953,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (InventorySummary is:inventorySummaryList) {
if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId())
&& upReq.getTypeId().equals(is.getTypeId()) && upReq.getPrice().compareTo(is.getUnitPrice())==0){
is.setUpdateTime(DateTimeUtil.getCurrentDateTime());
//修改各种数量和价格
// if (req.getOrderType().equals("in")){//入库没有关系
// is.setOutboundNumber(is.getOutboundNumber()-upReq.getModifyQuantity());
......@@ -936,12 +976,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
case "gift":
case "other":
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity());
is.setNumber(is.getStockNumber()+is.getOutboundNumber());
is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())) );
break;
case "return":
case "repair":
//如果入库数大于实际出库数,那么在库数和总数进行添加,出库数为0
if (is.getOutboundNumber()-upReq.getModifyQuantity()<=0){
if (is.getOutboundNumber()-upReq.getModifyQuantity()<0){
is.setOutboundNumber(0);
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity()-is.getOutboundNumber());
is.setNumber(is.getNumber()+upReq.getModifyQuantity()-is.getOutboundNumber());
......@@ -1295,8 +1336,10 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<InventorySummary> oldSummaryList = inventorySummaryMapper.selectSumByItems(searchCriteria);
//其次查询出修改后的仓库下面的汇总信息,判断该仓库下是否已经存在该号型、类型、单价相同的装备数据
List<InventorySummary> newSummaryList = inventorySummaryMapper.selectSumByItems(updateCriteria);
//第一步:判断是否将报废区的数据也同样进行移库(flag=true表示将报废区的数量进行一起移动)
//第一步:判断是否将报废区的数据也同样进行移库(flag=true表示将报废区的数量进行一起移动),如果都没有报废数量,默认是true;
boolean flag = oldSummaryList.stream()
.noneMatch(oldsum -> oldsum.getBrokenNumber() > 0)
|| oldSummaryList.stream()
.filter(oldsum -> oldsum.getBrokenNumber() > 0)
.anyMatch(oldsum -> list.stream()
.anyMatch(orderDetail -> orderDetail.getSizeId().equals(oldsum.getSizeId())
......
......@@ -1078,7 +1078,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
//查看警员调岗申请单
@Override
public PageResult<ReassignmentDto> ShowReassignmentPage(QueryReassignmentReq req) {
public PageResult<Reassignment> ShowReassignmentPage(QueryReassignmentReq req) {
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
......@@ -1098,17 +1098,9 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
.ge(ObjectUtil.isNotNull(req.getStartTime()), Reassignment::getApplyTime, req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()), Reassignment::getApplyTime, req.getEndTime())
.last("order by " + req.getColumn() + " " + req.getOrder());
long size = reassignmentService.list(eq).size();
Page<Reassignment> page = reassignmentService.page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
List<ReassignmentDto> collect = page.getRecords().stream().map(reassignment -> {
ReassignmentDto reassignmentDto = new ReassignmentDto();
BeanPlusUtil.copyProperties(reassignment, reassignmentDto);
return reassignmentDto;
}).collect(Collectors.toList());
Page<ReassignmentDto> page1 = new Page<>(req.getPageNo(), req.getPageSize());
page1.setTotal(size);
page1.setRecords(collect);
return PageResultFactory.createPageResult(page1);
return PageResultFactory.createPageResult(page);
}
//查询组织机构下的用户以及角色信息(也可以根据别的查询条件查询)
......
......@@ -734,6 +734,8 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
wrapper.eq(ObjectUtil.isNotEmpty(req.getDelFlag()), PubOrg::getDelFlag, req.getDelFlag());
wrapper.eq(ObjectUtil.isNotEmpty(req.getParentId()), PubOrg::getOrgParentId,req.getParentId() );
wrapper.eq(ObjectUtil.isNotEmpty(req.getOrgCode()), PubOrg::getOrgCode, req.getOrgCode());
wrapper.like(ObjectUtil.isNotEmpty(req.getOrgName()), PubOrg::getOrgName, req.getOrgName());
wrapper.like(ObjectUtil.isNotEmpty(req.getDName()), PubOrg::getDName, req.getDName());
return wrapper;
}
......@@ -759,6 +761,37 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
return orgDto;
}
//新增组织机构信息
@Override
public Long addPubOrg(UpdateOrgReq req) {
List<PubOrg> list = list(new LambdaQueryWrapper<PubOrg>().eq(PubOrg::getOrgName, req.getOrgName()));
if (list.size()>0){
throw new ServiceException(PubOrgExceptionEnum.ORG_IS_EXIST);
}
PubOrg pubOrg = new PubOrg();
BeanPlusUtil.copyProperties(req,pubOrg);
pubOrg.setDelFlag(1);
pubOrg.setStatusFlag(0);
pubOrg.setIsDepartment(0);
pubOrg.setRemark(req.getOrgName());
pubOrg.setCreateTime(DateTimeUtil.getCurrentDateTime());
pubOrg.setIsMap("0");
save(pubOrg);
return pubOrg.getOrgId();
}
//修改组织机构信息
@Override
public boolean updatePubOrg(UpdateOrgReq req) {
List<PubOrg> list = list(new LambdaQueryWrapper<PubOrg>().eq(PubOrg::getOrgName, req.getOrgName()));
if (list.size()>0){
throw new ServiceException(PubOrgExceptionEnum.ORG_IS_EXIST);
}
PubOrg pubOrg = new PubOrg();
BeanPlusUtil.copyProperties(req,pubOrg);
return updateById(pubOrg);
}
}
......
......@@ -35,12 +35,12 @@ public class ShelfServiceImpl extends ServiceImpl<ShelfMapper, Shelf> implements
//判断仓库是否存在
warehouseService.WarehoustExist(req.getWarehouseId());
//判断区域是否存在
warehouseAreaService.WarehouseAreaExist(req.getAreaId());
// warehouseAreaService.WarehouseAreaExist(req.getAreaId());
//判断区域id是否在该仓库中,如果不是则抛出异常
WarehouseArea one = warehouseAreaService.getOne(new LambdaQueryWrapper<WarehouseArea>()
List<WarehouseArea> list = warehouseAreaService.list(new LambdaQueryWrapper<WarehouseArea>()
.eq(WarehouseArea::getWarehouseId, req.getWarehouseId())
.eq(WarehouseArea::getAreaId, req.getAreaId()));
if (ObjectUtil.isNull(one)){
.eq(ObjectUtil.isNotNull(req.getAreaId()), WarehouseArea::getAreaId, req.getAreaId()));
if (list.size()<=0){
throw new ServiceException(WarehouseAreaExceptionEnum.AREA_ERROR);
}
Shelf shelf = new Shelf();
......
......@@ -93,8 +93,6 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
return stocktake.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public String AddInvOrder(UpdateStocktakeReq req) {
Stocktake stocktake = new Stocktake();
BeanPlusUtil.copyProperties(req,stocktake);
......@@ -131,7 +129,7 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
//盘库单据查询
@Override
public PageResult<StocktakeDto> ShowStocktakeOrderPage(StocktakeReq req) {
public PageResult<Stocktake> ShowStocktakeOrderPage(StocktakeReq req) {
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("desc") || req.getOrder().equalsIgnoreCase("asc"))
......@@ -146,17 +144,8 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
.ge(ObjectUtil.isNotNull(req.getStartTime()),Stocktake::getCreateTime,req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()),Stocktake::getCreateTime,req.getEndTime())
.last("order by "+req.getColumn()+" "+req.getOrder());
long size = list(eq).size();
Page<Stocktake> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
List<StocktakeDto> collect = page.getRecords().stream().map(stocktake -> {
StocktakeDto stocktakeDto = new StocktakeDto();
BeanPlusUtil.copyProperties(stocktake, stocktakeDto);
return stocktakeDto;
}).collect(Collectors.toList());
Page<StocktakeDto> page1 = new Page<>(req.getPageNo(), req.getPageSize());
page1.setTotal(size);
page1.setRecords(collect);
return PageResultFactory.createPageResult(page1);
return PageResultFactory.createPageResult(page);
}
......
......@@ -123,22 +123,11 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
//分页
@Override
public PageResult<SupplierDto> ShowSupplierPage(QuerySupplierReq req) {
public PageResult<Supplier> ShowSupplierPage(QuerySupplierReq req) {
LambdaQueryWrapper<Supplier> wrapper = createWrapper(req);
long size = list(wrapper).size();
Page<Supplier> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), wrapper);
List<Supplier> records = page.getRecords();
List<SupplierDto> dto=new ArrayList<>();
records.forEach(p->
{
SupplierDto sd=new SupplierDto();
BeanPlusUtil.copyProperties(p, sd);
dto.add(sd);
});
Page<SupplierDto> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
page1.setRecords(dto);
page1.setTotal(size);
return PageResultFactory.createPageResult(page1);
return PageResultFactory.createPageResult(page);
}
@Override
......
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.WarehouseInventory;
import com.junmp.jyzb.service.WarehouseInventoryService;
import com.junmp.jyzb.mapper.WarehouseInventoryMapper;
import org.springframework.stereotype.Service;
/**
* @author lxh专属坐骑
* @description 针对表【base_warehouse_inventory】的数据库操作Service实现
* @createDate 2023-12-08 13:23:29
*/
@Service
public class WarehouseInventoryServiceImpl extends ServiceImpl<WarehouseInventoryMapper, WarehouseInventory>
implements WarehouseInventoryService{
}
......@@ -45,4 +45,12 @@
manufacturer_name,item_details,create_time,
update_time,create_user,update_user
</sql>
<select id="showOrderByBusOrderId" resultType="com.junmp.jyzb.api.bean.dto.BusFormDto">
select *,null as order_main_id,null as out_and_in_state FROM bussiness_bus_form WHERE id=#{id}
union all
select a.*,om.id as order_main_id,om.order_type as out_and_in_state FROM bussiness_order_main om join
(select * FROM bussiness_bus_form WHERE id=#{id}) a
on a.bussiness_code=om.bussiness_code
and (a.org_id=om.start_org_id or a.org_id=om.end_org_id)
</select>
</mapper>
......@@ -33,6 +33,9 @@
<if test="null != req.typeId and '' != req.typeId">
AND t1.type_id= #{req.typeId}
</if>
<if test="null != req.id and '' != req.id">
AND t1.id= #{req.id}
</if>
</if>
</select>
......
......@@ -163,17 +163,16 @@
GROUP BY t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
</insert>
<insert id="insertInventorySummary">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,
INSERT INTO base_inventory_summary (org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,
size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,
expire_number,location_type,use_number,near_broken_number,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,
t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,
sum(t.number) as number,t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,sum(t.useNumber)as useNumber,
sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,t.location_type,sum(t.useNumber)as useNumber,
sum(t.nearBrokenNumber)as nearBrokenNumber,NOW(),NOW()
FROM
(SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
MAX(bi.location_id) as locationId,
......@@ -546,6 +545,9 @@
limit ${item[2]},${item[3]}
</foreach>
</select>
<select id="GetDetailByTerms" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">
</select>
</mapper>
\ No newline at end of file
......@@ -137,25 +137,34 @@
<select id="getTotalNumberAndPrice" resultType="com.junmp.jyzb.entity.InventorySummary">
select sum(number) as number,sum(price)as price,sum(stock_number)as stockNumber,
sum(outbound_number)as outboundNumber,sum(destruction_number)as destructionNumber,
sum(expire_number)as expireNumber,sum(broken_number)as brokenNumber
select sum(number) as number,sum(price)as price,
sum(stock_number)as stockNumber,sum(stock_number * unit_price) as stockNumberPrice,
sum(outbound_number)as outboundNumber,sum(outbound_number * unit_price) as outboundNumberPrice,
sum(destruction_number)as destructionNumber,sum(destruction_number * unit_price) as destructionNumberPrice,
sum(expire_number)as expireNumber,sum(expire_number * unit_price) as expireNumberPrice,
sum(broken_number)as brokenNumber,sum(broken_number * unit_price) as brokenNumberPrice
<if test="req.orgId != null and req.orgId != ''">
,org_id_int as orgId
</if>
<if test="req.locationId !=null and req.locationId != ''">
,location_id as locationId
</if>
<if test="req.sizeId != null and req.sizeId != ''">
,size_id as sizeId
</if>
<if test="req.TypeId != null and req.typeId != ''">
,type_id as typeId
</if>
<if test="req.locationType != null and req.locationType != ''">
,location_type as locationId
,location_type as locationType
</if>
FROM base_inventory_summary where 1=1
<if test="req.sizeNames != null and req.sizeNames.size() >0 ">
and
<foreach collection="req.sizeNames" item="item" open="(" separator="or" close=")">
size_name = #{item}
</foreach>
</if>
<if test="req.typeIds != null and req.typeIds.size()>0 ">
and
<foreach collection="req.typeIds" item="item" open="(" separator="or" close=")">
type_id = #{item}
</foreach>
</if>
<if test="req.orgId != null and req.orgId != ''">
and org_id_int=#{req.orgId}
</if>
......
<?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.LogSummarySecondMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.LogSummarySecond">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="summaryId" column="summary_id" jdbcType="BIGINT"/>
<result property="typeName" column="type_name" jdbcType="VARCHAR"/>
<result property="typeId" column="type_id" jdbcType="VARCHAR"/>
<result property="sizeName" column="size_name" jdbcType="VARCHAR"/>
<result property="sizeId" column="size_id" jdbcType="INTEGER"/>
<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,summary_id,type_name,
type_id,size_name,size_id,
num,create_time,update_time,
create_user,update_user
</sql>
</mapper>
<?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.WarehouseInventoryMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.WarehouseInventory">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="orgId" column="org_id" jdbcType="BIGINT"/>
<result property="typeId" column="type_id" jdbcType="VARCHAR"/>
<result property="sizeId" column="size_id" jdbcType="VARCHAR"/>
<result property="locationId" column="location_id" jdbcType="VARCHAR"/>
<result property="locationType" column="location_type" jdbcType="VARCHAR"/>
<result property="epc" column="epc" jdbcType="VARCHAR"/>
<result property="flag" column="flag" jdbcType="OTHER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="locationState" column="location_state" jdbcType="VARCHAR"/>
<result property="shelfLocation" column="shelf_location" jdbcType="VARCHAR"/>
<result property="shelfId" column="shelf_id" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,org_id,type_id,
size_id,location_id,location_type,
epc,flag,create_time,
update_time,update_user,create_user,
location_state,shelf_location,shelf_id
</sql>
</mapper>
......@@ -71,7 +71,7 @@ public class FlowTaskController {
}
@ApiOperation("通过流程实例查看审批记录")
@PostMapping("record")
@PostMapping("/record")
public ApiRes<RecordVO> record(@RequestBody HandleDataDTO handleDataDTO) {
return FlowTaskService.record(handleDataDTO.getProcessInstanceId());
......
......@@ -37,6 +37,8 @@ import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.message.api.MessageApi;
import com.junmp.v2.message.api.bean.req.MessageReq;
import com.junmp.v2.message.api.bean.req.MessageSendReq;
import com.junmp.v2.message.api.bean.res.MessageRes;
import com.junmp.v2.message.api.enums.MsgReadStateEnum;
import com.junmp.v2.sys.user.entity.SysUser;
import com.junmp.v2.sys.user.service.SysUserService;
import lombok.extern.slf4j.Slf4j;
......@@ -137,6 +139,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskService.createAttachment("option", taskId, task.getProcessInstanceId(), attachment.getName(), attachment.getName(), attachment.getUrl());
}
}
taskService.complete(task.getId());
HistoricTaskInstance historicTask = historyService
.createHistoricTaskInstanceQuery()
......@@ -168,6 +171,21 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
// }
// }
}
//点击后消除已读消息,暂时不用,依赖前端处理
MessageReq reqmsg=new MessageReq();
reqmsg.setBizId(Long.valueOf(processInstanceId));
reqmsg.setReceiveUserId(StartUser.getUserId());
reqmsg.setReadFlag(0);
List<MessageRes> msgRes= messageApi.queryList(reqmsg);
if (msgRes.size()>0)
{
// 使用流将 id 取出,并用逗号拼接成字符串
String ids = msgRes.stream()
.map(MessageRes::getMsgId)
.map(String::valueOf) // 将 id 转换为字符串
.collect(Collectors.joining(","));
messageApi.batchReadFlagByMessageIds(ids, MsgReadStateEnum.READ);
}
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,ReturnMsg.PASS);
}
......@@ -218,8 +236,24 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
}
//点击后消除已读消息,暂时不用,依赖前端处理
//拒绝后同层的人员的信息进行已读装备
MessageReq reqmsg=new MessageReq();
reqmsg.setBizId(Long.valueOf(task.getProcessInstanceId()));
reqmsg.setReceiveUserId(StartUser.getUserId());
reqmsg.setReadFlag(0);
List<MessageRes> msgRes= messageApi.queryList(reqmsg);
if (msgRes.size()>0)
{
// 使用流将 id 取出,并用逗号拼接成字符串
String ids = msgRes.stream()
.map(MessageRes::getMsgId)
.map(String::valueOf) // 将 id 转换为字符串
.collect(Collectors.joining(","));
messageApi.batchReadFlagByMessageIds(ids, MsgReadStateEnum.READ);
}
//消息推送
//消息推送(推送给发起人)
MessageSendReq sendReq = new MessageSendReq();
Process mainProcess = repositoryService.getBpmnModel(task.getProcessDefinitionId()).getMainProcess();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables().processInstanceId(task.getProcessInstanceId()).singleResult();
......@@ -227,7 +261,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
UserInfo user= JSONObject.parseObject(startUser, UserInfo.class);
String Types= MapUtil.getStr(processInstance.getProcessVariables(),ORDER_TYPE);
sendReq.setReceiveUserIds(String.valueOf(user.getUserId()));
sendReq.setBizId(Long.valueOf(processInstance.getProcessInstanceId()));
// sendReq.setBizId(Long.valueOf(processInstance.getProcessInstanceId()));
sendReq.setMsgTitle("您的审批被驳回");
sendReq.setBizType("refuse/"+Types);
sendReq.setBizId(Long.valueOf(task.getProcessInstanceId()));
......@@ -242,6 +276,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
req1.setReceiveUserId(user.getUserId());
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(startUser,count1);
}else {
runtimeService.deleteProcessInstance(taskId, "拒绝");
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论