Commit 4e2e7292 by 李小惠

修改装备类型接口和出入库

parent 97678fa6
......@@ -202,4 +202,6 @@ public class BusFormDto {
* 单据上次状态(forbidden禁止使用,outgoing 仅出库使用,incoming仅入库使用,bothuseing出入库都可以使用一次)
*/
private String orderLastState;
private String orderMainId;
}
......@@ -23,7 +23,7 @@ public class LogSummaryReq extends BaseRequest {
/**
* 组织机构ID
*/
@NotNull(message = "组织机构id不能为空",groups = {page.class})
// @NotNull(message = "组织机构id不能为空",groups = {page.class})
private Long orgId;
/**
......
......@@ -125,6 +125,8 @@ public class OrderMainReq extends BaseRequest {
private List<OrderDetailReq> detailList;
private String receiveUserId;
//发物单位,有可能是组织机构也有可能是供应商
private String name;
}
......
......@@ -204,7 +204,7 @@ public class Inventory implements Serializable {
@TableField(value = "create_user", fill = FieldFill.UPDATE)
private String createUser;
@TableField(exist = false)
private String bussinessType;
}
\ No newline at end of file
......@@ -23,6 +23,7 @@ public class InventorySummary implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
@TableField(value = "valuekey",updateStrategy = FieldStrategy.IGNORED)
private String valuekey;
/**
* 组织机构id
......
......@@ -118,7 +118,8 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
String Type= orderType.get(0).getValue().toString();
if (Type.equals("workOrder") || Type.equals("quickOrder"))//出入库单据(包含快速移库出库单)
if (Type.equals("workOrder") )//出入库单据
// if (Type.equals("workOrder") || Type.equals("quickOrder"))//出入库单据
{
// OrderMainReq req=new OrderMainReq();
// req.setProcessId(processInstanceId);
......
......@@ -91,7 +91,6 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
int newcode = parentType.getMaxCode() + 1;
type.setId(String.valueOf(newcode));
type.setCode(String.valueOf(newcode));
parentType.setMaxCode(newcode);
parentType.setCode(String.valueOf(newcode));
List<SupplierType> supplierType = new ArrayList<>();
......@@ -424,10 +423,14 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
EquipmentTreeDto childDto = convertNode(childEntity, entityList,type);
if (childEntity.getType()!=1 && type==0){
children.add(childDto);
dto.setIsLeaf(false);
} else if (childEntity.getType()==1 && type==0) {
dto.setIsLeaf(true);
} else if (type==1) {
children.add(childDto);
dto.setIsLeaf(false);
}
dto.setIsLeaf(false); // 存在子节点,当前节点不是叶子节点
// dto.setIsLeaf(false); // 存在子节点,当前节点不是叶子节点
}
}
......
......@@ -412,7 +412,7 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
//位置id(单警柜/仓库)
wrapper.eq(ObjectUtil.isNotEmpty(req.getLocationId()), InventorySummary::getLocationId, req.getLocationId());
//位置类型
wrapper.eq(ObjectUtil.isNotEmpty(req.getLocationType()),InventorySummary::getLocationType,req.getLocationType());
wrapper.eq(ObjectUtil.isNotNull(req.getLocationType())&& !req.getLocationType().trim().isEmpty(),InventorySummary::getLocationType,req.getLocationType());
//位置信息
wrapper.like(ObjectUtil.isNotEmpty(req.getLocationName()), InventorySummary::getLocationName, req.getLocationName());
//根据类别
......
......@@ -78,8 +78,9 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
req.setOrder("desc");
}
LambdaQueryWrapper<LogSummary> eq = new LambdaQueryWrapper<LogSummary>()
.eq(LogSummary::getOrgId,req.getOrgId())
.eq(ObjectUtil.isNotNull(req.getOrgId()),LogSummary::getOrgId,req.getOrgId())
.eq(LogSummary::getLocationType,req.getLocationType())
.eq(ObjectUtil.isNotNull(req.getOrderMainId()),LogSummary::getOrderMainId,req.getOrderMainId())
.eq(ObjectUtil.isNotNull(req.getBussinessType()) && !req.getBussinessType().trim().isEmpty(),LogSummary::getBussinessType,req.getBussinessType())
.eq(ObjectUtil.isNotNull(req.getOutInState()) && !req.getOutInState().trim().isEmpty(),LogSummary::getOutInState,req.getOutInState())
.eq(ObjectUtil.isNotNull(req.getLocationId()),LogSummary::getLocationId,req.getLocationId())
......@@ -186,7 +187,11 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
//存一个list用于修改库存inventory表的数据(采购时那么这个inventoryList就为空)
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
......@@ -211,10 +216,10 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
//判断logSummary是否为采购,
//如果是采购则不处理,因为采购的inventory是跟着单子来处理的,其他的单子直接根据出入库记录来处理
if (!logreq.getBussinessType().equals("purchase")){
if (logreq.getOutInState().equals("in")){
Inventory inventory = saveInventory(detailLogReq, map, logSummary.getOutInState());
// if (logreq.getOutInState().equals("in")){
Inventory inventory = saveInventory(logreq.getOrgId(),logreq.getLocationId(),detailLogReq, map, logSummary.getOutInState());
inventoryList.add(inventory);
}
// }
// else {
// Inventory inventory = saveInventory(detailLogReq, map, logSummary.getOutInState());
// inventoryList.add(inventory);
......@@ -241,16 +246,36 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
if (orderLogList.size()>0){
boolean b = orderLogService.saveBatch(orderLogList);
}
OrderMain ordermain=null;
if (ObjectUtil.isNotEmpty(orderMainId)){
ordermain = orderMainService.getById(orderMainId);
}
//修改inventory表中的数据(如果不为空则表示不是采购单或者已经将采购单的信息过滤掉)
if (inventoryList.size()>0){
LambdaUpdateWrapper<Inventory> updateStateWrapper = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<Inventory> allocateInWrapper = 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())
.set(Inventory::getOrgId,inventory.getOrgId())
.set(Inventory::getLocationId,inventory.getLocationId());
} else {
//其他情况
updateStateWrapper.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getLocationState,inventory.getLocationState())
.set(Inventory::getBussinessState,inventory.getBussinessState())
.set(Inventory::getState,inventory.getState());
}
}
inventoryService.update(updateStateWrapper);
inventoryService.update(allocateInWrapper);
}
return returnList;
......@@ -283,13 +308,16 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
return logSummary;
}
private Inventory saveInventory(DetailLogReq req,Map<String, String> map,String outInState){
private Inventory saveInventory(Long orgId,String locationId,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.setState(map.get("state"));
inventory.setOrgId(orgId);
inventory.setBussinessState(map.get("bussinessType"));
inventory.setBussinessType(req.getBussinessType());
return inventory;
}
......
......@@ -779,7 +779,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
orgId=orderMain.getStartOrgId();
}
PubOrg pubOrg = pubOrgService.PubOrgExist(orgId);
boolean d = updateSummaryInfo(req, orderDetailReqList, orgId,pubOrg.getOrgCode(),pubOrg.getOrgName());
boolean d = updateSummaryInfo(req, orderDetailReqList, pubOrg.getOrgId(), pubOrg.getOrgCode(),pubOrg.getOrgName());
//如果是领用,警员绑定装备
boolean e=true;
......@@ -852,10 +852,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
public boolean policeBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> reqList,Long orgId){
//如果是领用出库,那记账结束以后将装备挂到警员名下(存储到policemanEquipment表中)
Policeman policeman = policemanService.getOne(new LambdaQueryWrapper<Policeman>().eq(Policeman::getUserId, req.getReturnUserId()));
if (req.getBussinessType().equals("use")){
List<PoliceEquipment> collect1 = reqList.stream().map(updateOrderDetailReq -> {
PoliceEquipment policeEquipment = new PoliceEquipment();
policeEquipment.setPoliceId(req.getReturnUserId());
policeEquipment.setPoliceId(policeman.getId());
policeEquipment.setPoliceName(policeman.getName());
policeEquipment.setSizeId(updateOrderDetailReq.getSizeId());
policeEquipment.setSizeName(updateOrderDetailReq.getSizeName());
policeEquipment.setTypeId(updateOrderDetailReq.getTypeId());
......@@ -913,19 +915,67 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
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")){//入库没有关系
// 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.setStockNumber(is.getStockNumber()-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())) );
// }
if (req.getOrderType().equals("in")){
switch (req.getBussinessType()){
case "purchase":
case "allocate":
case "gift":
case "other":
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity());
is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())) );
break;
case "return":
case "repair":
//如果入库数大于实际出库数,那么在库数和总数进行添加,出库数为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());
}else {
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")){//销毁出库直接减库存,减金额
break;
}
}else {
switch (req.getBussinessType()){
case "destruction":
is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())));
is.setNumber(is.getNumber()-upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()-upReq.getModifyQuantity());
is.setDestructionNumber(is.getDestructionNumber()+upReq.getModifyQuantity());
}else {//其他出库就直接正常计算
break;
case "allocate":
is.setNumber(is.getNumber()-upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()-upReq.getModifyQuantity());
is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())) );
break;
case "use":
case "repair":
case "other":
is.setOutboundNumber(is.getOutboundNumber()+upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()-upReq.getModifyQuantity());
is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice())) );
break;
case "quick":
break;
}
}
updateList.add(is);
flag=true;
......@@ -937,6 +987,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
InventorySummary inventorySummary = new InventorySummary();
inventorySummary.setOrgCode(orgCode);
inventorySummary.setOrgName(orgName);
inventorySummary.setOrgId(orgId);
inventorySummary.setValuekey(orgCode+upReq.getSizeId());
inventorySummary.setSizeId(upReq.getSizeId());
inventorySummary.setSizeName(upReq.getSizeName());
......@@ -1260,6 +1311,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//如果整个报废区进行移动,那么将各个数量进行修改
if (flag){
//修改的的是移出仓库的数量
for (OrderDetail orderDetail: list ) {
for (InventorySummary oldSum : oldSummaryList) {
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
......@@ -1276,6 +1328,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
inventorySummary.setDestructionNumber(0);
//销毁金额也为0
inventorySummary.setDestructionPrice(BigDecimal.ZERO);
inventorySummary.setId(null);
inventorySummary.setValuekey(null);
saveList.add(inventorySummary);
//如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作
if (oldSum.getDestructionNumber() == 0) {
......@@ -1294,10 +1348,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
}
}
}else {
}else {//不将报废区的进行移动(修改的是移出仓库的库存数量)
for (OrderDetail orderDetail: list ) {
for (InventorySummary oldSum : oldSummaryList) {
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(
// 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
if (orderDetail.getSizeId().equals(oldSum.getSizeId())
&& orderDetail.getTypeId().equals(oldSum.getTypeId())
&& orderDetail.getPrice().compareTo(oldSum.getUnitPrice()) == 0) {
......@@ -1312,12 +1367,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
inventorySummary.setStockNumber(orderDetail.getPlanNum());
inventorySummary.setDestructionNumber(0);
inventorySummary.setDestructionPrice(BigDecimal.ZERO);
inventorySummary.setId(null);
inventorySummary.setValuekey(null);
saveList.add(inventorySummary);
oldSum.setNumber(oldSum.getNumber()-orderDetail.getPlanNum());
oldSum.setPrice(oldSum.getPrice().subtract(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum()))));
oldSum.setOutboundNumber(0);
oldSum.setStockNumber(oldSum.getNumber()-orderDetail.getPlanNum());
oldSum.setOutboundNumber(0);
oldSum.setNearBrokenNumber(0);
oldSum.setExpireNumber(0);
oldSum.setUseNumber(0);
......@@ -1333,6 +1390,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//判断查询到的newList是否有值,如果有值直接进行修改即可,但是如果不存在,则默认新增一条数据
//修改的是移入仓库的值
if (newSummaryList.size()>0){
for (InventorySummary save: saveList) {
......@@ -1348,6 +1406,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
newsum.setExpireNumber(save.getExpireNumber()+newsum.getExpireNumber());
newsum.setNearBrokenNumber(save.getNearBrokenNumber()+newsum.getNearBrokenNumber());
newsum.setUseNumber(save.getUseNumber()+newsum.getUseNumber());
//remove表示该仓库下面存在数量,数量加减完之后直接在新增的list中进行移出x
saveList.remove(save);
break;
}
......@@ -1389,7 +1448,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
}
boolean d=inventoryService.updateBatchById(eqsList);
return true;
return a && b && c && d;
}
......
......@@ -254,23 +254,24 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
PolicemanDto policemanDto = new PolicemanDto();
BeanPlusUtil.copyProperties(one, policemanDto);
//将箱门信息展示:
List<Cabinet> cabinetInfo = cabinetMapper.getAllCabinetsWithSingleCabinet(String.valueOf(req.getOrgId()), req.getId());
List<Cabinet> cabinetInfo = cabinetMapper.getAllCabinetsWithSingleCabinet(String.valueOf(one.getOrgId()), req.getId());
List<String> boxList=new ArrayList<>();
String boxName="";
if (cabinetInfo.size()>0){
for (Cabinet cabinet:cabinetInfo) {
// if (boxPolice.getContainType()==1){
// soloList.add(boxPolice.getCabinetBoxId());
// soloName = soloName + boxPolice.getCabinetName()+",";
//
// }else {
// publicList.add(boxPolice.getCabinetBoxId());
// publicName = publicName + boxPolice.getCabinetName()+",";
// }
if (cabinet.getContainType().equals("1")){
boxList.add(0,cabinet.getBoxId());
boxName = (ObjectUtil.isNull(cabinet.getName())?cabinet.getName():cabinet.getLocation())+"单警"+cabinet.getNumber()+"号箱门,"+boxName;
}else {
boxList.add(cabinet.getBoxId());
boxName = boxName + (ObjectUtil.isNull(cabinet.getName())?cabinet.getName():cabinet.getLocation())+"公共"+cabinet.getNumber()+"号箱门,";
}
}
policemanDto.setBoxList(boxList);
}
// policemanDto.setBoxName(soloName.trim().isEmpty()?soloName:soloName.substring(0,soloName.length()-1));
policemanDto.setBoxName(boxName.trim().isEmpty()?boxName:boxName.substring(0,boxName.length()-1));
//将警员的指纹信息查询出来
List<PoliceFinger> list1 = policeFingerService.list(new LambdaQueryWrapper<PoliceFinger>()
......@@ -343,6 +344,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
//如果不为空则表示修改警员密码
if (req.getPassword()!=null && !req.getPassword().trim().isEmpty()) {
String newPassword = storedEncryptApi.encrypt(req.getPassword());
//同时修改警员密码
req.setPassword(newPassword);
//修改警员密码的同时修改账号表中的密码
sysUserService.update(new SysUser(),
......@@ -485,8 +487,6 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
req.setPageSize(10L);
}
long size=policemanMapper.count(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),req.getState(),req.getPhone(),req.getFlag());
System.out.println("req = " + (req.getPageNo()-1));
System.out.println("req = " + req.getPageSize());
List<PolicemanDto> policemanDtos = policemanMapper.selectUserBypoliceIds
(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),
req.getState(),req.getPhone(),req.getFlag(),(req.getPageNo()-1)*req.getPageSize(),req.getPageSize(),req.getColumn(),req.getOrder());
......
......@@ -467,11 +467,11 @@
</foreach>
</select>
<select id="selectEqsByItem" resultType="com.junmp.jyzb.entity.Inventory">
select * from base_inventory where (
select i.id,i.org_id_int as orgId,i.size_id,i.type_id,i.price from base_inventory i where (
<foreach collection="list" item="item" separator="or">
(
location_state = 'in' AND state = 'normal' AND 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]}
type_id = ${item[2]} AND size_id = '${item[3]}' AND price = ${item[4]}
)
</foreach>
)
......
......@@ -87,6 +87,9 @@
<if test="req.orderState !=null and req.orderState != ''">
and order_state = #{req.orderState}
</if>
<if test="req.name!=null and req.name!=''">
and (start_org_name LIKE CONCAT('%', #{req.name}, '%') or end_org_name LIKE CONCAT('%', #{req.name}, '%') or supplier_name LIKE CONCAT('%', #{req.name}, '%') )
</if>
<if test=" req.examineState=='unaudited'">
and examine_state in('none','working')
</if>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论