Commit 538721b9 by 李小惠

记账接口(70%),警员调岗接口(20%),工作流那块有一行代码改掉了,不然我这里报错。

parent 5aebac3f
...@@ -113,3 +113,5 @@ Thumbs.db ...@@ -113,3 +113,5 @@ Thumbs.db
/jyzb-biz/pom.xml /jyzb-biz/pom.xml
/.idea/compiler.xml /.idea/compiler.xml
/jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/UpdateOrderReq.java /jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/UpdateOrderReq.java
/jyzb-boot/src/main/resources/application-local.yml
/jyzb-boot/src/main/resources/application-local.yml
...@@ -7,5 +7,12 @@ ...@@ -7,5 +7,12 @@
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver> <jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://192.168.3.128:3306/db_jyzb?characterEncoding=UTF-8&amp;useUnicode=true&amp;useSSL=false&amp;tinyInt1isBit=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=Asia/Shanghai</jdbc-url> <jdbc-url>jdbc:mysql://192.168.3.128:3306/db_jyzb?characterEncoding=UTF-8&amp;useUnicode=true&amp;useSSL=false&amp;tinyInt1isBit=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=Asia/Shanghai</jdbc-url>
</data-source> </data-source>
<data-source source="LOCAL" name="local" uuid="134b9a70-dbff-479c-9337-8e4869b6525e">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://127.0.0.1:3306/junmp?characterEncoding=UTF-8&amp;useUnicode=true&amp;useSSL=false&amp;tinyInt1isBit=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=Asia/Shanghai</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -27,7 +27,7 @@ public class BusFormDto { ...@@ -27,7 +27,7 @@ public class BusFormDto {
/** /**
* 单据编号 * 单据编号
*/ */
private String orderCode; private String bussinessCode;
/** /**
* 组织机构id * 组织机构id
......
...@@ -22,6 +22,7 @@ public class OrderMainDto implements Serializable { ...@@ -22,6 +22,7 @@ public class OrderMainDto implements Serializable {
//订单编号 //订单编号
private String orderCode; private String orderCode;
private String bussinessCode;
//发物单位 //发物单位
private Long startOrgId; private Long startOrgId;
......
...@@ -48,6 +48,8 @@ public class OrderDetailReq extends BaseRequest { ...@@ -48,6 +48,8 @@ public class OrderDetailReq extends BaseRequest {
private String updateUser; private String updateUser;
private String warehouseId;
/** /**
* 修改后数量 * 修改后数量
*/ */
......
...@@ -24,6 +24,7 @@ public class OrderMainReq extends BaseRequest { ...@@ -24,6 +24,7 @@ public class OrderMainReq extends BaseRequest {
private String bussinessType; private String bussinessType;
private String orderCode; private String orderCode;
private String bussinessCode;
private Long startOrgId; private Long startOrgId;
......
...@@ -10,7 +10,7 @@ import java.math.BigDecimal; ...@@ -10,7 +10,7 @@ import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
* *单据状态上报请求实体类
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
......
...@@ -21,4 +21,8 @@ public class PoliceReassignmentReq { ...@@ -21,4 +21,8 @@ public class PoliceReassignmentReq {
//需要带走的装备信息列表 //需要带走的装备信息列表
private List<FormEqsReq> eqsReqList; private List<FormEqsReq> eqsReqList;
//调岗原因
private String note;
//工作流id
} }
...@@ -31,7 +31,7 @@ public class QueryBusFormReq extends BaseRequest { ...@@ -31,7 +31,7 @@ public class QueryBusFormReq extends BaseRequest {
/** /**
* 单据编号 * 单据编号
*/ */
private String orderCode; private String bussinessCode;
/** /**
* 组织机构id * 组织机构id
......
...@@ -9,6 +9,9 @@ import lombok.EqualsAndHashCode; ...@@ -9,6 +9,9 @@ import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/**
* 个人装备移交、报废、维修的子单据请求实体类
*/
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class BaseOrderItemReq extends BaseRequest { public class BaseOrderItemReq extends BaseRequest {
......
...@@ -11,6 +11,9 @@ import java.math.BigDecimal; ...@@ -11,6 +11,9 @@ import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 个人装备移交、报废、维修请求实体类
*/
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class BaseOrderReq extends BaseRequest { public class BaseOrderReq extends BaseRequest {
......
...@@ -7,6 +7,9 @@ import java.math.BigDecimal; ...@@ -7,6 +7,9 @@ import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 装备批量信息修改的请求实体类
*/
@Data @Data
public class BatchEditingInvsReq { public class BatchEditingInvsReq {
/** /**
......
...@@ -5,6 +5,9 @@ import lombok.Data; ...@@ -5,6 +5,9 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
/**
* 记账时的子单据请求实体类
*/
@Data @Data
public class DetailListReq implements Serializable { public class DetailListReq implements Serializable {
/** /**
......
...@@ -9,6 +9,9 @@ import javax.validation.constraints.NotBlank; ...@@ -9,6 +9,9 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
/**
* 装备绑定箱门请求实体类
*/
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class EquipmentBindReq extends BaseRequest { public class EquipmentBindReq extends BaseRequest {
......
...@@ -7,6 +7,9 @@ import javax.validation.constraints.NotBlank; ...@@ -7,6 +7,9 @@ import javax.validation.constraints.NotBlank;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 生产厂商请求实体类
*/
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class ManufacturerReq extends BaseRequest { public class ManufacturerReq extends BaseRequest {
......
...@@ -18,10 +18,11 @@ public class UpdateBusFormReq extends BaseRequest { ...@@ -18,10 +18,11 @@ public class UpdateBusFormReq extends BaseRequest {
@NotBlank(message = "单据id不能为空",groups = {edit.class}) @NotBlank(message = "单据id不能为空",groups = {edit.class})
private String id; private String id;
private String userId;
/** /**
* 工作流id * 工作流id
*/ */
private String processId; private String processDefinitionId;
/** /**
* 单据业务类型 * 单据业务类型
...@@ -32,7 +33,7 @@ public class UpdateBusFormReq extends BaseRequest { ...@@ -32,7 +33,7 @@ public class UpdateBusFormReq extends BaseRequest {
/** /**
* 单据编号 * 单据编号
*/ */
private String orderCode; private String bussinessCode;
/** /**
* 组织机构id * 组织机构id
......
...@@ -31,7 +31,6 @@ public class UpdateOrderReq extends BaseRequest implements Serializable { ...@@ -31,7 +31,6 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
private String processDefinitionId; private String processDefinitionId;
/** /**
* 单据业务类型 * 单据业务类型
*/ */
...@@ -41,6 +40,8 @@ public class UpdateOrderReq extends BaseRequest implements Serializable { ...@@ -41,6 +40,8 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
* 订单号 * 订单号
*/ */
private String orderCode; private String orderCode;
private String bussinessCode;
/** /**
* 发物单位 * 发物单位
*/ */
......
...@@ -15,10 +15,11 @@ public class UpdateStocktakeReq extends BaseRequest { ...@@ -15,10 +15,11 @@ public class UpdateStocktakeReq extends BaseRequest {
@NotBlank(message = "id不能为空",groups = {edit.class}) @NotBlank(message = "id不能为空",groups = {edit.class})
private String id; private String id;
private String userId;
/** /**
* 工作流 * 工作流
*/ */
private String processId; private String processDefinitionId;
/** /**
* 单据业务类型:盘库stocktake * 单据业务类型:盘库stocktake
......
...@@ -35,7 +35,7 @@ public class BussinessController { ...@@ -35,7 +35,7 @@ public class BussinessController {
@ApiOperation("创建业务单") @ApiOperation("创建业务单")
public ApiRes<String> AddBussinessOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateBusFormReq req){ public ApiRes<String> AddBussinessOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateBusFormReq req){
//判断是否有工作流id,如果有则将状态进行修改 //判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessId())) if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{ {
req.setExamineState("none"); req.setExamineState("none");
} }
......
...@@ -126,9 +126,14 @@ public class PoliceController { ...@@ -126,9 +126,14 @@ public class PoliceController {
} }
@PostMapping("/PoliceReassignment")
@ApiOperation("警员调岗申请单")
public ApiRes<String> PoliceReassignment(){
return ApiRes.success(policemanService.PoliceReassignment());
}
@PostMapping("/ChangePoliceOrg") @PostMapping("/ChangePoliceOrg")
@ApiOperation("警员调岗") @ApiOperation("警员调岗(业务过程)")
public ApiRes<Boolean> changePoliceOrg(@RequestBody @Validated(ValidationApi.edit.class)PoliceReassignmentReq req){ public ApiRes<Boolean> changePoliceOrg(@RequestBody @Validated(ValidationApi.edit.class)PoliceReassignmentReq req){
return ApiRes.success(policemanService.changePoliceOrg(req)); return ApiRes.success(policemanService.changePoliceOrg(req));
} }
......
...@@ -21,7 +21,7 @@ import javax.annotation.Resource; ...@@ -21,7 +21,7 @@ import javax.annotation.Resource;
@RestController @RestController
@Slf4j @Slf4j
@Api("盘库管理") @Api(tags ="盘库管理")
@RequestMapping("/Stocktake") @RequestMapping("/Stocktake")
public class StocktakeController { public class StocktakeController {
...@@ -33,7 +33,7 @@ public class StocktakeController { ...@@ -33,7 +33,7 @@ public class StocktakeController {
@ApiOperation("盘库申请") @ApiOperation("盘库申请")
public ApiRes<String> AddStocktakeOrder (@RequestBody @Validated(ValidationApi.add.class) UpdateStocktakeReq req){ public ApiRes<String> AddStocktakeOrder (@RequestBody @Validated(ValidationApi.add.class) UpdateStocktakeReq req){
//判断是否有工作流id,如果有则将状态进行修改 //判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessId())) if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{ {
req.setExamineState("none"); req.setExamineState("none");
} }
......
...@@ -35,8 +35,8 @@ public class BusForm implements Serializable { ...@@ -35,8 +35,8 @@ public class BusForm implements Serializable {
/** /**
* 单据编号 * 单据编号
*/ */
@TableField(value = "order_code") @TableField(value = "bussiness_code")
private String orderCode; private String bussinessCode;
/** /**
* 组织机构id * 组织机构id
......
...@@ -29,6 +29,9 @@ public class OrderMain implements Serializable { ...@@ -29,6 +29,9 @@ public class OrderMain implements Serializable {
@TableField("order_code") @TableField("order_code")
private String orderCode; private String orderCode;
@TableField("bussiness_code")
private String bussinessCode;
@TableField("start_org_id") @TableField("start_org_id")
private Long startOrgId; private Long startOrgId;
......
package com.junmp.jyzb.entity;
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.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 警员调岗申请单
* @TableName bussiness_reassignment
*/
@TableName(value ="bussiness_reassignment")
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Reassignment implements Serializable {
/**
* id
*/
private String id;
/**
* 工作流id
*/
@TableField(value = "process_id")
private String processId;
/**
* 调岗警员id
*/
@TableField(value = "police_id")
private String policeId;
/**
* 调岗警员姓名
*/
@TableField(value = "police_name")
private String policeName;
/**
* 警员带走装备
*/
@TableField(value = "eqs_list")
private String eqsList;
/**
* 组织机构id(谁申请,就是谁的组织机构号)
*/
@TableField(value = "org_id")
private Long orgId;
/**
* 目标组织机构id
*/
@TableField(value = "target_org_id")
private Long targetOrgId;
/**
* 调岗原因
*/
@TableField(value = "note")
private String note;
/**
* 审核状态(none未接入工作流,working审批中,finished审批完成)
*/
@TableField(value = "examine_state")
private String examineState;
/**
* 创建时间
*/
@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;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.Reassignment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_reassignment(警员调岗申请单)】的数据库操作Mapper
* @createDate 2023-10-07 16:49:31
* @Entity com.junmp.jyzb.entity.Reassignment
*/
public interface ReassignmentMapper extends BaseMapper<Reassignment> {
}
...@@ -74,5 +74,9 @@ public interface PolicemanService extends IService<Policeman> { ...@@ -74,5 +74,9 @@ public interface PolicemanService extends IService<Policeman> {
//获取警员的装备信息 //获取警员的装备信息
PageResult<PoliceEquipment> GetPoliceEqs(PolicemanReq req); PageResult<PoliceEquipment> GetPoliceEqs(PolicemanReq req);
//警员调岗业务逻辑
boolean UpdatePoliceUser(); boolean UpdatePoliceUser();
//警员调岗申请单
String PoliceReassignment();
} }
package com.junmp.jyzb.service;
import com.junmp.jyzb.entity.Reassignment;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_reassignment(警员调岗申请单)】的数据库操作Service
* @createDate 2023-10-07 16:49:31
*/
public interface ReassignmentService extends IService<Reassignment> {
}
...@@ -5,6 +5,8 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -5,6 +5,8 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.service.IFlowInstanceService;
import com.junmp.jyzb.api.bean.dto.BusFormDto; import com.junmp.jyzb.api.bean.dto.BusFormDto;
import com.junmp.jyzb.api.bean.query.QueryBusFormReq; import com.junmp.jyzb.api.bean.query.QueryBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateBusFormReq; import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
...@@ -37,6 +39,9 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -37,6 +39,9 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
@Resource @Resource
public StocktakeService stocktakeService; public StocktakeService stocktakeService;
@Resource
private IFlowInstanceService FlowInstanceService;
/** /**
* 创建业务单 * 创建业务单
* @param req * @param req
...@@ -48,10 +53,21 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -48,10 +53,21 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
BeanUtil.copyProperties(req,busForm); BeanUtil.copyProperties(req,busForm);
OrderNum orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getOrgId()); OrderNum orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum()); String codeValue=String.format("%04d",orderNum.getNum());
busForm.setOrderCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+ busForm.setBussinessCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+
LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue); LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue);
busForm.setCreateTime(DateTimeUtil.getCurrentDateTime()); busForm.setCreateTime(DateTimeUtil.getCurrentDateTime());
save(busForm); save(busForm);
//执行工作流
if (req.getExamineState().equals("working"))
{
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(busForm.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
busForm.setProcessId(ProcessInstanceId);
}
return busForm.getId(); return busForm.getId();
} }
...@@ -87,8 +103,11 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -87,8 +103,11 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
req.setOrder(req.getOrder().toLowerCase()); req.setOrder(req.getOrder().toLowerCase());
} }
LambdaQueryWrapper<BusForm> eq = new LambdaQueryWrapper<BusForm>() LambdaQueryWrapper<BusForm> eq = new LambdaQueryWrapper<BusForm>()
//单据类型
.eq(ObjectUtil.isNotNull(req.getBussinessType()), BusForm::getBussinessType, req.getBussinessType()) .eq(ObjectUtil.isNotNull(req.getBussinessType()), BusForm::getBussinessType, req.getBussinessType())
//审核状态
.eq(ObjectUtil.isNotNull(req.getExamineState()), BusForm::getExamineState, req.getExamineState()) .eq(ObjectUtil.isNotNull(req.getExamineState()), BusForm::getExamineState, req.getExamineState())
//
.eq(ObjectUtil.isNotNull(req.getWarehouseId()), BusForm::getWarehouseId, req.getWarehouseId()) .eq(ObjectUtil.isNotNull(req.getWarehouseId()), BusForm::getWarehouseId, req.getWarehouseId())
.eq(ObjectUtil.isNotNull(req.getOrgId()),BusForm::getOrgId,req.getOrgId()) .eq(ObjectUtil.isNotNull(req.getOrgId()),BusForm::getOrgId,req.getOrgId())
.ge(ObjectUtil.isNotNull(req.getStartTime()), BusForm::getCreateTime, req.getStartTime()) .ge(ObjectUtil.isNotNull(req.getStartTime()), BusForm::getCreateTime, req.getStartTime())
......
...@@ -83,6 +83,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -83,6 +83,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Resource @Resource
private OfficeExcelApi officeExcelApi; private OfficeExcelApi officeExcelApi;
@Resource
private InventorySummaryService inventorySummaryService;
@Resource
private WarehouseService warehouseService;
//新增任务单 //新增任务单
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -257,6 +263,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -257,6 +263,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
} }
orderDetailService.removeBatchByIds(req.getDeleteList()); orderDetailService.removeBatchByIds(req.getDeleteList());
} }
//方法1(分为两步进行操作)--------------------------------------------------
//对detaillist进行处理 //对detaillist进行处理
List<OrderDetail> addList = new ArrayList<>();//新增的 List<OrderDetail> addList = new ArrayList<>();//新增的
List<OrderDetail> updateList = new ArrayList<>();//更新 List<OrderDetail> updateList = new ArrayList<>();//更新
...@@ -295,6 +302,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -295,6 +302,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
} }
orderDetailService.updateBatchById(updateList); orderDetailService.updateBatchById(updateList);
orderDetailService.saveBatch(addList); orderDetailService.saveBatch(addList);
// 方法2(直接删除并重新插入数据)----------------------------------------------
BeanPlusUtil.copyProperties(req,order); BeanPlusUtil.copyProperties(req,order);
return this.updateById(order); return this.updateById(order);
} }
...@@ -357,7 +365,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -357,7 +365,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
.last("order by "+req.getColumn() +" "+req.getOrder())); .last("order by "+req.getColumn() +" "+req.getOrder()));
} else { } else {
list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>() list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, req.getId()) .eq(OrderDetail::getOrderId, req.getId())
.orderByDesc(OrderDetail::getCreateTime)); .orderByDesc(OrderDetail::getCreateTime));
...@@ -411,7 +418,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -411,7 +418,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (req.getChildrenOrder().size()==0){ if (req.getChildrenOrder().size()==0){
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ISNOT_NULL); throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ISNOT_NULL);
} }
Set<Long> collect = req.getChildrenOrder().stream().map(OrderDetailReq::getId).collect(Collectors.toSet());
//前端传递的子单数据 //前端传递的子单数据
List<OrderDetailReq> reqList = req.getChildrenOrder(); List<OrderDetailReq> reqList = req.getChildrenOrder();
//将记账数量进行相加 //将记账数量进行相加
...@@ -421,44 +427,83 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -421,44 +427,83 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//获取子单据 //获取子单据
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>() List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId,req.getId())); .eq(OrderDetail::getOrderId,req.getId()));
Set<Long> existingIds = list.stream() //获取所有传递的子单据id
.map(OrderDetail::getId) Set<Long> collect = req.getChildrenOrder().stream().map(OrderDetailReq::getId).collect(Collectors.toSet());
.collect(Collectors.toSet()); //获取所有数据库的子单据id
//创建记账操作记录并且记录到数据表order_log中 Set<Long> existingIds = list.stream().map(OrderDetail::getId).collect(Collectors.toSet());
OrderLog orderLog = new OrderLog(); //创建一个操作记录
BeanPlusUtil.copyProperties(req,orderLog);
orderLog.setId(UUID.randomUUID().toString());
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
List<OrderDetail> orderDetailList=new ArrayList<>(); List<OrderDetail> orderDetailList=new ArrayList<>();
//创建一个列表用于修改summary数据库表中数据。
List<OrderDetailReq> orderDetailReqList=new ArrayList<>();
//比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常 //比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常
if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){ if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){
for (OrderDetailReq uploadDetailReq : reqList) { for (OrderDetailReq uploadDetailReq : reqList) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail); BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail);
//获取修改后的数量并且记录 //获取修改后的数量并且记录(如果modifyQuantity不为空则表示该子单据进行了修改)
if (ObjectUtil.isNotNull(uploadDetailReq.getModifyQuantity())){ if (ObjectUtil.isNotNull(uploadDetailReq.getModifyQuantity())){
String log = "将"+uploadDetailReq.getTypeName()+"-"+ String log = "将"+uploadDetailReq.getTypeName()+""+
uploadDetailReq.getSizeName()+"的物资数量从"+uploadDetailReq.getActualNum()+"修改为"+uploadDetailReq.getModifyQuantity()+";"; uploadDetailReq.getSizeName()+"的物资数量从"+uploadDetailReq.getActualNum()+"修改为"+uploadDetailReq.getModifyQuantity()+";";
stringBuilder.append(log); stringBuilder.append(log);
//修改单子数量数据 //修改单子数量数据,价格
orderDetail.setActualNum(uploadDetailReq.getModifyQuantity()); orderDetail.setActualNum(uploadDetailReq.getModifyQuantity());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime()); orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
orderDetailList.add(orderDetail); orderDetailList.add(orderDetail);
orderDetailReqList.add(uploadDetailReq);
//修改后数量 //修改后数量
updateQuantity+=uploadDetailReq.getModifyQuantity(); updateQuantity+=uploadDetailReq.getModifyQuantity();
priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getModifyQuantity()).multiply(uploadDetailReq.getPrice())); priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getModifyQuantity()).multiply(uploadDetailReq.getPrice()));
System.out.println("priceTotal = " + priceTotal);
}else { }else {
//修改后数量 //修改后数量
updateQuantity+=uploadDetailReq.getActualNum(); updateQuantity+=uploadDetailReq.getActualNum();
priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getActualNum()).multiply(uploadDetailReq.getPrice())); priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getActualNum()).multiply(uploadDetailReq.getPrice()));
System.out.println("priceTotal = " + priceTotal);
} }
} }
}else { }else {
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR); throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR);
} }
//批量更新子单据数量
if (orderDetailList.size()!=0){
orderDetailService.updateBatchById(orderDetailList);
}
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
saveAccountingLog(req,stringBuilder,updateQuantity);
//修改装备汇总表中的数据 inventory_summary
Long orgId;
if (orderMain.getOrderType().equals("in")){
orgId=orderMain.getEndOrgId();
}
else {
orgId=orderMain.getStartOrgId();
}
updateSummaryInfo(req,orderDetailReqList,orgId);
//修改仓库表中的数量汇总信息(warehouse)
updateWarehouseInfo(req,orderDetailReqList,orgId);
//更新主单据的数量和价格
//记账直接将单子结束
//修改记账状态,0未记账,1已记账
orderMain.setActualQuantity(updateQuantity);
orderMain.setPrice(priceTotal);
orderMain.setOrderState("finished");
orderMain.setManualState(1);
orderMain.setUpdateTime(DateTimeUtil.getCurrentDateTime());
//更新主单据
return updateById(orderMain);
}
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
public void saveAccountingLog (OrderMainReq req,StringBuilder stringBuilder,Integer updateQuantity){
OrderLog orderLog = new OrderLog();
BeanPlusUtil.copyProperties(req,orderLog);
orderLog.setId(UUID.randomUUID().toString());
orderLog.setHistoryMsg(stringBuilder.toString()); orderLog.setHistoryMsg(stringBuilder.toString());
orderLog.setUpdateQuantity(updateQuantity); orderLog.setUpdateQuantity(updateQuantity);
if (req.getOrderType().equals("in")){ if (req.getOrderType().equals("in")){
...@@ -472,22 +517,59 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -472,22 +517,59 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
orderLog.setCreateTime(DateTimeUtil.getCurrentDateTime()); orderLog.setCreateTime(DateTimeUtil.getCurrentDateTime());
//将记账记录保存 //将记账记录保存
orderLogService.save(orderLog); orderLogService.save(orderLog);
//批量更新子单据数量
if (orderDetailList.size()!=0){
orderDetailService.updateBatchById(orderDetailList);
}
//更新主单据的数量和价格
orderMain.setActualQuantity(updateQuantity);
orderMain.setPrice(priceTotal);
//记账直接将单子结束
orderMain.setOrderState("finished");
//修改记账状态,0未记账,1已记账
orderMain.setManualState(1);
orderMain.setUpdateTime(DateTimeUtil.getCurrentDateTime());
//更新主单据
return updateById(orderMain);
} }
//修改装备汇总表中的数据inventory_summary
public void updateSummaryInfo(OrderMainReq req,List<OrderDetailReq> orderDetailReqList,Long orgId){
//根据遍历该子单据,将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()));
//更新数量和总价格,在库数和出库数也需要对应进行修改
//修改的数量和价格
BigDecimal totalPrice = one.getPrice().subtract(BigDecimal.valueOf(orderDetailReq.getActualNum()).multiply(orderDetailReq.getPrice()))
.add(BigDecimal.valueOf(orderDetailReq.getModifyQuantity()).multiply(orderDetailReq.getPrice()));
Integer totalNUmber = one.getNumber()-orderDetailReq.getActualNum()+orderDetailReq.getModifyQuantity();
one.setPrice(totalPrice);
one.setNumber(totalNUmber);
//判断单据是in还是out,对出库数量和在库数量进行修改
if (req.getOrderType().equals("in")){
one.setStockNumber(one.getStockNumber()-orderDetailReq.getActualNum()+orderDetailReq.getModifyQuantity());
}else {
one.setOutboundNumber(one.getOutboundNumber()-orderDetailReq.getActualNum()+orderDetailReq.getModifyQuantity());
}
return one;
})
.collect(Collectors.toList());
inventorySummaryService.updateBatchById(collect);
}
//修改仓库表中的数量汇总信息
public void updateWarehouseInfo(OrderMainReq req,List<OrderDetailReq> orderDetailReqList,Long orgId){
for (OrderDetailReq 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());
}
warehouseService.updateById(one);
}
}
/** /**
* 查看记账列表 * 查看记账列表
* @param req * @param req
......
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.Reassignment;
import com.junmp.jyzb.service.ReassignmentService;
import com.junmp.jyzb.mapper.ReassignmentMapper;
import org.springframework.stereotype.Service;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_reassignment(警员调岗申请单)】的数据库操作Service实现
* @createDate 2023-10-07 16:49:31
*/
@Service
public class ReassignmentServiceImpl extends ServiceImpl<ReassignmentMapper, Reassignment>
implements ReassignmentService{
}
...@@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.service.IFlowInstanceService;
import com.junmp.jyzb.api.bean.dto.StocktakeDto; import com.junmp.jyzb.api.bean.dto.StocktakeDto;
import com.junmp.jyzb.api.bean.query.StocktakeReq; import com.junmp.jyzb.api.bean.query.StocktakeReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq; import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
...@@ -43,6 +45,9 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake ...@@ -43,6 +45,9 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
@Resource @Resource
private OrderNumService orderNumService; private OrderNumService orderNumService;
@Resource
private IFlowInstanceService FlowInstanceService;
//盘库申请 //盘库申请
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -57,6 +62,17 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake ...@@ -57,6 +62,17 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
stocktake.setCreateTime(DateTimeUtil.getCurrentDateTime()); stocktake.setCreateTime(DateTimeUtil.getCurrentDateTime());
stocktake.setApplyTime(DateTimeUtil.getCurrentDateTime()); stocktake.setApplyTime(DateTimeUtil.getCurrentDateTime());
this.save(stocktake); this.save(stocktake);
//执行工作流
if (req.getExamineState().equals("working"))
{
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(stocktake.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
stocktake.setProcessId(ProcessInstanceId);
}
return stocktake.getId(); return stocktake.getId();
} }
......
...@@ -12,7 +12,7 @@ public class UpdateSummaryAction implements JobAction { ...@@ -12,7 +12,7 @@ public class UpdateSummaryAction implements JobAction {
@Resource @Resource
private InventoryService inventoryService; private InventoryService inventoryService;
public void action(){ public void action(){
inventoryService.setInventoryMsg(); // inventoryService.setInventoryMsg();
} }
} }
<?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.ReassignmentMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.Reassignment">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="processId" column="process_id" jdbcType="VARCHAR"/>
<result property="policeId" column="police_id" jdbcType="VARCHAR"/>
<result property="policeName" column="police_name" jdbcType="VARCHAR"/>
<result property="eqsList" column="eqs_list" jdbcType="VARCHAR"/>
<result property="orgId" column="org_id" jdbcType="BIGINT"/>
<result property="targetOrgId" column="target_org_id" jdbcType="BIGINT"/>
<result property="note" column="note" jdbcType="VARCHAR"/>
<result property="examineState" column="examine_state" jdbcType="VARCHAR"/>
<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,process_id,police_id,
police_name,eqs_list,org_id,
target_org_id,note,examine_state,
create_time,update_time,create_user,
update_user
</sql>
</mapper>
...@@ -26,9 +26,9 @@ knife4j: ...@@ -26,9 +26,9 @@ knife4j:
spring: spring:
datasource: datasource:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.3.128:3306/db_jyzb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true url: jdbc:mysql://127.0.0.1:3306/junmp?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
username: junmp username: root
password: 123456 password: vkeline
redis: redis:
#host: 192.168.3.188 #host: 192.168.3.188
......
...@@ -284,7 +284,8 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper, ...@@ -284,7 +284,8 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
@Override @Override
public Boolean suspendOrActivateProcessDefinitionById(SuspendOrActivateDefinitionReq req) { public Boolean suspendOrActivateProcessDefinitionById(SuspendOrActivateDefinitionReq req) {
ProcessTemplates processTemplates = processTemplateService.getById(req.getTemplateId()); // ProcessTemplates processTemplates = processTemplateService.getById(req.getTemplateId());
ProcessTemplates processTemplates = processTemplateService.getById(req.getProcessDefinitionId());
if (req.getIsStop() == true){ if (req.getIsStop() == true){
repositoryService.suspendProcessDefinitionById(req.getProcessDefinitionId(), true, null); repositoryService.suspendProcessDefinitionById(req.getProcessDefinitionId(), true, null);
processTemplates.setIsStop(true); processTemplates.setIsStop(true);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论