Commit 00385c94 by 李小惠

修改盘点接口

parent 2961ed93
...@@ -3,6 +3,7 @@ package com.junmp.jyzb.api.bean.dto; ...@@ -3,6 +3,7 @@ package com.junmp.jyzb.api.bean.dto;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
@Data @Data
...@@ -14,4 +15,6 @@ public class ViewEquipmentDto implements Serializable { ...@@ -14,4 +15,6 @@ public class ViewEquipmentDto implements Serializable {
private String sizeName; private String sizeName;
private String typeId; private String typeId;
private String typeName; private String typeName;
private Integer property;
private BigDecimal price;
} }
\ No newline at end of file
...@@ -23,4 +23,5 @@ public class WarrantyDataDto { ...@@ -23,4 +23,5 @@ public class WarrantyDataDto {
private Integer property; private Integer property;
private Long orgId; private Long orgId;
private String orgName; private String orgName;
private Integer stockNumber;
} }
...@@ -111,7 +111,8 @@ BussinessInventoryController { ...@@ -111,7 +111,8 @@ BussinessInventoryController {
@ApiOperation("确认结果/结束盘点") @ApiOperation("确认结果/结束盘点")
public ApiRes<Boolean> UseOrFinished (@RequestBody UploadInventoryReq req){ public ApiRes<Boolean> UseOrFinished (@RequestBody UploadInventoryReq req){
//判断是否有工作流id,如果有则将状态进行修改 //判断是否有工作流id,如果有则将状态进行修改
return ApiRes.success(BussinessInventoryService.UseOrFinished(req)); // return ApiRes.success(BussinessInventoryService.UseOrFinished(req));
return ApiRes.success(BussinessInventoryService.UseOrFinishedRebuild(req));
} }
@PostMapping(path="/GetInfoByEpcs",name="根据EPC列表换取详细信息#logType=30") @PostMapping(path="/GetInfoByEpcs",name="根据EPC列表换取详细信息#logType=30")
......
...@@ -98,7 +98,8 @@ public class OrderController { ...@@ -98,7 +98,8 @@ public class OrderController {
@PostMapping(path="/Accounting",name="记账#logType=30") @PostMapping(path="/Accounting",name="记账#logType=30")
@ApiOperation("记账") @ApiOperation("记账")
public ApiRes<Boolean> Accounting(@RequestBody @Validated(ValidationApi.delete.class) UpdateOrderReq req){ public ApiRes<Boolean> Accounting(@RequestBody @Validated(ValidationApi.delete.class) UpdateOrderReq req){
boolean accounting = orderMainService.Accounting(req); // boolean accounting = orderMainService.Accounting(req);
boolean accounting = orderMainService.testAccounting(req);
System.out.println("accounting = " + accounting); System.out.println("accounting = " + accounting);
return ApiRes.success(accounting); return ApiRes.success(accounting);
} }
...@@ -116,22 +117,6 @@ public class OrderController { ...@@ -116,22 +117,6 @@ public class OrderController {
return ApiRes.success(orderMainService.ShowAccountingPage(req)); return ApiRes.success(orderMainService.ShowAccountingPage(req));
} }
//单据打印
// @PostMapping("OrderPrinting")
// @ApiOperation("单据打印")
// public ApiRes<Boolean> OrderPrinting(@RequestBody Object req){
// try {
// printerService.printObject(myObject); // 打印对象属性
// return ResponseEntity.ok("Printing request sent to the printer");
// } catch (PrintException e) {
// e.printStackTrace();
// return ResponseEntity.status(500).body("Error occurred while printing");
// }
// }
//入库单导出 //入库单导出
@PostMapping(path="/InOrderExport",name="入库单导出#enable") @PostMapping(path="/InOrderExport",name="入库单导出#enable")
@ApiOperation("入库单导出") @ApiOperation("入库单导出")
......
...@@ -286,13 +286,6 @@ public class TjController { ...@@ -286,13 +286,6 @@ public class TjController {
} }
// @PostMapping("test")
// public ApiRes<List<TjOrgEqsDto>> test(@RequestBody InventoryReq req){
// return ApiRes.success(tjService.test(req));
// }
//----------------------------- 大屏数据接口----------------------------- //----------------------------- 大屏数据接口-----------------------------
//1。装备近30天使用次数top5 //1。装备近30天使用次数top5
......
...@@ -29,7 +29,7 @@ public class BussinessDetail implements Serializable { ...@@ -29,7 +29,7 @@ public class BussinessDetail implements Serializable {
private Long id; private Long id;
/** /**
* 工作流id * 主单id
*/ */
@TableField(value = "inventory_id") @TableField(value = "inventory_id")
private Long inventoryId; private Long inventoryId;
...@@ -39,61 +39,68 @@ public class BussinessDetail implements Serializable { ...@@ -39,61 +39,68 @@ public class BussinessDetail implements Serializable {
@TableField(value = "group_id") @TableField(value = "group_id")
private String groupId; private String groupId;
/** /**
* 工作流id * 类型id
*/ */
@TableField(value = "type_id") @TableField(value = "type_id")
private String typeId; private String typeId;
/** /**
* 单据业务类型 * 类型名称
*/ */
@TableField(value = "type_name") @TableField(value = "type_name")
private String typeName; private String typeName;
/**
* 是否已人工改账,0未改,1已改,如果人工添加数量为0,则生成时属于已改状态
*/
@TableField(value = "has_count") @TableField(value = "has_count")
private Integer hasCount; private Integer hasCount;
/** /**
* 单据编号 * 号型id
*/ */
@TableField(value = "size_id") @TableField(value = "size_id")
private String sizeId; private String sizeId;
/** /**
* 年度 * 号型名称
*/ */
@TableField(value = "size_name") @TableField(value = "size_name")
private String sizeName; private String sizeName;
/** /**
* * 在库数(包含报废区)
*/ */
@TableField(value = "stock_number") @TableField(value = "stock_number")
private Integer stockNumber; private Integer stockNumber;
/** /**
* * 在库金额
*/ */
@TableField(value = "stock_price") @TableField(value = "stock_price")
private BigDecimal stockPrice; private BigDecimal stockPrice;
/**
* 单价
*/
@TableField(value = "price") @TableField(value = "price")
private BigDecimal price; private BigDecimal price;
/** /**
* * 修正后的在库金额
*/ */
@TableField(value = "fix_price") @TableField(value = "fix_price")
private BigDecimal fixPrice; private BigDecimal fixPrice;
/** /**
* 申请时间 * 修正后的在库数量
*/ */
@TableField(value = "fix_number") @TableField(value = "fix_number")
private Integer fixNumber; private Integer fixNumber;
/** /**
* 仓库名称 * 金额差距数量
*/ */
@TableField(value = "num") @TableField(value = "num")
private Integer num; private Integer num;
/** /**
* 仓库名称 * 状态.0正常,1盈余,2亏损
*/ */
@TableField(value = "state") @TableField(value = "state")
private String state; private String state;
......
...@@ -3,6 +3,7 @@ package com.junmp.jyzb.entity; ...@@ -3,6 +3,7 @@ package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -134,6 +135,11 @@ public class WarehouseInventory implements Serializable { ...@@ -134,6 +135,11 @@ public class WarehouseInventory implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Integer shelfRange; private Integer shelfRange;
/**
* 装备状态,broken即为报废状态
*/
@TableField(exist = false)
private String state;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -26,74 +26,39 @@ public interface EquipmentCountSummaryMapper extends BaseMapper<EquipmentCountSu ...@@ -26,74 +26,39 @@ public interface EquipmentCountSummaryMapper extends BaseMapper<EquipmentCountSu
TjOrgCountDto TjOrgCount(@Param("orgId") String orgId, TjOrgCountDto TjOrgCount(@Param("orgId") String orgId,
@Param("typeIdsList") List<String> typeIdsList, @Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList, @Param("sizeNameList") List<String> sizeNameList,
@Param("year")Integer year,
@Param("typeParentId")String typeParentId, @Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList, @Param("typeName") String typeName,
@Param("typeName") String typeName); @Param("startTime") String startTime,
// List<TjOrgCountDto> TjOrgCount1(@Param("orgId") String orgId, @Param("endTime") String endTime);
// @Param("typeIdsList") List<String> typeIdsList,
// @Param("sizeNameList") List<String> sizeNameList,
// @Param("year")Integer year,
// @Param("typeParentId")String typeParentId,
// @Param("monthList") List<Integer> monthList);
TjOrgCountDto TjOrgCountleve4(@Param("orgId") Long orgId, TjOrgCountDto TjOrgCountleve4(@Param("orgId") Long orgId,
@Param("typeIdsList") List<String> typeIdsList, @Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList, @Param("sizeNameList") List<String> sizeNameList,
@Param("year") Integer year,
@Param("typeParentId")String typeParentId, @Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList,
@Param("levelFlag")Integer levelFlag, @Param("levelFlag")Integer levelFlag,
@Param("typeName") String typeName); @Param("typeName") String typeName,
@Param("startTime") String startTime,
@Param("endTime") String endTime);
TjOrgCountDto TjOrgCountSelf(@Param("orgId") Long orgId, TjOrgCountDto TjOrgCountSelf(@Param("orgId") Long orgId,
@Param("typeIdsList") List<String> typeIdsList, @Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList, @Param("sizeNameList") List<String> sizeNameList,
@Param("year") Integer year,
@Param("typeParentId")String typeParentId, @Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList, @Param("typeName") String typeName,
@Param("typeName") String typeName); @Param("startTime") String startTime,
@Param("endTime") String endTime);
List<TjOrgCountDto> TjOrgCountTotalNum(@Param("orgId") Long orgId, List<TjOrgCountDto> TjOrgCountTotalNum(@Param("orgId") Long orgId,
@Param("typeIdsList") List<String> typeIdsList, @Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList, @Param("sizeNameList") List<String> sizeNameList,
@Param("year") Integer year,
@Param("typeParentId")String typeParentId, @Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList,
@Param("levelNum")Integer levelNum, @Param("levelNum")Integer levelNum,
@Param("level")Integer level, @Param("level")Integer level,
@Param("column")String column, @Param("column")String column,
@Param("order")String order, @Param("order")String order,
@Param("levelFlag")Integer levelFlag, @Param("levelFlag")Integer levelFlag,
@Param("typeName") String typeName); @Param("typeName") String typeName,
List<TjOrgCountDto> TjOrgCountTotalDetail(@Param("orgId") Long orgId, @Param("startTime") String startTime,
@Param("typeIdsList") List<String> typeIdsList, @Param("endTime") String endTime);
@Param("sizeNameList") List<String> sizeNameList,
@Param("year") Integer year,
@Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList,
@Param("levelNum")Integer levelNum,
@Param("level")Integer level,
@Param("column")String column,
@Param("order")String order,
@Param("typeName") String typeName);
// List<TjOrgCountDto> TjOrgCountDetail(@Param("orgId") Long orgId,
// @Param("typeIdsList") List<String> typeIdsList,
// @Param("sizeNameList") List<String> sizeNameList,
// @Param("year") Integer year,
// @Param("typeParentId")String typeParentId,
// @Param("monthList") List<Integer> monthList,
// @Param("levelNum")Integer levelNum,
// @Param("level")Integer level,
// @Param("column")String column,
// @Param("order")String order,
// @Param("typeName") String typeName);
FinalTjOrgCountDto TjOrgCountSum(@Param("orgId") Long orgId,
@Param("sizeNameList") List<String> sizeNameList,
@Param("typeIdsList") List<String> typeIdsList,
@Param("year")Integer year,
@Param("typeName") String typeName);
List<TjOrgCountDto> TjOrgCountByType(@Param("req") TjOrgCountReq req); List<TjOrgCountDto> TjOrgCountByType(@Param("req") TjOrgCountReq req);
......
...@@ -19,6 +19,7 @@ import com.junmp.jyzb.api.bean.req.PrintReq.GetPrintListReq; ...@@ -19,6 +19,7 @@ import com.junmp.jyzb.api.bean.req.PrintReq.GetPrintListReq;
import com.junmp.jyzb.api.bean.vo.InventoryVo; import com.junmp.jyzb.api.bean.vo.InventoryVo;
import com.junmp.jyzb.entity.Inventory; import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.InventorySummary; import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.WarehouseInventory;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -159,5 +160,5 @@ public interface InventoryMapper extends BaseMapper<Inventory> { ...@@ -159,5 +160,5 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
List<Inventory> getInfoList(@Param("list") List<Object[]> itemList); List<Inventory> getInfoList(@Param("list") List<Object[]> itemList);
List<WarehouseInventory> getInvListByWarehouse(@Param("warehouseId") String warehouseId);
} }
\ No newline at end of file
...@@ -111,8 +111,6 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> { ...@@ -111,8 +111,6 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
void setWarrantyGroupAction(@Param("orgId") Long orgId); void setWarrantyGroupAction(@Param("orgId") Long orgId);
void updateSummaryInsImport(@Param("orgId") Long orgId,@Param("locationId") String locationId);
void deleteByOrgId(@Param("orgId") Long orgId,@Param("locationId") String locationId); void deleteByOrgId(@Param("orgId") Long orgId,@Param("locationId") String locationId);
void UpdateSummaryDestoryNumber(); void UpdateSummaryDestoryNumber();
......
...@@ -20,16 +20,6 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> { ...@@ -20,16 +20,6 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> {
@Param("sizeNameList")List<String> sizeNameList, @Param("sizeNameList")List<String> sizeNameList,
@Param("typeName") String typeName); @Param("typeName") String typeName);
// List<TjOrgPriceDto> TjOrgPriceDetail(@Param("orgId") Long orgId,
// @Param("year") Integer year,
// @Param("typeIdsList") List<String> typeIdsList,
// @Param("sizeNameList") List<String> sizeNameList,
// @Param("column") String column,
// @Param("order") String order,
// @Param("typeName") String typeName);
void setSizeName(@Param("sizeId") String id, @Param("sizeName") String name); void setSizeName(@Param("sizeId") String id, @Param("sizeName") String name);
void setTypeName(@Param("typeId") String id, @Param("typeName") String name); void setTypeName(@Param("typeId") String id, @Param("typeName") String name);
...@@ -48,12 +38,6 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> { ...@@ -48,12 +38,6 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> {
@Param("typeIdsList") List<String> typeIdsList, @Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList")List<String> sizeNameList, @Param("sizeNameList")List<String> sizeNameList,
@Param("typeName") String typeName); @Param("typeName") String typeName);
List<TjOrgPriceDto> TjOrgPriceTotalNum(@Param("orgId") Long orgId,
@Param("year") Integer year,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList")List<String> sizeNameList,
@Param("levelNum")Integer levelNum,
@Param("level")Integer level);
List<TjOrgPriceDto> getTotalPriceDetail(@Param("orgId") Long orgId, List<TjOrgPriceDto> getTotalPriceDetail(@Param("orgId") Long orgId,
@Param("year") Integer year, @Param("year") Integer year,
......
package com.junmp.jyzb.mapper; package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.junmp.jyzb.api.bean.dto.tjDto.WarrantyDataDto;
import com.junmp.jyzb.api.bean.req.WarrantyReq;
import com.junmp.jyzb.entity.VieWarrantyGroup; import com.junmp.jyzb.entity.VieWarrantyGroup;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -13,4 +16,6 @@ public interface VieWarrantyGroupMapper extends BaseMapper<VieWarrantyGroup> { ...@@ -13,4 +16,6 @@ public interface VieWarrantyGroupMapper extends BaseMapper<VieWarrantyGroup> {
List<VieWarrantyGroup> selectByTerms(@Param("list") List<VieWarrantyGroup> valuesList); List<VieWarrantyGroup> selectByTerms(@Param("list") List<VieWarrantyGroup> valuesList);
List<VieWarrantyGroup> getExpireGroupList(); List<VieWarrantyGroup> getExpireGroupList();
Page<WarrantyDataDto> WarrantyData(@Param("page") Page<WarrantyDataDto> defaultPage,@Param("req") WarrantyReq req);
} }
\ No newline at end of file
package com.junmp.jyzb.rabbitmq;
import com.alibaba.fastjson.JSON;
import com.junmp.jyzb.api.bean.query.inAndOutRecordReq.CabinetLogsRecordReq;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.v2.log.api.LogRecordApi;
import com.junmp.v2.log.api.bean.dto.LogRecordDto;
import com.junmp.v2.log.api.constant.LogConstant;
import com.junmp.v2.log.api.enums.LogTypeEnum;
import com.junmp.v2.log.api.factory.LogRecordFactory;
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 CabinetLogReceiver {
@Resource
private InventorySummaryService inventorySummaryService;
/**
* 日志记录的api
*/
@Resource
private LogRecordApi logRecordApi;
@RabbitListener(queues = "CabinetLogsRecord")//监听队列名
private void a(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag){
// 创建日志对象
LogRecordDto logRecordDTO = LogRecordFactory.createLogRecord(LogConstant.LOG_DEFAULT_NAME, "CabinetLogsRecord");
logRecordDTO.setLogType(LogTypeEnum.OPT_LOG.getCode());
logRecordDTO.setHttpMethod("RabbitMQ");
logRecordDTO.setLogContent("CabinetLogsRecord");
logRecordDTO.setRequestParams(msg);
logRecordDTO.setLogType(30);
logRecordDTO.setRequestUrl("queues = \"CabinetLogsRecord\"");
try {
// 手动确认消息
channel.basicAck(deliveryTag, false);
CabinetLogsRecordReq req = JSON.parseObject(msg, CabinetLogsRecordReq.class);
//将消息进行消费
Boolean result = inventorySummaryService.cabinetInOutRecords(req);
logRecordDTO.setRequestResult(result.toString());
logRecordApi.addAsync(logRecordDTO);
} catch (Exception e) {
try {
channel.basicNack(deliveryTag, false, true);
logRecordDTO.setRequestResult(e.getMessage().toString());
logRecordApi.addAsync(logRecordDTO);
} catch (IOException ex) {
logRecordDTO.setRequestResult(ex.getMessage().toString());
logRecordApi.addAsync(logRecordDTO);
throw new RuntimeException(ex);
}
}
}
}
package com.junmp.jyzb.rabbitmq;
import com.alibaba.fastjson.JSON;
import com.junmp.jyzb.api.bean.query.inAndOutRecordReq.CabinetLogsRecordReq;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.v2.log.api.LogRecordApi;
import com.junmp.v2.log.api.bean.dto.LogRecordDto;
import com.junmp.v2.log.api.constant.LogConstant;
import com.junmp.v2.log.api.enums.LogTypeEnum;
import com.junmp.v2.log.api.factory.LogRecordFactory;
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 OutInLogsByCabinetReceiver {
@Resource
private LogSummaryService logSummaryService;
/**
* 日志记录的api
*/
@Resource
private LogRecordApi logRecordApi;
@RabbitListener(queues = "CabinetLogsRecord")//监听队列名
private void a(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag){
// 创建日志对象
LogRecordDto logRecordDTO = LogRecordFactory.createLogRecord(LogConstant.LOG_DEFAULT_NAME, "CabinetLogsRecord");
logRecordDTO.setLogType(LogTypeEnum.OPT_LOG.getCode());
logRecordDTO.setHttpMethod("RabbitMQ");
logRecordDTO.setLogContent("CabinetLogsRecord");
logRecordDTO.setRequestParams(msg);
logRecordDTO.setLogType(30);
logRecordDTO.setRequestUrl("queues = \"CabinetLogsRecord\"");
try {
System.out.println("msg = " + msg);
// 手动确认消息
channel.basicAck(deliveryTag, false);
CabinetLogsRecordReq req = JSON.parseObject(msg, CabinetLogsRecordReq.class);
//将消息进行消费
Boolean result = logSummaryService.processOutInRecords(req);
logRecordDTO.setRequestResult(result.toString());
logRecordApi.addAsync(logRecordDTO);
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列ms
try {
channel.basicNack(deliveryTag, false, true);
logRecordDTO.setRequestResult(e.getMessage().toString());
logRecordApi.addAsync(logRecordDTO);
} catch (IOException ex) {
logRecordDTO.setRequestResult(ex.getMessage().toString());
logRecordApi.addAsync(logRecordDTO);
throw new RuntimeException(ex);
}
}
}
}
...@@ -28,4 +28,6 @@ public interface BussinessInventoryService extends IService<BussinessInventory> ...@@ -28,4 +28,6 @@ public interface BussinessInventoryService extends IService<BussinessInventory>
Boolean UploadStock(UploadInventoryReq req); Boolean UploadStock(UploadInventoryReq req);
Boolean UpdateDetail(UpdateDetailReq req); Boolean UpdateDetail(UpdateDetailReq req);
Boolean UseOrFinished(UploadInventoryReq req); Boolean UseOrFinished(UploadInventoryReq req);
Boolean UseOrFinishedRebuild(UploadInventoryReq req);
} }
...@@ -25,9 +25,6 @@ public interface InventorySummaryService extends IService<InventorySummary> { ...@@ -25,9 +25,6 @@ public interface InventorySummaryService extends IService<InventorySummary> {
InventorySummary getOne(InventorySumReq req); InventorySummary getOne(InventorySumReq req);
//处理单警柜返回单据结果
Boolean cabinetInOutRecords(CabinetLogsRecordReq req);
//根据组织机构id/单警柜id/仓库id查询出库存汇总数量以及金额 //根据组织机构id/单警柜id/仓库id查询出库存汇总数量以及金额
List<InventorySummary> getTotalNumberAndPrice(InventorySumReq req); List<InventorySummary> getTotalNumberAndPrice(InventorySumReq req);
...@@ -52,8 +49,6 @@ public interface InventorySummaryService extends IService<InventorySummary> { ...@@ -52,8 +49,6 @@ public interface InventorySummaryService extends IService<InventorySummary> {
void setWarrantyGroupAction(Long orgId); void setWarrantyGroupAction(Long orgId);
void updateSummaryInsImport(Long orgId, String warehouseId);
void UpdateSummaryNumber(); void UpdateSummaryNumber();
void clearMysql(); void clearMysql();
......
...@@ -27,9 +27,6 @@ public interface LogSummaryService extends IService<LogSummary> { ...@@ -27,9 +27,6 @@ public interface LogSummaryService extends IService<LogSummary> {
//本地主机返回出入库结果 //本地主机返回出入库结果
Boolean processInventoryRecords(OutInLogsReq req); Boolean processInventoryRecords(OutInLogsReq req);
//单警柜返回出入库结果
Boolean processOutInRecords(CabinetLogsRecordReq req);
PageResult<LogSummary> ShowInOutRecords(LogSummaryReq req); PageResult<LogSummary> ShowInOutRecords(LogSummaryReq req);
LogSummaryDto ShowInOutRecordsByItemsCount(LogSummaryReq req); LogSummaryDto ShowInOutRecordsByItemsCount(LogSummaryReq req);
......
...@@ -493,11 +493,10 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -493,11 +493,10 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
String detailList = busForm.getDetailList(); String detailList = busForm.getDetailList();
List<BussinessOrderDetialReq> list = JSONArray.parseArray(detailList, BussinessOrderDetialReq.class); List<BussinessOrderDetialReq> list = JSONArray.parseArray(detailList, BussinessOrderDetialReq.class);
//更新inventory表的表达式 //更新inventory表的表达式
LambdaUpdateWrapper<Inventory> updateStateWrapper = Wrappers.lambdaUpdate();
List<Object[]> searchItem=new ArrayList<>(); List<Object[]> searchItem=new ArrayList<>();
for (BussinessOrderDetialReq detialReq:list) { for (BussinessOrderDetialReq detialReq:list) {
//我先去数据库查询summary表中的数据 //我先去数据库查询summary表中的数据
Object[] item=new Object[]{busForm.getOrgId(),detialReq.getLocationId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice(),detialReq.getProperty()}; Object[] item=new Object[]{busForm.getOrgId(),detialReq.getLocationId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice(),0};
searchItem.add(item); searchItem.add(item);
} }
...@@ -517,7 +516,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -517,7 +516,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
for (InventorySummary is:inventorySummaryList) { for (InventorySummary is:inventorySummaryList) {
if (detialReq.getLocationId().equals(is.getLocationId()) && detialReq.getTypeId().equals(is.getTypeId()) if (detialReq.getLocationId().equals(is.getLocationId()) && detialReq.getTypeId().equals(is.getTypeId())
&& detialReq.getSizeId().equals(is.getSizeId()) && detialReq.getPrice().compareTo(is.getUnitPrice())==0 && detialReq.getSizeId().equals(is.getSizeId()) && detialReq.getPrice().compareTo(is.getUnitPrice())==0
&& detialReq.getProperty()==is.getProperty()){ && Objects.equals(detialReq.getProperty(), is.getProperty())){
//如果数量相同则直接将全部在库数的装备表中的该仓库的装备状态全部设置为报废,并且修改库存汇总表中的数据 //如果数量相同则直接将全部在库数的装备表中的该仓库的装备状态全部设置为报废,并且修改库存汇总表中的数据
//将库存的报废数量根据单据重新进行计算 //将库存的报废数量根据单据重新进行计算
Integer brokenNum=detialReq.getPlanNum()+is.getBrokenNumber(); Integer brokenNum=detialReq.getPlanNum()+is.getBrokenNumber();
...@@ -570,7 +569,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -570,7 +569,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
inventoryService.updateBatchById(updateInvList); inventoryService.updateBatchById(updateInvList);
//重新计算过质保数 //重新计算过质保数
String key=detialReq.getOrgId()+ detialReq.getLocationId()+detialReq.getTypeId()+detialReq.getSizeId(); String key=detialReq.getOrgId()+ detialReq.getLocationId()+detialReq.getTypeId()+detialReq.getSizeId()+detialReq.getPrice();
if (map.containsKey(key)){ if (map.containsKey(key)){
VieWarrantyGroup vieWarrantyGroup = map.get(key); VieWarrantyGroup vieWarrantyGroup = map.get(key);
vieWarrantyGroup.setCountOfItems(vieWarrantyGroup.getCountOfItems()+oldPlanNum); vieWarrantyGroup.setCountOfItems(vieWarrantyGroup.getCountOfItems()+oldPlanNum);
...@@ -584,6 +583,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -584,6 +583,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
vieWarrantyGroup.setOrgName(detialReq.getOrgName()); vieWarrantyGroup.setOrgName(detialReq.getOrgName());
vieWarrantyGroup.setOrgId(detialReq.getOrgId().toString()); vieWarrantyGroup.setOrgId(detialReq.getOrgId().toString());
vieWarrantyGroup.setCountOfItems(oldPlanNum); vieWarrantyGroup.setCountOfItems(oldPlanNum);
vieWarrantyGroup.setPrice(detialReq.getPrice());
vieWarrantyGroup.setLocationId(detialReq.getLocationId()); vieWarrantyGroup.setLocationId(detialReq.getLocationId());
vieWarrantyGroup.setLocationName(detialReq.getLocationName()); vieWarrantyGroup.setLocationName(detialReq.getLocationName());
map.put(key,vieWarrantyGroup); map.put(key,vieWarrantyGroup);
...@@ -597,7 +597,8 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -597,7 +597,8 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
for (VieWarrantyGroup invSum:valuesList) { for (VieWarrantyGroup invSum:valuesList) {
for (VieWarrantyGroup warrantyInv:warrantyList) { for (VieWarrantyGroup warrantyInv:warrantyList) {
if (invSum.getLocationId().equals(warrantyInv.getLocationId()) && invSum.getTypeId().equals(warrantyInv.getTypeId()) if (invSum.getLocationId().equals(warrantyInv.getLocationId()) && invSum.getTypeId().equals(warrantyInv.getTypeId())
&& invSum.getSizeId().equals(warrantyInv.getSizeId()) && invSum.getOrgId().equals(warrantyInv.getOrgId())){ && invSum.getSizeId().equals(warrantyInv.getSizeId()) && invSum.getOrgId().equals(warrantyInv.getOrgId())
&& invSum.getPrice().compareTo(warrantyInv.getPrice())==0){
warrantyInv.setCountOfItems(warrantyInv.getCountOfItems()-invSum.getCountOfItems()); warrantyInv.setCountOfItems(warrantyInv.getCountOfItems()-invSum.getCountOfItems());
break; break;
} }
...@@ -840,10 +841,10 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -840,10 +841,10 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
List<Object[]> upperSearchItem=new ArrayList<>(); List<Object[]> upperSearchItem=new ArrayList<>();
for (BussinessOrderDetialReq detialReq:list) { for (BussinessOrderDetialReq detialReq:list) {
//我先去数据库查询summary表中的数据 //我先去数据库查询summary表中的数据
Object[] item=new Object[]{busForm.getOrgId(),detialReq.getLocationId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice(),detialReq.getProperty()}; Object[] item=new Object[]{busForm.getOrgId(),detialReq.getLocationId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice(),0};
searchItem.add(item); searchItem.add(item);
Object[] upperItem=new Object[]{Long.valueOf(busForm.getSupplierId()),busForm.getWarehouseId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice(),detialReq.getProperty()}; Object[] upperItem=new Object[]{Long.valueOf(busForm.getSupplierId()),busForm.getWarehouseId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice(),0};
upperSearchItem.add(upperItem); upperSearchItem.add(upperItem);
} }
...@@ -868,8 +869,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -868,8 +869,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
Boolean flag=false; Boolean flag=false;
for (InventorySummary is:upperInvSumList) { for (InventorySummary is:upperInvSumList) {
if (busForm.getWarehouseId().equals(is.getLocationId()) && detialReq.getTypeId().equals(is.getTypeId()) if (busForm.getWarehouseId().equals(is.getLocationId()) && detialReq.getTypeId().equals(is.getTypeId())
&& detialReq.getSizeId().equals(is.getSizeId()) && detialReq.getPrice().compareTo(is.getUnitPrice())==0 && detialReq.getSizeId().equals(is.getSizeId()) && detialReq.getPrice().compareTo(is.getUnitPrice())==0){
&& detialReq.getProperty()==is.getProperty()){
//如果数量相同则直接将全部在库数的装备表中的该仓库的装备状态全部设置为报废,并且修改库存汇总表中的数据 //如果数量相同则直接将全部在库数的装备表中的该仓库的装备状态全部设置为报废,并且修改库存汇总表中的数据
//将库存的报废数量根据单据重新进行计算 //将库存的报废数量根据单据重新进行计算
flag=true; flag=true;
...@@ -895,12 +895,12 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -895,12 +895,12 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
InventorySummary inventorySummary=inventorySummaryService.createInventorySummary(Long.valueOf(busForm.getSupplierId()), InventorySummary inventorySummary=inventorySummaryService.createInventorySummary(Long.valueOf(busForm.getSupplierId()),
busForm.getSupplierName(),pubOrg.getOrgCode(),detialReq.getTypeId(),detialReq.getTypeName(),detialReq.getSizeId(),detialReq.getSizeName(), busForm.getSupplierName(),pubOrg.getOrgCode(),detialReq.getTypeId(),detialReq.getTypeName(),detialReq.getSizeId(),detialReq.getSizeName(),
busForm.getWarehouseId(),warehouse.getName(),0,0,detialReq.getPrice(), busForm.getWarehouseId(),warehouse.getName(),0,0,detialReq.getPrice(),
0,0,detialReq.getProperty(),0,0,0,detialReq.getPlanNum(),"0"); 0,0,0,0,0,0,detialReq.getPlanNum(),"0");
upperAddSumList.add(inventorySummary); upperAddSumList.add(inventorySummary);
} }
//重新计算过质保数汇总 //重新计算过质保数汇总
String key=busForm.getSupplierId()+busForm.getWarehouseId()+detialReq.getTypeId()+detialReq.getSizeId(); String key=busForm.getSupplierId()+busForm.getWarehouseId()+detialReq.getTypeId()+detialReq.getSizeId()+detialReq.getPrice();
if (map.containsKey(key)){ if (map.containsKey(key)){
VieWarrantyGroup vieWarrantyGroup = map.get(key); VieWarrantyGroup vieWarrantyGroup = map.get(key);
vieWarrantyGroup.setCountOfItems(vieWarrantyGroup.getCountOfItems()+oldPlanNum); vieWarrantyGroup.setCountOfItems(vieWarrantyGroup.getCountOfItems()+oldPlanNum);
...@@ -914,6 +914,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -914,6 +914,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
vieWarrantyGroup.setOrgName(busForm.getSupplierName()); vieWarrantyGroup.setOrgName(busForm.getSupplierName());
vieWarrantyGroup.setOrgId(busForm.getSupplierId()); vieWarrantyGroup.setOrgId(busForm.getSupplierId());
vieWarrantyGroup.setCountOfItems(oldPlanNum); vieWarrantyGroup.setCountOfItems(oldPlanNum);
vieWarrantyGroup.setPrice(detialReq.getPrice());
vieWarrantyGroup.setLocationId(busForm.getWarehouseId()); vieWarrantyGroup.setLocationId(busForm.getWarehouseId());
vieWarrantyGroup.setLocationName(warehouse.getName()); vieWarrantyGroup.setLocationName(warehouse.getName());
map.put(key,vieWarrantyGroup); map.put(key,vieWarrantyGroup);
...@@ -932,8 +933,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -932,8 +933,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
for (BussinessOrderDetialReq detialReq:list) { for (BussinessOrderDetialReq detialReq:list) {
for (InventorySummary is : inventorySummaryList) { for (InventorySummary is : inventorySummaryList) {
if (detialReq.getLocationId().equals(is.getLocationId()) && detialReq.getTypeId().equals(is.getTypeId()) if (detialReq.getLocationId().equals(is.getLocationId()) && detialReq.getTypeId().equals(is.getTypeId())
&& detialReq.getSizeId().equals(is.getSizeId()) && detialReq.getPrice().compareTo(is.getUnitPrice()) == 0 && detialReq.getSizeId().equals(is.getSizeId()) && detialReq.getPrice().compareTo(is.getUnitPrice()) == 0) {
&& detialReq.getProperty() == is.getProperty()) {
//直接减库存 //直接减库存
is.setStockNumber(Math.max(is.getStockNumber() - detialReq.getPlanNum(), 0)); is.setStockNumber(Math.max(is.getStockNumber() - detialReq.getPlanNum(), 0));
is.setStockNumberPrice(is.getPrice().multiply(BigDecimal.valueOf(is.getStockNumber()))); is.setStockNumberPrice(is.getPrice().multiply(BigDecimal.valueOf(is.getStockNumber())));
...@@ -964,8 +964,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl ...@@ -964,8 +964,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
for (Inventory inv : inventoryList) { for (Inventory inv : inventoryList) {
if (detialReq.getPlanNum() > 0) { if (detialReq.getPlanNum() > 0) {
if (detialReq.getLocationId().equals(inv.getLocationId()) && detialReq.getTypeId().equals(inv.getTypeId()) if (detialReq.getLocationId().equals(inv.getLocationId()) && detialReq.getTypeId().equals(inv.getTypeId())
&& detialReq.getSizeId().equals(inv.getSizeId()) && detialReq.getPrice().compareTo(inv.getPrice()) == 0 && detialReq.getSizeId().equals(inv.getSizeId()) && detialReq.getPrice().compareTo(inv.getPrice()) == 0) {
&& detialReq.getProperty().equals(inv.getProperty())) {
detialReq.setPlanNum(detialReq.getPlanNum() - 1); detialReq.setPlanNum(detialReq.getPlanNum() - 1);
inv.setState("broken"); inv.setState("broken");
inv.setOrgId(Long.valueOf(busForm.getSupplierId())); inv.setOrgId(Long.valueOf(busForm.getSupplierId()));
......
...@@ -305,13 +305,13 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -305,13 +305,13 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
List<EquipmentListDto> eqList = new ArrayList<>(); List<EquipmentListDto> eqList = new ArrayList<>();
Integer totalNumber = 0; Integer totalNumber = 0;
// 使用Map来追踪已经处理过的数据 // 使用Map来追踪已经处理过的数据
Map<String, EquipmentListDto> processedData = new HashMap<>(); Map<String, EquipmentListDto> processedData = new HashMap<>();
List<InventorySummary> SumResult = inventorySummaryService.getEquipmentInfoList(sumreq); List<InventorySummary> SumResult = inventorySummaryService.getEquipmentInfoList(sumreq);
for (InventorySummary summary : SumResult) { for (InventorySummary summary : SumResult) {
String key = summary.getSizeId() + "-" + summary.getTypeId(); String key = summary.getSizeId() + "-" + summary.getTypeId();
//如果是存在的数据,则更新数量
if (processedData.containsKey(key)) { if (processedData.containsKey(key)) {
// 如果已经存在相同的key,更新已有的数据 // 如果已经存在相同的key,更新已有的数据
EquipmentListDto existingDto = processedData.get(key); EquipmentListDto existingDto = processedData.get(key);
...@@ -356,7 +356,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -356,7 +356,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
List<EquipmentListDto> eqList = new ArrayList<>(); List<EquipmentListDto> eqList = new ArrayList<>();
Integer totalNumber = 0; Integer totalNumber = 0;
// 使用Map来追踪已经处理过的数据 // 使用Map来追踪已经处理过的数据
Map<String, EquipmentListDto> processedData = new HashMap<>(); Map<String, EquipmentListDto> processedData = new HashMap<>();
List<InventorySummary> SumResult = inventorySummaryService.getEquipmentInfoList(sumreq); List<InventorySummary> SumResult = inventorySummaryService.getEquipmentInfoList(sumreq);
...@@ -516,10 +516,6 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -516,10 +516,6 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
priceInfos.add(priceInfo); priceInfos.add(priceInfo);
} }
eqDto.setPriceInfo(priceInfos); eqDto.setPriceInfo(priceInfos);
// priceInfo.add(matchingDetails.forEach(p->p.);)
// eqDto.setAccountNumber(detail.getAccountNum());
eqDtoList.add(eqDto); eqDtoList.add(eqDto);
} }
...@@ -557,7 +553,6 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -557,7 +553,6 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
{ {
bussinessInventoryDetailService.removeBatchByIds(ChildrenList); bussinessInventoryDetailService.removeBatchByIds(ChildrenList);
} }
List<BussinessInventoryChildrenDetail> ChildrenInfo=new ArrayList<>();
//将上报的数据传入数据库存储 //将上报的数据传入数据库存储
BeanPlusUtil.copyProperties(req,BI); BeanPlusUtil.copyProperties(req,BI);
List<BussinessDetail> Bussinessdetails=new ArrayList<>(); List<BussinessDetail> Bussinessdetails=new ArrayList<>();
...@@ -649,14 +644,14 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -649,14 +644,14 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
throw new ServiceException(InventoryExceptionEnum.ORDER_CLOSED); throw new ServiceException(InventoryExceptionEnum.ORDER_CLOSED);
} }
PubOrg org= orgService.getById(BI.getOrgId()); PubOrg org= orgService.getById(BI.getOrgId());
if(req.getState().equals("0"))//确认结果 //确认结果
{ if(req.getState().equals("0")){
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
// List<WarehouseInventory> DeleteList;
List<WarehouseInventory> SaveEpcList =new ArrayList<>(); List<WarehouseInventory> SaveEpcList =new ArrayList<>();
List<BussinessDetail> bussinessDetail = bussinessInventoryDetailService.list( List<BussinessDetail> bussinessDetail = bussinessInventoryDetailService.list(
new LambdaQueryWrapper<BussinessDetail>().eq(BussinessDetail::getInventoryId, req.getOrderId()) new LambdaQueryWrapper<BussinessDetail>().eq(BussinessDetail::getInventoryId, req.getOrderId())
); );
//判断人工是否确认完单据上的全部信息,如果有没确认的直接报错提示
long countZeroOrNull = bussinessDetail.stream() long countZeroOrNull = bussinessDetail.stream()
.filter(p -> p.getHasCount() == null || p.getHasCount() == 0) .filter(p -> p.getHasCount() == null || p.getHasCount() == 0)
.count(); .count();
...@@ -720,24 +715,11 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -720,24 +715,11 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
} }
} }
// LambdaQueryWrapper<WarehouseInventory> queryWrapper = new LambdaQueryWrapper<>();
params.put("warehouseId", BI.getWarehouseId()); // 添加一个空的列表 params.put("warehouseId", BI.getWarehouseId()); // 添加一个空的列表
// 从Map中获取sizeIds,假设它们存储为List类型 // 从Map中获取sizeIds,假设它们存储为List类型
List<String> sizeIds = (List<String>) params.get("sizeIds"); List<String> sizeIds = (List<String>) params.get("sizeIds");
List<String> typeIds = (List<String>) params.get("typeIds"); List<String> typeIds = (List<String>) params.get("typeIds");
// 检查sizeIds是否不为空且不是空列表
if (sizeIds != null && !sizeIds.isEmpty()) {
// queryWrapper.in(WarehouseInventory::getSizeId, sizeIds);
}
// 检查sizeIds是否不为空且不是空列表
if (typeIds != null && !typeIds.isEmpty()) {
// queryWrapper.in(WarehouseInventory::getTypeId, typeIds);
}
// // 添加查询条件,仅查询warehouseId符合的记录
// queryWrapper.eq(WarehouseInventory::getLocationId, BI.getWarehouseId());
// DeleteList = warehouseInventoryService.list(queryWrapper);
List<InvSummaryDto> invDelete= inventoryMapper.selectEpcsByWarehouse(BI.getWarehouseId(),typeIds,sizeIds); List<InvSummaryDto> invDelete= inventoryMapper.selectEpcsByWarehouse(BI.getWarehouseId(),typeIds,sizeIds);
List<String> removeIds = invDelete.stream() // 创建流 List<String> removeIds = invDelete.stream() // 创建流
.map(InvSummaryDto::getId) // 提取每个InvSummaryDto对象的id .map(InvSummaryDto::getId) // 提取每个InvSummaryDto对象的id
...@@ -854,21 +836,11 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -854,21 +836,11 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
{ {
UpdateSummary.add(InvSum); UpdateSummary.add(InvSum);
} }
//这里还要记上出入库的日志,用来记录原有物资减少的变化
} }
// //同组织机构当前仓库需要增加价格和数量
// InventorySumReq summaryNowReq=new InventorySumReq();
// summaryNowReq.setLocationId(BI.getWarehouseId());
// summaryNowReq.setUnitPrice(String.valueOf(Isum.getPrice()));
// summaryNowReq.setTypeId(Isum.getTypeId());
// summaryNowReq.setSizeId(Isum.getSizeId());
} }
List<ViewEquipmentDto> viewEd= inventoryMapper.GetViewEquipment(UpdateInventorys); List<ViewEquipmentDto> viewEd= inventoryMapper.GetViewEquipment(UpdateInventorys);
for (ViewEquipmentDto inv:viewEd for (ViewEquipmentDto inv:viewEd) {
) {
WarehouseInventory Wi=new WarehouseInventory(); WarehouseInventory Wi=new WarehouseInventory();
Wi.setEpc(inv.getEpc()); Wi.setEpc(inv.getEpc());
Wi.setOrgId(BI.getOrgId()); Wi.setOrgId(BI.getOrgId());
...@@ -892,10 +864,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -892,10 +864,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
BI.setUpdateTime(DateTimeUtil.getCurrentDateTime()); BI.setUpdateTime(DateTimeUtil.getCurrentDateTime());
//删除同组织机构下该EPC其他仓库的位置信息 //删除同组织机构下该EPC其他仓库的位置信息
inventoryMapper.DeleteEpcsWithoutWarehouse(UpdateInventorys, String.valueOf(BI.getOrgId()),String.valueOf(BI.getWarehouseId())); inventoryMapper.DeleteEpcsWithoutWarehouse(UpdateInventorys, String.valueOf(BI.getOrgId()),String.valueOf(BI.getWarehouseId()));
// if (DeleteList.size()>0)//删除库内全部的EPC信息 //
// {
// warehouseInventoryService.removeBatchByIds(DeleteList);
// }
if (removeIds.size()>0)//删除库内全部的EPC信息 if (removeIds.size()>0)//删除库内全部的EPC信息
{ {
warehouseInventoryService.removeByIds(removeIds); warehouseInventoryService.removeByIds(removeIds);
...@@ -955,6 +924,182 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -955,6 +924,182 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
return true; return true;
} }
public Boolean UseOrFinishedRebuild(UploadInventoryReq req) {
BussinessInventory BI= this.getById(req.getOrderId());
//1.判断单据是否关闭
if (BI.getInventoryState().equals("close"))
{
throw new ServiceException(InventoryExceptionEnum.ORDER_CLOSED);
}
PubOrg org= orgService.getById(BI.getOrgId());
//2.判断单据是否已经完成或取消
if (req.getState().equals("0")){
//判断人工是否确认完单据上的全部信息,如果有没确认的直接报错提示
List<BussinessDetail> bussinessDetaiList = bussinessInventoryDetailService.list(
new LambdaQueryWrapper<BussinessDetail>().eq(BussinessDetail::getInventoryId, req.getOrderId())
);
long countZeroOrNull = bussinessDetaiList.stream()
.filter(p -> p.getHasCount() == null || p.getHasCount() == 0)
.count();
if (countZeroOrNull>0)
{
throw new ServiceException(InventoryExceptionEnum.ACCOUNT_ERROR);
}
Map<String, Object> params = new HashMap<>();
InventorySumReq sumreq=new InventorySumReq();
sumreq.setLocationType("0");
sumreq.setLocationId(BI.getWarehouseId());
if (BI.getInventoryType().equals(1))//按装备类型盘点
{
List<String> typeIds = Arrays.asList(BI.getRules().split(","));
sumreq.setTypeIds(typeIds);
params.put("typeIds", typeIds); //
params.put("sizeIds", Collections.emptyList()); // 添加一个空的列表
} else if (BI.getInventoryType().equals(2))//按装备号型盘点
{
List<String> sizeIds = Arrays.asList(BI.getRules().split(","));
sumreq.setSizeIds(sizeIds);
params.put("sizeIds", sizeIds); //
params.put("typeIds", Collections.emptyList()); // 添加一个空的列表
}
String epcUpdate = BI.getEpcUpdate();
List<String> pdEpcList;
if (epcUpdate!=null&&epcUpdate.contains(",")) {
pdEpcList = Arrays.asList(epcUpdate.split(","));
} else {
pdEpcList = new ArrayList<>(Collections.singletonList(epcUpdate));
}
//3.修改装备绑定情况(删除原先仓库的所有在库装备后直接添加排除报废装备)
//如果一个没盘到,删除仓库的装备(除报废)
//如果存在装备,则根据装备情况,将未盘到的装备除了报废装备,别的装备全部删除后在重新插入盘到的装备
List<WarehouseInventory> SaveEpcList =new ArrayList<>();
//查询出仓库中所有装备(包含报废)
List<WarehouseInventory> allWarehouseInvList =inventoryMapper.getInvListByWarehouse(BI.getWarehouseId());
//将仓库中所有装备进行过滤分离,报废的epc分离出来后存入brokenEpcList
// 创建存放 broken epc 的列表
List<String> brokenEpcList = new ArrayList<>();
if (allWarehouseInvList.size()>0){
Iterator<WarehouseInventory> iterator = allWarehouseInvList.iterator();
while (iterator.hasNext()) {
WarehouseInventory item = iterator.next();
if ("broken".equals(item.getState())) {
brokenEpcList.add(item.getEpc());
iterator.remove();
}
}
//进行过滤后二次判断,如果大于0,则直接进行删除操作
if (allWarehouseInvList.size()>0){
warehouseInventoryService.removeBatchByIds(allWarehouseInvList);
}
}
if (pdEpcList.size()>0){
pdEpcList = pdEpcList.stream().filter(p -> !brokenEpcList.contains(p)).collect(Collectors.toList());
//直接将epc进行存储即可
List<ViewEquipmentDto> viewEd = inventoryMapper.GetViewEquipment(pdEpcList);
for (ViewEquipmentDto inv:viewEd) {
WarehouseInventory Wi=new WarehouseInventory();
Wi.setEpc(inv.getEpc());
Wi.setOrgId(BI.getOrgId());
Wi.setOrgName(BI.getOrgName());
Wi.setTypeId(inv.getTypeId());
Wi.setSizeId(inv.getSizeId());
Wi.setTypeName(inv.getTypeName());
Wi.setSizeName(inv.getSizeName());
Wi.setLocationType("0");
Wi.setLocationState("in");
Wi.setEpcType(0);
Wi.setLocationName(BI.getWarehouseName());
Wi.setLocationId(BI.getWarehouseId());
Wi.setLocationType("0");
Wi.setCreateTime(new Date());
Wi.setUpdateTime(new Date());
SaveEpcList.add(Wi);
}
}
if (SaveEpcList.size()>0) {
warehouseInventoryService.saveBatch(SaveEpcList);
}
//4.修改库存汇总(人工矫正,直接根据单子进行盘点)
List<InventorySummary> SumResult = inventorySummaryService.getEquipmentInfoList(sumreq);
List<InventorySummary> delSumList=new ArrayList<>();
List<InventorySummary> updateSumList=new ArrayList<>();
List<InventorySummary> addSumList=new ArrayList<>();
for (BussinessDetail bussinessDetail : bussinessDetaiList){
boolean flag=false;
for (InventorySummary is : SumResult){
if (is.getTypeId().equals(bussinessDetail.getTypeId())
&& is.getSizeId().equals(bussinessDetail.getSizeId())
&& is.getUnitPrice().compareTo(bussinessDetail.getPrice())==0
&& is.getProperty()==0){
flag=true;
is.setStockNumber(Integer.valueOf(bussinessDetail.getAccountNum()));
is.setNumber(Integer.valueOf(bussinessDetail.getAccountNum()));
is.setOutboundNumber(0);
is.setPrice(is.getUnitPrice().multiply(BigDecimal.valueOf(is.getNumber())));
updateSumList.add(is);
if (is.getNumber()==0 && is.getDestructionNumber()==0){
delSumList.add(is);
}
}
}
if (! flag){
InventorySummary insertSum=inventorySummaryService.createInventorySummary(BI.getOrgId(), BI.getOrgName(),
org.getOrgCode(),bussinessDetail.getTypeId(),bussinessDetail.getTypeName(),bussinessDetail.getSizeId(),
bussinessDetail.getSizeName(), BI.getWarehouseId(), BI.getWarehouseName(),Integer.valueOf(bussinessDetail.getAccountNum()),0,
bussinessDetail.getPrice(),0,0,0,0,0,0,0,"0" );
addSumList.add(insertSum);
}
}
if (CollectionUtil.isNotEmpty(updateSumList)){
inventorySummaryService.removeBatchByIds(updateSumList);
}
if (CollectionUtil.isNotEmpty(delSumList)){
inventorySummaryService.removeBatchByIds(delSumList);
}
if (CollectionUtil.isNotEmpty(addSumList)){
inventorySummaryService.saveBatch(addSumList);
}
//7.更新子单详情
List<Long> detailIdsList = bussinessDetaiList.stream().map(BussinessDetail::getId).collect(Collectors.toList());
List<BussinessInventoryChildrenDetail> childDetailList = bussinessInventoryChildrenDetailService.list(new LambdaQueryWrapper<BussinessInventoryChildrenDetail>()
.in(BussinessInventoryChildrenDetail::getInvDetailId, detailIdsList));
childDetailList.forEach(p -> { p.setIsUse(1);p.setUpdateTime(new Date());});
bussinessInventoryChildrenDetailService.updateBatchById(childDetailList);
MQ.SendMsg("orderExchange", BI.getOrgId().toString(),"BussinessInventoryFinish",-1,
"BussinessInventoryFinish",null,null,new ArrayList<>(),BI.getId(),"finished");
BI.setInventoryState("close");
BI.setUpdateTime(new Date());
}else {
BI.setInventoryState("cancel");
BI.setUpdateTime(new Date());
MQ.SendMsg("orderExchange", BI.getOrgId().toString(),"BussinessInventoryFinish",-1,
"BussinessInventoryFinish",null,null,new ArrayList<>(),BI.getId(),"cancel");
}
//5.结束盘点,解除仓库锁
Warehouse warehouse= warehouseService.getById(BI.getWarehouseId());
warehouse.setIsLocked(0);
warehouseService.updateById(warehouse);
//6.推送消息
String Msg="盘库单:【"+BI.getOrderNum()+"】已结束,仓库:"+BI.getWarehouseName()+",该仓库已解锁";
sendAsyncReminder(BI,Msg,"Inventory/pass");//异步推送消息
//8.更新主单据
this.updateById(BI);
return true;
}
@Async @Async
public void sendAsyncReminder(BussinessInventory BI,String Msg,String type) { public void sendAsyncReminder(BussinessInventory BI,String Msg,String type) {
//盘点进行中,需要为所有人员推送信息 //盘点进行中,需要为所有人员推送信息
......
...@@ -382,7 +382,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -382,7 +382,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
pubOrg.getOrgName(),pubOrg.getOrgCode(),inv.getTypeId(),inv.getTypeName(),inv.getSizeId(), pubOrg.getOrgName(),pubOrg.getOrgCode(),inv.getTypeId(),inv.getTypeName(),inv.getSizeId(),
inv.getSizeName(),inv.getLocationId(),inv.getLocationName(),inv.getStockNum(), inv.getSizeName(),inv.getLocationId(),inv.getLocationName(),inv.getStockNum(),
inv.getOutBoundNum(),inv.getPrice(),inv.getStockExpireNum()+inv.getOutboundExpireNum(), inv.getOutBoundNum(),inv.getPrice(),inv.getStockExpireNum()+inv.getOutboundExpireNum(),
0,ObjectUtil.isNull(inv.getProperty())?0:inv.getProperty(),0,0, 0,0,0,0,
0,0,"0"); 0,0,"0");
addSumList.add(inventorySummary); addSumList.add(inventorySummary);
} }
...@@ -1022,118 +1022,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -1022,118 +1022,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override @Override
// public Boolean EqsBindOrUnbindCabinet(PoliceEquipmentDetailReq req) {
// PubOrg pubOrg = pubOrgService.PubOrgCodeExist(req.getOrgCode());
// Cabinet cabinet=cabinetBoxService.getCabByBoxId(req.getLocationId());
// //1.获取该箱门下面的所有装备信息
// List<PoliceEquipmentDetail> list = policeEquipmentDetailService.list(new LambdaQueryWrapper<PoliceEquipmentDetail>()
// .eq(PoliceEquipmentDetail::getLocationId, req.getLocationId()));
//
// //2.获取判断该箱门中是否存在epc,将不存在的epc的locationId设置为空
// List<InventoryReq> epcList = req.getEpcList();
// if (CollectionUtil.isNotEmpty(epcList)){
// List<String> collect = epcList.stream().map(InventoryReq::getEpc).collect(Collectors.toList());
// List<Inventory> inventoryList = inventoryMapper.selectEqcs(collect);
// epcList.forEach(s -> {
// Optional<Inventory> inv = inventoryList.stream().filter(a -> a.getEpc().equals(s.getEpc())).findFirst();
// if(inv.isPresent()){
// s.setPrice(inv.get().getPrice());
// s.setProperty(inv.get().getProperty());
// s.setWarrantyPeriod(inv.get().getWarrantyPeriod());
// s.setProductionDate(inv.get().getProductionDate());
// }
// });
// }
// List<PoliceEquipmentDetail> invList=new ArrayList<>();
// List<PoliceEquipmentDetail> deleteList = new ArrayList<>();
// List<PoliceEquipmentDetail> addList = new ArrayList<>();
// //如果箱门中没有数据,那么直接就将装备和箱门关系解除(如果该装备也没有人员绑定,那么直接删除)
//
// if (list.size() > 0) {
// if (epcList.size() > 0) {
// for (PoliceEquipmentDetail detail:list) {
// boolean flag=false;
// for (InventoryReq detailReq:epcList) {
// if (detailReq.getEpc().equals(detail.getEpc())){
// flag=true;
// }
// break;
// }
// if (!flag){
// deleteList.add(detail);
// }
// }
// } else {
// deleteList.addAll(list);
// }
// } else {
// for (InventoryReq detailReq : epcList) {
// PoliceEquipmentDetail equipmentDetail = new PoliceEquipmentDetail();
// BeanPlusUtil.copyProperties(detailReq, equipmentDetail);
// equipmentDetail.setOrgId(pubOrg.getOrgId().toString());
// equipmentDetail.setLocationId(req.getLocationId());
// equipmentDetail.setDevSn(req.getDevSn());
// equipmentDetail.setCreateTime(DateTimeUtil.getCurrentDateTime());
// equipmentDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
// addList.add(equipmentDetail);
// }
// }
// if (addList.size()>0){
// policeEquipmentDetailService.saveBatch(addList);
// }
// if (deleteList.size()>0){
// policeEquipmentDetailService.removeBatchByIds(deleteList);
// }
//
// //3.将inventory重新进行汇总
// if (deleteList.size()>0){
// List<String> collect = deleteList.stream().map(PoliceEquipmentDetail::getEpc).collect(Collectors.toList());
// update(new LambdaUpdateWrapper<Inventory>().set(Inventory::getLocationId,null)
// .set(Inventory::getLocationType,null)
// .in(Inventory::getEpc,collect));
// warehouseInventoryService.update(new LambdaUpdateWrapper<WarehouseInventory>()
// .set(WarehouseInventory::getLocationId,null)
// .set(WarehouseInventory::getLocationName,null)
// .set(WarehouseInventory::getLocationType,null)
// .in(WarehouseInventory::getEpc,collect));
// }
// if (addList.size()>0){
// List<String> collect = addList.stream().map(PoliceEquipmentDetail::getEpc).collect(Collectors.toList());
//
// update(new LambdaUpdateWrapper<Inventory>().set(Inventory::getLocationId,req.getLocationId())
// .set(Inventory::getLocationType,1)
// .in(Inventory::getEpc,collect));
// warehouseInventoryService.update(new LambdaUpdateWrapper<WarehouseInventory>()
// .set(WarehouseInventory::getLocationId,req.getLocationId())
// .set(WarehouseInventory::getLocationName,null)
// .set(WarehouseInventory::getLocationType,1)
// .in(WarehouseInventory::getEpc,collect));
//
// }
// //4.比较inventorySummary中的数据,如果不存在直接删除,如果存在数量不对进行更新操作,如果库存没有,库存进行新增操作
// //我还是得进行数据汇总
// invList.addAll(deleteList);
// invList.addAll(addList);
// Map<String,List<Object[]>> invSummaryMap=new HashMap<>();
// for (PoliceEquipmentDetail detail:invList) {
// String key= detail.getOrgId()+cabinet.getId()+detail.getTypeId()+detail.getSizeId()+detail.getProperty();
// if (!invSummaryMap.containsKey(key)){
// List<Object[]> searchItem = invSummaryMap.get(key);
// Object[] item=new Object[]{detail.getOrgId(),cabinet.getId(),detail.getTypeId(),detail.getSizeId(),detail.getProperty()};
// searchItem.add(item);
// invSummaryMap.put(key,searchItem);
// }
// }
// Collection<List<Object[]>> values = invSummaryMap.values();
// List<Object[]> searchItem = values.stream()
// .flatMap(Collection::stream)
// .collect(Collectors.toList());
//
// List<InventorySummary> inventorySummaryList = inventorySummaryMapper.selectSum(searchItem);
//
// return null;
// }
@Transactional @Transactional
public String EqsBindOrUnbindCabinet(PoliceEquipmentDetailReq req) { public String EqsBindOrUnbindCabinet(PoliceEquipmentDetailReq req) {
PubOrg pubOrg = pubOrgService.PubOrgCodeExist(req.getOrgCode()); PubOrg pubOrg = pubOrgService.PubOrgCodeExist(req.getOrgCode());
...@@ -1153,10 +1041,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -1153,10 +1041,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
public List<Inventory> EqsBindOrUnBind(List<String> epcList, Cabinet cabinet, PubOrg pubOrg, CabinetBox cabinetBox,Policeman policeman) { public List<Inventory> EqsBindOrUnBind(List<String> epcList, Cabinet cabinet, PubOrg pubOrg, CabinetBox cabinetBox,Policeman policeman) {
List<Inventory> returnList=new ArrayList<>(); List<Inventory> returnList=new ArrayList<>();
//获取到该单警柜下面是否存在装备,如果存在且已经解绑,那么该单警柜的装备的出库状态就设置出库,在库数减少,出库数增加 //获取到该单警柜下面是否存在装备,如果存在且已经解绑,那么该单警柜的装备的出库状态就设置出库,在库数减少,出库数增加
// List<Inventory> list = list(new LambdaQueryWrapper<Inventory>()
// .eq(Inventory::getLocationId, cabinetBox.getId())
// .eq(Inventory::getLocationType, 1)
// .eq(Inventory::getEqsBindState,1));
List<Inventory> list=inventoryMapper.getInvByCabinetBox(cabinetBox.getId()); List<Inventory> list=inventoryMapper.getInvByCabinetBox(cabinetBox.getId());
//解绑的装备epc //解绑的装备epc
......
...@@ -4,16 +4,16 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -4,16 +4,16 @@ 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.mapper.OrgUserMapper;
import com.junmp.jyzb.api.bean.dto.InventorySumDto; import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.dto.TypeSizeDto; import com.junmp.jyzb.api.bean.dto.TypeSizeDto;
import com.junmp.jyzb.api.bean.query.inAndOutRecordReq.CabinetLogsRecordReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq; import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.api.bean.query.SelectTotalNumReq; import com.junmp.jyzb.api.bean.query.SelectTotalNumReq;
import com.junmp.jyzb.api.bean.query.inAndOutRecordReq.CabinetLogsRecordReq;
import com.junmp.jyzb.api.bean.vo.InvSumVo; import com.junmp.jyzb.api.bean.vo.InvSumVo;
import com.junmp.jyzb.api.bean.vo.InventorySumVo; import com.junmp.jyzb.api.bean.vo.InventorySumVo;
import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum; import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
import com.junmp.jyzb.entity.*; import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.service.*; import com.junmp.jyzb.service.*;
import com.junmp.jyzb.utils.DateTimeUtil; import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.exception.base.ServiceException; import com.junmp.v2.common.exception.base.ServiceException;
...@@ -24,17 +24,18 @@ import com.junmp.v2.db.api.factory.PageResultFactory; ...@@ -24,17 +24,18 @@ import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult; import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.dict.entity.SysDictItem; import com.junmp.v2.dict.entity.SysDictItem;
import com.junmp.v2.dict.service.SysDictItemService; import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.message.api.MessageApi;
import com.junmp.v2.office.api.OfficeExcelApi; import com.junmp.v2.office.api.OfficeExcelApi;
import com.junmp.v2.office.api.bean.ExcelExportParam; import com.junmp.v2.office.api.bean.ExcelExportParam;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service @Service
public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMapper, InventorySummary> implements InventorySummaryService { public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMapper, InventorySummary> implements InventorySummaryService {
...@@ -46,19 +47,11 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa ...@@ -46,19 +47,11 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
private OrderMainService orderMainService; private OrderMainService orderMainService;
@Resource @Resource
private InventoryService inventoryService;
@Resource
private InventorySummaryMapper inventorySummaryMapper; private InventorySummaryMapper inventorySummaryMapper;
@Resource @Resource
private EquipmentSizeService equipmentSizeService; private EquipmentSizeService equipmentSizeService;
@Resource
private OrderDetailService orderDetailService;
@Resource
private WarehouseService warehouseService;
@Resource @Resource
private LogSummaryService logSummaryService; private LogSummaryService logSummaryService;
...@@ -76,18 +69,7 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa ...@@ -76,18 +69,7 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
private EquipmentTypeService equipmentTypeService; private EquipmentTypeService equipmentTypeService;
@Resource @Resource
private BusFormService busFormService;
@Resource
private MessageApi messageApi;
@Resource
private OrgUserMapper orgUserMapper;
@Resource
private OfficeExcelApi officeExcelApi; private OfficeExcelApi officeExcelApi;
@Resource
private InventorySummaryService inventorySummaryService;
...@@ -239,33 +221,6 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa ...@@ -239,33 +221,6 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
return one; return one;
} }
//单警柜返回数据
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean cabinetInOutRecords(CabinetLogsRecordReq req) {
//批量修改装备信息
// List<InventoryReq> inventoryList = req.getInventoryList();
boolean a=true;
// List<Inventory> inventoryLogsList=new ArrayList<>();
// for (InventoryReq inventoryReq:inventoryList) {
// Inventory inventory = new Inventory();
// BeanPlusUtil.copyProperties(inventoryReq,inventory);
// boolean result = inventoryService.saveOrUpdate(inventory);
// inventoryLogsList.add(inventory);
// if (!result){
// a=false;
// break;
// }
// }
//修改summary表中数据
// boolean b = updateSummaryInsByCabinet(req.getLocationId());
//添加日志记录、
// Boolean c = insertCabinetLog(req,inventoryLogsList);
return (a );
}
public boolean updateSummaryInsByCabinet(String locationId){ public boolean updateSummaryInsByCabinet(String locationId){
//查询字典表中的临近报废天数 //查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>() SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
...@@ -547,11 +502,6 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa ...@@ -547,11 +502,6 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
} }
@Override
public void updateSummaryInsImport(Long orgId,String locationId) {
inventorySummaryMapper.updateSummaryInsImport(orgId,locationId);
}
//更新summary表的expire_number字段及金额,broken_number字段及金额,destruction_number字段及金额 //更新summary表的expire_number字段及金额,broken_number字段及金额,destruction_number字段及金额
@Override @Override
public void UpdateSummaryNumber() { public void UpdateSummaryNumber() {
......
...@@ -351,11 +351,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -351,11 +351,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
return a && b && c && c1 && d; return a && b && c && c1 && d;
} }
@Override
public Boolean processOutInRecords(CabinetLogsRecordReq req) {
//根据单警柜
return null;
}
@Override @Override
public PageResult<LogSummary> ShowInOutRecords(LogSummaryReq req) { public PageResult<LogSummary> ShowInOutRecords(LogSummaryReq req) {
...@@ -532,13 +528,13 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -532,13 +528,13 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
inventorySummary=inventorySummaryService.createInventorySummary(outDto.getOrgId(),outDto.getOrgName(),outDto.getOrgCode(), inventorySummary=inventorySummaryService.createInventorySummary(outDto.getOrgId(),outDto.getOrgName(),outDto.getOrgCode(),
outDto.getTypeId(),outDto.getTypeName(),outDto.getSizeId(),outDto.getSizeName(), outDto.getTypeId(),outDto.getTypeName(),outDto.getSizeId(),outDto.getSizeName(),
outDto.getLocationId(),outDto.getLocationName(),outDto.getNumber(),0, outDto.getLocationId(),outDto.getLocationName(),outDto.getNumber(),0,
outDto.getPrice(),0,0,outDto.getProperty(),0,0,0,0,"0"); outDto.getPrice(),0,0,0,0,0,0,0,"0");
}else { }else {
inventorySummary=inventorySummaryService.createInventorySummary(outDto.getOrgId(),outDto.getOrgName(),outDto.getOrgCode(), inventorySummary=inventorySummaryService.createInventorySummary(outDto.getOrgId(),outDto.getOrgName(),outDto.getOrgCode(),
outDto.getTypeId(),outDto.getTypeName(),outDto.getSizeId(),outDto.getSizeName(), outDto.getTypeId(),outDto.getTypeName(),outDto.getSizeId(),outDto.getSizeName(),
outDto.getLocationId(),outDto.getLocationName(),0,outDto.getNumber(), outDto.getLocationId(),outDto.getLocationName(),0,outDto.getNumber(),
outDto.getPrice(),0,0,outDto.getProperty(),outDto.getNumber(),outDto.getNumber(),0,0,"0"); outDto.getPrice(),0,0,0,outDto.getNumber(),outDto.getNumber(),0,0,"0");
} }
addList.add(inventorySummary); addList.add(inventorySummary);
...@@ -634,7 +630,6 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -634,7 +630,6 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
} }
//存放logdetail信息 //存放logdetail信息
LogDetail logDetail = new LogDetail(); LogDetail logDetail = new LogDetail();
LogDetail logDetailQuick=new LogDetail();
BeanPlusUtil.copyProperties(detailLogReq, logDetail); BeanPlusUtil.copyProperties(detailLogReq, logDetail);
logDetail.setSummaryId(logSummary.getId()); logDetail.setSummaryId(logSummary.getId());
logDetail.setOrgId(logSummary.getOrgId()); logDetail.setOrgId(logSummary.getOrgId());
...@@ -677,7 +672,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -677,7 +672,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
boolean b = orderLogService.saveBatch(orderLogList); boolean b = orderLogService.saveBatch(orderLogList);
} }
//修改inventory表中的数据(如果不为空则表示不是采购单或者已经将采购单的信息过滤掉 //修改inventory表中的数据(判断是否记账
if (inventoryList.size()>0){ if (inventoryList.size()>0){
if (ObjectUtil.isNotNull(ordermain) && (ObjectUtil.isNull(ordermain.getManualState()) || ordermain.getManualState()!=1)){ if (ObjectUtil.isNotNull(ordermain) && (ObjectUtil.isNull(ordermain.getManualState()) || ordermain.getManualState()!=1)){
......
...@@ -1818,8 +1818,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1818,8 +1818,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
String sumKey=invSummary.getOrgId()+invSummary.getLocationId()+invSummary.getTypeId()+invSummary.getSizeId()+invSummary.getUnitPrice(); String sumKey=invSummary.getOrgId()+invSummary.getLocationId()+invSummary.getTypeId()+invSummary.getSizeId()+invSummary.getUnitPrice();
if (key.equals(sumKey)){ if (key.equals(sumKey)){
Object[] objects = searchMap.get(key); Object[] objects = searchMap.get(key);
if (orderMain.getBussinessType().equals("use")){
invSummary.setOutboundNumber(invSummary.getOutboundNumber()+(int)objects[5]);
invSummary.setStockNumber(Math.max(invSummary.getStockNumber()-(int)objects[5],0));
invSummary.setUseCount(invSummary.getUseCount()+(int)objects[5]);
}else {
invSummary.setNumber(Math.max(invSummary.getNumber()-(int)objects[5],0)); invSummary.setNumber(Math.max(invSummary.getNumber()-(int)objects[5],0));
invSummary.setStockNumber(Math.max(invSummary.getStockNumber()-(int)objects[5],0)); invSummary.setStockNumber(Math.max(invSummary.getStockNumber()-(int)objects[5],0));
}
if (invSummary.getNumber()==0 && invSummary.getStockNumber()==0){ if (invSummary.getNumber()==0 && invSummary.getStockNumber()==0){
delList.add(invSummary); delList.add(invSummary);
} }
...@@ -1830,10 +1836,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1830,10 +1836,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
inventorySummaryService.removeBatchByIds(delList); inventorySummaryService.removeBatchByIds(delList);
} }
inventorySummaryService.updateBatchById(inventorySummaryList); inventorySummaryService.updateBatchById(inventorySummaryList);
//修改删除数据库Inventory和warehouseInventory中的数据
List<String> epcList = invList.stream().map(Inventory::getEpc).collect(Collectors.toList());
inventoryService.removeBatchByIds(invList);
warehouseInventoryService.remove(new LambdaQueryWrapper<WarehouseInventory>().in(WarehouseInventory::getEpc,epcList));
orderDetailService.updateBatchById(orderDetailList); orderDetailService.updateBatchById(orderDetailList);
return true; return true;
} }
...@@ -1894,50 +1897,19 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1894,50 +1897,19 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
orderMain.setManualState(1); orderMain.setManualState(1);
orderMain.setOrderState("finished"); orderMain.setOrderState("finished");
updateById(orderMain); updateById(orderMain);
//出入库数据更新
List<LogSummary> addLogSummaryResult = createLogSummary(orderMain, orderDetailMap, orgInfo);
List<Inventory> addInvList=new ArrayList<>();
List<WarehouseInventory> addWareInvList=new ArrayList<>();
Random random = new Random();
//如果新增,添加新的虚拟epc入库
for (OrderDetail orderDetail:summaryMap.values()) {
int num = orderDetail.getModifyQuantity(); // 获取 num 字段的值
// 根据 num 的值重复创建 Inventory 对象并添加到列表中
for (int i = 0; i < num; i++) {
//随机生成一个epc
Date date = new Date();
String epc="000000"+date.getTime()+(random.nextInt(900000) + 100000);
Inventory inventory = createInvInfo(epc,orgInfo.getOrgId(),orderDetail.getSupplierId(),orderDetail.getSupplierName(),
orderDetail.getWarehouseId(),orderDetail.getWarehouseName(),orderDetail.getWarrantyPeriod(),
orderDetail.getMaintenancePeriod(),orderDetail.getSizeId(),orderDetail.getTypeId(),
new BigDecimal(orderDetail.getPrice()),orderDetail.getProductionDate(),
orderMain.getBussinessType(),orderDetail.getTypeName(),orderDetail.getSizeName() );
addInvList.add(inventory);
WarehouseInventory tpWarehouseInv=createWareInvInfo(orgInfo.getOrgId(),epc,orderDetail.getTypeId(),
orderDetail.getSizeId(),orgInfo.getOrgName(),
orderDetail.getWarehouseId(),orderDetail.getWarehouseName(),
orderDetail.getTypeName(), orderDetail.getSizeName());
addWareInvList.add(tpWarehouseInv);
}
}
if (CollectionUtil.isNotEmpty(addInvList)){
inventoryService.saveBatch(addInvList);
}
if (CollectionUtil.isNotEmpty(addWareInvList)){
warehouseInventoryService.saveBatch(addWareInvList);
}
//更新库存汇总 //更新库存汇总
List<String> valuekeyList = new ArrayList<>(summaryMap.keySet()); List<String> valuekeyList = new ArrayList<>(summaryMap.keySet());
List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>().in(InventorySummary::getValuekey, valuekeyList)); List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>().in(InventorySummary::getValuekey, valuekeyList));
List<InventorySummary> addList=new ArrayList<>(); List<InventorySummary> addList=new ArrayList<>();
for (InventorySummary invSummary : list) { for (InventorySummary invSummary : list) {
Integer integer = summaryMap.get(invSummary.getValuekey()).getModifyQuantity(); Integer integer = summaryMap.get(invSummary.getValuekey()).getModifyQuantity();
if (orderMain.getBussinessType().equals("return")){
invSummary.setOutboundNumber(invSummary.getStockNumber() - integer);
invSummary.setStockNumber(invSummary.getStockNumber() + integer);
}else {
invSummary.setStockNumber(invSummary.getStockNumber() + integer); invSummary.setStockNumber(invSummary.getStockNumber() + integer);
invSummary.setNumber(invSummary.getNumber() + integer); invSummary.setNumber(invSummary.getNumber() + integer);
}
summaryMap.remove(invSummary.getValuekey()); summaryMap.remove(invSummary.getValuekey());
} }
if (!summaryMap.isEmpty()){ if (!summaryMap.isEmpty()){
...@@ -2221,7 +2193,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -2221,7 +2193,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<PoliceEquipmentDetail> list=new ArrayList<>(); List<PoliceEquipmentDetail> list=new ArrayList<>();
for (LogSummaryReq ls:logList) { for (LogSummaryReq ls:logList) {
if (CollectionUtil.isNotEmpty(ls.getLogList())){ if (ls.getLogList().size()>0){
for (LogDetailReq ld:ls.getLogList()) { for (LogDetailReq ld:ls.getLogList()) {
PoliceEquipmentDetail detail = new PoliceEquipmentDetail(); PoliceEquipmentDetail detail = new PoliceEquipmentDetail();
...@@ -3231,12 +3203,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3231,12 +3203,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
jsonCollect.addAll(childJson); jsonCollect.addAll(childJson);
for (DetailJsonReq jsonReq:childJson) { for (DetailJsonReq jsonReq:childJson) {
//1、移出仓库 //1、移出仓库
Object[] criteria=new Object[]{existOrder.getStartOrgId(),jsonReq.getLocationId(),detailReq.getTypeId(),detailReq.getSizeId(),jsonReq.getUnitPrice(),detailReq.getProperty(),jsonReq.getModifyQuantity()}; Object[] criteria=new Object[]{existOrder.getStartOrgId(),jsonReq.getLocationId(),detailReq.getTypeId(),detailReq.getSizeId(),jsonReq.getUnitPrice(),0,jsonReq.getModifyQuantity()};
searchCriteria.add(criteria); searchCriteria.add(criteria);
//4.移入仓库 //4.移入仓库
String key=orderMain.getEndOrgId()+locationId+detailReq.getTypeId()+detailReq.getSizeId()+jsonReq.getUnitPrice()+detailReq.getProperty(); String key=orderMain.getEndOrgId()+locationId+detailReq.getTypeId()+detailReq.getSizeId()+jsonReq.getUnitPrice()+"0";
if (!listMap.containsKey(key)){ if (!listMap.containsKey(key)){
Object[] update=new Object[]{orderMain.getEndOrgId(),locationId,detailReq.getTypeId(),detailReq.getSizeId(),jsonReq.getUnitPrice(),detailReq.getProperty()}; Object[] update=new Object[]{orderMain.getEndOrgId(),locationId,detailReq.getTypeId(),detailReq.getSizeId(),jsonReq.getUnitPrice(),0};
updateCriteria.add(update); updateCriteria.add(update);
listMap.put(key,key); listMap.put(key,key);
} }
...@@ -3260,7 +3232,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3260,7 +3232,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
Map<String,InventorySummary> summaryMap=new HashMap<>(); Map<String,InventorySummary> summaryMap=new HashMap<>();
for (DetailJsonReq json: jsonCollect ) { for (DetailJsonReq json: jsonCollect ) {
for (InventorySummary oldSum : oldSummaryList) { for (InventorySummary oldSum : oldSummaryList) {
Integer property=ObjectUtil.isNull(json.getProperty())?oldSum.getProperty():json.getProperty(); Integer property=0;
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值( //如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(
// 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历) // 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
BigDecimal unitPrice=ObjectUtil.isNotNull(json.getPrice())?json.getPrice():json.getUnitPrice(); BigDecimal unitPrice=ObjectUtil.isNotNull(json.getPrice())?json.getPrice():json.getUnitPrice();
...@@ -3723,14 +3695,19 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3723,14 +3695,19 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
Map<String,LogSummaryReq> logMap=new HashMap<>(); Map<String,LogSummaryReq> logMap=new HashMap<>();
//用于统计invSummary的存放list //用于统计invSummary的存放list
List<UpdateOrderDetailReq> orderDetailReqList=new ArrayList<>(); List<UpdateOrderDetailReq> orderDetailReqList=new ArrayList<>();
//1.修改单据(包括单据详情信息)
boolean result = updateOrderModifyQuantity(stringtext, orderMain, detailList, quantityTotal, updateDetailList,
req,logMap,loginUser,warehouseMap,orgId,orderDetailReqList);
//2.需要判断是否是下发到半山的单子,如果是则另一种记账方式,如果不是则用原来的单据记账方式 //半山的记账功能
//1.需要判断是否是下发到半山的单子,如果是则另一种记账方式,如果不是则用原来的单据记账方式
if (ObjectUtil.isNotNull(orderMain.getSyncFlag()) && orderMain.getSyncFlag()==1){ if (ObjectUtil.isNotNull(orderMain.getSyncFlag()) && orderMain.getSyncFlag()==1){
System.out.println("result = " + result); return handleKFOrder(orderMain,req);
return true; }
//2.修改单据(包括单据详情信息)
boolean emptyOrderFlag=false;
boolean result = updateOrderModifyQuantity(emptyOrderFlag,stringtext, orderMain, detailList, quantityTotal, updateDetailList,
req,logMap,loginUser,warehouseMap,orgId,orderDetailReqList);
//表示记空账,故直接返回
if (!emptyOrderFlag){
return result;
} }
//3.判断单据类型,不同单据的处理方式不同,处理装备,分开写更容易看懂 //3.判断单据类型,不同单据的处理方式不同,处理装备,分开写更容易看懂
//自动识别的epc //自动识别的epc
...@@ -3821,6 +3798,44 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3821,6 +3798,44 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
return InvUpdateResult && orderLogResult && invSumResult && otherResult; return InvUpdateResult && orderLogResult && invSumResult && otherResult;
} }
private Boolean handleKFOrder(OrderMain orderMain,UpdateOrderReq req){
//判断单据是否存在正在执行的任务,如果存在则直接提示报错
Long orgId= orderMain.getOrderType().equals("in")?orderMain.getEndOrgId():orderMain.getStartOrgId();
SysDictItem one = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, orgId.toString()));
Boolean flag =thirdPartyService.getTaskWokingState(orderMain.getOrderCode(),one.getItemValue());
if (!flag){
throw new ServiceException(OrderExceptionEnum.ORDER_IS_RUNNING_ERROR);
}
//判断是否是最新的出入库数据,如果是最新的进行下一步,如果不是最新的返回报错让前端进行弹窗后更新最新接口
Boolean orderInfoResult =thirdPartyService.getLasterOrderInfo(orderMain.getId(),orderMain.getOrderType(),orderMain.getOrderCode(),one.getItemValue());
if (!orderInfoResult){
throw new ServiceException(OrderExceptionEnum.ORDER_IS_NOT_LASTER_ERROR);
}
//判断记账下发给半山是否能返回true,如果是不行则记账失败
Boolean accountingResult = false;
try {
accountingResult = thirdPartyService.editOrderStatus(orderMain.getOrderCode(),one.getItemValue());
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
if (!accountingResult){
throw new ServiceException(OrderExceptionEnum.ORDER_IS_NOT_LASTER_ERROR);
}
//如果都顺利则直接开始记账操作
Boolean reslut=false;
if (orderMain.getOrderType().equals("in")){
reslut=accountingBySyncInOrder(orderMain.getId(),req,orgId);
}else {
reslut=accountingBySyncOutOrder(orderMain.getId(),req,orgId);
}
return reslut;
}
/** /**
* 正常出入库库存汇总增加、删除或修改 * 正常出入库库存汇总增加、删除或修改
*/ */
...@@ -3834,7 +3849,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3834,7 +3849,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//如果归还入库和出库的不是同一个地方 //如果归还入库和出库的不是同一个地方
if (ObjectUtil.isNotNull(detailReq.getOldLocationId()) && !detailReq.getOldLocationId().equals(detailReq.getWarehouseId())){ if (ObjectUtil.isNotNull(detailReq.getOldLocationId()) && !detailReq.getOldLocationId().equals(detailReq.getWarehouseId())){
//做删除操作,将原来出库数减少,库存总数减少 //做删除操作,将原来出库数减少,库存总数减少
String oldKey=pubOrg.getOrgId()+detailReq.getOldLocationId()+detailReq.getTypeId()+detailReq.getSizeId()+detailReq.getPrice()+detailReq.getProperty(); String oldKey=pubOrg.getOrgId()+detailReq.getOldLocationId()+detailReq.getTypeId()+detailReq.getSizeId()+detailReq.getPrice()+"0";
if (oldMap.containsKey(oldKey)){ if (oldMap.containsKey(oldKey)){
UpdateOrderDetailReq updateReq = oldMap.get(oldKey); UpdateOrderDetailReq updateReq = oldMap.get(oldKey);
updateReq.setModifyQuantity(updateReq.getModifyQuantity()+detailReq.getModifyQuantity()); updateReq.setModifyQuantity(updateReq.getModifyQuantity()+detailReq.getModifyQuantity());
...@@ -3849,7 +3864,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3849,7 +3864,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}else { }else {
detailReq.setAddFlag(false); detailReq.setAddFlag(false);
} }
String key=pubOrg.getOrgId()+detailReq.getWarehouseId()+detailReq.getTypeId()+detailReq.getSizeId()+detailReq.getPrice()+detailReq.getProperty(); String key=pubOrg.getOrgId()+detailReq.getWarehouseId()+detailReq.getTypeId()+detailReq.getSizeId()+detailReq.getPrice()+"0";
if (map.containsKey(key)){ if (map.containsKey(key)){
UpdateOrderDetailReq updateReq = map.get(key); UpdateOrderDetailReq updateReq = map.get(key);
updateReq.setModifyQuantity(updateReq.getModifyQuantity()+detailReq.getModifyQuantity()); updateReq.setModifyQuantity(updateReq.getModifyQuantity()+detailReq.getModifyQuantity());
...@@ -3868,7 +3883,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3868,7 +3883,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<Object[]> searchOldCriteria=new ArrayList<>(); List<Object[]> searchOldCriteria=new ArrayList<>();
for (String key : oldMap.keySet()) { for (String key : oldMap.keySet()) {
UpdateOrderDetailReq value = oldMap.get(key); UpdateOrderDetailReq value = oldMap.get(key);
Object[] criteria=new Object[]{pubOrg.getOrgId(),value.getOldLocationId(),value.getTypeId(),value.getSizeId(),value.getPrice(),value.getProperty()}; Object[] criteria=new Object[]{pubOrg.getOrgId(),value.getOldLocationId(),value.getTypeId(),value.getSizeId(),value.getPrice(),"0"};
searchOldCriteria.add(criteria); searchOldCriteria.add(criteria);
} }
...@@ -3876,7 +3891,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3876,7 +3891,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<Object[]> searchCriteria=new ArrayList<>(); List<Object[]> searchCriteria=new ArrayList<>();
for (String key : map.keySet()) { for (String key : map.keySet()) {
UpdateOrderDetailReq value = map.get(key); UpdateOrderDetailReq value = map.get(key);
Object[] criteria=new Object[]{pubOrg.getOrgId(),value.getWarehouseId(),value.getTypeId(),value.getSizeId(),value.getPrice(),value.getProperty()}; Object[] criteria=new Object[]{pubOrg.getOrgId(),value.getWarehouseId(),value.getTypeId(),value.getSizeId(),value.getPrice(),"0"};
searchCriteria.add(criteria); searchCriteria.add(criteria);
} }
//3.将需要进行删除、修改的装备汇总信息进行处理 //3.将需要进行删除、修改的装备汇总信息进行处理
...@@ -3888,8 +3903,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3888,8 +3903,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
UpdateOrderDetailReq upReq = oldMap.get(key); UpdateOrderDetailReq upReq = oldMap.get(key);
for (InventorySummary is:invOldSummaryList) { for (InventorySummary is:invOldSummaryList) {
if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId()) if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId())
&& upReq.getTypeId().equals(is.getTypeId()) && new BigDecimal(upReq.getPrice()).compareTo(is.getUnitPrice())==0 && upReq.getTypeId().equals(is.getTypeId()) && new BigDecimal(upReq.getPrice()).compareTo(is.getUnitPrice())==0){
&& upReq.getProperty().equals(is.getProperty())){
is.setUpdateTime(DateTimeUtil.getCurrentDateTime()); is.setUpdateTime(DateTimeUtil.getCurrentDateTime());
is.setOutboundNumber(Math.max(is.getOutboundNumber()-upReq.getModifyQuantity(),0)); is.setOutboundNumber(Math.max(is.getOutboundNumber()-upReq.getModifyQuantity(),0));
//如果库存数为0,那么直接删除该条记录 //如果库存数为0,那么直接删除该条记录
...@@ -3914,8 +3928,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3914,8 +3928,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
boolean flag=false; boolean flag=false;
for (InventorySummary is:inventorySummaryList) { for (InventorySummary is:inventorySummaryList) {
if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId()) if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId())
&& upReq.getTypeId().equals(is.getTypeId()) && new BigDecimal(upReq.getPrice()).compareTo(is.getUnitPrice())==0 && upReq.getTypeId().equals(is.getTypeId()) && new BigDecimal(upReq.getPrice()).compareTo(is.getUnitPrice())==0){
&& upReq.getProperty().equals(is.getProperty())){
if (orderMain.getOrderType().equals("in")){ if (orderMain.getOrderType().equals("in")){
switch (orderMain.getBussinessType()){ switch (orderMain.getBussinessType()){
case "purchase": case "purchase":
...@@ -3976,7 +3989,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -3976,7 +3989,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
InventorySummary inventorySummary = inventorySummaryService.createInventorySummary(pubOrg.getOrgId(), InventorySummary inventorySummary = inventorySummaryService.createInventorySummary(pubOrg.getOrgId(),
pubOrg.getOrgName(), pubOrg.getOrgCode(), upReq.getTypeId(), upReq.getTypeName(), upReq.getSizeId(), pubOrg.getOrgName(), pubOrg.getOrgCode(), upReq.getTypeId(), upReq.getTypeName(), upReq.getSizeId(),
upReq.getSizeName(), upReq.getWarehouseId(), upReq.getWarehouseName(), upReq.getModifyQuantity(), upReq.getSizeName(), upReq.getWarehouseId(), upReq.getWarehouseName(), upReq.getModifyQuantity(),
0, new BigDecimal(upReq.getPrice()), 0, 0, upReq.getProperty(), 0, new BigDecimal(upReq.getPrice()), 0, 0, 0,
0, 0,0, 0, "0"); 0, 0,0, 0, "0");
addList.add(inventorySummary); addList.add(inventorySummary);
} }
...@@ -4068,29 +4081,39 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4068,29 +4081,39 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
private boolean updateInvSumByQucikOrder(OrderMain existOrder,List<UpdateOrderDetailReq> detailList, private boolean updateInvSumByQucikOrder(OrderMain existOrder,List<UpdateOrderDetailReq> detailList,
OrderMain quickInOrder){ OrderMain quickInOrder){
//1.原来出库单的查询条件list(根据条件查询库存汇总表中包含有相同条件的数据) //1.原来出库单的查询条件list(根据条件查询库存汇总表中包含有相同条件的数据)
List<Object[]> oldCriteria=new ArrayList<>(); Map<String,Object[]> oldCriteria=new HashMap<>();
//2.新建的入库单查询条件list(根据条件查询库存汇总表中是否包含有相同条件的数据) //2.新建的入库单查询条件list(根据条件查询库存汇总表中是否包含有相同条件的数据)
List<Object[]> newCriteria=new ArrayList<>(); Map<String,Object[]> newCriteria=new HashMap<>();
//查询条件,将所有查询条件放在searchCriteria中,用于修改库存表中的装备的仓库位置 //查询条件,将所有查询条件放在searchCriteria中,用于修改库存表中的装备的仓库位置
//循环记账子单 //循环记账子单
List<DetailJsonReq> jsonCollect =new ArrayList<>();
for (UpdateOrderDetailReq detailReq:detailList) { for (UpdateOrderDetailReq detailReq:detailList) {
List<DetailJsonReq> childJson = detailReq.getChildJson(); List<DetailJsonReq> childJson = detailReq.getChildJson();
jsonCollect.addAll(childJson);
for (DetailJsonReq jsonReq:childJson) { for (DetailJsonReq jsonReq:childJson) {
//移出仓库 //移出仓库
Object[] criteria=new Object[]{existOrder.getStartOrgId(),jsonReq.getLocationId(),detailReq.getTypeId(),detailReq.getSizeId(),jsonReq.getUnitPrice(),detailReq.getProperty(),jsonReq.getModifyQuantity()}; BigDecimal unitPirce=ObjectUtil.isNull(jsonReq.getUnitPrice())?jsonReq.getPrice():jsonReq.getUnitPrice();
oldCriteria.add(criteria); String removeKey=existOrder.getStartOrgId()+jsonReq.getLocationId()+detailReq.getTypeId()+detailReq.getSizeId()+unitPirce;
if (!oldCriteria.containsKey(removeKey)){
Object[] objects = oldCriteria.get(removeKey);
objects[6]=(Integer)objects[6]+jsonReq.getModifyQuantity();
oldCriteria.put(removeKey,objects);
}else {
Object[] criteria=new Object[]{existOrder.getStartOrgId(),jsonReq.getLocationId(),detailReq.getTypeId(),detailReq.getSizeId(),unitPirce,0,jsonReq.getModifyQuantity()};
oldCriteria.put(removeKey,criteria);
}
//移入仓库 //移入仓库
Object[] update=new Object[]{quickInOrder.getEndOrgId(),quickInOrder.getLocationId(),detailReq.getTypeId(),detailReq.getSizeId(),jsonReq.getUnitPrice(),detailReq.getProperty()}; String addKey=quickInOrder.getEndOrgId()+quickInOrder.getLocationId()+detailReq.getTypeId()+detailReq.getSizeId()+unitPirce;
newCriteria.add(update); if (!oldCriteria.containsKey(addKey)){
Object[] objects = oldCriteria.get(addKey);
newCriteria.put(removeKey,objects);
}
} }
} }
//将summary汇总表中数据进行修改(修改该组织机构下的装备汇总信息将库存信息的在库数,库存总数,总价还有其他数据数量进行修改) //将summary汇总表中数据进行修改(修改该组织机构下的装备汇总信息将库存信息的在库数,库存总数,总价还有其他数据数量进行修改)
//3首先将原来的仓库下的装备汇总信息进行查询出来,对其进行修改(移出) //3首先将原来的仓库下的装备汇总信息进行查询出来,对其进行修改(移出)
List<InventorySummary> oldSummaryList = inventorySummaryMapper.selectSum(oldCriteria); List<Object[]> objects = new ArrayList<>(oldCriteria.values());
List<InventorySummary> oldSummaryList = inventorySummaryMapper.selectSum(objects);
//4.创建删除列表用于将没用的数据汇总信息进行删除 //4.创建删除列表用于将没用的数据汇总信息进行删除
...@@ -4100,19 +4123,16 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4100,19 +4123,16 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//5.将修改的信息直接保存(需要的只是各种数量方便计算) //5.将修改的信息直接保存(需要的只是各种数量方便计算)
List<InventorySummary> saveList=new ArrayList<>(); List<InventorySummary> saveList=new ArrayList<>();
Map<String,InventorySummary> summaryMap=new HashMap<>(); Map<String,InventorySummary> summaryMap=new HashMap<>();
for (DetailJsonReq json: jsonCollect ) { for (Object[] json: objects ) {
for (InventorySummary oldSum : oldSummaryList) { for (InventorySummary oldSum : oldSummaryList) {
Integer property=ObjectUtil.isNull(json.getProperty())?oldSum.getProperty():json.getProperty();
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值( //如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(
// 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历) // 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
BigDecimal unitPrice=ObjectUtil.isNotNull(json.getPrice())?json.getPrice():json.getUnitPrice(); if (json[1].equals(oldSum.getLocationId()) &&
if (json.getLocationId().equals(oldSum.getLocationId()) && json[2].equals(oldSum.getTypeId())
json.getSizeId().equals(oldSum.getSizeId()) && json[3].equals(oldSum.getSizeId())
&& json.getTypeId().equals(oldSum.getTypeId()) && ((BigDecimal) json[4]).compareTo(oldSum.getUnitPrice()) == 0) {
&& unitPrice.compareTo(oldSum.getUnitPrice()) == 0
&& property.equals(oldSum.getProperty())) {
//为入库做准备 //为入库做准备
InventorySummary invSumByQuickIn = createInvSumByQuickIn(oldSum, quickInOrder.getLocationId(), quickInOrder.getLocationName(), json, unitPrice); InventorySummary invSumByQuickIn = createInvSumByQuickIn(oldSum, quickInOrder.getLocationId(), quickInOrder.getLocationName(),(Integer) json[6], (BigDecimal) json[4]);
saveList.add(invSumByQuickIn); saveList.add(invSumByQuickIn);
if (!summaryMap.containsKey(invSumByQuickIn.getValuekey())){ if (!summaryMap.containsKey(invSumByQuickIn.getValuekey())){
summaryMap.put(invSumByQuickIn.getValuekey(),invSumByQuickIn); summaryMap.put(invSumByQuickIn.getValuekey(),invSumByQuickIn);
...@@ -4124,9 +4144,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4124,9 +4144,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
summaryMap.put(invSumByQuickIn.getValuekey(),inventorySummary1); summaryMap.put(invSumByQuickIn.getValuekey(),inventorySummary1);
} }
oldSum.setNumber(Math.max(oldSum.getNumber()-json.getModifyQuantity(),0)); oldSum.setNumber(Math.max(oldSum.getNumber()-(Integer) json[6],0));
oldSum.setPrice(unitPrice.multiply(BigDecimal.valueOf(oldSum.getNumber()))); oldSum.setPrice(((BigDecimal) json[4]).multiply(BigDecimal.valueOf(oldSum.getNumber())));
oldSum.setStockNumber(Math.max(oldSum.getStockNumber()-json.getModifyQuantity(),0)); oldSum.setStockNumber(Math.max(oldSum.getStockNumber()-(Integer) json[6],0));
//如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作 //如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作
if (oldSum.getNumber()==0 && oldSum.getBrokenNumber()==0 && oldSum.getDestructionNumber() == 0) { if (oldSum.getNumber()==0 && oldSum.getBrokenNumber()==0 && oldSum.getDestructionNumber() == 0) {
...@@ -4147,7 +4167,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4147,7 +4167,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//6.查询出修改后的仓库下面的汇总信息,判断该仓库下是否已经存在该号型、类型、单价相同的装备数据(移入) //6.查询出修改后的仓库下面的汇总信息,判断该仓库下是否已经存在该号型、类型、单价相同的装备数据(移入)
List<InventorySummary> newSummaryList = inventorySummaryMapper.selectSum(newCriteria); List<InventorySummary> newSummaryList = inventorySummaryMapper.selectSum(new ArrayList<>(newCriteria.values()));
//判断查询到的newList是否有值,如果有值直接进行修改即可,但是如果不存在,则默认新增一条数据 //判断查询到的newList是否有值,如果有值直接进行修改即可,但是如果不存在,则默认新增一条数据
//修改的是移入仓库的值 //修改的是移入仓库的值
...@@ -4158,8 +4178,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4158,8 +4178,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (save.getLocationId().equals(inventorySummary.getLocationId()) && if (save.getLocationId().equals(inventorySummary.getLocationId()) &&
save.getSizeId().equals(inventorySummary.getSizeId()) save.getSizeId().equals(inventorySummary.getSizeId())
&& save.getTypeId().equals(inventorySummary.getTypeId()) && save.getTypeId().equals(inventorySummary.getTypeId())
&& save.getUnitPrice().compareTo(inventorySummary.getUnitPrice()) == 0 && save.getUnitPrice().compareTo(inventorySummary.getUnitPrice()) == 0) {
&& save.getProperty().equals(inventorySummary.getProperty())) {
inventorySummary.setNumber(save.getNumber() + inventorySummary.getNumber()); inventorySummary.setNumber(save.getNumber() + inventorySummary.getNumber());
inventorySummary.setStockNumber(save.getStockNumber() + inventorySummary.getStockNumber()); inventorySummary.setStockNumber(save.getStockNumber() + inventorySummary.getStockNumber());
inventorySummary.setPrice(inventorySummary.getPrice().multiply(BigDecimal.valueOf(inventorySummary.getNumber()))); inventorySummary.setPrice(inventorySummary.getPrice().multiply(BigDecimal.valueOf(inventorySummary.getNumber())));
...@@ -4186,7 +4205,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4186,7 +4205,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
/** /**
* 创建快速入库单据inventorySummary * 创建快速入库单据inventorySummary
*/ */
private InventorySummary createInvSumByQuickIn(InventorySummary oldSum, String locationId, String locationName, DetailJsonReq json, BigDecimal unitPrice) { private InventorySummary createInvSumByQuickIn(InventorySummary oldSum, String locationId, String locationName, Integer modifyQuantity, BigDecimal unitPrice) {
InventorySummary inventorySummary = new InventorySummary(); InventorySummary inventorySummary = new InventorySummary();
BeanPlusUtil.copyProperties(oldSum,inventorySummary); BeanPlusUtil.copyProperties(oldSum,inventorySummary);
inventorySummary.setLocationId(locationId); inventorySummary.setLocationId(locationId);
...@@ -4194,9 +4213,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4194,9 +4213,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//在库数量进行修改并且报废数设为0 //在库数量进行修改并且报废数设为0
inventorySummary.setBrokenNumber(0); inventorySummary.setBrokenNumber(0);
inventorySummary.setOutboundNumber(0); inventorySummary.setOutboundNumber(0);
inventorySummary.setNumber(json.getModifyQuantity()); inventorySummary.setNumber(modifyQuantity);
inventorySummary.setPrice(unitPrice.multiply(BigDecimal.valueOf(json.getModifyQuantity()))); inventorySummary.setPrice(unitPrice.multiply(BigDecimal.valueOf(modifyQuantity)));
inventorySummary.setStockNumber(json.getModifyQuantity()); inventorySummary.setStockNumber(modifyQuantity);
inventorySummary.setDestructionNumber(0); inventorySummary.setDestructionNumber(0);
inventorySummary.setDestructionPrice(BigDecimal.ZERO); inventorySummary.setDestructionPrice(BigDecimal.ZERO);
inventorySummary.setId(null); inventorySummary.setId(null);
...@@ -4298,37 +4317,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4298,37 +4317,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (wareInventoryList.size()>0){ if (wareInventoryList.size()>0){
if (orderMain.getOrderType().equals("in")){ if (orderMain.getOrderType().equals("in")){
switch (orderMain.getBussinessType()){
case "purchase":
case "gift":
case "allocate":
warehouseInventoryService.saveBatch(wareInventoryList); warehouseInventoryService.saveBatch(wareInventoryList);
break;
case "return":
warehouseInventoryService.update(new LambdaUpdateWrapper<WarehouseInventory>()
.set(WarehouseInventory::getLocationId,wareInventoryList.get(0).getLocationId())
.set(WarehouseInventory::getLocationName,wareInventoryList.get(0).getLocationName())
.set(WarehouseInventory::getLocationType,wareInventoryList.get(0).getLocationType())
.set(WarehouseInventory::getLocationState,"in")
.in(WarehouseInventory::getEpc, wareEpcList));
break;
}
}else { }else {
switch (orderMain.getBussinessType()){ if (!orderMain.getBussinessType().equals("quick")){
case "use":
warehouseInventoryService.update(new LambdaUpdateWrapper<WarehouseInventory>()
.set(WarehouseInventory::getLocationState,"out")
.in(WarehouseInventory::getEpc, wareEpcList));
break;
case "quick":
//不做处理,单独处理
break;
case "allocate":
case "destruction":
warehouseInventoryService.remove(new LambdaQueryWrapper<WarehouseInventory>() warehouseInventoryService.remove(new LambdaQueryWrapper<WarehouseInventory>()
.eq(WarehouseInventory::getEpc, wareEpcList) .eq(WarehouseInventory::getEpc, wareEpcList)
.eq(WarehouseInventory::getOrgId, orderMain.getStartOrgId())); .eq(WarehouseInventory::getOrgId, orderMain.getStartOrgId()));
break;
} }
} }
} }
...@@ -4347,12 +4342,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4347,12 +4342,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
* @param req * @param req
* @return * @return
*/ */
private boolean updateOrderModifyQuantity(String stringtext,OrderMain orderMain,List<UpdateOrderDetailReq> detailList, private boolean updateOrderModifyQuantity(Boolean emptyOrderFlag,String stringtext,OrderMain orderMain,List<UpdateOrderDetailReq> detailList,
Integer quantityTotal,List<OrderDetail> updateDetailList,UpdateOrderReq req, Integer quantityTotal,List<OrderDetail> updateDetailList,UpdateOrderReq req,
Map<String,LogSummaryReq> logMap,LoginUser loginUser, Map<String,LogSummaryReq> logMap,LoginUser loginUser,
Map<String,Warehouse> warehouseMap,Long orgId, Map<String,Warehouse> warehouseMap,Long orgId,
List<UpdateOrderDetailReq> orderDetailReqList){ List<UpdateOrderDetailReq> orderDetailReqList){
boolean emptyOrderFlag=false;
for (UpdateOrderDetailReq uploadDetailReq : detailList){ for (UpdateOrderDetailReq uploadDetailReq : detailList){
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail); BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail);
...@@ -4432,8 +4426,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4432,8 +4426,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
} }
}
emptyOrderFlag=true; emptyOrderFlag=true;
}
List<DetailJsonReq> JsonList = uploadDetailReq.getChildJson(); List<DetailJsonReq> JsonList = uploadDetailReq.getChildJson();
String jsonString = JSONObject.toJSONString(JsonList); String jsonString = JSONObject.toJSONString(JsonList);
orderDetail.setDetailJson(jsonString); orderDetail.setDetailJson(jsonString);
...@@ -4488,7 +4482,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -4488,7 +4482,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
data.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId()); data.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId());
data.setPrice((ObjectUtil.isNull(detailJsonReq.getPrice()) && ObjectUtil.isNull(detailJsonReq.getUnitPrice())) data.setPrice((ObjectUtil.isNull(detailJsonReq.getPrice()) && ObjectUtil.isNull(detailJsonReq.getUnitPrice()))
? price.toString() :ObjectUtil.isNull(detailJsonReq.getPrice() )?detailJsonReq.getUnitPrice().toString():detailJsonReq.getPrice().toString()); ? price.toString() :ObjectUtil.isNull(detailJsonReq.getPrice() )?detailJsonReq.getUnitPrice().toString():detailJsonReq.getPrice().toString());
data.setProperty(ObjectUtil.isNull(detailJsonReq.getProperty())?0:detailJsonReq.getProperty()); data.setProperty(0);
data.setSizeName(ObjectUtil.isNotEmpty(detailJsonReq.getSizeName())?detailJsonReq.getSizeName():uploadDetailReq.getSizeName()); data.setSizeName(ObjectUtil.isNotEmpty(detailJsonReq.getSizeName())?detailJsonReq.getSizeName():uploadDetailReq.getSizeName());
data.setTypeName(ObjectUtil.isNotEmpty(detailJsonReq.getTypeName())?detailJsonReq.getTypeName():uploadDetailReq.getTypeName()); data.setTypeName(ObjectUtil.isNotEmpty(detailJsonReq.getTypeName())?detailJsonReq.getTypeName():uploadDetailReq.getTypeName());
data.setModifyQuantity(detailJsonReq.getModifyQuantity()); data.setModifyQuantity(detailJsonReq.getModifyQuantity());
......
...@@ -26,6 +26,7 @@ import com.junmp.jyzb.mapper.*; ...@@ -26,6 +26,7 @@ import com.junmp.jyzb.mapper.*;
import com.junmp.jyzb.service.InventorySummaryService; import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.PubOrgService; import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.TjService; import com.junmp.jyzb.service.TjService;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.SortingUtil; import com.junmp.jyzb.utils.SortingUtil;
import com.junmp.v2.common.util.BeanPlusUtil; import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.common.util.HttpServletUtil; import com.junmp.v2.common.util.HttpServletUtil;
...@@ -837,20 +838,18 @@ public class TjServiceImpl implements TjService { ...@@ -837,20 +838,18 @@ public class TjServiceImpl implements TjService {
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId())); List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgCountDto> tjOrgCountList=new ArrayList<>(); List<TjOrgCountDto> tjOrgCountList=new ArrayList<>();
String[] splitStart = req.getStartTime().split("-"); if (StringUtils.isNotEmpty(req.getStartTime())){
String[] splitEnd =req.getEndTime().split("-"); req.setStartTime(req.getStartTime()+"-01 00:00:00");
Integer year=Integer.parseInt(splitStart[0] );
req.setYear(year);
List<Integer> monthList=new ArrayList<>();
for (int i = Integer.parseInt(splitStart[1]) ; i <= Integer.parseInt(splitEnd[1]); i++) {
monthList.add(i);
} }
req.setMonthList(monthList); if (StringUtils.isNotEmpty(req.getEndTime())){
req.setEndTime(DateTimeUtil.getLastDayOfMonth(req.getEndTime()));
}
List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream() List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() -> .map(orgId -> CompletableFuture.supplyAsync(() ->
equipmentCountSummaryMapper.TjOrgCount(orgId, equipmentCountSummaryMapper.TjOrgCount(orgId,
req.getTypeIdsList(), req.getSizeNameList(), req.getTypeIdsList(), req.getSizeNameList(),
req.getYear(), req.getTypeParentId(), req.getMonthList(),req.getTypeName())) req.getTypeParentId(),req.getTypeName(),req.getStartTime(),req.getEndTime()))
) )
.collect(Collectors.toList()); .collect(Collectors.toList());
CompletableFuture<Void> allOf = CompletableFuture.allOf( futures.toArray(new CompletableFuture[0])); CompletableFuture<Void> allOf = CompletableFuture.allOf( futures.toArray(new CompletableFuture[0]));
...@@ -864,15 +863,15 @@ public class TjServiceImpl implements TjService { ...@@ -864,15 +863,15 @@ public class TjServiceImpl implements TjService {
if ((!req.getOrgId().equals(JYZBConstant.ORG_ID_PRODUCTION) || !req.getOrgId().equals(JYZBConstant.ORG_ID_TEST)) if ((!req.getOrgId().equals(JYZBConstant.ORG_ID_PRODUCTION) || !req.getOrgId().equals(JYZBConstant.ORG_ID_TEST))
&& pubOrg.getLevelFlag()!=1){ && pubOrg.getLevelFlag()!=1){
TjOrgCountDto OrgDataSelf=equipmentCountSummaryMapper.TjOrgCountSelf(req.getOrgId(), TjOrgCountDto OrgDataSelf=equipmentCountSummaryMapper.TjOrgCountSelf(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),
req.getMonthList(),req.getTypeName()); req.getTypeName(),req.getStartTime(),req.getEndTime());
OrgDataSelf.setLevel(0); OrgDataSelf.setLevel(0);
OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级"); OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级");
OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级"); OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级");
OrgDataSelf=fillingPriceEmptyData(OrgDataSelf); OrgDataSelf=fillingPriceEmptyData(OrgDataSelf);
TjOrgCountDto OrgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(), TjOrgCountDto OrgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),
req.getMonthList(),pubOrg.getLevelFlag(),req.getTypeName()); pubOrg.getLevelFlag(),req.getTypeName(),req.getStartTime(),req.getEndTime());
if (ObjectUtil.isNotNull(OrgData)){ if (ObjectUtil.isNotNull(OrgData)){
OrgData.setLevel(1); OrgData.setLevel(1);
...@@ -929,20 +928,17 @@ public class TjServiceImpl implements TjService { ...@@ -929,20 +928,17 @@ public class TjServiceImpl implements TjService {
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId()); PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId())); List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgCountDto> tjOrgCountList=new ArrayList<>(); List<TjOrgCountDto> tjOrgCountList=new ArrayList<>();
String[] splitStart = req.getStartTime().split("-"); if (StringUtils.isNotEmpty(req.getStartTime())){
String[] splitEnd =req.getEndTime().split("-"); req.setStartTime(req.getStartTime()+"-01 00:00:00");
Integer year=Integer.parseInt(splitStart[0] ); }
req.setYear(year); if (StringUtils.isNotEmpty(req.getEndTime())){
List<Integer> monthList=new ArrayList<>(); req.setEndTime(DateTimeUtil.getLastDayOfMonth(req.getEndTime()));
for (int i = Integer.parseInt(splitStart[1]) ; i <= Integer.parseInt(splitEnd[1]); i++) { }
monthList.add(i);
}
req.setMonthList(monthList);
List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream() List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() -> .map(orgId -> CompletableFuture.supplyAsync(() ->
equipmentCountSummaryMapper.TjOrgCount(orgId, equipmentCountSummaryMapper.TjOrgCount(orgId,
req.getTypeIdsList(), req.getSizeNameList(), req.getTypeIdsList(), req.getSizeNameList(),
req.getYear(), req.getTypeParentId(), req.getMonthList(),req.getTypeName())) req.getTypeParentId(),req.getTypeName(), req.getStartTime(), req.getEndTime()))
) )
.collect(Collectors.toList()); .collect(Collectors.toList());
// 等待所有 CompletableFuture 完成 // 等待所有 CompletableFuture 完成
...@@ -957,15 +953,15 @@ public class TjServiceImpl implements TjService { ...@@ -957,15 +953,15 @@ public class TjServiceImpl implements TjService {
if ((!req.getOrgId().equals(JYZBConstant.ORG_ID_PRODUCTION) || !req.getOrgId().equals(JYZBConstant.ORG_ID_TEST)) if ((!req.getOrgId().equals(JYZBConstant.ORG_ID_PRODUCTION) || !req.getOrgId().equals(JYZBConstant.ORG_ID_TEST))
&& pubOrg.getLevelFlag()!=1){ && pubOrg.getLevelFlag()!=1){
TjOrgCountDto OrgDataSelf=equipmentCountSummaryMapper.TjOrgCountSelf(req.getOrgId(), TjOrgCountDto OrgDataSelf=equipmentCountSummaryMapper.TjOrgCountSelf(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),
req.getMonthList(),req.getTypeName()); req.getTypeName(),req.getStartTime(),req.getEndTime());
OrgDataSelf.setLevel(0); OrgDataSelf.setLevel(0);
OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级"); OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级");
OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级"); OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级");
OrgDataSelf=fillingPriceEmptyData(OrgDataSelf); OrgDataSelf=fillingPriceEmptyData(OrgDataSelf);
TjOrgCountDto OrgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(), TjOrgCountDto OrgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),
req.getMonthList(),pubOrg.getLevelFlag(),req.getTypeName()); pubOrg.getLevelFlag(),req.getTypeName(),req.getStartTime(),req.getEndTime());
if (ObjectUtil.isNotNull(OrgData)){ if (ObjectUtil.isNotNull(OrgData)){
OrgData.setLevel(1); OrgData.setLevel(1);
...@@ -999,18 +995,15 @@ public class TjServiceImpl implements TjService { ...@@ -999,18 +995,15 @@ public class TjServiceImpl implements TjService {
req.setOrder(req.getOrder().toLowerCase()); req.setOrder(req.getOrder().toLowerCase());
} }
String[] splitStart = req.getStartTime().split("-"); if (StringUtils.isNotEmpty(req.getStartTime())){
String[] splitEnd =req.getEndTime().split("-"); req.setStartTime(req.getStartTime()+"-01 00:00:00");
Integer year=Integer.parseInt(splitStart[0] ); }
req.setYear(year); if (StringUtils.isNotEmpty(req.getEndTime())){
List<Integer> monthList=new ArrayList<>(); req.setEndTime(DateTimeUtil.getLastDayOfMonth(req.getEndTime()));
for (int i = Integer.parseInt(splitStart[1]) ; i <= Integer.parseInt(splitEnd[1]); i++) {
monthList.add(i);
} }
req.setMonthList(monthList);
List<TjOrgCountDto> tjOrgCountDtoList=equipmentCountSummaryMapper.TjOrgCountTotalNum(req.getOrgId(), List<TjOrgCountDto> tjOrgCountDtoList=equipmentCountSummaryMapper.TjOrgCountTotalNum(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),req.getLevelNum(),req.getLevel(),
req.getMonthList(),req.getLevelNum(),req.getLevel(),req.getColumn(),req.getOrder(),pubOrg.getLevelFlag(),req.getTypeName()); req.getColumn(),req.getOrder(),pubOrg.getLevelFlag(),req.getTypeName(),req.getStartTime(),req.getEndTime());
if (req.getRemoveEmpty()){ if (req.getRemoveEmpty()){
tjOrgCountDtoList.removeIf(tjOrgCountDto -> tjOrgCountDto.getNumber()==0 ); tjOrgCountDtoList.removeIf(tjOrgCountDto -> tjOrgCountDto.getNumber()==0 );
} }
...@@ -1053,21 +1046,17 @@ public class TjServiceImpl implements TjService { ...@@ -1053,21 +1046,17 @@ public class TjServiceImpl implements TjService {
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId())); List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgCountDto> tjOrgCountList=new ArrayList<>(); List<TjOrgCountDto> tjOrgCountList=new ArrayList<>();
String[] splitStart = req.getStartTime().split("-"); if (StringUtils.isNotEmpty(req.getStartTime())){
String[] splitEnd =req.getEndTime().split("-"); req.setStartTime(req.getStartTime()+"-01 00:00:00");
Integer year=Integer.parseInt(splitStart[0] ); }
req.setYear(year); if (StringUtils.isNotEmpty(req.getEndTime())){
List<Integer> monthList=new ArrayList<>(); req.setEndTime(DateTimeUtil.getLastDayOfMonth(req.getEndTime()));
for (int i = Integer.parseInt(splitStart[1]) ; i <= Integer.parseInt(splitEnd[1]); i++) {
monthList.add(i);
} }
req.setMonthList(monthList);
List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream() List<CompletableFuture<TjOrgCountDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() -> .map(orgId -> CompletableFuture.supplyAsync(() ->
equipmentCountSummaryMapper.TjOrgCount(orgId, equipmentCountSummaryMapper.TjOrgCount(orgId,
req.getTypeIdsList(), req.getSizeNameList(), req.getTypeIdsList(), req.getSizeNameList(),
req.getYear(), req.getTypeParentId(), req.getMonthList(),req.getTypeName())) req.getTypeParentId(), req.getTypeName(), req.getStartTime(), req.getEndTime()))
) )
.collect(Collectors.toList()); .collect(Collectors.toList());
// 等待所有 CompletableFuture 完成 // 等待所有 CompletableFuture 完成
...@@ -1082,15 +1071,15 @@ public class TjServiceImpl implements TjService { ...@@ -1082,15 +1071,15 @@ public class TjServiceImpl implements TjService {
if ((!req.getOrgId().equals(JYZBConstant.ORG_ID_PRODUCTION) || !req.getOrgId().equals(JYZBConstant.ORG_ID_TEST)) if ((!req.getOrgId().equals(JYZBConstant.ORG_ID_PRODUCTION) || !req.getOrgId().equals(JYZBConstant.ORG_ID_TEST))
&& pubOrg.getLevelFlag()!=1){ && pubOrg.getLevelFlag()!=1){
TjOrgCountDto OrgDataSelf=equipmentCountSummaryMapper.TjOrgCountSelf(req.getOrgId(), TjOrgCountDto OrgDataSelf=equipmentCountSummaryMapper.TjOrgCountSelf(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),
req.getMonthList(),req.getTypeName()); req.getTypeName(),req.getStartTime(),req.getEndTime());
OrgDataSelf.setLevel(0); OrgDataSelf.setLevel(0);
OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级"); OrgDataSelf.setOrgName(OrgDataSelf.getOrgName()+"本级");
OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级"); OrgDataSelf.setDName(OrgDataSelf.getDName()+"本级");
OrgDataSelf=fillingPriceEmptyData(OrgDataSelf); OrgDataSelf=fillingPriceEmptyData(OrgDataSelf);
TjOrgCountDto OrgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(), TjOrgCountDto OrgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(), req.getTypeIdsList(),req.getSizeNameList(),req.getTypeParentId(),
req.getMonthList(),pubOrg.getLevelFlag(),req.getTypeName()); pubOrg.getLevelFlag(),req.getTypeName(),req.getStartTime(),req.getEndTime());
if (ObjectUtil.isNotNull(OrgData)){ if (ObjectUtil.isNotNull(OrgData)){
OrgData.setLevel(1); OrgData.setLevel(1);
......
...@@ -10,7 +10,6 @@ import com.junmp.jyzb.entity.VieDestoryGroup; ...@@ -10,7 +10,6 @@ import com.junmp.jyzb.entity.VieDestoryGroup;
import com.junmp.jyzb.entity.VieWarrantyGroup; import com.junmp.jyzb.entity.VieWarrantyGroup;
import com.junmp.jyzb.mapper.VieWarrantyGroupMapper; import com.junmp.jyzb.mapper.VieWarrantyGroupMapper;
import com.junmp.jyzb.service.VieWarrantyGroupService; import com.junmp.jyzb.service.VieWarrantyGroupService;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory; import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory; import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult; import com.junmp.v2.db.api.page.PageResult;
...@@ -18,31 +17,24 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,31 +17,24 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class VieWarrantyGroupServiceImpl extends ServiceImpl<VieWarrantyGroupMapper, VieWarrantyGroup> implements VieWarrantyGroupService { public class VieWarrantyGroupServiceImpl extends ServiceImpl<VieWarrantyGroupMapper, VieWarrantyGroup> implements VieWarrantyGroupService {
@Resource
private VieWarrantyGroupMapper vieWarrantyGroupMapper;
@Override @Override
public PageResult<WarrantyDataDto> WarrantyData(WarrantyReq req) { public PageResult<WarrantyDataDto> WarrantyData(WarrantyReq req) {
if(req.getWarrantyType().equals("0")||req.getWarrantyType().equals("1")) if(req.getWarrantyType().equals("0"))
{ {
LambdaQueryWrapper<VieWarrantyGroup> wrapper = createWrapper(req); // LambdaQueryWrapper<WarrantyDataDto> wrapper = createWrapper(req);
Page<VieWarrantyGroup> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), wrapper); // Page<WarrantyDataDto> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), wrapper);
List<VieWarrantyGroup> records = page.getRecords();
long size = list(wrapper).size(); Page<WarrantyDataDto> page=vieWarrantyGroupMapper.WarrantyData(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()),req);
List<WarrantyDataDto> collect = records.parallelStream()
.map(vieWarrantyGroup -> { return PageResultFactory.createPageResult(page);
WarrantyDataDto warrantyDataDto = new WarrantyDataDto();
BeanPlusUtil.copyProperties(vieWarrantyGroup, warrantyDataDto);
return warrantyDataDto;
}).collect(Collectors.toList());
Page<WarrantyDataDto> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
page1.setRecords(collect);
page1.setTotal(size);
return PageResultFactory.createPageResult(page1);
} }
else return PageResultFactory.createPageResult(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize())); else return PageResultFactory.createPageResult(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()));
...@@ -60,11 +52,6 @@ public class VieWarrantyGroupServiceImpl extends ServiceImpl<VieWarrantyGroupMap ...@@ -60,11 +52,6 @@ public class VieWarrantyGroupServiceImpl extends ServiceImpl<VieWarrantyGroupMap
wrapper.eq(ObjectUtil.isNotEmpty(req.getSizeId()), VieWarrantyGroup::getSizeId, req.getSizeId()); wrapper.eq(ObjectUtil.isNotEmpty(req.getSizeId()), VieWarrantyGroup::getSizeId, req.getSizeId());
wrapper.eq(ObjectUtil.isNotEmpty(req.getTypeId()), VieWarrantyGroup::getTypeId, req.getTypeId()); wrapper.eq(ObjectUtil.isNotEmpty(req.getTypeId()), VieWarrantyGroup::getTypeId, req.getTypeId());
wrapper.eq(ObjectUtil.isNotEmpty(req.getTypeName()), VieWarrantyGroup::getTypeName, req.getTypeName()); wrapper.eq(ObjectUtil.isNotEmpty(req.getTypeName()), VieWarrantyGroup::getTypeName, req.getTypeName());
wrapper.eq(ObjectUtil.isNotEmpty(req.getWarrantyType()), VieWarrantyGroup::getWarrantyType, req.getWarrantyType());
if (ObjectUtil.isNotEmpty(req.getWarrantyDays())) {
int warrantyDays = Integer.parseInt(req.getWarrantyDays());
wrapper.le(VieWarrantyGroup::getDays, warrantyDays);
}
boolean flag=req.getOrder().equals("asc"); boolean flag=req.getOrder().equals("asc");
wrapper.orderBy(ObjectUtil.isEmpty(req.getWarrantyDays()),flag,VieWarrantyGroup::getDays); wrapper.orderBy(ObjectUtil.isEmpty(req.getWarrantyDays()),flag,VieWarrantyGroup::getDays);
wrapper.orderBy(ObjectUtil.isNotEmpty(req.getWarrantyDays()),flag,VieWarrantyGroup::getCountOfItems); wrapper.orderBy(ObjectUtil.isNotEmpty(req.getWarrantyDays()),flag,VieWarrantyGroup::getCountOfItems);
......
...@@ -96,7 +96,7 @@ public class InvExpireMsg implements JobAction { ...@@ -96,7 +96,7 @@ public class InvExpireMsg implements JobAction {
List<VieWarrantyGroup> orgInvList = existOrgInvMap.get(existUserOrgMap.get(userId).toString()); List<VieWarrantyGroup> orgInvList = existOrgInvMap.get(existUserOrgMap.get(userId).toString());
if (orgInvList.size()>=2){ if (orgInvList.size()>=2){
VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0); VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0);
VieWarrantyGroup vieWarrantyGroup2 = orgInvList.get(0); VieWarrantyGroup vieWarrantyGroup2 = orgInvList.get(1);
sysMessage.setMsgContent(vieWarrantyGroup1.getTypeName()+","+vieWarrantyGroup2.getTypeName()+" 等装备过期,请及时进行报废处理"); sysMessage.setMsgContent(vieWarrantyGroup1.getTypeName()+","+vieWarrantyGroup2.getTypeName()+" 等装备过期,请及时进行报废处理");
}else { }else {
VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0); VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0);
...@@ -135,7 +135,7 @@ public class InvExpireMsg implements JobAction { ...@@ -135,7 +135,7 @@ public class InvExpireMsg implements JobAction {
sendReq.setBizId(null); sendReq.setBizId(null);
if (orgInvList.size()>=2){ if (orgInvList.size()>=2){
VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0); VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0);
VieWarrantyGroup vieWarrantyGroup2 = orgInvList.get(0); VieWarrantyGroup vieWarrantyGroup2 = orgInvList.get(1);
sendReq.setMsgContent(vieWarrantyGroup1.getTypeName()+","+vieWarrantyGroup2.getTypeName()+" 等装备过期,请及时进行报废处理"); sendReq.setMsgContent(vieWarrantyGroup1.getTypeName()+","+vieWarrantyGroup2.getTypeName()+" 等装备过期,请及时进行报废处理");
}else { }else {
VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0); VieWarrantyGroup vieWarrantyGroup1 = orgInvList.get(0);
......
package com.junmp.jyzb.task;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.mapper.InventoryMapper;
import com.junmp.jyzb.service.OrderMainService;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.job.api.JobAction;
import com.junmp.v2.message.api.MessageApi;
import com.junmp.v2.message.api.bean.req.MessageReq;
import com.junmp.v2.message.api.bean.req.MessageSendReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
/**
* @author lxh
* @description 超期未归还消息提醒
* @since 2023/9/1 10:50
* @param
* @return
**/
@Slf4j
@Component
public class InvOverDueMsg implements JobAction {
@Resource
private OrderMainService orderMainService;
@Resource
private MessageApi messageApi;
@Resource
private InventoryMapper inventoryMapper;
@Resource
private SysDictItemService sysDictItemService;
@Override
public void action() {
//获取超期物资
//先查询出 出入库单据为领用单的数据
LambdaQueryWrapper<OrderMain> wrapper = new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getBussinessType, "use")
.eq(OrderMain::getOrderType,"out");
int pageSize =1000;
int currentPage=1;
long termCount= orderMainService.count(wrapper);
List<OrderMain> list=new ArrayList<>();
if (termCount>0) {
// 分页查询
while ((currentPage - 1) * pageSize < termCount) {
List<OrderMain> orderMainList = processPageData(currentPage, pageSize);
currentPage++;
list.addAll(orderMainList);
}
}
//将消息进行推送
//我需要将orgId进行查询并去重
Set<Long> uniqueOrgIDs = new HashSet<>();
for (OrderMain orderMain:list) {
uniqueOrgIDs.add(orderMain.getStartOrgId());
}
List<Long> uniqueOrgIDsList = new ArrayList<>(uniqueOrgIDs);
//查询组织机构下面的所有仓管员的useId
// List<InvExpireReq> userIdsList=inventoryMapper.selectUserListByOrgs(uniqueOrgIDsList);
//并且查询出该领用单的领用人,再将消息推送给领用人
List<String> userIdsList=new ArrayList<>();
for (OrderMain orderMain:list) {
// if (!ObjectUtil.isNull(orderMain.getReturnDate())){
// int i = orderMain.getReturnDate().compareTo(DateTimeUtil.getCurrentDateTime());
// }
if (!ObjectUtil.isNull(orderMain.getReturnDate())
&& orderMain.getReturnDate().getTime()<DateTimeUtil.getCurrentDateTime().getTime() ){
MessageSendReq sendReq = new MessageSendReq();
sendReq.setReceiveUserIds(orderMain.getReturnUserId());
sendReq.setMsgTitle("物资超期提醒");
sendReq.setBizType("超期提醒");
//设置业务类型
// SysDictItem one = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
// .eq(SysDictItem::getDictItemId, "over_due"));
// sendReq.setBizType(one.getItemValue());
sendReq.setMsgContent("单据id为:"+orderMain.getId()+"的领用单已超期,请及时查看处理");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessageNoToken(sendReq);
userIdsList.add(orderMain.getReturnUserId());
}
}
/*推送发送未读数量*/
for(String userIds:userIdsList){
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(Long.parseLong(userIds));
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(userIds,count1);
}
}
// 处理每页数据
private List<OrderMain> processPageData(long pageSize, long currentPage) {
//获取对应的借用单据数据
Date currentDateTime = DateTimeUtil.getCurrentDateTime();
LambdaQueryWrapper<OrderMain> wrapper = new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getBussinessType, "use")
.eq(OrderMain::getOrderType,"out")
.lt(OrderMain::getReturnDate,currentDateTime)
.isNotNull(OrderMain::getReturnDate);
List<OrderMain> records = orderMainService.page(PageFactory.getDefaultPage(pageSize, currentPage),wrapper).getRecords();
return records;
}
}
package com.junmp.jyzb.task;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.service.EquipmentTypeService;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.dict.entity.SysDictItem;
import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.job.api.JobAction;
import com.junmp.v2.message.api.MessageApi;
import com.junmp.v2.message.api.bean.req.MessageReq;
import com.junmp.v2.message.api.bean.req.MessageSendReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author lxh
* @description 物资低于阈值消息提醒
* @since 2023/9/1 11:05
* @param
* @return
**/
@Slf4j
@Component
public class InvThresholdMsg implements JobAction {
@Resource
private InventorySummaryService inventorySummaryService;
@Resource
private EquipmentTypeService equipmentTypeService;
@Resource
private MessageApi messageApi;
@Resource
private SysDictItemService sysDictItemService;
@Override
public void action() {
//获取装备信息汇总,并且判断装备的汇总数量是否低于装备阈值,如果低于装备阈值,则进行消息提醒
//所有待判断的物资
LambdaQueryWrapper<InventorySummary> wrapper = new LambdaQueryWrapper<InventorySummary>()
.eq(InventorySummary::getLocationType, 0)
.groupBy(InventorySummary::getOrgId);
//分页参数
int pageSize=1000;
int currentPage=1;
//获取装备的所有库存数量
long termCount= inventorySummaryService.count(wrapper);
List<InventorySummary> list=new ArrayList<>();
if (termCount>0) {
// 分页查询
while ((currentPage - 1) * pageSize < termCount) {
List<InventorySummary> inventorySummaryList = processPageData(currentPage, pageSize);
currentPage++;
list.addAll(inventorySummaryList);
}
}
//低于阈值的数据查询出来之后,将数据进行消息推送提醒
//直接对list进行处理操作推送消息即可
for (InventorySummary inventorySummary:list) {
MessageSendReq sendReq = new MessageSendReq();
sendReq.setSendUserId("1000");
sendReq.setReceiveUserIds("1000");
sendReq.setMsgTitle("物资低于阈值");
//设置业务类型
SysDictItem one = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, "threshold"));
sendReq.setBizType(one.getItemValue());
sendReq.setMsgContent(inventorySummary.getLocationName()+"仓库下的"+inventorySummary.getTypeName()+"号型为"+inventorySummary.getSizeName()+"的物资低于阈值");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessageNoToken(sendReq);
}
messageApi.queryCount(new MessageReq());
/*推送发送未读数量*/
List<Long> userIdList=new ArrayList<>();
userIdList.add(1000L);
for(Long userId :userIdList){
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(userId);
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(String.valueOf(userId),count1);
}
}
// 处理每页数据
private List<InventorySummary> processPageData(long pageSize, long currentPage) {
//得到全局默认值(随机处理数据表中的一条数据为默认值)
Integer threshold = equipmentTypeService.getById(100001).getThreshold();
//查询inventory_summary表中的threshold字段是否存在值,
// 如果存在则用summary表中的字段进行比较物资阈值,如果不存在则默认使用全局物资阈值进行比较
Page<InventorySummary> page = inventorySummaryService.page(PageFactory.getDefaultPage(pageSize, currentPage));
List<InventorySummary> records = page.getRecords();
//使用自定义物资阈值进行比较
List<InventorySummary> collect1 = records.stream()
.filter(data -> data.getNumber() <= data.getThreshold() && ObjectUtil.isNotNull(data.getThreshold()))
.collect(Collectors.toList());
//使用全局物资阈值进行比较
List<InventorySummary> collect2 = records.stream()
.filter(data -> data.getNumber() <= threshold && ObjectUtil.isNull(data.getThreshold()))
.collect(Collectors.toList());
//将数据存储到一个list中
List<InventorySummary> inventorySummaryList=new ArrayList<>();
inventorySummaryList.addAll(collect1);
inventorySummaryList.addAll(collect2);
return inventorySummaryList;
}
}
...@@ -189,4 +189,14 @@ public class DateTimeUtil { ...@@ -189,4 +189,14 @@ public class DateTimeUtil {
return time; return time;
} }
/**
* 获取当前年月的最后一天(如2025-09,返回2025-09-30 23:59:59)
*/
public static String getLastDayOfMonth(String yearMonth) {
LocalDate date = LocalDate.parse(yearMonth + "-01");
LocalDate lastDay = date.withDayOfMonth(date.lengthOfMonth());
LocalDateTime localDateTime = lastDay.atTime(23, 59, 59);
return localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
} }
\ No newline at end of file
...@@ -47,35 +47,30 @@ ...@@ -47,35 +47,30 @@
</update> </update>
<select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
SELECT SELECT
(SELECT `org_id` FROM `pub_org` WHERE org_id=#{orgId}) as org_id, equipment_stats.use_count,
(SELECT `org_code` FROM `pub_org` WHERE org_id=#{orgId}) as org_code, equipment_stats.fix_count,
(SELECT `org_name` FROM `pub_org` WHERE org_id=#{orgId}) as org_name, inventory_stats.number,
(SELECT `d_name` FROM `pub_org` WHERE org_id=#{orgId}) as d_name, org_info.org_id,
MAX(t.`year`) AS `year`, org_info.org_name,
COALESCE(SUM(t.use_count),0) AS use_count, org_info.org_code,
coalesce(SUM(t.fix_count),0 )AS fix_count, org_info.d_name
coalesce(sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END),0) AS number
FROM ( FROM (
-- 设备统计子查询
SELECT SELECT
vecs.`year`, COALESCE(SUM(vecs.use_count), 0) AS use_count,
vecs.`month`, COALESCE(SUM(vecs.fix_count), 0) AS fix_count
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
where vecs.`year`= #{year} and po.del_flag=1 and (po.org_id=#{orgId} or po.org_parent_ids like CONCAT('%',#{orgId}, '%')) WHERE
po.del_flag = 1 AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
...@@ -85,99 +80,55 @@ ...@@ -85,99 +80,55 @@
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and vecs.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="startTime != null and endTime != null">
and vecs.month in and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if> </if>
GROUP BY `year`,month) as t <if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</select> </if>
) equipment_stats
CROSS JOIN (
<select id="TjOrgCountSum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.FinalTjOrgCountDto"> -- 库存统计子查询
SELECT COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number
SELECT FROM base_inventory_summary ins
`year`, LEFT JOIN pub_org po ON ins.org_id_int = po.org_id
`month`, <if test="typeParentId !=null and typeParentId !=''">
SUM(use_count) AS use_count, left join base_equipment_type et on ins.type_id=et.id
SUM(fix_count) AS fix_count, </if>
sum(CASE WHEN month = MONTH(CURRENT_DATE()) THEN number ELSE 0 END) as number WHERE po.del_flag = 1
FROM vie_equipment_count_summary AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
where `year`= #{year} and (org_id_int=#{orgId} or parent_id=#{orgId})
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''">
and ins.type_name like CONCAT('%', #{typeName}, '%')
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%') ins.size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> <if test="typeParentId !=null and typeParentId !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
</if> </if>
GROUP BY `year`,month ) inventory_stats
</select> CROSS JOIN (
-- 组织信息子查询
SELECT
org_id,
org_name,
org_code,
d_name
FROM pub_org
WHERE org_id = #{orgId}
) org_info;
<!-- <select id="TjOrgCountDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">--> </select>
<!-- SELECT MAX( t.`year` ) AS `year`,coalesce(SUM( t.use_count ) ,0)AS use_count,coalesce(SUM( t.fix_count ),0) AS fix_count,-->
<!-- size_id,size_name,type_id,type_name,-->
<!-- coalesce(sum( CASE WHEN t.MONTH = MONTH ( CURRENT_DATE ()) THEN t.number ELSE 0 END ),0) AS number-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- vecs.`year`,-->
<!-- vecs.`month`,-->
<!-- SUM( vecs.use_count ) AS use_count,-->
<!-- SUM( vecs.fix_count ) AS fix_count,-->
<!-- vecs.size_id,-->
<!-- vecs.size_name,-->
<!-- vecs.type_id,-->
<!-- vecs.type_name,-->
<!-- sum( vecs.number ) AS number-->
<!-- FROM-->
<!-- vie_equipment_count_summary vecs-->
<!-- LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- YEAR = #{year} and org_id_int=#{orgId}-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and vecs.type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeParentId != null and typeParentId !=''">-->
<!-- and vecs.type_parent_id=#{typeParentId}-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- vecs.size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="monthList != null and monthList.size()>0">-->
<!-- and vecs.month in-->
<!-- <foreach collection="monthList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName !=null and typeName !=''">-->
<!-- and vecs.type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- GROUP BY-->
<!-- `year`,MONTH,size_id,size_name,type_id,type_name-->
<!-- ) AS t-->
<!-- GROUP BY-->
<!-- t.size_id,t.size_name,t.type_id,t.type_name-->
<!-- ORDER BY-->
<!-- type_id,size_id-->
<!-- </select>-->
<select id="TjOrgCountByType" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto" <select id="TjOrgCountByType" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"
parameterType="com.junmp.jyzb.api.bean.query.tjReq.TjOrgCountReq"> parameterType="com.junmp.jyzb.api.bean.query.tjReq.TjOrgCountReq">
select et.id as type_parent_id,et.name as name,a.org_id,max(a.org_name) as org_name,coalesce(sum(a.use_count),0) as use_count select et.id as type_parent_id,et.name as name,a.org_id,max(a.org_name) as org_name,coalesce(sum(a.use_count),0) as use_count
...@@ -204,28 +155,23 @@ ...@@ -204,28 +155,23 @@
GROUP BY et.id,et.name,a.org_id GROUP BY et.id,et.name,a.org_id
</select> </select>
<select id="TjOrgCountleve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCountleve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
SELECT SELECT
MAX(t.`year`) AS `year`, equipment_stats.use_count,
SUM(t.use_count) AS use_count, equipment_stats.fix_count,
SUM(t.fix_count) AS fix_count, inventory_stats.number,
SUM(t.broken_count) AS broken_count, org_info.org_id,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number, org_info.org_name,
(SELECT `org_id` FROM `pub_org` WHERE ( `org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS org_id, org_info.org_code,
(SELECT `org_code` FROM `pub_org` WHERE ( `org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%'))and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS org_code, org_info.d_name
(SELECT `org_name` FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%'))and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS org_name,
(SELECT `d_name` FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%'))and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS d_name
FROM ( FROM (
-- 设备统计子查询
SELECT SELECT
vecs.`year`, COALESCE(SUM(vecs.use_count), 0) AS use_count,
vecs.`month`, COALESCE(SUM(vecs.fix_count), 0) AS fix_count
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
where vecs.`year`= #{year} and po.del_flag=1 AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') WHERE
po.del_flag=1 AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end )) AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
AND ( AND (
`po`.`level_flag` > ( `po`.`level_flag` > (
...@@ -240,9 +186,6 @@ ...@@ -240,9 +186,6 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
...@@ -252,114 +195,173 @@ ...@@ -252,114 +195,173 @@
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and vecs.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="startTime != null and endTime != null">
and vecs.month in and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
<foreach collection="monthList" item="item" open="(" separator="," close=")"> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
) equipment_stats
CROSS JOIN (
-- 库存统计子查询
SELECT COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number
FROM base_inventory_summary ins
LEFT JOIN pub_org po ON ins.org_id_int = po.org_id
<if test="typeParentId !=null and typeParentId !=''">
left join base_equipment_type et on ins.type_id=et.id
</if>
WHERE po.del_flag=1 AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
AND (
`po`.`level_flag` > (
SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
) + 1
OR (`po`.`level_flag` = (
SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
))))
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
GROUP BY `year`,month <if test="typeName !=null and typeName !=''">
) AS t and ins.type_name like CONCAT('%', #{typeName}, '%')
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
ins.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeParentId !=null and typeParentId !=''">
and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
</if>
) inventory_stats
CROSS JOIN (
-- 组织信息子查询
SELECT
org_id,
org_name,
org_code,
d_name
FROM pub_org
WHERE org_id = #{orgId} and level_flag is not null ORDER BY `level_flag` LIMIT 1
) org_info;
</select> </select>
<select id="TjOrgCountSelf" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCountSelf" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
SELECT SELECT
MAX(t.`year`) AS `year`, equipment_stats.use_count,
SUM(t.use_count) AS use_count, equipment_stats.fix_count,
SUM(t.fix_count) AS fix_count, inventory_stats.number,
SUM(t.broken_count) AS broken_count, org_info.org_id,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number, org_info.org_name,
(SELECT `org_id` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS org_id, org_info.org_code,
(SELECT `org_code` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS org_code, org_info.d_name
(SELECT `org_name` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS org_name,
(SELECT `d_name` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS d_name
FROM ( FROM (
-- 设备统计子查询
SELECT SELECT
vecs.`year`, COALESCE(SUM(vecs.use_count), 0) AS use_count,
vecs.`month`, COALESCE(SUM(vecs.fix_count), 0) AS fix_count
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM vie_equipment_count_summary vecs
where vecs.`year`= #{year} and vecs.org_id_int = #{orgId} LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
WHERE
vecs.org_id_int = #{orgId}
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%') vecs.size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="typeName !=null and typeName !=''">
and vecs.month in and vecs.type_name like CONCAT('%', #{typeName}, '%')
<foreach collection="monthList" item="item" open="(" separator="," close=")"> </if>
<if test="startTime != null and endTime != null">
and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
</if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
) equipment_stats
CROSS JOIN (
-- 库存统计子查询
SELECT COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number
FROM base_inventory_summary ins
LEFT JOIN pub_org po ON ins.org_id_int = po.org_id
<if test="typeParentId !=null and typeParentId !=''">
left join base_equipment_type et on ins.type_id=et.id
</if>
WHERE ins.org_id_int = #{orgId}
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and ins.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
GROUP BY `year`,month <if test="sizeNameList!=null and sizeNameList.size() > 0">
) AS t AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
ins.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeParentId !=null and typeParentId !=''">
and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
</if>
) inventory_stats
CROSS JOIN (
-- 组织信息子查询
SELECT
org_id,
org_name,
org_code,
d_name
FROM pub_org
WHERE org_id = #{orgId}
) org_info;
</select> </select>
<select id="TjOrgCountTotalNum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCountTotalNum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
select * from (
SELECT MAX( t.`year` ) AS `year`,coalesce(SUM( t.use_count ) ,0)AS use_count,coalesce(SUM( t.fix_count ),0) AS select * FROM
fix_count, (select a.*,coalesce(b.use_count,0) as use_count
size_id,size_name,type_id,type_name, ,coalesce(b.fix_count,0) as fix_count
coalesce(sum( CASE WHEN t.MONTH = MONTH ( CURRENT_DATE ()) THEN t.number ELSE 0 END ),0) AS number FROM(
FROM select COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number,
( size_id,max(size_name) as size_name,type_id,max(type_name) as type_name
SELECT FROM base_inventory_summary ins
vecs.`year`, left join pub_org po ON ins.org_id_int = po.org_id
vecs.`month`, <if test="typeParentId !=null and typeParentId !=''">
SUM( vecs.use_count ) AS use_count, left join base_equipment_type et on ins.type_id=et.id
SUM( vecs.fix_count ) AS fix_count, </if>
SUM( vecs.broken_count ) AS broken_count, where `po`.`del_flag` = 1
vecs.size_id, <if test="typeParentId !=null and typeParentId !=''">
vecs.size_name, and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
vecs.type_id, </if>
vecs.type_name,
sum( vecs.number ) AS number
FROM
vie_equipment_count_summary vecs
LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
WHERE
YEAR = #{year}
and `po`.`del_flag` = 1
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%') ins.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="monthList != null and monthList.size()>0">
and vecs.month in
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and ins.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
<if test="level ==null"> <if test="level ==null">
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
...@@ -382,71 +384,40 @@ ...@@ -382,71 +384,40 @@
<if test="level == 0 "> <if test="level == 0 ">
and po.org_id =#{orgId} and po.org_id =#{orgId}
</if> </if>
GROUP BY GROUP BY ins.size_id,ins.type_id
`year`,MONTH,size_id,size_name,type_id,type_name ) as a
) AS t left join (
GROUP BY select SUM( vecs.use_count ) AS use_count,
t.size_id,t.size_name,t.type_id,t.type_name SUM( vecs.fix_count ) AS fix_count,
ORDER BY vecs.size_id,
t.type_id,size_id max(vecs.size_name) as size_name,
)as result vecs.type_id,
<if test="column != null and column != '' and order != null and order != '' "> max(vecs.type_name) as type_name
order by ${column} ${order} FROM vie_equipment_count_summary vecs
</if> LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
<if test="column == null"> WHERE `po`.`del_flag` = 1
order by type_id <if test="typeIdsList!=null and typeIdsList.size() > 0">
</if> and vecs.type_id in
</select> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
<select id="TjOrgCountTotalDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> #{item}
select t1.org_id,t1.org_code,t1.org_name,t1.d_name,t2.year,t2.use_count,t2.fix_count,t2.number </foreach>
FROM(
SELECT
`org_id`, `org_code`, `org_name`, `d_name`
FROM `pub_org`
WHERE del_flag=1
<if test="level ==null" >
and (org_id =#{orgId} or (org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`org_code`, 5, 2) = '00'
</if> </if>
)) <if test="typeParentId != null and typeParentId !=''">
and (level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or and vecs.type_parent_id=#{typeParentId}
level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if> </if>
<if test="level==1"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
and (org_id !=#{orgId} and (org_parent_ids like CONCAT('%', #{orgId}, '%') AND
<if test="levelNum !=0"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
AND SUBSTRING(`org_code`, 5, 2) = '00' vecs.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if> </if>
)) <if test="typeName !=null and typeName !=''">
and (level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or and vecs.type_name like CONCAT('%', #{typeName}, '%')
level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if> </if>
<if test="level == 0 "> <if test="startTime != null and endTime != null">
and org_id = #{orgId} and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
</if> </if>
) as t1 <if test="level ==null">
CROSS JOIN (
SELECT
t.org_id_int,
MAX(t.`year`) AS `year`,
SUM(t.use_count) AS use_count,
SUM(t.fix_count) AS fix_count,
SUM(t.broken_count) AS broken_count,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number
FROM (
SELECT
vecs.org_id_int,
vecs.`year`,
vecs.`month`,
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id
where vecs.`year`= #{year} and po.del_flag=1
<if test="level ==null" >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0"> <if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00' AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
...@@ -458,43 +429,28 @@ ...@@ -458,43 +429,28 @@
<if test="level==1"> <if test="level==1">
and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0"> <if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00' AND(case when #{levelFlag} >= 3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end)
</if> </if>
)) ))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} )) `po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if> </if>
<if test="level == 0 "> <if test="level == 0 ">
and po.org_id = #{orgId} and po.org_id =#{orgId}
</if>
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> GROUP BY vecs.size_id,vecs.type_id
and vecs.type_name like CONCAT('%', #{typeName}, '%') ) as b on a.size_id=b.size_id and a.type_id=b.type_id
ORDER BY a.type_id,a.size_id
) as t
<if test="column != null and column != '' and order != null and order != '' ">
order by ${column} ${order}
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="column == null">
and vecs.month in order by type_id
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if> </if>
GROUP BY `year`,month,org_id_int
) AS t GROUP BY t.org_id_int
)as t2 where t1.org_id=t2.org_id_int
</select> </select>
<select id="GetCount" resultType="com.junmp.jyzb.entity.InventorySummary"> <select id="GetCount" resultType="com.junmp.jyzb.entity.InventorySummary">
select select
sum(case when is.location_type=0 and w.warehouse_type =1 then is.stock_number else 0 end)+ sum(case when is.location_type=0 and w.warehouse_type =1 then is.stock_number else 0 end)+
......
...@@ -58,16 +58,16 @@ ...@@ -58,16 +58,16 @@
</select> </select>
<select id="GetViewEquipment" resultType="com.junmp.jyzb.api.bean.dto.ViewEquipmentDto"> <select id="GetViewEquipment" resultType="com.junmp.jyzb.api.bean.dto.ViewEquipmentDto">
SELECT select t.*,es.name as size_name,et.name as type_name,t.property,t.price FROM
* (select epc,size_id,type_id,price,property
FROM FROM base_inventory
view_equipment where epc in
WHERE
epc IN
<foreach collection="epcList " item="item" open="(" separator="," close=")"> <foreach collection="epcList " item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
)as t
left join base_equipment_type as et on t.type_id=et.id
left join base_equipment_size as es on t.size_id=es.id
</select> </select>
...@@ -830,7 +830,6 @@ ...@@ -830,7 +830,6 @@
and wi.type_id='${item[2]}' and wi.type_id='${item[2]}'
and wi.size_id='${item[3]}' and wi.size_id='${item[3]}'
and i.price='${item[4]}' and i.price='${item[4]}'
and i.property='${item[5]}'
</foreach> </foreach>
) )
and wi.location_type=0 and wi.location_type=0
...@@ -1222,6 +1221,12 @@ select x.*,base_cabinet_box.cabinet_id as bind_cabinet_id from ...@@ -1222,6 +1221,12 @@ select x.*,base_cabinet_box.cabinet_id as bind_cabinet_id from
limit ${item[4]} limit ${item[4]}
</foreach> </foreach>
</select> </select>
<select id="getInvListByWarehouse" resultType="com.junmp.jyzb.entity.WarehouseInventory">
select t.*,i.state FROM
(select * FROM base_warehouse_inventory as wi where location_id=#{warehouseId} and location_state="in")
as t
left join base_inventory as i on t.epc=i.epc
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -423,58 +423,6 @@ ...@@ -423,58 +423,6 @@
<insert id="useViewOrgIdInLevel"> <insert id="useViewOrgIdInLevel">
{CALL view_orgIdInLevel(#{sql,mode=IN},#{orgId,mode=IN})} {CALL view_orgIdInLevel(#{sql,mode=IN},#{orgId,mode=IN})}
</insert> </insert>
<insert id="updateSummaryInsImport">
INSERT INTO base_inventory_summary (valuekey, org_id_int,property, org_name, org_code, type_id, type_name, size_id, size_name, location_type, location_id, location_name, number, unit_price, price, stock_number, outbound_number, destruction_number, expire_number, broken_number, fix_number, use_number)
select
CONCAT(
COALESCE(t.org_code, '--0000'),
COALESCE(t.location_id, '--0000'),
COALESCE(t.type_id, '--0000'),
COALESCE(t.size_id, '--0000'),
COALESCE(t.unit_price, '--0000'),
COALESCE(t.property, '--0')
) as valuekey,
t.org_id_int,t.property,t.org_name,t.org_code,t.type_id,t.type_name,t.size_id,t.size_name,t.location_type,t.location_id,max(t.location_name) as location_name,sum(t.number) as number,t.unit_price,sum(t.price)as price,sum(t.stock_number)as stock_number,sum(t.outbound_number)as outbound_number,
sum(t.destruction_number)as destruction_number,sum(t.expire_number)as expire_number,sum(t.broken_number)as broken_number,sum(t.fix_number)as fix_number,sum(t.use_number)as use_number FROM (
SELECT
bi.org_id_int as org_id_int,
COALESCE(bi.property, 0) as property,
po.org_name as org_name,
po.org_code as org_code,
bi.type_id as type_id,
t.name as type_name,
bi.size_id as size_id,
s.name as size_name,
COALESCE(bcb.cabinet_id, bw.id) as location_id,
COALESCE(MAX(bc.name), MAX(bw.name)) as location_name,
bi.location_type as location_type,
SUM(CASE WHEN bi.location_type=0 and location_state = "in" and bi.state !="broken" THEN 1
when bi.location_type=1 and location_state="in" then 1 ELSE 0 END) + SUM(CASE WHEN location_state = "out" and bi.state != "destory" THEN 1 ELSE 0 END)+sum(case when bi.location_type=0 and bi.state = "broken" and bi.location_state = "in" then 1 else 0 end) as number,
bi.price as unit_price,
(SUM(CASE WHEN bi.location_type=0 and location_state = "in" and bi.state !="broken" THEN 1
when bi.location_type=1 and location_state="in" then 1 ELSE 0 END) + SUM(CASE WHEN location_state = "out" and bi.state != "destory" THEN 1 ELSE 0 END)+sum(case when bi.location_type=0 and bi.state = "broken" and bi.location_state = "in" then 1 else 0 end))*bi.price as price,
SUM(CASE WHEN bi.location_type=0 and location_state = "in" and bi.state !="broken" THEN 1
when bi.location_type=1 and location_state="in" then 1 ELSE 0 END) AS stock_number,
SUM(CASE WHEN location_state = "out" and bi.state != "destory" THEN 1 ELSE 0 END) AS outbound_number,
sum(case when bi.state = "destory" then 1 else 0 end) as destruction_number,
sum(case when bi.warranty_period = 0 then 0 when DATE_ADD(bi.production_date, INTERVAL bi.warranty_period MONTH) &lt; NOW() and bi.state!="broken" then 1 else 0 end) as expire_number,
sum(case when bi.location_type=0 and bi.state = "broken" and bi.location_state = "in" then 1 else 0 end) as broken_number,
sum(case when bi.state = "repair" and bi.location_state = "out" then 1 else 0 end) as fix_number,
sum(case when bi.bussiness_state = "use" and bi.location_state = "out" then 1 else 0 end) as use_number
FROM base_inventory bi
LEFT JOIN base_cabinet_box bcb ON bi.location_id = bcb.id and bi.location_type=1
LEFT JOIN base_cabinet bc ON bcb.cabinet_id = bc.id
LEFT JOIN base_warehouse bw ON bi.location_id = bw.id AND bi.location_type = 0
JOIN base_equipment_type t ON t.id = bi.type_id
JOIN base_equipment_size s ON s.id = bi.size_id
JOIN pub_org po ON bi.org_id_int = po.org_id
and po.org_id=#{orgId}
where bi.location_id=#{locationId}
GROUP BY bi.org_id_int, location_id, type_id, size_id, bi.price, bi.location_type,bi.property
ORDER BY org_id_int, location_id) as t
GROUP BY t.org_id_int,t.location_id,t.type_id,t.size_id,t.location_type,t.unit_price,t.property
</insert>
<select id="getTotalData" parameterType="java.lang.String" resultType="java.lang.String"> <select id="getTotalData" parameterType="java.lang.String" resultType="java.lang.String">
SELECT SELECT
......
...@@ -13,23 +13,6 @@ ...@@ -13,23 +13,6 @@
</update> </update>
<!-- <update parameterType="java.lang.String" id="PriceNumCacu">-->
<!-- UPDATE vie_price_sum_summary-->
<!-- SET-->
<!-- add_price = CASE-->
<!-- WHEN add_price IS NULL THEN start_price - end_price-->
<!-- ELSE add_price-->
<!-- END,-->
<!-- add_num = CASE-->
<!-- WHEN add_num IS NULL THEN start_num - end_num-->
<!-- ELSE add_num-->
<!-- END-->
<!-- WHERE add_price IS NULL OR add_num IS NULL;-->
<!-- </update>-->
<select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto"> <select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
SELECT SELECT
t1.start_num, t1.start_num,
...@@ -51,7 +34,7 @@ ...@@ -51,7 +34,7 @@
COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
JOIN pub_org po ON vpss.org_id_int = po.org_id AND po.del_flag = 1 JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.year = #{year} vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
...@@ -59,7 +42,7 @@ ...@@ -59,7 +42,7 @@
FROM vie_price_sum_summary FROM vie_price_sum_summary
WHERE year = #{year} AND month IS NOT NULL WHERE year = #{year} AND month IS NOT NULL
) )
AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) AND po.del_flag = 1 AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vpss.type_id in and vpss.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
...@@ -76,7 +59,7 @@ ...@@ -76,7 +59,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t1 ) AS t1
JOIN ( CROSS JOIN (
SELECT SELECT
COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num, COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num,
COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price, COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price,
...@@ -84,7 +67,7 @@ ...@@ -84,7 +67,7 @@
COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
JOIN pub_org po ON vpss.org_id_int = po.org_id AND po.del_flag = 1 JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.year = #{year} vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
...@@ -92,6 +75,7 @@ ...@@ -92,6 +75,7 @@
FROM vie_price_sum_summary FROM vie_price_sum_summary
WHERE year = 2025 AND month IS NOT NULL WHERE year = 2025 AND month IS NOT NULL
) )
AND po.del_flag = 1
AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vpss.type_id in and vpss.type_id in
...@@ -109,7 +93,7 @@ ...@@ -109,7 +93,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t2 ) AS t2
JOIN ( CROSS JOIN (
SELECT SELECT
org_id, org_id,
org_code, org_code,
...@@ -118,140 +102,14 @@ ...@@ -118,140 +102,14 @@
FROM FROM
pub_org pub_org
WHERE WHERE
(org_id = #{orgId} OR org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) org_id = #{orgId}
AND level_flag IS NOT NULL
ORDER BY
level_flag
LIMIT 1
) AS t3; ) AS t3;
<!-- SELECT-->
<!-- t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,-->
<!-- t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price,t3.org_id,t3.org_code,t3.org_name,t3.d_name-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- COALESCE (SUM(COALESCE ( start_num, 0 )),0) AS start_num,-->
<!-- COALESCE (SUM(COALESCE ( start_price, 0 )),0) AS start_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = (select `month` FROM vie_price_sum_summary where year=#{year} and month is not null ORDER BY month asc limit 1) and vpss.year=#{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT( '%', #{orgId}, '%' ))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t1-->
<!-- JOIN (-->
<!-- SELECT-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ),0) AS end_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ),0) AS end_price,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ),0) AS destory_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ),0) AS destory_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- CROSS JOIN (-->
<!-- SELECT `month` AS max_month-->
<!-- FROM vie_price_sum_summary-->
<!-- WHERE year = #{year}-->
<!-- AND `month` IS NOT NULL-->
<!-- ORDER BY `month` DESC-->
<!-- LIMIT 1-->
<!-- ) AS subquery-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.`year` = #{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT( '%', #{orgId}, '%' ))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t2-->
<!-- join (-->
<!-- SELECT `org_id`,`org_code`,org_name,d_name-->
<!-- FROM `pub_org`-->
<!-- WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null-->
<!-- ORDER BY `level_flag`-->
<!-- LIMIT 1-->
<!-- ) as t3-->
</select> </select>
<!-- <select id="TjOrgPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">-->
<!-- select COALESCE(t2.start_num,0) as start_num,COALESCE(t2.start_price,0) as start_price,COALESCE(t1.end_num,0) as end_num,-->
<!-- COALESCE(t1.end_price,0) as end_price,t1.destory_num,t1.destory_price,t1.type_name,t1.type_id,t1.size_name,t1.size_id,-->
<!-- COALESCE(end_num,0)-COALESCE(start_num,0) as add_num,COALESCE(end_price,0)-COALESCE(start_price,0) as add_price-->
<!-- FROM(-->
<!-- SELECT-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ) AS end_num,-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ) AS end_price,-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ) AS destory_num,-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ) AS destory_price,vpss.type_name,vpss.type_id,vpss.size_name,vpss.size_id-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE `po`.`del_flag` = 1 and po.org_id =#{orgId}-->
<!-- GROUP BY vpss.type_id,vpss.type_name,vpss.size_name,vpss.size_id-->
<!-- ORDER BY vpss.type_id-->
<!-- ) as t1-->
<!-- left join(-->
<!-- SELECT-->
<!-- SUM(COALESCE ( start_num, 0 )) AS start_num,-->
<!-- SUM(COALESCE ( start_price, 0 )) AS start_price, vpss.type_name,vpss.type_id,vpss.size_name,vpss.size_id-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = 3-->
<!-- and `po`.`del_flag` = 1 and po.org_id =#{orgId}-->
<!-- GROUP BY vpss.type_id,vpss.type_name,vpss.size_name,vpss.size_id-->
<!-- ORDER BY vpss.type_id-->
<!-- ) as t2 on t1.type_id =t2.type_id and t1.type_name=t2.type_name and t1.size_id =t2.size_id and t1.size_name=t2.size_name-->
<!-- <if test="column != null and column != '' and order != null and order != '' ">-->
<!-- order by ${column} ${order}-->
<!-- </if>-->
<!-- <if test="column==null and order == null">-->
<!-- order by type_id-->
<!-- </if>-->
<!-- </select>-->
<select id="TjOrgPriceLeve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto"> <select id="TjOrgPriceLeve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
SELECT SELECT
...@@ -274,20 +132,17 @@ ...@@ -274,20 +132,17 @@
COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN ( left JOIN pub_org po ON vpss.org_id_int = po.org_id
SELECT org_id WHERE del_flag = 1 and (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
FROM pub_org AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
WHERE del_flag = 1
AND org_id != #{orgId}
AND org_parent_ids LIKE CONCAT('%', #{orgId}, '%')
AND (case when #{levelFlag} >=3 then 1=1 else SUBSTRING(org_code, 5, 2) = '00' end )
AND ( AND (
level_flag > (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) + 1 `po`.`level_flag` > (
OR level_flag = (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
) ) + 1
) po ON vpss.org_id_int = po.org_id OR (`po`.`level_flag` = (
WHERE SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
vpss.year = #{year} ))))
and vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MIN(month) SELECT MIN(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -317,19 +172,17 @@ ...@@ -317,19 +172,17 @@
COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN ( left JOIN pub_org po ON vpss.org_id_int = po.org_id
SELECT org_id WHERE del_flag = 1 and (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
FROM pub_org AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
WHERE del_flag = 1
AND org_id != #{orgId}
AND org_parent_ids LIKE CONCAT('%', #{orgId}, '%')
AND (case when #{levelFlag} >=3 then 1=1 else SUBSTRING(org_code, 5, 2) = '00' end )
AND ( AND (
level_flag > (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) + 1 `po`.`level_flag` > (
OR level_flag = (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
)) po ON vpss.org_id_int = po.org_id ) + 1
WHERE OR (`po`.`level_flag` = (
vpss.year = #{year} SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
))))
AND vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MAX(month) SELECT MAX(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -352,7 +205,7 @@ ...@@ -352,7 +205,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t2 ) AS t2
JOIN ( CROSS JOIN (
SELECT SELECT
org_id, org_id,
org_code, org_code,
...@@ -361,104 +214,9 @@ ...@@ -361,104 +214,9 @@
FROM FROM
pub_org pub_org
WHERE WHERE
(org_id = #{orgId} OR org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) org_id = #{orgId} and level_flag is not null ORDER BY `level_flag` LIMIT 1
AND level_flag IS NOT NULL
ORDER BY
level_flag
LIMIT 1
) AS t3; ) AS t3;
<!-- SELECT-->
<!-- t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,-->
<!-- t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price,t3.org_id,t3.org_code,t3.org_name,t3.d_name-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- COALESCE (SUM(COALESCE ( start_num, 0 )),0) AS start_num,-->
<!-- COALESCE (SUM(COALESCE ( start_price, 0 )),0) AS start_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = (select `month` FROM vie_price_sum_summary where year=#{year} and month is not null ORDER BY month asc limit 1) and vpss.year=#{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')-->
<!-- AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))-->
<!-- AND (-->
<!-- `po`.`level_flag` > (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ) + 1-->
<!-- OR (`po`.`level_flag` = (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ))))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t1-->
<!-- JOIN (-->
<!-- SELECT-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ),0) AS end_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ),0) AS end_price,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ),0) AS destory_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ),0) AS destory_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- CROSS JOIN (-->
<!-- SELECT `month` AS max_month-->
<!-- FROM vie_price_sum_summary-->
<!-- WHERE year = #{year}-->
<!-- AND `month` IS NOT NULL-->
<!-- ORDER BY `month` DESC-->
<!-- LIMIT 1-->
<!-- ) AS subquery-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.`year` = #{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')-->
<!-- AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))-->
<!-- AND (-->
<!-- `po`.`level_flag` > (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ) + 1-->
<!-- OR (`po`.`level_flag` = (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ))))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t2-->
<!-- join (-->
<!-- SELECT `org_id`,`org_code`,org_name,d_name FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null ORDER BY `level_flag` LIMIT 1-->
<!-- ) as t3;-->
</select> </select>
...@@ -485,11 +243,11 @@ ...@@ -485,11 +243,11 @@
COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN pub_org po ON vpss.org_id_int = po.org_id left JOIN pub_org po ON vpss.org_id_int = po.org_id
AND po.del_flag = 1
AND po.org_id = #{orgId}
WHERE WHERE
vpss.year = #{year} po.org_id = #{orgId}
and vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MIN(month) SELECT MIN(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -512,7 +270,7 @@ ...@@ -512,7 +270,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t1 ) AS t1
JOIN ( CROSS JOIN (
SELECT SELECT
COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num, COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num,
COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price, COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price,
...@@ -520,11 +278,10 @@ ...@@ -520,11 +278,10 @@
COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN pub_org po ON vpss.org_id_int = po.org_id left JOIN pub_org po ON vpss.org_id_int = po.org_id
AND po.del_flag = 1
AND po.org_id = #{orgId}
WHERE WHERE
vpss.year = #{year} po.org_id = #{orgId}
AND vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MAX(month) SELECT MAX(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -547,7 +304,7 @@ ...@@ -547,7 +304,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t2 ) AS t2
JOIN ( CROSS JOIN (
SELECT SELECT
org_id, org_id,
org_code, org_code,
...@@ -557,196 +314,10 @@ ...@@ -557,196 +314,10 @@
pub_org pub_org
WHERE WHERE
org_id = #{orgId} org_id = #{orgId}
AND level_flag IS NOT NULL
ORDER BY
level_flag
LIMIT 1
) AS t3; ) AS t3;
<!-- SELECT-->
<!-- t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,-->
<!-- t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price,t3.org_id,t3.org_code,t3.org_name,t3.d_name-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- COALESCE (SUM(COALESCE ( start_num, 0 )),0) AS start_num,-->
<!-- COALESCE (SUM(COALESCE ( start_price, 0 )),0) AS start_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = (select `month` FROM vie_price_sum_summary where year=#{year} and month is not null ORDER BY month asc limit 1) and vpss.year=#{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND org_id_int = #{orgId}-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t1-->
<!-- JOIN (-->
<!-- SELECT-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ),0) AS end_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ),0) AS end_price,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ),0) AS destory_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ),0) AS destory_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- CROSS JOIN (-->
<!-- SELECT `month` AS max_month-->
<!-- FROM vie_price_sum_summary-->
<!-- WHERE year = #{year}-->
<!-- AND `month` IS NOT NULL-->
<!-- ORDER BY `month` DESC-->
<!-- LIMIT 1-->
<!-- ) AS subquery-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.`year` = #{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND org_id_int = #{orgId}-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t2-->
<!-- join (-->
<!-- SELECT `org_id`,`org_code`,org_name,d_name FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null ORDER BY `level_flag` LIMIT 1-->
<!-- ) as t3;-->
</select> </select>
<select id="TjOrgPriceTotalNum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
select COALESCE(t2.start_num,0) as start_num,COALESCE(t2.start_price,0) as start_price,COALESCE(t1.end_num,0) as end_num,
COALESCE(t1.end_price,0) as end_price,t1.destory_num,t1.destory_price,t1.type_name,t1.type_id,
COALESCE(end_num,0)-COALESCE(start_num,0) as add_num,COALESCE(end_price,0)-COALESCE(start_price,0) as add_price
FROM(
SELECT
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ) AS end_num,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ) AS end_price,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ) AS destory_num,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ) AS destory_price,vpss.type_name,vpss.type_id
FROM
vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE
vpss.MONTH = 3
and `po`.`del_flag` = 1
<if test="level ==null " >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level==1">
and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level == 0 ">
and po.org_id =#{orgId}
</if>
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeName!=null and typeName!=''">
and type_name like CONCAT('%', #{typeName}, '%')
</if>
GROUP BY vpss.type_id,vpss.type_name
ORDER BY vpss.type_id
) as t1
left join(
SELECT
SUM(COALESCE ( start_num, 0 )) AS start_num,
SUM(COALESCE ( start_price, 0 )) AS start_price, vpss.type_name,vpss.type_id
FROM
vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE
vpss.MONTH = 3
and `po`.`del_flag` = 1
<if test="level ==null " >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level==1">
and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level == 0 ">
and po.org_id =#{orgId}
</if>
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeName!=null and typeName!=''">
and type_name like CONCAT('%', #{typeName}, '%')
</if>
GROUP BY vpss.type_id,vpss.type_name
ORDER BY vpss.type_id
) as t2 on t1.type_id =t2.type_id and t1.type_name=t2.type_name
</select>
<select id="getTotalPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto"> <select id="getTotalPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
SELECT SELECT
...@@ -818,7 +389,13 @@ ...@@ -818,7 +389,13 @@
vie_price_sum_summary vpss vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.MONTH = 3 AND vpss.YEAR = #{year} vpss.YEAR = #{year}
and vpss.month = (
SELECT MIN(month)
FROM vie_price_sum_summary
WHERE year = #{year}
AND month IS NOT NULL
)
AND po.del_flag = 1 AND po.del_flag = 1
<if test="level ==null" > <if test="level ==null" >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<select id="selectByTerms" resultType="com.junmp.jyzb.entity.VieWarrantyGroup"> <select id="selectByTerms" resultType="com.junmp.jyzb.entity.VieWarrantyGroup">
select * from vie_warranty_group where ( select * from vie_warranty_group where (
<foreach collection="list" item="item" separator="or"> <foreach collection="list" item="item" separator="or">
org_id =#{item.orgId} and size_id =#{item.sizeId} and type_id=#{item.typeId} and location_id= #{item.locationId} org_id =#{item.orgId} and size_id =#{item.sizeId} and type_id=#{item.typeId} and location_id= #{item.locationId} and price = #{item.price}
</foreach> </foreach>
) and warranty_type=0 ) and warranty_type=0
</select> </select>
...@@ -47,4 +47,51 @@ ...@@ -47,4 +47,51 @@
type_id type_id
ORDER BY org_id; ORDER BY org_id;
</select> </select>
<select id="WarrantyData" resultType="com.junmp.jyzb.api.bean.dto.tjDto.WarrantyDataDto">
select a.*,ins.stock_number FROM(SELECT
vw.id,
MAX(vw.size_name) AS size_name,
MAX(vw.type_name) AS type_name,
vw.size_id,
vw.type_id,
vw.location_id,
MAX(vw.location_name) as location_name,
vw.location_type,
vw.warranty_type,
MAX(vw.org_name) AS org_name,
vw.org_id,
sum(count_of_items) as count_of_items,
vw.price,
sum(price) as total_price,
vw.property
FROM
vie_warranty_group vw
<where>
<if test="req.orgId != null">
AND vw.org_id = #{req.orgId}
</if>
<if test="req.sizeId != null">
AND vw.size_id = #{req.sizeId}
</if>
<if test="req.typeId != null">
AND vw.type_id = #{req.typeId}
</if>
<if test="req.typeName != null and req.typeName != ''">
AND vw.type_name like concat('%',#{req.typeName},'%')
</if>
</where>
GROUP BY
vw.id,
vw.size_id,
vw.type_id,
vw.warranty_type,
vw.location_id,
vw.org_id,
vw.location_type,
vw.price,
vw.property) as a
inner join base_inventory_summary as ins on a.org_id=ins.org_id_int and a.location_id=ins.location_id and a.type_id=ins.type_id and a.size_id=ins.size_id and a.price=ins.unit_price and a.property=ins.property
and ins.stock_number>0
order by a.org_id,a.type_id,a.count_of_items
</select>
</mapper> </mapper>
...@@ -47,35 +47,30 @@ ...@@ -47,35 +47,30 @@
</update> </update>
<select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
SELECT SELECT
(SELECT `org_id` FROM `pub_org` WHERE org_id=#{orgId}) as org_id, equipment_stats.use_count,
(SELECT `org_code` FROM `pub_org` WHERE org_id=#{orgId}) as org_code, equipment_stats.fix_count,
(SELECT `org_name` FROM `pub_org` WHERE org_id=#{orgId}) as org_name, inventory_stats.number,
(SELECT `d_name` FROM `pub_org` WHERE org_id=#{orgId}) as d_name, org_info.org_id,
MAX(t.`year`) AS `year`, org_info.org_name,
COALESCE(SUM(t.use_count),0) AS use_count, org_info.org_code,
coalesce(SUM(t.fix_count),0 )AS fix_count, org_info.d_name
coalesce(sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END),0) AS number
FROM ( FROM (
-- 设备统计子查询
SELECT SELECT
vecs.`year`, COALESCE(SUM(vecs.use_count), 0) AS use_count,
vecs.`month`, COALESCE(SUM(vecs.fix_count), 0) AS fix_count
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
where vecs.`year`= #{year} and po.del_flag=1 and (po.org_id=#{orgId} or po.org_parent_ids like CONCAT('%',#{orgId}, '%')) WHERE
po.del_flag = 1 AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
...@@ -85,99 +80,55 @@ ...@@ -85,99 +80,55 @@
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and vecs.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="startTime != null and endTime != null">
and vecs.month in and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if> </if>
GROUP BY `year`,month) as t <if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</select> </if>
) equipment_stats
CROSS JOIN (
<select id="TjOrgCountSum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.FinalTjOrgCountDto"> -- 库存统计子查询
SELECT COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number
SELECT FROM base_inventory_summary ins
`year`, LEFT JOIN pub_org po ON ins.org_id_int = po.org_id
`month`, <if test="typeParentId !=null and typeParentId !=''">
SUM(use_count) AS use_count, left join base_equipment_type et on ins.type_id=et.id
SUM(fix_count) AS fix_count, </if>
sum(CASE WHEN month = MONTH(CURRENT_DATE()) THEN number ELSE 0 END) as number WHERE po.del_flag = 1
FROM vie_equipment_count_summary AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
where `year`= #{year} and (org_id_int=#{orgId} or parent_id=#{orgId})
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''">
and ins.type_name like CONCAT('%', #{typeName}, '%')
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%') ins.size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> <if test="typeParentId !=null and typeParentId !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
</if> </if>
GROUP BY `year`,month ) inventory_stats
</select> CROSS JOIN (
-- 组织信息子查询
SELECT
org_id,
org_name,
org_code,
d_name
FROM pub_org
WHERE org_id = #{orgId}
) org_info;
<!-- <select id="TjOrgCountDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">--> </select>
<!-- SELECT MAX( t.`year` ) AS `year`,coalesce(SUM( t.use_count ) ,0)AS use_count,coalesce(SUM( t.fix_count ),0) AS fix_count,-->
<!-- size_id,size_name,type_id,type_name,-->
<!-- coalesce(sum( CASE WHEN t.MONTH = MONTH ( CURRENT_DATE ()) THEN t.number ELSE 0 END ),0) AS number-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- vecs.`year`,-->
<!-- vecs.`month`,-->
<!-- SUM( vecs.use_count ) AS use_count,-->
<!-- SUM( vecs.fix_count ) AS fix_count,-->
<!-- vecs.size_id,-->
<!-- vecs.size_name,-->
<!-- vecs.type_id,-->
<!-- vecs.type_name,-->
<!-- sum( vecs.number ) AS number-->
<!-- FROM-->
<!-- vie_equipment_count_summary vecs-->
<!-- LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- YEAR = #{year} and org_id_int=#{orgId}-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and vecs.type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeParentId != null and typeParentId !=''">-->
<!-- and vecs.type_parent_id=#{typeParentId}-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- vecs.size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="monthList != null and monthList.size()>0">-->
<!-- and vecs.month in-->
<!-- <foreach collection="monthList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName !=null and typeName !=''">-->
<!-- and vecs.type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- GROUP BY-->
<!-- `year`,MONTH,size_id,size_name,type_id,type_name-->
<!-- ) AS t-->
<!-- GROUP BY-->
<!-- t.size_id,t.size_name,t.type_id,t.type_name-->
<!-- ORDER BY-->
<!-- type_id,size_id-->
<!-- </select>-->
<select id="TjOrgCountByType" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto" <select id="TjOrgCountByType" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"
parameterType="com.junmp.jyzb.api.bean.query.tjReq.TjOrgCountReq"> parameterType="com.junmp.jyzb.api.bean.query.tjReq.TjOrgCountReq">
select et.id as type_parent_id,et.name as name,a.org_id,max(a.org_name) as org_name,coalesce(sum(a.use_count),0) as use_count select et.id as type_parent_id,et.name as name,a.org_id,max(a.org_name) as org_name,coalesce(sum(a.use_count),0) as use_count
...@@ -204,28 +155,23 @@ ...@@ -204,28 +155,23 @@
GROUP BY et.id,et.name,a.org_id GROUP BY et.id,et.name,a.org_id
</select> </select>
<select id="TjOrgCountleve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCountleve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
SELECT SELECT
MAX(t.`year`) AS `year`, equipment_stats.use_count,
SUM(t.use_count) AS use_count, equipment_stats.fix_count,
SUM(t.fix_count) AS fix_count, inventory_stats.number,
SUM(t.broken_count) AS broken_count, org_info.org_id,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number, org_info.org_name,
(SELECT `org_id` FROM `pub_org` WHERE ( `org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS org_id, org_info.org_code,
(SELECT `org_code` FROM `pub_org` WHERE ( `org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%'))and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS org_code, org_info.d_name
(SELECT `org_name` FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%'))and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS org_name,
(SELECT `d_name` FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%'))and level_flag is not null ORDER BY `level_flag` LIMIT 1) AS d_name
FROM ( FROM (
-- 设备统计子查询
SELECT SELECT
vecs.`year`, COALESCE(SUM(vecs.use_count), 0) AS use_count,
vecs.`month`, COALESCE(SUM(vecs.fix_count), 0) AS fix_count
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
where vecs.`year`= #{year} and po.del_flag=1 AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') WHERE
po.del_flag=1 AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end )) AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
AND ( AND (
`po`.`level_flag` > ( `po`.`level_flag` > (
...@@ -240,9 +186,6 @@ ...@@ -240,9 +186,6 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
...@@ -252,114 +195,173 @@ ...@@ -252,114 +195,173 @@
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and vecs.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="startTime != null and endTime != null">
and vecs.month in and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
<foreach collection="monthList" item="item" open="(" separator="," close=")"> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
) equipment_stats
CROSS JOIN (
-- 库存统计子查询
SELECT COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number
FROM base_inventory_summary ins
LEFT JOIN pub_org po ON ins.org_id_int = po.org_id
<if test="typeParentId !=null and typeParentId !=''">
left join base_equipment_type et on ins.type_id=et.id
</if>
WHERE po.del_flag=1 AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
AND (
`po`.`level_flag` > (
SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
) + 1
OR (`po`.`level_flag` = (
SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
))))
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
GROUP BY `year`,month <if test="typeName !=null and typeName !=''">
) AS t and ins.type_name like CONCAT('%', #{typeName}, '%')
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
ins.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeParentId !=null and typeParentId !=''">
and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
</if>
) inventory_stats
CROSS JOIN (
-- 组织信息子查询
SELECT
org_id,
org_name,
org_code,
d_name
FROM pub_org
WHERE org_id = #{orgId} and level_flag is not null ORDER BY `level_flag` LIMIT 1
) org_info;
</select> </select>
<select id="TjOrgCountSelf" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCountSelf" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
SELECT SELECT
MAX(t.`year`) AS `year`, equipment_stats.use_count,
SUM(t.use_count) AS use_count, equipment_stats.fix_count,
SUM(t.fix_count) AS fix_count, inventory_stats.number,
SUM(t.broken_count) AS broken_count, org_info.org_id,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number, org_info.org_name,
(SELECT `org_id` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS org_id, org_info.org_code,
(SELECT `org_code` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS org_code, org_info.d_name
(SELECT `org_name` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS org_name,
(SELECT `d_name` FROM `pub_org` WHERE `org_id` = #{orgId} ) AS d_name
FROM ( FROM (
-- 设备统计子查询
SELECT SELECT
vecs.`year`, COALESCE(SUM(vecs.use_count), 0) AS use_count,
vecs.`month`, COALESCE(SUM(vecs.fix_count), 0) AS fix_count
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs FROM vie_equipment_count_summary vecs
where vecs.`year`= #{year} and vecs.org_id_int = #{orgId} LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
WHERE
vecs.org_id_int = #{orgId}
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%') vecs.size_name like CONCAT('%', #{item}, '%')
</foreach> </foreach>
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="typeName !=null and typeName !=''">
and vecs.month in and vecs.type_name like CONCAT('%', #{typeName}, '%')
<foreach collection="monthList" item="item" open="(" separator="," close=")"> </if>
<if test="startTime != null and endTime != null">
and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
</if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
) equipment_stats
CROSS JOIN (
-- 库存统计子查询
SELECT COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number
FROM base_inventory_summary ins
LEFT JOIN pub_org po ON ins.org_id_int = po.org_id
<if test="typeParentId !=null and typeParentId !=''">
left join base_equipment_type et on ins.type_id=et.id
</if>
WHERE ins.org_id_int = #{orgId}
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and ins.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
GROUP BY `year`,month <if test="sizeNameList!=null and sizeNameList.size() > 0">
) AS t AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
ins.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeParentId !=null and typeParentId !=''">
and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
</if>
) inventory_stats
CROSS JOIN (
-- 组织信息子查询
SELECT
org_id,
org_name,
org_code,
d_name
FROM pub_org
WHERE org_id = #{orgId}
) org_info;
</select> </select>
<select id="TjOrgCountTotalNum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> <select id="TjOrgCountTotalNum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto">
select * from (
SELECT MAX( t.`year` ) AS `year`,coalesce(SUM( t.use_count ) ,0)AS use_count,coalesce(SUM( t.fix_count ),0) AS select * FROM
fix_count, (select a.*,coalesce(b.use_count,0) as use_count
size_id,size_name,type_id,type_name, ,coalesce(b.fix_count,0) as fix_count
coalesce(sum( CASE WHEN t.MONTH = MONTH ( CURRENT_DATE ()) THEN t.number ELSE 0 END ),0) AS number FROM(
FROM select COALESCE(SUM(ins.stock_number), 0)+ COALESCE(SUM(ins.outbound_number), 0)+COALESCE(SUM(ins.broken_number), 0) AS number,
( size_id,max(size_name) as size_name,type_id,max(type_name) as type_name
SELECT FROM base_inventory_summary ins
vecs.`year`, left join pub_org po ON ins.org_id_int = po.org_id
vecs.`month`, <if test="typeParentId !=null and typeParentId !=''">
SUM( vecs.use_count ) AS use_count, left join base_equipment_type et on ins.type_id=et.id
SUM( vecs.fix_count ) AS fix_count, </if>
SUM( vecs.broken_count ) AS broken_count, where `po`.`del_flag` = 1
vecs.size_id, <if test="typeParentId !=null and typeParentId !=''">
vecs.size_name, and SUBSTRING_INDEX(et.parent_ids, ',', 1)=#{typeParentId}
vecs.type_id, </if>
vecs.type_name,
sum( vecs.number ) AS number
FROM
vie_equipment_count_summary vecs
LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
WHERE
YEAR = #{year}
and `po`.`del_flag` = 1
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in and ins.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
AND AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%') ins.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="monthList != null and monthList.size()>0">
and vecs.month in
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach> </foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> <if test="typeName !=null and typeName !=''">
and vecs.type_name like CONCAT('%', #{typeName}, '%') and ins.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
<if test="level ==null"> <if test="level ==null">
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
...@@ -382,71 +384,40 @@ ...@@ -382,71 +384,40 @@
<if test="level == 0 "> <if test="level == 0 ">
and po.org_id =#{orgId} and po.org_id =#{orgId}
</if> </if>
GROUP BY GROUP BY ins.size_id,ins.type_id
`year`,MONTH,size_id,size_name,type_id,type_name ) as a
) AS t left join (
GROUP BY select SUM( vecs.use_count ) AS use_count,
t.size_id,t.size_name,t.type_id,t.type_name SUM( vecs.fix_count ) AS fix_count,
ORDER BY vecs.size_id,
t.type_id,size_id max(vecs.size_name) as size_name,
)as result vecs.type_id,
<if test="column != null and column != '' and order != null and order != '' "> max(vecs.type_name) as type_name
order by ${column} ${order} FROM vie_equipment_count_summary vecs
</if> LEFT JOIN pub_org po ON vecs.org_id_int = po.org_id
<if test="column == null"> WHERE `po`.`del_flag` = 1
order by type_id <if test="typeIdsList!=null and typeIdsList.size() > 0">
</if> and vecs.type_id in
</select> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
<select id="TjOrgCountTotalDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgCountDto"> #{item}
select t1.org_id,t1.org_code,t1.org_name,t1.d_name,t2.year,t2.use_count,t2.fix_count,t2.number </foreach>
FROM(
SELECT
`org_id`, `org_code`, `org_name`, `d_name`
FROM `pub_org`
WHERE del_flag=1
<if test="level ==null" >
and (org_id =#{orgId} or (org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`org_code`, 5, 2) = '00'
</if> </if>
)) <if test="typeParentId != null and typeParentId !=''">
and (level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or and vecs.type_parent_id=#{typeParentId}
level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if> </if>
<if test="level==1"> <if test="sizeNameList!=null and sizeNameList.size() > 0">
and (org_id !=#{orgId} and (org_parent_ids like CONCAT('%', #{orgId}, '%') AND
<if test="levelNum !=0"> <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
AND SUBSTRING(`org_code`, 5, 2) = '00' vecs.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if> </if>
)) <if test="typeName !=null and typeName !=''">
and (level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or and vecs.type_name like CONCAT('%', #{typeName}, '%')
level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if> </if>
<if test="level == 0 "> <if test="startTime != null and endTime != null">
and org_id = #{orgId} and vecs.create_time &gt;= #{startTime} and vecs.create_time &lt;= #{endTime}
</if> </if>
) as t1 <if test="level ==null">
CROSS JOIN (
SELECT
t.org_id_int,
MAX(t.`year`) AS `year`,
SUM(t.use_count) AS use_count,
SUM(t.fix_count) AS fix_count,
SUM(t.broken_count) AS broken_count,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number
FROM (
SELECT
vecs.org_id_int,
vecs.`year`,
vecs.`month`,
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_count,
SUM(vecs.broken_count) AS broken_count,
sum(vecs.number) as number
FROM vie_equipment_count_summary vecs
left join pub_org po on vecs.org_id_int=po.org_id
where vecs.`year`= #{year} and po.del_flag=1
<if test="level ==null" >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0"> <if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00' AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
...@@ -458,43 +429,28 @@ ...@@ -458,43 +429,28 @@
<if test="level==1"> <if test="level==1">
and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0"> <if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00' AND(case when #{levelFlag} >= 3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end)
</if> </if>
)) ))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} )) `po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if> </if>
<if test="level == 0 "> <if test="level == 0 ">
and po.org_id = #{orgId} and po.org_id =#{orgId}
</if>
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parent_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
vecs.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if> </if>
<if test="typeName !=null and typeName !=''"> GROUP BY vecs.size_id,vecs.type_id
and vecs.type_name like CONCAT('%', #{typeName}, '%') ) as b on a.size_id=b.size_id and a.type_id=b.type_id
ORDER BY a.type_id,a.size_id
) as t
<if test="column != null and column != '' and order != null and order != '' ">
order by ${column} ${order}
</if> </if>
<if test="monthList != null and monthList.size()>0"> <if test="column == null">
and vecs.month in order by type_id
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if> </if>
GROUP BY `year`,month,org_id_int
) AS t GROUP BY t.org_id_int
)as t2 where t1.org_id=t2.org_id_int
</select> </select>
<select id="GetCount" resultType="com.junmp.jyzb.entity.InventorySummary"> <select id="GetCount" resultType="com.junmp.jyzb.entity.InventorySummary">
select select
sum(case when is.location_type=0 and w.warehouse_type =1 then is.stock_number else 0 end)+ sum(case when is.location_type=0 and w.warehouse_type =1 then is.stock_number else 0 end)+
......
...@@ -58,16 +58,16 @@ ...@@ -58,16 +58,16 @@
</select> </select>
<select id="GetViewEquipment" resultType="com.junmp.jyzb.api.bean.dto.ViewEquipmentDto"> <select id="GetViewEquipment" resultType="com.junmp.jyzb.api.bean.dto.ViewEquipmentDto">
SELECT select t.*,es.name as size_name,et.name as type_name,t.property,t.price FROM
* (select epc,size_id,type_id,price,property
FROM FROM base_inventory
view_equipment where epc in
WHERE
epc IN
<foreach collection="epcList " item="item" open="(" separator="," close=")"> <foreach collection="epcList " item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
)as t
left join base_equipment_type as et on t.type_id=et.id
left join base_equipment_size as es on t.size_id=es.id
</select> </select>
...@@ -1222,6 +1222,12 @@ select x.*,base_cabinet_box.cabinet_id as bind_cabinet_id from ...@@ -1222,6 +1222,12 @@ select x.*,base_cabinet_box.cabinet_id as bind_cabinet_id from
limit ${item[4]} limit ${item[4]}
</foreach> </foreach>
</select> </select>
<select id="getInvListByWarehouse" resultType="com.junmp.jyzb.entity.WarehouseInventory">
select t.*,i.state FROM
(select * FROM base_warehouse_inventory as wi where location_id=#{warehouseId} and location_state="in")
as t
left join base_inventory as i on t.epc=i.epc
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -423,58 +423,6 @@ ...@@ -423,58 +423,6 @@
<insert id="useViewOrgIdInLevel"> <insert id="useViewOrgIdInLevel">
{CALL view_orgIdInLevel(#{sql,mode=IN},#{orgId,mode=IN})} {CALL view_orgIdInLevel(#{sql,mode=IN},#{orgId,mode=IN})}
</insert> </insert>
<insert id="updateSummaryInsImport">
INSERT INTO base_inventory_summary (valuekey, org_id_int,property, org_name, org_code, type_id, type_name, size_id, size_name, location_type, location_id, location_name, number, unit_price, price, stock_number, outbound_number, destruction_number, expire_number, broken_number, fix_number, use_number)
select
CONCAT(
COALESCE(t.org_code, '--0000'),
COALESCE(t.location_id, '--0000'),
COALESCE(t.type_id, '--0000'),
COALESCE(t.size_id, '--0000'),
COALESCE(t.unit_price, '--0000'),
COALESCE(t.property, '--0')
) as valuekey,
t.org_id_int,t.property,t.org_name,t.org_code,t.type_id,t.type_name,t.size_id,t.size_name,t.location_type,t.location_id,max(t.location_name) as location_name,sum(t.number) as number,t.unit_price,sum(t.price)as price,sum(t.stock_number)as stock_number,sum(t.outbound_number)as outbound_number,
sum(t.destruction_number)as destruction_number,sum(t.expire_number)as expire_number,sum(t.broken_number)as broken_number,sum(t.fix_number)as fix_number,sum(t.use_number)as use_number FROM (
SELECT
bi.org_id_int as org_id_int,
COALESCE(bi.property, 0) as property,
po.org_name as org_name,
po.org_code as org_code,
bi.type_id as type_id,
t.name as type_name,
bi.size_id as size_id,
s.name as size_name,
COALESCE(bcb.cabinet_id, bw.id) as location_id,
COALESCE(MAX(bc.name), MAX(bw.name)) as location_name,
bi.location_type as location_type,
SUM(CASE WHEN bi.location_type=0 and location_state = "in" and bi.state !="broken" THEN 1
when bi.location_type=1 and location_state="in" then 1 ELSE 0 END) + SUM(CASE WHEN location_state = "out" and bi.state != "destory" THEN 1 ELSE 0 END)+sum(case when bi.location_type=0 and bi.state = "broken" and bi.location_state = "in" then 1 else 0 end) as number,
bi.price as unit_price,
(SUM(CASE WHEN bi.location_type=0 and location_state = "in" and bi.state !="broken" THEN 1
when bi.location_type=1 and location_state="in" then 1 ELSE 0 END) + SUM(CASE WHEN location_state = "out" and bi.state != "destory" THEN 1 ELSE 0 END)+sum(case when bi.location_type=0 and bi.state = "broken" and bi.location_state = "in" then 1 else 0 end))*bi.price as price,
SUM(CASE WHEN bi.location_type=0 and location_state = "in" and bi.state !="broken" THEN 1
when bi.location_type=1 and location_state="in" then 1 ELSE 0 END) AS stock_number,
SUM(CASE WHEN location_state = "out" and bi.state != "destory" THEN 1 ELSE 0 END) AS outbound_number,
sum(case when bi.state = "destory" then 1 else 0 end) as destruction_number,
sum(case when bi.warranty_period = 0 then 0 when DATE_ADD(bi.production_date, INTERVAL bi.warranty_period MONTH) &lt; NOW() and bi.state!="broken" then 1 else 0 end) as expire_number,
sum(case when bi.location_type=0 and bi.state = "broken" and bi.location_state = "in" then 1 else 0 end) as broken_number,
sum(case when bi.state = "repair" and bi.location_state = "out" then 1 else 0 end) as fix_number,
sum(case when bi.bussiness_state = "use" and bi.location_state = "out" then 1 else 0 end) as use_number
FROM base_inventory bi
LEFT JOIN base_cabinet_box bcb ON bi.location_id = bcb.id and bi.location_type=1
LEFT JOIN base_cabinet bc ON bcb.cabinet_id = bc.id
LEFT JOIN base_warehouse bw ON bi.location_id = bw.id AND bi.location_type = 0
JOIN base_equipment_type t ON t.id = bi.type_id
JOIN base_equipment_size s ON s.id = bi.size_id
JOIN pub_org po ON bi.org_id_int = po.org_id
and po.org_id=#{orgId}
where bi.location_id=#{locationId}
GROUP BY bi.org_id_int, location_id, type_id, size_id, bi.price, bi.location_type,bi.property
ORDER BY org_id_int, location_id) as t
GROUP BY t.org_id_int,t.location_id,t.type_id,t.size_id,t.location_type,t.unit_price,t.property
</insert>
<select id="getTotalData" parameterType="java.lang.String" resultType="java.lang.String"> <select id="getTotalData" parameterType="java.lang.String" resultType="java.lang.String">
SELECT SELECT
......
...@@ -13,23 +13,6 @@ ...@@ -13,23 +13,6 @@
</update> </update>
<!-- <update parameterType="java.lang.String" id="PriceNumCacu">-->
<!-- UPDATE vie_price_sum_summary-->
<!-- SET-->
<!-- add_price = CASE-->
<!-- WHEN add_price IS NULL THEN start_price - end_price-->
<!-- ELSE add_price-->
<!-- END,-->
<!-- add_num = CASE-->
<!-- WHEN add_num IS NULL THEN start_num - end_num-->
<!-- ELSE add_num-->
<!-- END-->
<!-- WHERE add_price IS NULL OR add_num IS NULL;-->
<!-- </update>-->
<select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto"> <select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
SELECT SELECT
t1.start_num, t1.start_num,
...@@ -51,7 +34,7 @@ ...@@ -51,7 +34,7 @@
COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
JOIN pub_org po ON vpss.org_id_int = po.org_id AND po.del_flag = 1 JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.year = #{year} vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
...@@ -59,7 +42,7 @@ ...@@ -59,7 +42,7 @@
FROM vie_price_sum_summary FROM vie_price_sum_summary
WHERE year = #{year} AND month IS NOT NULL WHERE year = #{year} AND month IS NOT NULL
) )
AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) AND po.del_flag = 1 AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vpss.type_id in and vpss.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")"> <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
...@@ -76,7 +59,7 @@ ...@@ -76,7 +59,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t1 ) AS t1
JOIN ( CROSS JOIN (
SELECT SELECT
COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num, COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num,
COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price, COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price,
...@@ -84,7 +67,7 @@ ...@@ -84,7 +67,7 @@
COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
JOIN pub_org po ON vpss.org_id_int = po.org_id AND po.del_flag = 1 JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.year = #{year} vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
...@@ -92,6 +75,7 @@ ...@@ -92,6 +75,7 @@
FROM vie_price_sum_summary FROM vie_price_sum_summary
WHERE year = 2025 AND month IS NOT NULL WHERE year = 2025 AND month IS NOT NULL
) )
AND po.del_flag = 1
AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0"> <if test="typeIdsList!=null and typeIdsList.size() > 0">
and vpss.type_id in and vpss.type_id in
...@@ -109,7 +93,7 @@ ...@@ -109,7 +93,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t2 ) AS t2
JOIN ( CROSS JOIN (
SELECT SELECT
org_id, org_id,
org_code, org_code,
...@@ -118,140 +102,14 @@ ...@@ -118,140 +102,14 @@
FROM FROM
pub_org pub_org
WHERE WHERE
(org_id = #{orgId} OR org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) org_id = #{orgId}
AND level_flag IS NOT NULL
ORDER BY
level_flag
LIMIT 1
) AS t3; ) AS t3;
<!-- SELECT-->
<!-- t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,-->
<!-- t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price,t3.org_id,t3.org_code,t3.org_name,t3.d_name-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- COALESCE (SUM(COALESCE ( start_num, 0 )),0) AS start_num,-->
<!-- COALESCE (SUM(COALESCE ( start_price, 0 )),0) AS start_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = (select `month` FROM vie_price_sum_summary where year=#{year} and month is not null ORDER BY month asc limit 1) and vpss.year=#{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT( '%', #{orgId}, '%' ))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t1-->
<!-- JOIN (-->
<!-- SELECT-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ),0) AS end_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ),0) AS end_price,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ),0) AS destory_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ),0) AS destory_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- CROSS JOIN (-->
<!-- SELECT `month` AS max_month-->
<!-- FROM vie_price_sum_summary-->
<!-- WHERE year = #{year}-->
<!-- AND `month` IS NOT NULL-->
<!-- ORDER BY `month` DESC-->
<!-- LIMIT 1-->
<!-- ) AS subquery-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.`year` = #{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id = #{orgId} OR po.org_parent_ids LIKE CONCAT( '%', #{orgId}, '%' ))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t2-->
<!-- join (-->
<!-- SELECT `org_id`,`org_code`,org_name,d_name-->
<!-- FROM `pub_org`-->
<!-- WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null-->
<!-- ORDER BY `level_flag`-->
<!-- LIMIT 1-->
<!-- ) as t3-->
</select> </select>
<!-- <select id="TjOrgPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">-->
<!-- select COALESCE(t2.start_num,0) as start_num,COALESCE(t2.start_price,0) as start_price,COALESCE(t1.end_num,0) as end_num,-->
<!-- COALESCE(t1.end_price,0) as end_price,t1.destory_num,t1.destory_price,t1.type_name,t1.type_id,t1.size_name,t1.size_id,-->
<!-- COALESCE(end_num,0)-COALESCE(start_num,0) as add_num,COALESCE(end_price,0)-COALESCE(start_price,0) as add_price-->
<!-- FROM(-->
<!-- SELECT-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ) AS end_num,-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ) AS end_price,-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ) AS destory_num,-->
<!-- sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ) AS destory_price,vpss.type_name,vpss.type_id,vpss.size_name,vpss.size_id-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE `po`.`del_flag` = 1 and po.org_id =#{orgId}-->
<!-- GROUP BY vpss.type_id,vpss.type_name,vpss.size_name,vpss.size_id-->
<!-- ORDER BY vpss.type_id-->
<!-- ) as t1-->
<!-- left join(-->
<!-- SELECT-->
<!-- SUM(COALESCE ( start_num, 0 )) AS start_num,-->
<!-- SUM(COALESCE ( start_price, 0 )) AS start_price, vpss.type_name,vpss.type_id,vpss.size_name,vpss.size_id-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = 3-->
<!-- and `po`.`del_flag` = 1 and po.org_id =#{orgId}-->
<!-- GROUP BY vpss.type_id,vpss.type_name,vpss.size_name,vpss.size_id-->
<!-- ORDER BY vpss.type_id-->
<!-- ) as t2 on t1.type_id =t2.type_id and t1.type_name=t2.type_name and t1.size_id =t2.size_id and t1.size_name=t2.size_name-->
<!-- <if test="column != null and column != '' and order != null and order != '' ">-->
<!-- order by ${column} ${order}-->
<!-- </if>-->
<!-- <if test="column==null and order == null">-->
<!-- order by type_id-->
<!-- </if>-->
<!-- </select>-->
<select id="TjOrgPriceLeve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto"> <select id="TjOrgPriceLeve4" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
SELECT SELECT
...@@ -274,20 +132,17 @@ ...@@ -274,20 +132,17 @@
COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN ( left JOIN pub_org po ON vpss.org_id_int = po.org_id
SELECT org_id WHERE del_flag = 1 and (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
FROM pub_org AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
WHERE del_flag = 1
AND org_id != #{orgId}
AND org_parent_ids LIKE CONCAT('%', #{orgId}, '%')
AND (case when #{levelFlag} >=3 then 1=1 else SUBSTRING(org_code, 5, 2) = '00' end )
AND ( AND (
level_flag > (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) + 1 `po`.`level_flag` > (
OR level_flag = (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
) ) + 1
) po ON vpss.org_id_int = po.org_id OR (`po`.`level_flag` = (
WHERE SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
vpss.year = #{year} ))))
and vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MIN(month) SELECT MIN(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -317,19 +172,17 @@ ...@@ -317,19 +172,17 @@
COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN ( left JOIN pub_org po ON vpss.org_id_int = po.org_id
SELECT org_id WHERE del_flag = 1 and (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
FROM pub_org AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
WHERE del_flag = 1
AND org_id != #{orgId}
AND org_parent_ids LIKE CONCAT('%', #{orgId}, '%')
AND (case when #{levelFlag} >=3 then 1=1 else SUBSTRING(org_code, 5, 2) = '00' end )
AND ( AND (
level_flag > (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) + 1 `po`.`level_flag` > (
OR level_flag = (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
)) po ON vpss.org_id_int = po.org_id ) + 1
WHERE OR (`po`.`level_flag` = (
vpss.year = #{year} SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}
))))
AND vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MAX(month) SELECT MAX(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -352,7 +205,7 @@ ...@@ -352,7 +205,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t2 ) AS t2
JOIN ( CROSS JOIN (
SELECT SELECT
org_id, org_id,
org_code, org_code,
...@@ -361,104 +214,9 @@ ...@@ -361,104 +214,9 @@
FROM FROM
pub_org pub_org
WHERE WHERE
(org_id = #{orgId} OR org_parent_ids LIKE CONCAT('%', #{orgId}, '%')) org_id = #{orgId} and level_flag is not null ORDER BY `level_flag` LIMIT 1
AND level_flag IS NOT NULL
ORDER BY
level_flag
LIMIT 1
) AS t3; ) AS t3;
<!-- SELECT-->
<!-- t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,-->
<!-- t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price,t3.org_id,t3.org_code,t3.org_name,t3.d_name-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- COALESCE (SUM(COALESCE ( start_num, 0 )),0) AS start_num,-->
<!-- COALESCE (SUM(COALESCE ( start_price, 0 )),0) AS start_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = (select `month` FROM vie_price_sum_summary where year=#{year} and month is not null ORDER BY month asc limit 1) and vpss.year=#{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')-->
<!-- AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))-->
<!-- AND (-->
<!-- `po`.`level_flag` > (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ) + 1-->
<!-- OR (`po`.`level_flag` = (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ))))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t1-->
<!-- JOIN (-->
<!-- SELECT-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ),0) AS end_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ),0) AS end_price,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ),0) AS destory_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ),0) AS destory_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- CROSS JOIN (-->
<!-- SELECT `month` AS max_month-->
<!-- FROM vie_price_sum_summary-->
<!-- WHERE year = #{year}-->
<!-- AND `month` IS NOT NULL-->
<!-- ORDER BY `month` DESC-->
<!-- LIMIT 1-->
<!-- ) AS subquery-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.`year` = #{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND (po.org_id != #{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')-->
<!-- AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))-->
<!-- AND (-->
<!-- `po`.`level_flag` > (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ) + 1-->
<!-- OR (`po`.`level_flag` = (-->
<!-- SELECT `level_flag` FROM `pub_org` WHERE `org_id` = #{orgId}-->
<!-- ))))-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t2-->
<!-- join (-->
<!-- SELECT `org_id`,`org_code`,org_name,d_name FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null ORDER BY `level_flag` LIMIT 1-->
<!-- ) as t3;-->
</select> </select>
...@@ -485,11 +243,11 @@ ...@@ -485,11 +243,11 @@
COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price COALESCE(SUM(COALESCE(start_price, 0)), 0) AS start_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN pub_org po ON vpss.org_id_int = po.org_id left JOIN pub_org po ON vpss.org_id_int = po.org_id
AND po.del_flag = 1
AND po.org_id = #{orgId}
WHERE WHERE
vpss.year = #{year} po.org_id = #{orgId}
and vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MIN(month) SELECT MIN(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -512,7 +270,7 @@ ...@@ -512,7 +270,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t1 ) AS t1
JOIN ( CROSS JOIN (
SELECT SELECT
COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num, COALESCE(SUM(COALESCE(end_num, 0)), 0) AS end_num,
COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price, COALESCE(SUM(COALESCE(end_price, 0)), 0) AS end_price,
...@@ -520,11 +278,10 @@ ...@@ -520,11 +278,10 @@
COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price COALESCE(SUM(COALESCE(destory_price, 0)), 0) AS destory_price
FROM FROM
vie_price_sum_summary vpss vie_price_sum_summary vpss
INNER JOIN pub_org po ON vpss.org_id_int = po.org_id left JOIN pub_org po ON vpss.org_id_int = po.org_id
AND po.del_flag = 1
AND po.org_id = #{orgId}
WHERE WHERE
vpss.year = #{year} po.org_id = #{orgId}
AND vpss.year = #{year}
AND vpss.month = ( AND vpss.month = (
SELECT MAX(month) SELECT MAX(month)
FROM vie_price_sum_summary FROM vie_price_sum_summary
...@@ -547,7 +304,7 @@ ...@@ -547,7 +304,7 @@
and vpss.type_name like CONCAT('%', #{typeName}, '%') and vpss.type_name like CONCAT('%', #{typeName}, '%')
</if> </if>
) AS t2 ) AS t2
JOIN ( CROSS JOIN (
SELECT SELECT
org_id, org_id,
org_code, org_code,
...@@ -557,196 +314,10 @@ ...@@ -557,196 +314,10 @@
pub_org pub_org
WHERE WHERE
org_id = #{orgId} org_id = #{orgId}
AND level_flag IS NOT NULL
ORDER BY
level_flag
LIMIT 1
) AS t3; ) AS t3;
<!-- SELECT-->
<!-- t1.start_num,t1.start_price,t2.end_num,t2.end_price,t2.end_num - t1.start_num AS add_num,-->
<!-- t2.end_price - t1.start_price AS add_price, t2.destory_num,t2.destory_price,t3.org_id,t3.org_code,t3.org_name,t3.d_name-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- COALESCE (SUM(COALESCE ( start_num, 0 )),0) AS start_num,-->
<!-- COALESCE (SUM(COALESCE ( start_price, 0 )),0) AS start_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.MONTH = (select `month` FROM vie_price_sum_summary where year=#{year} and month is not null ORDER BY month asc limit 1) and vpss.year=#{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND org_id_int = #{orgId}-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t1-->
<!-- JOIN (-->
<!-- SELECT-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ),0) AS end_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ),0) AS end_price,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ),0) AS destory_num,-->
<!-- COALESCE (sum( CASE WHEN vpss.MONTH = subquery.max_month THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ),0) AS destory_price-->
<!-- FROM-->
<!-- vie_price_sum_summary vpss-->
<!-- CROSS JOIN (-->
<!-- SELECT `month` AS max_month-->
<!-- FROM vie_price_sum_summary-->
<!-- WHERE year = #{year}-->
<!-- AND `month` IS NOT NULL-->
<!-- ORDER BY `month` DESC-->
<!-- LIMIT 1-->
<!-- ) AS subquery-->
<!-- LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id-->
<!-- WHERE-->
<!-- vpss.`year` = #{year}-->
<!-- AND po.del_flag = 1-->
<!-- AND org_id_int = #{orgId}-->
<!-- <if test="typeIdsList!=null and typeIdsList.size() > 0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdsList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeNameList!=null and sizeNameList.size() > 0">-->
<!-- AND-->
<!-- <foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">-->
<!-- size_name like CONCAT('%', #{item}, '%')-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="typeName!=null and typeName!=''">-->
<!-- and type_name like CONCAT('%', #{typeName}, '%')-->
<!-- </if>-->
<!-- ) AS t2-->
<!-- join (-->
<!-- SELECT `org_id`,`org_code`,org_name,d_name FROM `pub_org` WHERE (`org_id` = #{orgId} OR `org_parent_ids` LIKE CONCAT('%', #{orgId}, '%')) and level_flag is not null ORDER BY `level_flag` LIMIT 1-->
<!-- ) as t3;-->
</select> </select>
<select id="TjOrgPriceTotalNum" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
select COALESCE(t2.start_num,0) as start_num,COALESCE(t2.start_price,0) as start_price,COALESCE(t1.end_num,0) as end_num,
COALESCE(t1.end_price,0) as end_price,t1.destory_num,t1.destory_price,t1.type_name,t1.type_id,
COALESCE(end_num,0)-COALESCE(start_num,0) as add_num,COALESCE(end_price,0)-COALESCE(start_price,0) as add_price
FROM(
SELECT
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_num, 0 ) ELSE 0 END ) AS end_num,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.end_price, 0 ) ELSE 0 END ) AS end_price,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_num, 0 ) ELSE 0 END ) AS destory_num,
sum( CASE WHEN vpss.MONTH = MONTH ( CURRENT_DATE ()) THEN COALESCE ( vpss.destory_price, 0 ) ELSE 0 END ) AS destory_price,vpss.type_name,vpss.type_id
FROM
vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE
vpss.MONTH = 3
and `po`.`del_flag` = 1
<if test="level ==null " >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level==1">
and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level == 0 ">
and po.org_id =#{orgId}
</if>
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeName!=null and typeName!=''">
and type_name like CONCAT('%', #{typeName}, '%')
</if>
GROUP BY vpss.type_id,vpss.type_name
ORDER BY vpss.type_id
) as t1
left join(
SELECT
SUM(COALESCE ( start_num, 0 )) AS start_num,
SUM(COALESCE ( start_price, 0 )) AS start_price, vpss.type_name,vpss.type_id
FROM
vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE
vpss.MONTH = 3
and `po`.`del_flag` = 1
<if test="level ==null " >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level==1">
and (po.org_id !=#{orgId} and (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
<if test="levelNum !=0">
AND SUBSTRING(`po`.`org_code`, 5, 2) = '00'
</if>
))
and (`po`.level_flag>(select level_flag FROM pub_org where org_id=#{orgId} )+#{levelNum} or
`po`.level_flag=(select level_flag FROM pub_org where org_id=#{orgId} ))
</if>
<if test="level == 0 ">
and po.org_id =#{orgId}
</if>
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
<if test="typeName!=null and typeName!=''">
and type_name like CONCAT('%', #{typeName}, '%')
</if>
GROUP BY vpss.type_id,vpss.type_name
ORDER BY vpss.type_id
) as t2 on t1.type_id =t2.type_id and t1.type_name=t2.type_name
</select>
<select id="getTotalPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto"> <select id="getTotalPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.tjDto.TjOrgPriceDto">
SELECT SELECT
...@@ -818,7 +389,13 @@ ...@@ -818,7 +389,13 @@
vie_price_sum_summary vpss vie_price_sum_summary vpss
LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id LEFT JOIN pub_org po ON vpss.org_id_int = po.org_id
WHERE WHERE
vpss.MONTH = 3 AND vpss.YEAR = #{year} vpss.YEAR = #{year}
and vpss.month = (
SELECT MIN(month)
FROM vie_price_sum_summary
WHERE year = #{year}
AND month IS NOT NULL
)
AND po.del_flag = 1 AND po.del_flag = 1
<if test="level ==null" > <if test="level ==null" >
and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%') and (po.org_id =#{orgId} or (`po`.org_parent_ids like CONCAT('%', #{orgId}, '%')
......
...@@ -47,4 +47,51 @@ ...@@ -47,4 +47,51 @@
type_id type_id
ORDER BY org_id; ORDER BY org_id;
</select> </select>
<select id="WarrantyData" resultType="com.junmp.jyzb.api.bean.dto.tjDto.WarrantyDataDto">
select a.*,ins.stock_number FROM(SELECT
vw.id,
MAX(vw.size_name) AS size_name,
MAX(vw.type_name) AS type_name,
vw.size_id,
vw.type_id,
vw.location_id,
MAX(vw.location_name) as location_name,
vw.location_type,
vw.warranty_type,
MAX(vw.org_name) AS org_name,
vw.org_id,
sum(count_of_items) as count_of_items,
vw.price,
sum(price) as total_price,
vw.property
FROM
vie_warranty_group vw
<where>
<if test="req.orgId != null">
AND vw.org_id = #{req.orgId}
</if>
<if test="req.sizeId != null">
AND vw.size_id = #{req.sizeId}
</if>
<if test="req.typeId != null">
AND vw.type_id = #{req.typeId}
</if>
<if test="req.typeName != null and req.typeName != ''">
AND vw.type_name like concat('%',#{req.typeName},'%')
</if>
</where>
GROUP BY
vw.id,
vw.size_id,
vw.type_id,
vw.warranty_type,
vw.location_id,
vw.org_id,
vw.location_type,
vw.price,
vw.property) as a
inner join base_inventory_summary as ins on a.org_id=ins.org_id_int and a.location_id=ins.location_id and a.type_id=ins.type_id and a.size_id=ins.size_id and a.price=ins.unit_price and a.property=ins.property
and ins.stock_number>0
order by a.org_id,a.type_id,a.count_of_items
</select>
</mapper> </mapper>
...@@ -525,8 +525,6 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -525,8 +525,6 @@ public class ThirdServiceImpl implements ThirdPartyService{
//查询出子单据 //查询出子单据
List<TPOrderDetail> detailList = tpOrderDetailService.list(new LambdaQueryWrapper<TPOrderDetail>() List<TPOrderDetail> detailList = tpOrderDetailService.list(new LambdaQueryWrapper<TPOrderDetail>()
.in(TPOrderDetail::getOrderId, orderIdList)); .in(TPOrderDetail::getOrderId, orderIdList));
// Map<String,Object[]> invMap=new HashMap<>();
// Map<String,Object[]> searchMap=new HashMap<>();
for (TPOutOrderAccountReq.OutDetailReq detailReq:orderDetailList) { for (TPOutOrderAccountReq.OutDetailReq detailReq:orderDetailList) {
for (TPOrderDetail orderDetail:detailList) { for (TPOrderDetail orderDetail:detailList) {
if (detailReq.getDetailId().equals(orderDetail.getId().toString())){ if (detailReq.getDetailId().equals(orderDetail.getId().toString())){
...@@ -534,23 +532,6 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -534,23 +532,6 @@ public class ThirdServiceImpl implements ThirdPartyService{
orderDetail.setModifyQuantity(detailReq.getModifyQty()); orderDetail.setModifyQuantity(detailReq.getModifyQty());
orderDetail.setWarehouseId(storeId); orderDetail.setWarehouseId(storeId);
orderDetail.setWarehouseName(storeName); orderDetail.setWarehouseName(storeName);
//存入map为了方便查询InvList(进行统计数量)
// if (ObjectUtil.isNotNull(detailReq.getModifyQty()) && ObjectUtil.isNotNull(detailReq.getActualQty()) && detailReq.getActualQty()>0 && detailReq.getModifyQty()>0){
// BigDecimal price=BigDecimal.ZERO;
// if (!orderDetail.getPrice().contains("/")){
// price=new BigDecimal(orderDetail.getPrice());
// }
// String valuekey=createValueKey(orgInfo.getOrgCode(), orderDetail.getWarehouseId(), detailReq.getGoodsCode(), detailReq.getSpecId(), price.toString(), "0");
// if (invMap.containsKey(valuekey)){
// Object[] objects = invMap.get(valuekey);
// objects[4]=(int)objects[4]+detailReq.getModifyQty();
// invMap.put(valuekey,objects);
// }else {
// Object[] item=new Object[]{orgInfo.getOrgId(),orderDetail.getWarehouseId(),orderDetail.getTypeId(),orderDetail.getSizeId(),price.toString(),detailReq.getModifyQty()};
// invMap.put(valuekey,item);
// }
// }
} }
} }
...@@ -558,7 +539,6 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -558,7 +539,6 @@ public class ThirdServiceImpl implements ThirdPartyService{
tpOrderDetailService.updateBatchById(detailList); tpOrderDetailService.updateBatchById(detailList);
//创建logSummary //创建logSummary
Map<String, List<TPOrderMain>> orderMap = orderlist.stream() Map<String, List<TPOrderMain>> orderMap = orderlist.stream()
.collect(Collectors.groupingBy(TPOrderMain::getId)); .collect(Collectors.groupingBy(TPOrderMain::getId));
Map<String, List<TPOutOrderAccountReq.OutDetailReq>> orderDetailMap = orderDetailList.stream() Map<String, List<TPOutOrderAccountReq.OutDetailReq>> orderDetailMap = orderDetailList.stream()
...@@ -594,52 +574,6 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -594,52 +574,6 @@ public class ThirdServiceImpl implements ThirdPartyService{
} }
tpLogSummaryService.saveBatch(addLogSummaryList); tpLogSummaryService.saveBatch(addLogSummaryList);
//记账的时候删除装备和修改库存
// //获取到InvList
// List<TPInventory> invList=new ArrayList<>();
//
// if (!invMap.isEmpty()){
// List<Object[]> itemList=new ArrayList<>(invMap.values());
// invList=tpInventoryMapper.getInfoList(itemList);
// for (TPInventory inventory:invList) {
// String key=inventory.getOrgId()+inventory.getLocationId()+inventory.getTypeId()+inventory.getSizeId()+inventory.getPrice();
// if (searchMap.containsKey(key)){
// Object[] objects = searchMap.get(key);
// objects[5]=(Integer)objects[5]+1;
// searchMap.put(key,objects);
// }else {
// Object[] item=new Object[]{inventory.getOrgId(),inventory.getLocationId(),inventory.getTypeId(),inventory.getSizeId(),inventory.getPrice(),1};
// searchMap.put(key,item);
// }
//
// }
// }
// //更新库存汇总
// List<TPInvSummary> delList=new ArrayList<>();
// List<TPInvSummary> inventorySummaryList = tpInventoryMapper.selectSum(new ArrayList<>(searchMap.values()));
// for (String key:searchMap.keySet()) {
// for (TPInvSummary invSummary:inventorySummaryList) {
// String sumKey=invSummary.getOrgId()+invSummary.getLocationId()+invSummary.getTypeId()+invSummary.getSizeId()+invSummary.getUnitPrice();
// if (key.equals(sumKey)){
// Object[] objects = searchMap.get(key);
// invSummary.setNumber(Math.max(invSummary.getNumber()-(int)objects[5],0));
// invSummary.setStockNumber(Math.max(invSummary.getStockNumber()-(int)objects[5],0));
// if (invSummary.getNumber()==0 && invSummary.getStockNumber()==0){
// delList.add(invSummary);
// }
// }
// }
// }
// if (CollectionUtil.isNotEmpty(delList)){
// tpInvSummaryService.removeBatchByIds(delList);
// }
// tpInvSummaryService.updateBatchById(inventorySummaryList);
// //修改删除数据库Inventory和warehouseInventory中的数据
// List<String> epcList = invList.stream().map(TPInventory::getEpc).collect(Collectors.toList());
// tpInventoryService.removeBatchByIds(invList);
// tpWarehouseInvService.remove(new LambdaQueryWrapper<TPWarehouseInv>().in(TPWarehouseInv::getEpc,epcList));
}).start(); }).start();
return true; return true;
...@@ -837,7 +771,6 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -837,7 +771,6 @@ public class ThirdServiceImpl implements ThirdPartyService{
tpOrderMainService.updateBatchById(orderlist); tpOrderMainService.updateBatchById(orderlist);
List<TPOrderDetail> detailList = tpOrderDetailService.list(new LambdaQueryWrapper<TPOrderDetail>() List<TPOrderDetail> detailList = tpOrderDetailService.list(new LambdaQueryWrapper<TPOrderDetail>()
.in(TPOrderDetail::getOrderId, orderIdList)); .in(TPOrderDetail::getOrderId, orderIdList));
// Map<String,TPOrderDetail> summaryMap=new HashMap<>();
for (TPInOrderAccountReq.InDetailReq detailReq:orderDetailList) { for (TPInOrderAccountReq.InDetailReq detailReq:orderDetailList) {
for (TPOrderDetail orderDetail:detailList) { for (TPOrderDetail orderDetail:detailList) {
if (detailReq.getDetailId().equals(orderDetail.getId().toString())){ if (detailReq.getDetailId().equals(orderDetail.getId().toString())){
...@@ -845,23 +778,11 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -845,23 +778,11 @@ public class ThirdServiceImpl implements ThirdPartyService{
orderDetail.setModifyQuantity(detailReq.getModifyQty()); orderDetail.setModifyQuantity(detailReq.getModifyQty());
orderDetail.setWarehouseId(storeId); orderDetail.setWarehouseId(storeId);
orderDetail.setWarehouseName(storeName); orderDetail.setWarehouseName(storeName);
//存入list为了方便查询summaryList
// String valuekey=createValueKey(orgInfo.getOrgCode(), orderDetail.getWarehouseId(), orderDetail.getTypeId(), orderDetail.getSizeId(), orderDetail.getPrice(),"0");
// if (summaryMap.containsKey(valuekey)){
// TPOrderDetail detail = summaryMap.get(valuekey);
// Integer modifyQty = detail.getModifyQuantity()+detailReq.getModifyQty();
// detail.setModifyQuantity(modifyQty);
// summaryMap.put(valuekey,detail);
// }else {
// summaryMap.put(valuekey,orderDetail);
// }
} }
} }
} }
tpOrderDetailService.updateBatchById(detailList); tpOrderDetailService.updateBatchById(detailList);
//创建logSummary //创建logSummary
tpLogSummaryService.remove(new LambdaQueryWrapper<TPLogSummary>() tpLogSummaryService.remove(new LambdaQueryWrapper<TPLogSummary>()
.in(TPLogSummary::getOrderMainId, orderIdList) .in(TPLogSummary::getOrderMainId, orderIdList)
.eq(TPLogSummary::getDeviceType,0)); .eq(TPLogSummary::getDeviceType,0));
...@@ -895,67 +816,6 @@ public class ThirdServiceImpl implements ThirdPartyService{ ...@@ -895,67 +816,6 @@ public class ThirdServiceImpl implements ThirdPartyService{
} }
tpLogSummaryService.saveBatch(addLogSummaryList); tpLogSummaryService.saveBatch(addLogSummaryList);
// List<TPInventory> addInvList=new ArrayList<>();
// List<TPWarehouseInv> addWareInvList=new ArrayList<>();
// Random random = new Random();
// //如果新增,添加新的虚拟epc入库
// for (TPOrderDetail orderDetail:summaryMap.values()) {
// int num = orderDetail.getModifyQuantity(); // 获取 num 字段的值
//
// // 根据 num 的值重复创建 Inventory 对象并添加到列表中
// for (int i = 0; i < num; i++) {
// //随机生成一个epc
// Date date = new Date();
// String epc="000000"+date.getTime()+(random.nextInt(900000) + 100000);
//
// TPInventory tpInventory = createInvInfo( orderDetail.getWarehouseId(),
// orderDetail.getTypeId(), orderDetail.getSizeId(), orgInfo.getOrgId(), orderDetail.getProductionDate(),
// orderDetail.getMaintenancePeriod(), orderDetail.getWarrantyPeriod(), epc, orderlist.get(0).getSupplierId(), new BigDecimal(orderDetail.getPrice()) );
// addInvList.add(tpInventory);
//
// TPWarehouseInv tpWarehouseInv=createWareInvInfo(orgInfo.getOrgId(),orgInfo.getOrgName(),
// orderDetail.getWarehouseId(),orderDetail.getWarehouseName(),epc,orderDetail.getTypeId(),
// orderDetail.getTypeName(),orderDetail.getSizeId(), orderDetail.getSizeName());
// addWareInvList.add(tpWarehouseInv);
// }
// }
// if (CollectionUtil.isNotEmpty(addInvList)){
// tpInventoryService.saveBatch(addInvList);
// }
// if (CollectionUtil.isNotEmpty(addWareInvList)){
// tpWarehouseInvService.saveBatch(addWareInvList);
// }
//
// //更新库存汇总
// List<String> valuekeyList = new ArrayList<>(summaryMap.keySet());
// List<TPInvSummary> list = tpInvSummaryService.list(new LambdaQueryWrapper<TPInvSummary>().in(TPInvSummary::getValuekey, valuekeyList));
// List<TPInvSummary> addList=new ArrayList<>();
// for (TPInvSummary invSummary : list) {
// Integer integer = summaryMap.get(invSummary.getValuekey()).getModifyQuantity();
// invSummary.setStockNumber(invSummary.getStockNumber() + integer);
// invSummary.setNumber(invSummary.getNumber() + integer);
// summaryMap.remove(invSummary.getValuekey());
// }
// if (!summaryMap.isEmpty()){
// //添加新的装备
// for (String valuekey:summaryMap.keySet()) {
// TPOrderDetail orderDetail = summaryMap.get(valuekey);
// if (ObjectUtil.isNotNull(orderDetail.getModifyQuantity()) || orderDetail.getModifyQuantity()!=0){
//
// TPInvSummary inventorySummary = createInventorySummary(orgInfo.getOrgId(),orgInfo.getOrgName(),orgInfo.getOrgCode(),
// orderDetail.getTypeId(),orderDetail.getTypeName(),orderDetail.getSizeId(),orderDetail.getSizeName(),
// orderDetail.getWarehouseId(),orderDetail.getWarehouseName(),orderDetail.getModifyQuantity(),
// orderDetail.getModifyQuantity(),valuekey,new BigDecimal(orderDetail.getPrice()));
// addList.add(inventorySummary);
// }
// }
// }
// if (CollectionUtil.isNotEmpty(addList)){
// tpInvSummaryService.saveBatch(addList);
// }
// tpInvSummaryService.updateBatchById(list);
}).start(); }).start();
return true; return true;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论