Commit ef0d24b6 by 赵剑炜

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

parents fcffbf59 2aeedd0a
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.util.List;
@Data
public class A {
private List<Object[]> a;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.math.BigDecimal;
//存储记账的信息
@Data
public class AccountingDto {
//号型id
private String sizeId;
//类型id
private String typeId;
//单价
private BigDecimal price;
//记账数量
private Integer modifyQuantity;
}
......@@ -43,6 +43,7 @@ public class ReassignmentDto {
*/
private Long orgId;
private String orgName;
/**
* 警员
*/
......
package com.junmp.jyzb.api.bean.query;
import com.junmp.jyzb.api.bean.req.FormEqsReq;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
//警员调岗
@Data
public class PoliceReassignmentReq {
//调岗警员id
@NotBlank(message = "警员id不能为空",groups = {ValidationApi.edit.class})
private String id;
//目标组织机构id
@NotNull(message = "目标组织机构id不能为空",groups = {ValidationApi.edit.class})
private Long goalOrgId;
//需要带走的装备信息列表
private List<FormEqsReq> eqsReqList;
//调岗原因
private String note;
//工作流id
}
package com.junmp.jyzb.api.bean.query.ProcessReq;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class PoliceEquipmentReq {
/**
* 主键
*/
private String id;
/**
* 警员ID
*/
private String policeId;
private String policeName;
/**
* 装备号型id
*/
private String sizeId;
/**
*装备号型名称
*/
private String sizeName;
/**
* 装备类型id
*/
private String typeId;
/**
*装备类型名称
*/
private String typeName;
/**
* 装备数量
*/
private Integer num;
/**
* 组织机构ID
*/
private Long orgId;
//装备单价
private BigDecimal price;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建时间
*/
private Date createTime;
private List<PoliceEquipmentReq> list;
}
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
//警员调岗
@Data
@EqualsAndHashCode(callSuper = true)
public class QueryReassignmentReq extends BaseRequest {
/**
* id
*/
private String id;
/**
* 经办人
*/
private String userId;
/**
* 工作流id
*/
private String processDefinitionId;
/**
* 调岗警员id
*/
private String policeId;
/**
* 调岗警员姓名
*/
private String policeName;
/**
* 警员带走装备
*/
private String eqsList;
/**
* 组织机构id(警员原组织机构id)
*/
private Long orgId;
private String orgName;
/**
* 警员编号
*/
private String policeCode;
/**
* 调岗原因
*/
private String note;
/**
* 审核状态(none未接入工作流,working审批中,finished审批完成)
*/
private String examineState;
/**
* 申请时间
*/
private Date applyTime;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新人员
*/
private String updateUser;
/**
* 排序规则
*/
private String order;
/**
* 排序字段
*/
private String column;
}
......@@ -38,7 +38,6 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
/**
* 单据业务类型
*/
// @IsDateTime(format = "yyyy-MM-dd HH:mm:ss", message = "字段必须是有效的日期或时间")
private String bussinessType;
/**
* 订单号
......
......@@ -44,6 +44,8 @@ public class UpdateReassignmentReq extends BaseRequest {
*/
private Long orgId;
private String orgName;
/**
* 警员编号
*/
......@@ -58,15 +60,11 @@ public class UpdateReassignmentReq extends BaseRequest {
* 审核状态(none未接入工作流,working审批中,finished审批完成)
*/
private String examineState;
/**
* 开始时间
* 申请时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
private Date applyTime;
/**
* 创建时间
*/
......@@ -87,12 +85,4 @@ public class UpdateReassignmentReq extends BaseRequest {
*/
private String updateUser;
/**
* 排序规则
*/
private String order;
/**
* 排序字段
*/
private String column;
}
......@@ -35,8 +35,7 @@ public class OutAndInboundController {
@Resource
public LogSummaryService logSummaryService;
@Resource
private InventorySummaryService inventorySummaryService;
@Resource
......@@ -71,8 +70,8 @@ public class OutAndInboundController {
}
@PostMapping("/OutInRecords")
public ApiRes<Boolean> OutInRecords(@RequestBody RabbitMqOrderReq req){
return ApiRes.success(inventorySummaryService.processInventoryRecords(req));
public ApiRes<Boolean> OutInRecords(@RequestBody OutInLogsReq req){
return ApiRes.success(logSummaryService.processInventoryRecords(req));
}
}
......@@ -4,8 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.dto.PolicemanDto;
import com.junmp.jyzb.api.bean.dto.ReassignmentDto;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PoliceReassignmentReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.query.QueryReassignmentReq;
import com.junmp.jyzb.api.bean.req.UpdatePolicemanReq;
import com.junmp.jyzb.api.bean.req.UpdateReassignmentReq;
import com.junmp.jyzb.entity.EquipmentSize;
......@@ -194,13 +194,6 @@ public class PoliceController {
return ApiRes.success(policemanService.UpdatePoliceInfo(req));
}
//获取警员的装备信息
@PostMapping("/GetPoliceEquipment")
@ApiOperation("获取警员装备信息")
public ApiRes<PageResult<PoliceEquipment>> GetPoliceEqs(@RequestBody PolicemanReq req){
return ApiRes.success(policemanService.GetPoliceEqs(req));
}
//将警员和user一一对应并且关系表也一一对应
@PostMapping("/UpdatePoliceUser")
@ApiOperation("将警员关系一一对应")
......@@ -217,7 +210,7 @@ public class PoliceController {
@PostMapping("/ShowReassignmentPage")
@ApiOperation("查看警员调岗申请单")
public ApiRes<PageResult<ReassignmentDto>> ShowReassignmentPage(@RequestBody UpdateReassignmentReq req){
public ApiRes<PageResult<ReassignmentDto>> ShowReassignmentPage(@RequestBody QueryReassignmentReq req){
return ApiRes.success(policemanService.ShowReassignmentPage(req));
}
......@@ -227,4 +220,12 @@ public class PoliceController {
return ApiRes.success(policemanService.changePoliceOrg(req));
}
//获取警员的装备信息
@PostMapping("/GetPoliceEquipment")
@ApiOperation("获取警员装备信息")
public ApiRes<List<PoliceEquipment>> GetPoliceEqs(@RequestBody QueryReassignmentReq req){
return ApiRes.success(policemanService.GetPoliceEqs(req));
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.dto.A;
import com.junmp.jyzb.api.bean.query.ProcessReq.PoliceEquipmentReq;
import com.junmp.jyzb.api.bean.query.TestReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.PoliceEquipment;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.PoliceEquipmentService;
import com.junmp.jyzb.service.TestService;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.ApiOperation;
import liquibase.pro.packaged.B;
import com.junmp.v2.common.util.BeanPlusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@Slf4j
......@@ -31,6 +32,9 @@ public class TestController {
private InventorySummaryService inventorySummaryService;
@Resource
private PoliceEquipmentService policeEquipmentService;
@Resource
private RabbitAdmin rabbitAdmin;
@RequestMapping("/hello")
public ResponseResult Hello(){
......@@ -42,10 +46,6 @@ public class TestController {
// return ApiRes.success(testService.test(req));
// }
@PostMapping("/test")
public ApiRes<Boolean> test(@RequestBody RabbitMqOrderReq req){
return ApiRes.success(inventorySummaryService.processInventoryRecords(req));
}
@PostMapping("/hasConsumers")
public ApiRes<Boolean> hasConsumers(@RequestBody TestReq req){
......@@ -54,9 +54,13 @@ public class TestController {
return ApiRes.success(execute>0L);
}
@PostMapping("/selectByItem")
public ApiRes<List<InventorySummary>> selectByItem(@RequestBody A a){
return ApiRes.success(inventorySummaryService.selectByItems(a.getA()));
@PostMapping("addPoliceEqs")
public ApiRes<Boolean> addPoliceEqs(@RequestBody PoliceEquipmentReq req){
List<PoliceEquipment> collect = req.getList().stream().map(policeEquipmentReq -> {
PoliceEquipment policeEquipment = new PoliceEquipment();
BeanPlusUtil.copyProperties(policeEquipmentReq, policeEquipment);
return policeEquipment;
}).collect(Collectors.toList());
return ApiRes.success(policeEquipmentService.saveBatch(collect));
}
}
......@@ -5,6 +5,7 @@ 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 io.swagger.annotations.ApiModelProperty;
......@@ -31,6 +32,9 @@ public class PoliceEquipment implements Serializable {
@TableField("police_id")
private String policeId;
@TableField("police_name")
private String policeName;
/**
* 装备号型id
*/
......@@ -67,6 +71,10 @@ public class PoliceEquipment implements Serializable {
@TableField("org_id")
private Long orgId;
//装备单价
@TableField("price")
private BigDecimal price;
/**
* 更新时间
*/
......
......@@ -55,6 +55,9 @@ public class Reassignment implements Serializable {
@TableField(value = "org_id")
private Long orgId;
@TableField(value = "org_name")
private String orgName;
/**
* 警员
*/
......
......@@ -107,7 +107,7 @@ import java.util.stream.Collectors;
busForm.setExamineState("finished");
busFormService.updateById(busForm);
}
if (Type.equals("reassigment")){//调岗
if (Type.equals("reassigment")){//调岗申请单
Reassignment one = reassignmentService.getOne(new LambdaQueryWrapper<Reassignment>()
.eq(Reassignment::getProcessId, processInstanceId));
UpdateReassignmentReq updateReassignmentReq = new UpdateReassignmentReq();
......
......@@ -35,5 +35,7 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
List<InventorySummary> selectByEqs(@Param("orgId") Long orgId);
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
List<InventorySummary> selectByItems(@Param("list") List<Object[]> searchCriteria);
}
\ No newline at end of file
package com.junmp.jyzb.rabbitmq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.service.InventorySummaryService;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
/**
* 装备出入库消息的监听
*/
@Component
public class OrderMQReceiver {
@Resource
private InventorySummaryService inventorySummaryService;
@RabbitListener(queues = "11111")//监听队列名
private void a(RabbitMqOrderReq req, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag){
try {
System.out.println("req = " + req);
//将消息进行消费
Boolean result = inventorySummaryService.processInventoryRecords(req);
if (result){
// 手动确认消息
channel.basicAck(deliveryTag, false);
}else {
channel.basicNack(deliveryTag, false, true);
}
// 手动确认消息
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
try {
channel.basicNack(deliveryTag, false, true);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
}
......@@ -22,8 +22,6 @@ public interface InventorySummaryService extends IService<InventorySummary> {
//根据条件查询装备汇总信息,用于出库单的选择装备
List<InventorySumDto> GetInventorySumInfo(InventorySumReq req);
//处理本地主机返回单据结果
Boolean processInventoryRecords(RabbitMqOrderReq req);
//对summary表中数据进行重新计算装备信息汇总
Boolean updateSummaryInsByOrder(Long orgId);
......@@ -36,6 +34,7 @@ public interface InventorySummaryService extends IService<InventorySummary> {
//计算装备总数(装备数量数据统计)
List<InventorySummary> EquipmentStatistics(InventorySumReq req);
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
List<InventorySummary> selectByItems(List<Object[]> searchCriteria);
}
......@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.PolicemanDto;
import com.junmp.jyzb.api.bean.dto.ReassignmentDto;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PoliceReassignmentReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.query.QueryReassignmentReq;
import com.junmp.jyzb.api.bean.req.UpdatePolicemanReq;
import com.junmp.jyzb.api.bean.req.UpdateReassignmentReq;
import com.junmp.jyzb.entity.PoliceEquipment;
......@@ -72,11 +72,11 @@ public interface PolicemanService extends IService<Policeman> {
//删除账号时同时对警员的信息进行更改操作
boolean UpdatePoliceInfo(UserOrgReq req);
//警员调岗
//警员调岗(业务过程)
boolean changePoliceOrg(UpdateReassignmentReq req);
//获取警员的装备信息
PageResult<PoliceEquipment> GetPoliceEqs(PolicemanReq req);
List<PoliceEquipment> GetPoliceEqs(QueryReassignmentReq req);
//警员调岗业务逻辑
boolean UpdatePoliceUser();
......@@ -85,7 +85,7 @@ public interface PolicemanService extends IService<Policeman> {
String PoliceReassignment(UpdateReassignmentReq req);
//查看警员调岗申请单
PageResult<ReassignmentDto> ShowReassignmentPage(UpdateReassignmentReq req);
PageResult<ReassignmentDto> ShowReassignmentPage(QueryReassignmentReq req);
////查询组织机构下的用户以及角色信息(也可以根据别的查询条件查询)
PageResult<SysUserDto> ShowUserRole(SysUserReq req);
......
......@@ -292,7 +292,6 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
* @param req
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateCabinetInfo(UpdateCabinetReq req) {
//查询传入的组织机构id是否存在
......@@ -371,7 +370,6 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean ChangeCabinetState(UpdateCabinetReq req) {
//查询单警柜是否存在
CabinetExist(req.getId());
......@@ -407,7 +405,6 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
//设置单警柜库存数量信息
@Override
@Transactional(rollbackFor = Exception.class)
public boolean SetInventoryInfo(String id) {
//统计单警柜总数,在库总数,出库总数,装备总价格
cabinetMapper.SetInventoryInfo(id);
......
......@@ -72,7 +72,6 @@ public class DestoryUnitServiceImpl extends ServiceImpl<DestoryUnitMapper, Desto
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delDestoryUnit(DestoryUnitReq req) {
//抛出异常,销毁、报废单位未选中
if (req.getDeleteList().size()==0){
......
......@@ -126,7 +126,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override
@Transactional(rollbackFor = Exception.class)
public boolean setInventoryMsg(){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
......@@ -169,7 +168,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//装备绑定箱门
@Override
@Transactional(rollbackFor = Exception.class)
public boolean InventoryBind(EquipmentBindReq req) {
//判断箱门是否存在
CabinetBox cabinetBox = cabinetBoxService.CabinetBoxExist(req.getCabinetBoxId());
......@@ -323,7 +321,9 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
inventoryDto.setOrgName(orgName);
//查询图片并返回
String photo = equipmentSizeService.getById(inventory.getSizeId()).getPhoto();
if (photo != null){
inventoryDto.setPhoto(photo);
}
return inventoryDto;
}).collect(Collectors.toList());
Page<InventoryDto> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
......@@ -572,7 +572,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
String typeName = equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
.eq(EquipmentType::getId, typeId)).getName();
//如果有供应商id的前提下,设置supplierName
if (ObjectUtil.isNotNull(supplierId)){
if (ObjectUtil.isNotNull(supplierId) && !supplierId.trim().isEmpty()){
String supplierName = supplierService.getOne(new LambdaQueryWrapper<Supplier>()
.eq(Supplier::getId, supplierId)).getName();
map.put("supplierName",supplierName);
......
......@@ -127,281 +127,8 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
return inventorySummaryMapper.GetInventorySumInfo(req);
}
//处理本地主机返回单据结果
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean processInventoryRecords(RabbitMqOrderReq req) {
//新增列表
List<Inventory> addList = new ArrayList<>();
//更新列表
List<Inventory> updateList = new ArrayList<>();
boolean c;
//将主单据信息复制进行更新
if (ObjectUtil.isNotNull(req.getOrderMain()) && ObjectUtil.isNotNull(req.getOrderDetail())){
OrderMain orderMain = new OrderMain();
BeanPlusUtil.copyProperties(req.getOrderMain(),orderMain);
orderMainService.updateById(orderMain);
//将子单据信息复制进行更新
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(req.getOrderDetail(),orderDetail);
orderDetailService.updateById(orderDetail);
//出库out,入库in
String orderType=orderMain.getOrderType();
//组织机构
Long orgId;
if (orderType.equals("in")){
orgId=orderMain.getEndOrgId();
}else {
orgId=orderMain.getStartOrgId();
}
//将具体Epc进行处理(判断装备是否具有id,如果没有id表示新增一条数据在数据库中--采购)
req.getInventoryReqList().forEach(inventoryReq -> {
Inventory inventory = new Inventory();
BeanPlusUtil.copyProperties(inventoryReq,inventory);
inventory.setOrgId(orgId);
//新增装备
if (ObjectUtil.isNull(inventory.getId() ) || inventory.getId().trim().isEmpty()){
//修改状态
inventory.setId(UUID.randomUUID().toString());
inventory.setLocationState(orderMain.getOrderType());
inventory.setBussinessState("normal");
inventory.setState("normal");
inventory.setLostFlag(0);
addList.add(inventory);
}else {
//修改状态
inventory.setLocationState(orderMain.getOrderType());
//修改业务状态
if (orderType.equals("in")){
inventory.setBussinessState("normal");
inventory.setState("normal");
}else if (orderType.equals("out") && orderMain.getBussinessType().equals("repair")){
inventory.setBussinessState(orderMain.getBussinessType());
inventory.setState("fix");
}else if (orderType.equals("out") && orderMain.getBussinessType().equals("remove")){
inventory.setBussinessState(orderMain.getBussinessType());
inventory.setState("destory");
}else {
inventory.setBussinessState(orderMain.getBussinessType());
inventory.setState("normal");
}
updateList.add(inventory);
}
});
c = insertLog(req,orderMain,addList,updateList);
}else {
////对装备表进行更新或者添加
String outInState =req.getInventoryReqList().get(0).getLocationState();
Long orgId=req.getInventoryReqList().get(0).getOrgId();
//将具体Epc进行处理(判断装备是否具有id,如果没有id表示新增一条数据在数据库中--采购)
req.getInventoryReqList().forEach(inventoryReq -> {
Inventory inventory = new Inventory();
BeanPlusUtil.copyProperties(inventoryReq,inventory);
//新增装备
if (ObjectUtil.isNull(inventory.getId() ) || inventory.getId().trim().isEmpty()){
//修改状态
inventory.setId(UUID.randomUUID().toString());
inventory.setBussinessState("normal");
inventory.setState("normal");
inventory.setLostFlag(0);
addList.add(inventory);
}else {
updateList.add(inventory);
}
});
//对装备进行记录,存入log表形成出入库记录
c = insertLogWithOutOrder(req,addList,updateList,orgId,outInState);
}
boolean b=false;
if (ObjectUtil.isNotNull(addList) && addList.size()>0){
b = inventoryService.saveBatch(addList);
}
if (ObjectUtil.isNotNull(updateList) && updateList.size()>0){
b = inventoryService.updateBatchById(updateList);
}
return (b && c );
}
//对装备进行记录,存入log表形成出入库记录
@Transactional(rollbackFor = Exception.class)
public Boolean insertLog(RabbitMqOrderReq req,OrderMain orderMain,List<Inventory> addList,List<Inventory> updateList ){
//插入log_summary
LogSummary logSummary = new LogSummary();
logSummary.setDevice(req.getDevice());
logSummary.setDeviceType(req.getDeviceType());
logSummary.setLocationType(0);
logSummary.setUserName(req.getUserName());
logSummary.setUseTime(req.getUseTime());
if (orderMain.getOrderType().equals("in")){
logSummary.setOutInState("in");
logSummary.setOrgId(orderMain.getEndOrgId());
logSummary.setOrgName(orderMain.getEndOrgName());
}else {
logSummary.setOutInState("out");
logSummary.setOrgId(orderMain.getStartOrgId());
logSummary.setOrgName(orderMain.getStartOrgName());
}
logSummary.setOrderMainId(orderMain.getId());
logSummary.setOrderCode(orderMain.getOrderCode());
logSummary.setBussinessType(orderMain.getBussinessType());
boolean a = logSummaryService.save(logSummary);
//存入log_detail表中
List<LogDetail> logDetailList=new ArrayList<>();
List<String> eqsList=new ArrayList<>();
//判断是哪个列表不为空,进行出入库记录
if (addList.size()!=0 && ObjectUtil.isNotNull(addList)){
for (Inventory inventory:addList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setEquipmentType(0);
logDetail.setInventoryId(inventory.getId());
logDetail.setBussinessType(orderMain.getBussinessType());
logDetail.setOutInState(orderMain.getOrderType());
logDetail.setSummaryId(logSummary.getId());
logDetail.setErrorState(0);
logDetailList.add(logDetail);
//创建一个列表用于存入装备list
if (eqsList.size()==0){
eqsList.add(inventory.getTypeName());
}
boolean flag=false;
for (String eqsName:eqsList ) {
if (eqsName.equals(inventory.getTypeName())){
flag=true;
break;
}
}
if (!flag){
eqsList.add(inventory.getTypeName());
}
logSummary.setCreateTime(inventory.getCreateTime());
}
}
if (updateList.size()!=0 && ObjectUtil.isNotNull(updateList)){
for (Inventory inventory:updateList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setEquipmentType(0);
logDetail.setInventoryId(inventory.getId());
logDetail.setBussinessType(orderMain.getBussinessType());
logDetail.setOutInState(orderMain.getOrderType());
logDetail.setSummaryId(logSummary.getId());
logDetail.setErrorState(0);
logDetailList.add(logDetail);
if (eqsList.size()==0){
eqsList.add(inventory.getTypeName());
}
boolean flag=false;
for (String eqsName:eqsList ) {
if (eqsName.equals(inventory.getTypeName())){
flag=true;
break;
}
}
if (!flag){
eqsList.add(inventory.getTypeName());
}
logSummary.setCreateTime(inventory.getCreateTime());
}
}
String equipmentList = String.join("/", eqsList);
logSummary.setEquipmentList(equipmentList);
logSummaryService.updateById(logSummary);
boolean b = logDetailService.saveBatch(logDetailList);
return (a && b);
}
@Transactional(rollbackFor = Exception.class)
public Boolean insertLogWithOutOrder(RabbitMqOrderReq req,List<Inventory> addList,List<Inventory> updateList,Long orgId ,String outInState){
//插入log_summary
LogSummary logSummary = new LogSummary();
logSummary.setDevice(req.getDevice());
logSummary.setDeviceType(req.getDeviceType());
logSummary.setLocationType(0);
logSummary.setOrgId(orgId);
logSummary.setUserName(req.getUserName());
logSummary.setUseTime(req.getUseTime());
logSummary.setOutInState(outInState);
logSummary.setBussinessType("normal");
boolean a = logSummaryService.save(logSummary);
//存入log_detail表中
List<LogDetail> logDetailList=new ArrayList<>();
List<String> eqsList=new ArrayList<>();
//判断是哪个列表不为空,进行出入库记录
if (addList.size()!=0 && ObjectUtil.isNotNull(addList)){
for (Inventory inventory:addList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setEquipmentType(0);
logDetail.setInventoryId(inventory.getId());
logDetail.setBussinessType("normal");
logDetail.setOutInState(inventory.getLocationState());
logDetail.setSummaryId(logSummary.getId());
logDetail.setErrorState(0);
logDetailList.add(logDetail);
//创建一个列表用于存入装备list
if (eqsList.size()==0){
eqsList.add(inventory.getTypeName());
}
boolean flag=false;
for (String eqsName:eqsList ) {
if (eqsName.equals(inventory.getTypeName())){
flag=true;
break;
}
}
if (!flag){
eqsList.add(inventory.getTypeName());
}
logSummary.setCreateTime(inventory.getCreateTime());
}
}
if (updateList.size()!=0 && ObjectUtil.isNotNull(updateList)){
for (Inventory inventory:updateList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setEquipmentType(0);
logDetail.setInventoryId(inventory.getId());
logDetail.setBussinessType("normal");
logDetail.setOutInState(inventory.getLocationState());
logDetail.setSummaryId(logSummary.getId());
logDetail.setErrorState(0);
logDetailList.add(logDetail);
//创建一个列表用于存入装备list
if (eqsList.size()==0){
eqsList.add(inventory.getTypeName());
}
boolean flag=false;
for (String eqsName:eqsList ) {
if (eqsName.equals(inventory.getTypeName())){
flag=true;
break;
}
}
if (!flag){
eqsList.add(inventory.getTypeName());
}
logSummary.setCreateTime(inventory.getCreateTime());
}
}
String equipmentList = String.join("/", eqsList);
logSummary.setEquipmentList(equipmentList);
logSummaryService.updateById(logSummary);
boolean b = logDetailService.saveBatch(logDetailList);
return (a && b);
}
//对summary表中数据进行重新计算装备信息汇总
public Boolean updateSummaryInsByOrder(Long orgId){
......@@ -513,13 +240,15 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
return inventorySummaryList;
}
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
@Override
public List<InventorySummary> selectByItems(List<Object[]> searchCriteria) {
return inventorySummaryMapper.selectByItems(searchCriteria);
}
private LambdaQueryWrapper<InventorySummary> createWrapper(InventorySumReq req) {
LambdaQueryWrapper<InventorySummary> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
......
......@@ -112,6 +112,8 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
List<OrderDetail> collect = orderDetailList.stream().map(detailOrderReq -> {
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(detailOrderReq, orderDetail);
//记账数量默认时识别数量
orderDetail.setModifyQuantity(detailOrderReq.getActualNum());
return orderDetail;
}).collect(Collectors.toList());
c=orderDetailService.updateBatchById(collect);
......@@ -130,7 +132,6 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
}
//对库存汇总表进行更新(只限于日常出入库)
@Transactional(rollbackFor = Exception.class)
public boolean updateNumToSum(String outInState,List<NormalInOutDto> inventorySumDtos,String OutInState) {
List<NormalInOutDto> groupedResult = inventorySumDtos.stream()
......@@ -152,7 +153,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
List<Object[]> searchCriteria = new ArrayList<>();
for (NormalInOutDto groupedDto : groupedResult) {
Object[] criteria = new Object[]{groupedDto.getOrgId(), groupedDto.getLocationId(),
groupedDto.getSizeId(), groupedDto.getTypeId(), groupedDto.getPrice()};
groupedDto.getTypeId(),groupedDto.getSizeId(), groupedDto.getPrice()};
searchCriteria.add(criteria);
}
//满足条件的数据
......@@ -194,10 +195,6 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
inventorySummary.setOutboundNumber(0);
inventorySummary.setUseNumber(0);
inventorySummary.setStockNumber(outDto.getNumber());
}else {
inventorySummary.setOutboundNumber(0);
inventorySummary.setUseNumber(outDto.getNumber());
inventorySummary.setStockNumber(outDto.getNumber());
}
addList.add(inventorySummary);
}
......@@ -215,7 +212,6 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
}
//对出入库记录进行存储
@Transactional(rollbackFor = Exception.class)
public List<NormalInOutDto> saveInOutRecords(OutInLogsReq req) {
//返回结果,用于日常出入库时计算更新库存汇总表
List<NormalInOutDto> returnList=new ArrayList<>();
......
......@@ -69,7 +69,6 @@ public class ManufacturerServiceImpl extends ServiceImpl<ManufacturerMapper, Man
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delManufacturer(ManufacturerReq req) {
//抛出异常,生产厂商未选中
if (req.getDeleteList().size()==0){
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -153,31 +154,20 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//执行工作流
if (req.getExamineState().equals("working"))
{
// UpdateOrderReq updateOrderReq = new UpdateOrderReq();
// BeanPlusUtil.copyProperties(order,updateOrderReq);
// List<UpdateOrderDetailReq> collect = detailList.stream().map(orderDetail -> {
// UpdateOrderDetailReq updateOrderDetailReq = new UpdateOrderDetailReq();
// BeanPlusUtil.copyProperties(orderDetail, updateOrderDetailReq);
// return updateOrderDetailReq;
// }).collect(Collectors.toList());
// updateOrderReq.setDetailList(collect);
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
// startProcessInstanceDTO.setFormData( (JSONObject) JSONObject.toJSON(updateOrderReq));
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
order.setProcessId(ProcessInstanceId);
}
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty()){
boolean b = updateById(order);
System.out.println("b = " + b);
updateById(order);
}else {
//保存
boolean save = this.save(order);
System.out.println(save);
this.save(order);
}
//list返回数据
List<String> list=new ArrayList<>();
......@@ -465,47 +455,57 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//获取所有数据库的子单据id
Set<Long> existingIds = list.stream().map(OrderDetail::getId).collect(Collectors.toSet());
//创建一个操作记录(用于在记账log表中记录)
StringBuilder stringBuilder = new StringBuilder();
// StringBuilder stringBuilder = new StringBuilder();
//存放更新数据库中的子单据
List<OrderDetail> orderDetailList=new ArrayList<>();
//创建一个列表用于修改summary数据库表中数据。
List<UpdateOrderDetailReq> orderDetailReqList=new ArrayList<>();
List<AccountingDto> accountingDtoList=new ArrayList<>();
//比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常
if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){
for (UpdateOrderDetailReq uploadDetailReq : reqList) {
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail);
//获取修改后的数量并且记录(如果modifyQuantity不为空表示该子单据进行了修改)
if (ObjectUtil.isNotNull(uploadDetailReq.getModifyQuantity())){
String log = "将"+uploadDetailReq.getTypeName()+"号型为"+
uploadDetailReq.getSizeName()+"单价为"+uploadDetailReq.getPrice()+"的物资数量记为"+uploadDetailReq.getModifyQuantity()+";";
stringBuilder.append(log);
//获取修改后的数量并且记录(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);
//修改单子数量数据,价格
orderDetail.setActualNum(uploadDetailReq.getModifyQuantity());
orderDetail.setModifyQuantity(uploadDetailReq.getModifyQuantity());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
orderDetailList.add(orderDetail);
orderDetailReqList.add(uploadDetailReq);
//修改后数量
updateQuantity+=uploadDetailReq.getModifyQuantity();
priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getModifyQuantity()).multiply(uploadDetailReq.getPrice()));
}else { //表示根据应入库数量进行记账
//修改后数量
updateQuantity+=uploadDetailReq.getPlanNum();
priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getPlanNum()).multiply(uploadDetailReq.getPrice()));
}else {
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR);
}
}
}else {
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR);
}
//批量更新子单据数量
boolean a=false;
if (orderDetailList.size()!=0){
orderDetailService.updateBatchById(orderDetailList);
a = orderDetailService.updateBatchById(orderDetailList);
}
//更新主单据的数量和价格
orderMain.setActualQuantity(updateQuantity);
orderMain.setPrice(priceTotal);
orderMain.setOrderState("finished");
//修改记账状态,0未记账,1已记账
orderMain.setManualState(1);
orderMain.setUpdateTime(DateTimeUtil.getCurrentDateTime());
boolean b = updateById(orderMain);
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
boolean b = saveAccountingLog(req, stringBuilder, updateQuantity);
// boolean b = saveAccountingLog(req, stringBuilder, updateQuantity);
boolean c = saveAccountingLog(req, accountingDtoList, updateQuantity);
//修改装备汇总表中的数据 inventory_summary
Long orgId;
......@@ -515,19 +515,15 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
else {
orgId=orderMain.getStartOrgId();
}
updateSummaryInfo(req,orderDetailReqList,orgId);
//修改仓库表中的数量汇总信息(warehouse)
// updateWarehouseInfo(req,orderDetailReqList,orgId);
boolean d = updateSummaryInfo(req, orderDetailReqList, orgId);
//更新主单据的数量和价格
orderMain.setActualQuantity(updateQuantity);
orderMain.setPrice(priceTotal);
orderMain.setOrderState("finished");
//修改记账状态,0未记账,1已记账
orderMain.setManualState(1);
orderMain.setUpdateTime(DateTimeUtil.getCurrentDateTime());
//如果是领用,警员绑定装备
boolean e = policeBindEqs(req, reqList, orgId);
//更新主单据
return (a && b && c && d && e);
}
public boolean policeBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> reqList,Long orgId){
//如果是领用出库,那记账结束以后将装备挂到警员名下(存储到policemanEquipment表中)
if (req.getBussinessType().equals("use")){
List<PoliceEquipment> collect1 = reqList.stream().map(updateOrderDetailReq -> {
......@@ -542,19 +538,20 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
policeEquipment.setCreateTime(DateTimeUtil.getCurrentDateTime());
return policeEquipment;
}).collect(Collectors.toList());
policeEquipmentService.saveBatch(collect1);
return policeEquipmentService.saveBatch(collect1);
}else {
return true;
}
//更新主单据
return updateById(orderMain);
}
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
public boolean saveAccountingLog (UpdateOrderReq req,StringBuilder stringBuilder,Integer updateQuantity){
public boolean saveAccountingLog (UpdateOrderReq req,List<AccountingDto> accountingDtoList,Integer updateQuantity){
OrderLog orderLog = new OrderLog();
BeanPlusUtil.copyProperties(req,orderLog);
orderLog.setId(UUID.randomUUID().toString());
orderLog.setHistoryMsg(stringBuilder.toString());
// orderLog.setHistoryMsg(stringBuilder.toString());
orderLog.setHistoryMsg(JSON.toJSONString(accountingDtoList));
orderLog.setUpdateQuantity(updateQuantity);
if (req.getOrderType().equals("in")){
orderLog.setOrgId(req.getEndOrgId());
......@@ -570,122 +567,72 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//修改装备汇总表中的数据inventory_summary
public void updateSummaryInfo(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId){
// //将库存summary表中数据进行查询出来一一进行比较,如果说sizeId,typeId,warehouseId相同则对该数据进行修改,如果说该数据不存在的话则在summary表中添加一条数据
// List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>()
// .eq(InventorySummary::getOrgId, orgId));
// List<InventorySummary> inventorySummaryList=new ArrayList<>();
// for (UpdateOrderDetailReq updateOrderDetailReq: orderDetailReqList) {
// boolean flag=false;
// for (InventorySummary inventorySummary:list) {
// if (updateOrderDetailReq.getSizeId().equals(inventorySummary.getSizeId())
// && updateOrderDetailReq.getTypeId().equals(inventorySummary.getTypeId())
// && updateOrderDetailReq.getWarehouseId().equals(inventorySummary.getLocationId())){
// inventorySummaryList.add(inventorySummary);
// flag=true;
// break;
// }
// }
// if (!flag){
// InventorySummary inventorySummary = new InventorySummary();
// inventorySummary.setId();
// inventorySummary.setOrgId();
// inventorySummary.setOrgName();
// inventorySummary.setSizeId();
// inventorySummary.setSizeName();
// inventorySummary.setTypeId();
// inventorySummary.setTypeName();
// inventorySummary.set
// inventorySummaryList.add(inventorySummary);
//
// }
// }
//根据遍历该子单据,将summary中的对应数据进行修改
List<InventorySummary> collect = orderDetailReqList.stream()
.map(orderDetailReq -> {
InventorySummary one = inventorySummaryService.getOne(new LambdaQueryWrapper<InventorySummary>()
.eq(InventorySummary::getOrgId, orgId)
.eq(InventorySummary::getSizeId, orderDetailReq.getSizeId())
.eq(InventorySummary::getTypeId, orderDetailReq.getTypeId())
.eq(InventorySummary::getLocationId, orderDetailReq.getWarehouseId())
.eq(InventorySummary::getPrice, orderDetailReq.getPrice()));
//如果one为空,则添加一条数据
if (ObjectUtil.isNull(one)){
//直接开始设置一条数据并且插入到InventorySummary表中
one.setId(UUID.randomUUID().toString());
one.setOrgId(orgId);
one.setOrgName(pubOrgService.getById(orgId).getOrgName());
one.setSizeId(orderDetailReq.getSizeId());
one.setSizeName(orderDetailReq.getSizeName());
one.setTypeId(orderDetailReq.getTypeId());
one.setTypeName(orderDetailReq.getTypeName());
one.setLocationType("0");
one.setLocationId(orderDetailReq.getWarehouseId());
one.setLocationName(orderDetailReq.getWarehouseName());
//如果没记账默认是计划数,如果记账了则是记账数量
if(ObjectUtil.isNotNull(orderDetailReq.getModifyQuantity())){
one.setNumber(orderDetailReq.getModifyQuantity());
one.setStockNumber(orderDetailReq.getModifyQuantity());
}else {
one.setNumber(orderDetailReq.getPlanNum());
one.setStockNumber(orderDetailReq.getPlanNum());
}
one.setUnitPrice(orderDetailReq.getPrice());
one.setPrice(orderDetailReq.getPrice());
one.setOutboundNumber(0);
one.setDestructionNumber(0);
one.setExpireNumber(0);
one.setBrokenNumber(0);
one.setNearBrokenNumber(0);
one.setUseNumber(0);
one.setCreateTime(DateTimeUtil.getCurrentDateTime());
}else {
//判断单据是in还是out,对出库数量和在库数量进行修改(如果是入库,那么只增加在库数量,但是如果是出库,那么需要增加出库数量和减少在库数量)
public boolean updateSummaryInfo(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId){
//将库存summary表中数据进行查询出来一一进行比较,如果说sizeId,typeId,warehouseId相同则对该数据进行修改,如果说该数据不存在的话则在summary表中添加一条数据
List<Object[]> searchCriteria=new ArrayList<>();
for (UpdateOrderDetailReq upReq: orderDetailReqList) {
Object[] criteria=new Object[]{orgId,upReq.getWarehouseId(),upReq.getTypeId(),upReq.getSizeId(),upReq.getPrice()};
searchCriteria.add(criteria);
}
List<InventorySummary> inventorySummaryList = inventorySummaryService.selectByItems(searchCriteria);
List<InventorySummary> addList=new ArrayList<>();
List<InventorySummary> updateList=new ArrayList<>();
for (UpdateOrderDetailReq upReq: orderDetailReqList) {
boolean flag=false;
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){
//修改各种数量和价格
if (req.getOrderType().equals("in")){//入库没有关系
is.setOutboundNumber(is.getOutboundNumber()-upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity());
is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())) );
}else if (req.getOrderType().equals("out") && req.getBussinessType().equals("destruction")){//销毁出库直接减库存,减金额
is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())));
is.setNumber(is.getNumber()-upReq.getModifyQuantity());
is.setDestructionNumber(is.getDestructionNumber()+upReq.getModifyQuantity());
}else {//其他出库就直接正常计算
is.setOutboundNumber(is.getOutboundNumber()+upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()-upReq.getModifyQuantity());
is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())) );
}
updateList.add(is);
flag=true;
break;
}
}
//表示库存中没有,那么插入数据
if (!flag){
InventorySummary inventorySummary = new InventorySummary();
inventorySummary.setUnitPrice(upReq.getPrice());
inventorySummary.setPrice(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice()));
inventorySummary.setBrokenNumber(0);
inventorySummary.setExpireNumber(0);
inventorySummary.setDestructionNumber(0);
inventorySummary.setNearBrokenNumber(0);
inventorySummary.setCreateTime(DateTimeUtil.getCurrentDateTime());
if (req.getOrderType().equals("in")){
//更新数量和总价格,在库数和出库数也需要对应进行修改
//修改的数量和价格
BigDecimal totalPrice = one.getPrice().add(BigDecimal.valueOf(orderDetailReq.getModifyQuantity()).multiply(orderDetailReq.getPrice()));
Integer totalNumber = one.getNumber()+orderDetailReq.getModifyQuantity();
one.setPrice(totalPrice);
one.setNumber(totalNumber);
one.setStockNumber(one.getStockNumber()+orderDetailReq.getModifyQuantity());
}else if(req.getOrderType().equals("out") && req.getBussinessType().equals("destruction")) {//销毁出库
one.setOutboundNumber(one.getOutboundNumber()+orderDetailReq.getModifyQuantity());
}else {
one.setStockNumber(one.getStockNumber()-orderDetailReq.getModifyQuantity());
one.setOutboundNumber(one.getOutboundNumber()+orderDetailReq.getModifyQuantity());
inventorySummary.setOutboundNumber(0);
inventorySummary.setUseNumber(0);
inventorySummary.setStockNumber(upReq.getModifyQuantity());
}
addList.add(inventorySummary);
}
}
return one;
})
.collect(Collectors.toList());
inventorySummaryService.saveOrUpdateBatch(collect);
}
//修改仓库表中的数量汇总信息
public void updateWarehouseInfo(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId){
for (UpdateOrderDetailReq orderDetailReq:orderDetailReqList) {
Warehouse one = warehouseService.getOne(new LambdaQueryWrapper<Warehouse>()
.eq(Warehouse::getOrgId, orgId)
.eq(Warehouse::getId, orderDetailReq.getWarehouseId()));
//修改总数量和总价格,并且判断单据类型来修改出库数量或者在库数量
Integer totalNUmber = one.getSum()-orderDetailReq.getActualNum()+orderDetailReq.getModifyQuantity();
BigDecimal totalPrice = one.getPriceTotal().subtract(BigDecimal.valueOf(orderDetailReq.getActualNum()).multiply(orderDetailReq.getPrice()))
.add(BigDecimal.valueOf(orderDetailReq.getModifyQuantity()).multiply(orderDetailReq.getPrice()));
one.setPriceTotal(totalPrice);
one.setSum(totalNUmber);
//判断单据是in还是out,对出库数量和在库数量进行修改
if (req.getOrderType().equals("in")){
one.setInSum(one.getInSum()-orderDetailReq.getActualNum()+orderDetailReq.getModifyQuantity());
}else {
one.setOutSum(one.getOutSum()-orderDetailReq.getActualNum()+orderDetailReq.getModifyQuantity());
boolean a=true;
if (addList.size()>0){
boolean b = inventorySummaryService.saveBatch(addList);
a = b;
}
warehouseService.updateById(one);
if (updateList.size()>0){
boolean b = inventorySummaryService.updateBatchById(updateList);
a = a && b;
}
return a;
}
/**
* 查看记账列表
* @param req
......
......@@ -18,8 +18,8 @@ import com.junmp.jyzb.api.bean.dto.PolicemanDto;
import com.junmp.jyzb.api.bean.dto.ReassignmentDto;
import com.junmp.jyzb.api.bean.dto.UserRoleDto;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PoliceReassignmentReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.query.QueryReassignmentReq;
import com.junmp.jyzb.api.bean.req.FormEqsReq;
import com.junmp.jyzb.api.bean.req.UpdatePolicemanReq;
import com.junmp.jyzb.api.bean.req.UpdateReassignmentReq;
......@@ -646,12 +646,10 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
//获取警员下面的装备
@Override
public PageResult<PoliceEquipment> GetPoliceEqs(PolicemanReq req) {
public List<PoliceEquipment> GetPoliceEqs(QueryReassignmentReq req) {
LambdaQueryWrapper<PoliceEquipment> eq = new LambdaQueryWrapper<PoliceEquipment>()
.eq(PoliceEquipment::getPoliceId, req.getId());
Page<PoliceEquipment> page = policeEquipmentService
.page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
return PageResultFactory.createPageResult(page);
.eq(PoliceEquipment::getPoliceId, req.getPoliceId());
return policeEquipmentService.list(eq);
}
......@@ -688,8 +686,22 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
//警员调岗申请
@Override
public String PoliceReassignment(UpdateReassignmentReq req) {
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) {
req.setExamineState("none");
} else {
req.setExamineState("working");
}
Reassignment reassignment = new Reassignment();
BeanPlusUtil.copyProperties(req,reassignment);
//先判断该单据id是否存在,如果存在,进行更新操作即可
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty() && ObjectUtil.isEmpty(req.getProcessDefinitionId())){
reassignment.setUpdateTime(DateTimeUtil.getCurrentDateTime());
reassignmentService.updateById(reassignment);
return reassignment.getId();
}
reassignment.setCreateTime(DateTimeUtil.getCurrentDateTime());
reassignmentService.save(reassignment);
//执行工作流
if (req.getExamineState().equals("working"))
......@@ -701,14 +713,15 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
reassignment.setProcessId(ProcessInstanceId);
}
reassignmentService.updateById(reassignment);
}
return reassignment.getId();
}
//查看警员调岗申请单
@Override
public PageResult<ReassignmentDto> ShowReassignmentPage(UpdateReassignmentReq req) {
public PageResult<ReassignmentDto> ShowReassignmentPage(QueryReassignmentReq req) {
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("asc")|| req.getOrder().equalsIgnoreCase("desc")) &&
......@@ -719,8 +732,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
}
LambdaQueryWrapper<Reassignment> eq = new LambdaQueryWrapper<Reassignment>()
.eq(ObjectUtil.isNotNull(req.getOrgId()), Reassignment::getOrgId, req.getOrgId())
// .eq(ObjectUtil.isNotNull(req.getTargetOrgId()), Reassignment::getTargetOrgId, req.getTargetOrgId())
.eq(ObjectUtil.isNotNull(req.getExamineState()), Reassignment::getExamineState, req.getExamineState())
.eq(!req.getExamineState().equals("all"), Reassignment::getExamineState, req.getExamineState())
.like(ObjectUtil.isNotNull(req.getPoliceName()), Reassignment::getPoliceName, req.getPoliceName())
.ge(ObjectUtil.isNotNull(req.getStartTime()), Reassignment::getApplyTime, req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()), Reassignment::getApplyTime, req.getEndTime())
......
......@@ -267,7 +267,7 @@
select * from base_inventory_summary where
<foreach collection="list" item="item" separator="or">
(
org_id_int = ${item[0]} AND location_id = '${item[1]}' AND size_id = '${item[2]}' AND type_id = ${item[3]} AND unit_price = ${item[4]}
org_id_int = ${item[0]} AND location_id = '${item[1]}' AND type_id = ${item[3]} AND size_id = '${item[2]}' AND unit_price = ${item[4]}
)
</foreach>
</select>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论