Commit 7ce02b1b by 李小惠

修改出入库接口,修改报表接口(未完成,spoon的代码也未完成)

parent ba464479
......@@ -17,4 +17,8 @@ public class TjOrgCountReq extends BaseRequest {
@NotNull(message = "年份不能为空",groups = detail.class)
private Integer year;
private List<Integer> monthList;
private Boolean removeEmpty;
private String typeParentId;
private Integer levelNum;
}
\ No newline at end of file
......@@ -14,7 +14,7 @@ public enum OrderExceptionEnum implements IExceptionEnum {
ORDERDETAIL_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"子单据不一致,操作失败"),
ROLE_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"审核组织机构用户配置异常!请检查日志"),
ORDER_CREATE_ERROR(CommonConstant.DEFAULT_USER_ERROR_CODE,"单子创建失败"),
ORDER_NUM_IS_NULL(CommonConstant.DEFAULT_USER_ERROR_CODE,"请先选择仓库确认"),
ORDER_NUM_IS_NULL(CommonConstant.DEFAULT_USER_ERROR_CODE,"记账数量为空或0,请确认记账数量"),
;
/**
......
......@@ -151,6 +151,12 @@ public class TjController {
return ApiRes.success(tjService.TjOrgCountSum(req));
}
@PostMapping("/TjOrgCountDetail")
@ApiOperation("/查询组织机构下的使用统计明细")
public ApiRes<List<TjOrgCountDto>> TjOrgPriceDetail(@RequestBody TjOrgCountReq req){
return ApiRes.success(tjService.TjOrgCountDetail(req));
}
//财务统计报表(点击+后里面的数据)
@PostMapping("/TjOrgCountDetailPage")
@ApiOperation("/查询组织机构下的使用统计明细")
......
......@@ -63,6 +63,11 @@ public class PoliceEquipment implements Serializable {
@TableField("num")
private Integer num;
@TableField(value = "in_num")
private Integer inNum;
@TableField(value = "out_num")
private Integer outNum;
/**
* 组织机构ID
*/
......@@ -97,6 +102,8 @@ public class PoliceEquipment implements Serializable {
@TableField("create_time")
private Date createTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -19,10 +19,29 @@ public interface EquipmentCountSummaryMapper extends BaseMapper<EquipmentCountSu
void addInfo(@Param("sql") String sql);
List<TjOrgCountDto> TjOrgCount(@Param("orgId") Long orgId,
TjOrgCountDto TjOrgCount(@Param("orgId") String orgId,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList,
@Param("year")Integer year);
@Param("year")Integer year,
@Param("typeParentId")String typeParentId,
@Param("monthList") List<Integer> monthList);
TjOrgCountDto TjOrgCountleve4(@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("levelFlag")Integer levelFlag);
List<TjOrgCountDto> TjOrgCountTotalNum(@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);
FinalTjOrgCountDto TjOrgCountSum(@Param("orgId") Long orgId,
@Param("sizeNameList") List<String> sizeNameList,
......@@ -47,6 +66,8 @@ public interface EquipmentCountSummaryMapper extends BaseMapper<EquipmentCountSu
void setSizeName(@Param("sizeId") String id,@Param("sizeName") String name);
void setTypeName(@Param("typeId") String id,@Param("typeName") String name);
}
......
......@@ -44,9 +44,9 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> {
@Param("typeIdsList")List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList);
FinalTjOrgPriceDto TjOrgPriceSum(@Param("orgId") Long orgId,@Param("year") Integer year,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList);
// FinalTjOrgPriceDto TjOrgPriceSum(@Param("orgId") Long orgId,@Param("year") Integer year,
// @Param("typeIdsList") List<String> typeIdsList,
// @Param("sizeNameList") List<String> sizeNameList);
void setSizeName(@Param("sizeId") String id, @Param("sizeName") String name);
......@@ -55,10 +55,12 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> {
TjOrgPriceDto TjOrgPriceLeve4(@Param("orgId") Long orgId,
@Param("year") Integer year,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList")List<String> sizeNameList,@Param("levelFlag")Integer levelFlag);
@Param("sizeNameList")List<String> sizeNameList,
@Param("levelFlag")Integer levelFlag);
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("sizeNameList")List<String> sizeNameList,
@Param("levelNum")Integer levelNum);
}
......@@ -44,7 +44,7 @@ public class OutInLogsReceiver {
logRecordDTO.setLogType(30);
logRecordDTO.setRequestUrl("queues = \"orderResult\"");
try {
// System.out.println("msg = " + msg);
System.out.println("msg = " + msg);
// 创建日志对象
// 手动确认消息
......
......@@ -37,6 +37,8 @@ public interface TjService {
FinalTjOrgCountDto TjOrgCountSum(TjOrgCountReq req);
List<TjOrgCountDto> TjOrgCountDetail(TjOrgCountReq req);
PageResult<TjOrgCountDto> TjOrgCountDetailPage(TjOrgCountReq req);
List<TjOrgCountDto> TjOrgCountDetailList(TjOrgCountReq req);
......@@ -64,4 +66,6 @@ public interface TjService {
void TjOrgEqsExport(TjOrgEqsReq req);
}
......@@ -83,7 +83,7 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
List<EquipmentSize> list = list(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getTypeId,req.getTypeId())
.orderByDesc(EquipmentSize::getCode));
String code="0";
String code="1";
if (list.size()>0){
int i = Integer.parseInt(list.get(0).getCode());
code=String.valueOf(i+1);
......@@ -103,7 +103,7 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
size.setUpdateTime(DateTimeUtil.getCurrentDateTime());
this.save(size);
sizeRepository.save(size);
return sizeID;
return sizeID+"||"+code;
}
@Override
......
......@@ -145,6 +145,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
List<OrderDetail> detailList = orderDetailService
.list(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, one.getId()));
for (OrderDetail orderDetail:detailList) {
boolean flag=false;
for (DetailOrderReq detailReq:orderDetailList) {
if (detailReq.getId().equals(String.valueOf(orderDetail.getId()))){
if (ObjectUtil.isNull(orderDetail.getActualNum())){
......@@ -154,10 +155,16 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
orderDetail.setModifyQuantity(detailReq.getActualNum());
orderDetail.setActualNum(detailReq.getActualNum());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
}
flag=true;
break;
}
}
if (!flag){
orderDetail.setActualNum(0);
orderDetail.setModifyQuantity(0);
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
}
}
b=orderDetailService.updateBatchById(detailList);
//2.判断业务类型,如果是采购,更新装备库存表
......@@ -448,8 +455,10 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
if (!updateStateWrapper1.isEmptyOfWhere()){
inventoryService.update(updateStateWrapper1);
warehouseInventoryService.update(updateStateWrapper2);
}
System.out.println(1111);
if (!allocateInWrapper1.isEmptyOfWhere()){
inventoryService.update(allocateInWrapper1);
......
......@@ -240,7 +240,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//添加日志记录
if (ObjectUtil.isNull(req.getLogSummaryId()) || req.getLogSummaryId()==null){
s=s+listReq.getWarehouseName()+"【"+listReq.getTypeName()+"--"+listReq.getSizeName()+"】预计数量:"+listReq.getPlanNum()+"\n";
s=s+"【"+listReq.getTypeName()+"--"+listReq.getSizeName()+"】预计数量:"+listReq.getPlanNum()+"\n";
}
detailList.add(detail);
Object[] item=new Object[]{req.getStartOrgId(),listReq.getWarehouseId(),listReq.getTypeId(),listReq.getSizeId(),listReq.getPrice()};
......@@ -812,55 +812,189 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
String detailJson = orderMain.getDetailJson();
List<DetailJsonReq> detailJsonReqs = JSONObject.parseArray(detailJson, DetailJsonReq.class);
List<OrderDetailDto> orderDetailDtoList=new ArrayList<>();
//直接将数据库中的子单进行遍历,将orderMain中的具体detailjson进行解析并且重新修改子单的实际出入库数量,在将实际出入库信息存放到子单的child中返回给前端
Map<String, DetailJsonReq> summaryMap = new HashMap<>();
//遍历第一遍(确保号型一致,类型一致,价格一致的情况下该出入库信息存在该子单据中)
for (OrderDetail orderDetail:list) {
OrderDetailDto orderDetailDto = new OrderDetailDto();
BeanPlusUtil.copyProperties(orderDetail,orderDetailDto);
Map<String, DetailJsonReq> summaryMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(detailJsonReqs)) {
for (DetailJsonReq json :detailJsonReqs) {
json.setModifyQuantity(json.getNum());
String key = json.getLocationId() + "_" + json.getSizeId() + "_" + json.getTypeId();
if (CollectionUtil.isNotEmpty(detailJsonReqs)){
for (int i = 0; i < detailJsonReqs.size(); i++) {
DetailJsonReq detailReq = detailJsonReqs.get(i);
if (detailReq.getTypeId().equals(orderDetail.getTypeId())
&& detailReq.getSizeId().equals(orderDetail.getSizeId())
&& detailReq.getPrice().compareTo(orderDetail.getPrice())==0){//如果类型、号型、单价与子单一致,那么直接存在子单中
List<DetailJsonReq> childJson = orderDetailDto.getChildJson();
if (CollectionUtil.isEmpty(childJson)){
List<DetailJsonReq> list1=new ArrayList<>();
list1.add(detailReq);
orderDetailDto.setChildJson(list1);
}else {
childJson.add(detailReq);
orderDetailDto.setChildJson(childJson);
}
detailJsonReqs.remove(detailReq);
i--;
}
}
}else {
orderDetailDto.setChildJson(new ArrayList<>());
}
orderDetailDtoList.add(orderDetailDto);
}
//遍历第二遍,将剩余多的单子存放到sizeId和typeId一样的第一个子单中去
if (CollectionUtil.isNotEmpty(detailJsonReqs)){
for (OrderDetailDto dto:orderDetailDtoList) {
for (int i = 0; i < detailJsonReqs.size(); i++) {
DetailJsonReq deReq = detailJsonReqs.get(i);
if (dto.getTypeId().equals(deReq.getTypeId()) && dto.getSizeId().equals(deReq.getSizeId())){
List<DetailJsonReq> childJson = dto.getChildJson();
if (CollectionUtil.isEmpty(childJson)){
List<DetailJsonReq> list1=new ArrayList<>();
list1.add(deReq);
dto.setChildJson(list1);
}else {
childJson.add(deReq);
dto.setChildJson(childJson);
}
detailJsonReqs.remove(deReq);
i--;
}
}
}
}
//遍历第三遍(将每个childJson进行汇总,并且将具体存放到每个childDetailJson中去)
for (OrderDetailDto dto:orderDetailDtoList) {
//具体的值
List<DetailJsonReq> childJson = dto.getChildJson();
//最终存储数据list
List<DetailJsonReq> detailList=new ArrayList<>();
//第二层数据
List<DetailJsonReq> filteredValues=new ArrayList<>();
for (DetailJsonReq dReq:childJson) {
String key = dReq.getLocationId() + "_" + dReq.getSizeId() + "_" + dReq.getTypeId();
DetailJsonReq summary = summaryMap.get(key);
if (summary == null) {
summary = new DetailJsonReq();
summary.setLocationId(json.getLocationId());
summary.setLocationName(json.getLocationName());
summary.setSizeId(json.getSizeId());
summary.setTypeId(json.getTypeId());
summary.setChildDetailJson(new ArrayList<>());
summary.setLocationId(dReq.getLocationId());
summary.setLocationName(dReq.getLocationName());
summary.setSizeId(dReq.getSizeId());
summary.setTypeId(dReq.getTypeId());
detailList.add(dReq);
summary.setChildDetailJson(detailList);
summaryMap.put(key, summary);
}
// 汇总数量
if (json.getNum() != null) {
Integer newNum = summary.getNum() != null ? summary.getNum() + json.getNum() : json.getNum();
if (dReq.getNum() != null) {
Integer newNum = summary.getNum() != null ? summary.getNum() + dReq.getNum() : dReq.getNum();
summary.setNum(newNum);
summary.setModifyQuantity(newNum);
}
// 汇总子数据
if (json.getChildDetailJson() != null) {
summary.getChildDetailJson().addAll(json.getChildDetailJson());
}
}
if (dReq.getChildDetailJson() != null) {
detailList.add(dReq);
summary.getChildDetailJson().addAll(detailList);
}
List<DetailJsonReq> filteredValues = summaryMap.entrySet().stream()
if (!summaryMap.isEmpty()){
filteredValues = summaryMap.entrySet().stream()
.filter(entry -> {
String[] keyParts = entry.getKey().split("_");
String typeId = keyParts[2];
String sizeId = keyParts[1];
return typeId.equals(orderDetail.getTypeId()) && sizeId.equals(orderDetail.getSizeId());
String locationId = keyParts[0];
return typeId.equals(dReq.getTypeId()) && sizeId.equals(dto.getSizeId()) && locationId.equals(dReq.getLocationId());
})
.map(Map.Entry::getValue)
.collect(Collectors.toList());
}
}
dto.setChildJson(filteredValues);
summaryMap.clear();
orderDetailDto.setChildJson(filteredValues);
orderDetailDtoList.add(orderDetailDto);
}
// //我先遍历一遍,
// for (OrderDetail orderDetail:list) {
// OrderDetailDto orderDetailDto = new OrderDetailDto();
// BeanPlusUtil.copyProperties(orderDetail,orderDetailDto);
// //遍历detailJson将不同的locationId,sizeId,typeId,price作为唯一的键进行存储,并且存放至map中
//
//
//
// if (!summaryMap.isEmpty()){
// filteredValues = summaryMap.entrySet().stream()
// .filter(entry -> {
// String[] keyParts = entry.getKey().split("_");
// String typeId = keyParts[2];
// String sizeId = keyParts[1];
// String price = keyParts[3];
// return typeId.equals(orderDetail.getTypeId()) && sizeId.equals(orderDetail.getSizeId())
// && new BigDecimal(price).compareTo(orderDetail.getPrice())==0;
// })
// .map(Map.Entry::getValue)
// .collect(Collectors.toList());
// }
//
// orderDetailDto.setChildJson(filteredValues);
// summaryMap.remove(orderDetail.getWarehouseId() + "_" + orderDetail.getSizeId() + "_" + orderDetail.getTypeId()+"_"+orderDetail.getPrice());
// int sum = filteredValues.stream()
// .mapToInt(DetailJsonReq::getNum) // 获取每个对象的num属性值
// .sum();
// orderDetailDto.setActualNum(sum);
// orderDetailDto.setModifyQuantity(sum);
// orderDetail.setActualNum(sum);
// orderDetail.setModifyQuantity(sum);
// orderDetailDtoList.add(orderDetailDto);
// }
// //如果不相同,则表示存在不属于子单据数据,号型相等类型相等就是单价不相等,那么我要做的就是去掉price维度,重新遍历一遍子单,将typeid和sizeid满足条件的第一个的数量进行添加上去
// if (!summaryMap.isEmpty()){
// //需要进行两次双重循环,一次是返回前端,一次是更新数据库
// for (String key:summaryMap.keySet()) {
// String[] keyParts = key.split("_");
// String typeId = keyParts[2];
// String sizeId = keyParts[1];
// DetailJsonReq detailJsonReq = summaryMap.get(key);
// for (OrderDetailDto orderDetailDto:orderDetailDtoList) {
// if (orderDetailDto.getSizeId().equals(sizeId)&& orderDetailDto.getTypeId().equals(typeId)){
// orderDetailDto.setActualNum(orderDetailDto.getActualNum()+detailJsonReq.getNum());
// orderDetailDto.setModifyQuantity(orderDetailDto.getModifyQuantity()+detailJsonReq.getNum());
// List<DetailJsonReq> childJson=new ArrayList<>();
// if (CollectionUtil.isNotEmpty(orderDetailDto.getChildJson())){
// childJson = orderDetailDto.getChildJson();
// childJson.add(detailJsonReq);
// orderDetailDto.setChildJson(childJson);
// }else {
// childJson.add(detailJsonReq);
// orderDetailDto.setChildJson(childJson);
// }
// break;
// }
//
// }
// }
// for (String key:summaryMap.keySet()) {
// String[] keyParts = key.split("_");
// String typeId = keyParts[2];
// String sizeId = keyParts[1];
// DetailJsonReq detailJsonReq = summaryMap.get(key);
//
// for (OrderDetail orderDetail:list) {
// if (orderDetail.getSizeId().equals(sizeId)&& orderDetail.getTypeId().equals(typeId)){
// orderDetail.setActualNum(orderDetail.getActualNum()+detailJsonReq.getNum());
// orderDetail.setModifyQuantity(orderDetail.getModifyQuantity()+detailJsonReq.getNum());
// break;
// }
// }
// }
// }
orderDto.setDetailList(orderDetailDtoList);
return orderDto;
}
......@@ -900,6 +1034,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
public boolean Accounting(UpdateOrderReq req) {
//判断传递的订单主id是否存在
OrderMain orderMain = orderMainExist(req.getId());
List<DetailJsonReq> childJsonList=new ArrayList<>();
// String detailJson = orderMain.getDetailJson();
//出入库传递的具体汇总信息
// List<DetailJsonReq> detailJsonList = JSONObject.parseArray(detailJson, DetailJsonReq.class);
//记账子单据不能传空
if (req.getDetailList().size()==0){
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ISNOT_NULL);
......@@ -935,7 +1074,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<WarehouseInventory> delWareInvList=new ArrayList<>();
//遍历子单
List<DetailJsonReq> sumList=new ArrayList<>();
for (UpdateOrderDetailReq uploadDetailReq : reqList) {
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail);
......@@ -953,135 +1091,155 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (DetailJsonReq detailJsonReq:childJson) {
detailJsonReq.setSizeName(uploadDetailReq.getSizeName());
detailJsonReq.setTypeName(uploadDetailReq.getTypeName());
//为了记账时如果数量不一致取单据的单价进行计算,其他没有任何意义
detailJsonReq.setPrice(uploadDetailReq.getPrice());
}
sumList.addAll(childJson);
}
childJsonList.addAll(childJson);
// AccountingDto accountingDto = new AccountingDto();
// BeanPlusUtil.copyProperties(uploadDetailReq,accountingDto);
// accountingDtoList.add(accountingDto);
//修改单子数量数据,价格
//修改单子数量数量
orderDetail.setModifyQuantity(uploadDetailReq.getModifyQuantity());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
orderDetailList.add(orderDetail);
updateQuantity+=orderDetail.getModifyQuantity();
//修改后数量
updateQuantity+=uploadDetailReq.getModifyQuantity();
priceTotal=priceTotal.add(BigDecimal.valueOf(uploadDetailReq.getModifyQuantity()).multiply(uploadDetailReq.getPrice()));
}else {
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR);
}
}
String detailJson = orderMain.getDetailJson();
//出入库传递的具体汇总信息
List<DetailJsonReq> detailJsonList = JSONObject.parseArray(detailJson, DetailJsonReq.class);
//sumList已经是汇总信息
for (DetailJsonReq child:sumList) {
if (ObjectUtil.isNull(child.getNum())){
child.setNum(0);
}
//遍历childJsonList
for (DetailJsonReq jsonReq:childJsonList) {
List<DetailJsonReq> childDetailJsonList = jsonReq.getChildDetailJson();
Integer num=0;
BigDecimal price=BigDecimal.ZERO;
for (DetailJsonReq detail:detailJsonList) {
if (child.getSizeId().equals(detail.getSizeId())&& child.getLocationId().equals(detail.getLocationId())&&child.getTypeId().equals(detail.getTypeId())){
num+=detail.getNum();
//遍历orderMian中的detailJson
boolean flag=false;
//如果记账数量大于实际出库数量并且实际出库数量与单子的金额都不一致的情况,那么我直接添加单子的数据进行记账
boolean tap=false;
int sum = childDetailJsonList.stream()
.mapToInt(DetailJsonReq::getNum) // 获取每个对象的num属性值
.sum();
if (jsonReq.getModifyQuantity()>sum){//默认记账数量与识别数量一致并且不能小于实际出入库数量
flag=true;
}
int i = jsonReq.getModifyQuantity() - sum;
for (DetailJsonReq detail:childDetailJsonList) {
num=detail.getNum();
price=detail.getPrice();
UpdateOrderDetailReq data = new UpdateOrderDetailReq();
data.setActualNum(detail.getNum());
// data.setOrgId(uploadDetailReq.getOrgId());
data.setWarehouseId(child.getLocationId());
data.setSizeId(child.getSizeId());
data.setTypeId(child.getTypeId());
data.setPrice(child.getPrice());
data.setWarehouseId(jsonReq.getLocationId());
data.setWarehouseName(jsonReq.getLocationName());
data.setSizeId(jsonReq.getSizeId());
data.setTypeId(jsonReq.getTypeId());
data.setPrice(detail.getPrice());
data.setProperty(detail.getProperty());
data.setSizeName(child.getSizeName());
data.setTypeName(child.getTypeName());
if (detail.getProperty()==0 && detail.getNum()>child.getNum()){
data.setModifyQuantity(detail.getModifyQuantity()-detail.getNum()+child.getNum());
}else {
data.setModifyQuantity(child.getModifyQuantity());
}
data.setSizeName(jsonReq.getSizeName());
data.setTypeName(jsonReq.getTypeName());
data.setModifyQuantity(detail.getNum());
orderDetailReqList.add(data);
if (flag && detail.getPrice().compareTo(jsonReq.getPrice())==0){//如果记账多记了并且存在相同的价格,那么数量直接相加
s = s+jsonReq.getLocationName()+"--"+jsonReq.getTypeName()+"【"+
jsonReq.getSizeName()+"】,单价:"+price+",数量实入:"+detail.getNum()+",记账:"+(detail.getNum()+i)+"\n";
}else if (flag && detail.getPrice().compareTo(jsonReq.getPrice())!=0){
s = s+jsonReq.getLocationName()+"--"+jsonReq.getTypeName()+"【"+
jsonReq.getSizeName()+"】,单价:"+price+",数量实入:"+num+",记账:"+detail.getNum()+"\n";
} else if (!flag) {
s = s+jsonReq.getLocationName()+"--"+jsonReq.getTypeName()+"【"+
jsonReq.getSizeName()+"】,单价:"+price+",数量实入:"+num+",记账:"+detail.getNum()+"\n";
tap=true;
}
}
if (!tap){
UpdateOrderDetailReq data = new UpdateOrderDetailReq();
data.setActualNum(0);
data.setWarehouseId(jsonReq.getLocationId());
data.setWarehouseName(jsonReq.getLocationName());
data.setSizeId(jsonReq.getSizeId());
data.setTypeId(jsonReq.getTypeId());
data.setPrice(jsonReq.getPrice());
data.setProperty(0);
data.setSizeName(jsonReq.getSizeName());
data.setTypeName(jsonReq.getTypeName());
data.setModifyQuantity(sum);
orderDetailReqList.add(data);
}
s = s+child.getLocationName()+"--"+child.getTypeName()+"【"+
child.getSizeName()+"】,单价:"+price+",数量实入:"+num+",记账:"+child.getModifyQuantity()+"\n";
Inventory inventory = new Inventory();
WarehouseInventory warehouseInventory=new WarehouseInventory();
if (ObjectUtil.isNull(child.getModifyQuantity())){
if (ObjectUtil.isNull(jsonReq.getModifyQuantity()) ){
throw new ServiceException(OrderExceptionEnum.ORDER_NUM_IS_NULL);
}
if (child.getNum()<child.getModifyQuantity()){
if (i>0){
//实际出库或者入库数量大于实际数量,则对空数据进行增删改查
if (orderMain.getOrderType().equals("in")){
for (int i = 0; i < child.getModifyQuantity()-child.getNum(); i++) {
if (orderMain.getOrderType().equals("in")){ //入库
for (int j = 0; j < i; i++) {
inventory.setEpc("0");
inventory.setLocationId(child.getLocationId());
inventory.setSizeId(child.getSizeId());
inventory.setTypeId(child.getTypeId());
inventory.setLocationId(jsonReq.getLocationId());
inventory.setSizeId(jsonReq.getSizeId());
inventory.setTypeId(jsonReq.getTypeId());
inventory.setOrgId(orderMain.getEndOrgId());
inventory.setLocationType(0);
inventory.setPrice(child.getPrice());
inventory.setPrice(jsonReq.getPrice());
inventory.setProperty(0);
addInvList.add(inventory);
warehouseInventory.setOrgId(orderMain.getEndOrgId());
warehouseInventory.setLocationId(child.getLocationId());
warehouseInventory.setTypeId(child.getTypeId());
warehouseInventory.setSizeId(child.getSizeId());
warehouseInventory.setLocationId(jsonReq.getLocationId());
warehouseInventory.setTypeId(jsonReq.getTypeId());
warehouseInventory.setSizeId(jsonReq.getSizeId());
warehouseInventory.setLocationType("0");
addWareInvList.add(warehouseInventory);
}
}else {
int number=child.getModifyQuantity()-child.getNum();
}else {//出库
List<Inventory> list1 = inventoryService.list(new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getEpc, "0")
.eq(Inventory::getLocationId, child.getLocationId())
.eq(Inventory::getSizeId, child.getSizeId())
.eq(Inventory::getLocationId, jsonReq.getLocationId())
.eq(Inventory::getSizeId, jsonReq.getSizeId())
.eq(Inventory::getOrgId, orderMain.getStartOrgId())
.eq(Inventory::getTypeId, child.getTypeId())
.eq(Inventory::getPrice, child.getPrice())
.eq(Inventory::getTypeId, jsonReq.getTypeId())
.eq(Inventory::getPrice, jsonReq.getPrice())
.eq(Inventory::getLocationType, "0"));
List<WarehouseInventory> list2 = warehouseInventoryService.list(new LambdaQueryWrapper<WarehouseInventory>()
.eq(WarehouseInventory::getEpc, "0")
.eq(WarehouseInventory::getLocationId, child.getLocationId())
.eq(WarehouseInventory::getLocationId, jsonReq.getLocationId())
.eq(WarehouseInventory::getOrgId, orderMain.getStartOrgId())
.eq(WarehouseInventory::getSizeId, child.getSizeId())
.eq(WarehouseInventory::getTypeId, child.getTypeId()));
.eq(WarehouseInventory::getSizeId, jsonReq.getSizeId())
.eq(WarehouseInventory::getTypeId, jsonReq.getTypeId()));
if (list1.size()>0){
if (number>=list1.size()){
//如果记账数量大于库存中存在空数据,那么全部删除,否则选择前几条进行删除
if (i>=list1.size()){
delInvList.addAll(list1);
}else {
for (int i = 0; i < number; i++) {
delInvList.add(list1.get(i));
for (int j = 0; j < i; j++) {
delInvList.add(list1.get(j));
}
}
}
if (list2.size()>0){
if (number>=list2.size()){
if (i>=list2.size()){
delWareInvList.addAll(list2);
}else {
for (int i = 0; i < number; i++) {
delInvList.add(list1.get(i));
for (int j = 0; j < i; j++) {
delInvList.add(list1.get(j));
}
}
}
}
}
}
}
if (addWareInvList.size()>0){
inventoryService.saveBatch(addInvList);
}
......@@ -1104,7 +1262,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//更新主单据的数量和价格
orderMain.setActualQuantity(updateQuantity);
orderMain.setPrice(priceTotal);
orderMain.setOrderState("finished");
//修改记账状态,0未记账,1已记账
orderMain.setManualState(1);
......@@ -1136,12 +1293,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
boolean e=true;
if (req.getBussinessType().equals("use")){
e = policeBindEqs(req, reqList, orgId);
e = policeBindEqs(req, orderDetailReqList, orgId);
}
// //如果是归还入库,将警员下面的装备进行处理
boolean f=true;
if (req.getBussinessType().equals("return")){
f = policeUnBindEqs(req, reqList, orgId);
f = policeUnBindEqs(req, orderDetailReqList, orgId);
}
//记账结束之后往消息队列中推送一条消息
......@@ -1159,7 +1316,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//更新主单据
return (a && b && c && d && e && f && g );
}
public boolean policeUnBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> reqList,Long orgId){
public boolean policeUnBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId){
//根据传递的装备信息对警员进行解绑操作(判断警员下面是否有装备信息,如果有则直接进行修改或者删除,如果没有则跳过不处理)
Policeman one = policemanService.getOne(new LambdaQueryWrapper<Policeman>().eq(Policeman::getUserId, req.getReturnUserId()));
List<PoliceEquipment> list = policeEquipmentService.list(new LambdaQueryWrapper<PoliceEquipment>()
......@@ -1168,7 +1325,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<PoliceEquipment> delList=new ArrayList<>();
List<PoliceEquipment> updateList=new ArrayList<>();
if (list.size()>0){
for (UpdateOrderDetailReq upReq:reqList) {
for (UpdateOrderDetailReq upReq:orderDetailReqList) {
for (PoliceEquipment pEqs:list ) {
if (upReq.getSizeId().equals(pEqs.getSizeId()) && upReq.getTypeId().equals(pEqs.getTypeId())
......@@ -1197,11 +1354,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
return true;
}
}
public boolean policeBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> reqList,Long orgId){
public boolean policeBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId){
//如果是领用出库,那记账结束以后将装备挂到警员名下(存储到policemanEquipment表中)
Policeman policeman = policemanService.getOne(new LambdaQueryWrapper<Policeman>().eq(Policeman::getUserId, req.getReturnUserId()));
if (req.getBussinessType().equals("use")){
List<PoliceEquipment> collect1 = reqList.stream().map(updateOrderDetailReq -> {
List<PoliceEquipment> collect1 = orderDetailReqList.stream().map(updateOrderDetailReq -> {
PoliceEquipment policeEquipment = new PoliceEquipment();
policeEquipment.setPoliceId(policeman.getId());
policeEquipment.setPoliceName(policeman.getName());
......@@ -1210,6 +1367,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
policeEquipment.setTypeId(updateOrderDetailReq.getTypeId());
policeEquipment.setTypeName(updateOrderDetailReq.getTypeName());
policeEquipment.setNum(updateOrderDetailReq.getModifyQuantity());
policeEquipment.setInNum(0);
policeEquipment.setOutNum(updateOrderDetailReq.getModifyQuantity());
policeEquipment.setOrgId(orgId);
policeEquipment.setPrice(updateOrderDetailReq.getPrice());
policeEquipment.setLocationId(updateOrderDetailReq.getWarehouseId());
......
......@@ -500,8 +500,6 @@ public class TjServiceImpl implements TjService {
tjOrgPriceDtoList.add(OrgData);//把本级数据加进去
}
for (TjOrgPriceDto tj:tjOrgPriceDtoList) {
System.out.println("tj.getStartNum() = " + tj.getStartNum());
System.out.println("ObjectUtil.isNull(tj.getAddNum()) = " + ObjectUtil.isNull(tj.getAddNum()));
tj.setAddNum(ObjectUtil.isNull(tj.getAddNum())?0:tj.getAddNum());
tj.setStartNum(ObjectUtil.isNull(tj.getStartNum())?0:tj.getStartNum());
tj.setEndNum(ObjectUtil.isNull(tj.getEndNum())?0:tj.getEndNum());
......@@ -530,9 +528,6 @@ public class TjServiceImpl implements TjService {
tjOrgPriceDtoList.removeIf(tjOrgEqsDto -> tjOrgEqsDto.getStartNum() == 0 && tjOrgEqsDto.getEndNum() == 0
&& tjOrgEqsDto.getDestoryNum()==0);
}
//将组织机构进行排序后再进行返回
Comparator<TjOrgPriceDto> orgComparator = createOrgComparator();
Collections.sort(tjOrgPriceDtoList, orgComparator);
return tjOrgPriceDtoList;
}
......@@ -618,33 +613,87 @@ public class TjServiceImpl implements TjService {
@Override
public PageResult<TjOrgCountDto> TjOrgCount(TjOrgCountReq req) {
List<TjOrgCountDto> tjOrgCountDtoList =equipmentCountSummaryMapper.TjOrgCount(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear());
//先拿到符合条件的组织机构,再遍历组织机构组成数据
//(下一层数据组织机构数据)
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgCountDto> tjOrgCountList=new ArrayList<>();
for (String orgId:orgList) {
TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCount(orgId,
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList());
orgData.setNumber(ObjectUtil.isNull(orgData.getNumber())?0:orgData.getNumber());
orgData.setUseCount(ObjectUtil.isNull(orgData.getUseCount())?0:orgData.getUseCount());
orgData.setFixCount(ObjectUtil.isNull(orgData.getFixCount())?0:orgData.getFixCount());
tjOrgCountList.add(orgData);
}
if (req.getOrgId()!=1369509498032808905L){
TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList(),pubOrg.getLevelFlag());
tjOrgCountList.add(orgData);
}
//查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除
if (req.getRemoveEmpty()){
tjOrgCountList.removeIf(TjOrgCountDto -> TjOrgCountDto.getNumber() == 0 );
}
//对组织机构进行排序
Comparator<TjOrgCountDto> orgComparator = createOrgComparator();
Collections.sort(tjOrgCountDtoList, orgComparator);
Collections.sort(tjOrgCountList, orgComparator);
Page<TjOrgCountDto> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
if (ObjectUtil.isNull(req.getPageNo()) && ObjectUtil.isNull(req.getPageSize())) {
req.setPageNo(1L);
req.setPageSize(10L);
}
long startIndex = (req.getPageNo() - 1) * req.getPageSize();
long endIndex = Math.min(startIndex + req.getPageSize(), tjOrgCountDtoList.size());
List<TjOrgCountDto> subList = tjOrgCountDtoList.subList((int) startIndex, (int)endIndex);
page.setTotal(tjOrgCountDtoList.size());
long endIndex = Math.min(startIndex + req.getPageSize(), tjOrgCountList.size());
List<TjOrgCountDto> subList = tjOrgCountList.subList((int) startIndex, (int)endIndex);
page.setTotal(tjOrgCountList.size());
page.setRecords(subList);
return PageResultFactory.createPageResult(page);
}
@Override
public FinalTjOrgCountDto TjOrgCountSum(TjOrgCountReq req) {
FinalTjOrgCountDto finalTjOrgCountDto =equipmentCountSummaryMapper.TjOrgCountSum(req.getOrgId(),req.getSizeNameList(),
req.getTypeIdsList(), req.getYear());
if (ObjectUtil.isNotNull(finalTjOrgCountDto)) {
FinalTjOrgCountDto finalTjOrgCountDto=new FinalTjOrgCountDto();
finalTjOrgCountDto.setFixCount(0);
finalTjOrgCountDto.setUseCount(0);
finalTjOrgCountDto.setNumber(0);
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgCountDto> tjOrgCountList=new ArrayList<>();
for (String orgId:orgList) {
TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCount(orgId,
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList());
orgData.setNumber(ObjectUtil.isNull(orgData.getNumber())?0:orgData.getNumber());
orgData.setUseCount(ObjectUtil.isNull(orgData.getUseCount())?0:orgData.getUseCount());
orgData.setFixCount(ObjectUtil.isNull(orgData.getFixCount())?0:orgData.getFixCount());
tjOrgCountList.add(orgData);
}
if (req.getOrgId()!=1369509498032808905L){
TjOrgCountDto orgData =equipmentCountSummaryMapper.TjOrgCountleve4(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList(),pubOrg.getLevelFlag());
tjOrgCountList.add(orgData);
}
for (TjOrgCountDto tj:tjOrgCountList) {
tj.setFixCount(ObjectUtil.isNull(tj.getFixCount())?0: tj.getFixCount());
tj.setUseCount(ObjectUtil.isNull(tj.getUseCount())?0: tj.getUseCount());
tj.setNumber(ObjectUtil.isNull(tj.getNumber())?0: tj.getNumber());
finalTjOrgCountDto.setFixCount(finalTjOrgCountDto.getFixCount()+tj.getFixCount());
finalTjOrgCountDto.setUseCount(finalTjOrgCountDto.getUseCount()+ tj.getUseCount());
finalTjOrgCountDto.setNumber(finalTjOrgCountDto.getNumber()+ tj.getNumber());
}
return finalTjOrgCountDto;
}else {
return new FinalTjOrgCountDto();
}
@Override
public List<TjOrgCountDto> TjOrgCountDetail(TjOrgCountReq req) {
List<TjOrgCountDto> tjOrgCountDtoList=equipmentCountSummaryMapper.TjOrgCountTotalNum(req.getOrgId(),
req.getTypeIdsList(),req.getSizeNameList(),req.getYear(),req.getTypeParentId(),req.getMonthList(),req.getLevelNum());
if (req.getRemoveEmpty()){
tjOrgCountDtoList.removeIf(tjOrgCountDto -> tjOrgCountDto.getNumber()==0 );
}
return tjOrgCountDtoList;
}
@Override
......
......@@ -58,47 +58,53 @@
{call AddEquipmentCountSummary(#{sql,mode=IN})}
</insert>
<select id="TjOrgCount" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgCountDto">
select t1.org_id,t1.org_code,t1.org_name,t1.d_name,t2.year,t2.use_count,t2.fix_count,t2.number
FROM(
SELECT
`org_id`, `org_code`, `org_name`, `d_name`
FROM `pub_org`
WHERE org_id=#{orgId}
) as t1
CROSS JOIN (
SELECT
t.org_id,
max(t.org_code) as org_code,
max(t.org_name) as org_name,
max(t.parent_id) as parent_id,
max(t.d_name) AS d_name,
MAX(t.`year`) AS `year`,
SUM(t.use_count) AS use_count,
SUM(t.fix_count) AS fix_count,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number
FROM (
SELECT
org_id_int AS org_id,
max(org_code) as org_code,
max(org_name) as org_name,
max(parent_id) as parent_id,
max(org_name_short) AS d_name,
`year`,
`month`,
SUM(use_count) AS use_count,
SUM(fix_count) AS fix_count,
sum(number) as number
FROM vie_equipment_count_summary
where `year`= #{year} and (org_id_int=#{orgId} or parent_id=#{orgId})
vecs.`year`,
vecs.`month`,
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_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 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
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_parnet_id=#{typeParentId}
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
vecs.size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
GROUP BY org_id,`year`,month
<if test="monthList != null and monthList.size()>0">
and vecs.month in
<foreach collection="monthList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY `year`,month
) AS t
GROUP BY
t.org_id
)as t2
</select>
<select id="TjOrgCountSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.FinalTjOrgCountDto">
select sum(use_count) as use_count,sum(fix_count) as fix_count,sum(number) as number FROM (
......@@ -276,7 +282,103 @@
</foreach>
</if>
GROUP BY org_id,type_parent_id) as a on a.type_parent_id=et.id
where TRIM(et.parent_ids )='' and et.id !="00000000-0000-0000-0000-000000000000"
where et.parent_id="00000000-0000-0000-0000-000000000000" and et.id !="00000000-0000-0000-0000-000000000000"
GROUP BY et.id,et.name,a.org_id
</select>
<select id="TjOrgCountleve4" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgCountDto">
select t1.org_id,t1.org_code,t1.org_name,t1.d_name,t2.year,t2.use_count,t2.fix_count,t2.number
FROM(
SELECT
`org_id`, `org_code`, `org_name`, `d_name`
FROM `pub_org`
WHERE org_id=#{orgId}
) as t1
CROSS JOIN (
SELECT
MAX(t.`year`) AS `year`,
SUM(t.use_count) AS use_count,
SUM(t.fix_count) AS fix_count,
sum(CASE WHEN t.month = MONTH(CURRENT_DATE()) THEN t.number ELSE 0 END) AS number
FROM (
SELECT
vecs.`year`,
vecs.`month`,
SUM(vecs.use_count) AS use_count,
SUM(vecs.fix_count) AS fix_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 AND (po.org_id = #{orgId} OR (`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 vecs.type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="typeParentId != null and typeParentId !=''">
and vecs.type_parnet_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>
GROUP BY `year`,month
) AS t
)as t2
</select>
<select id="TjOrgCountTotalNum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgCountDto">
SELECT MAX( t.`year` ) AS `year`,SUM( t.use_count ) AS use_count,SUM( t.fix_count ) AS fix_count,
size_id,size_name,type_id,type_name,
sum( CASE WHEN t.MONTH = MONTH ( CURRENT_DATE ()) THEN t.number ELSE 0 END ) 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 `po`.`del_flag` = 1 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}
))
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
t.type_id,size_id
</select>
</mapper>
......@@ -58,7 +58,7 @@
ORDER BY year, month;
</select>
<select id="ShowInOutRecords" resultType="com.junmp.jyzb.entity.LogSummary">
select ls.location_id,ls.location_name,ls.bussiness_type,ls.out_in_state,ls.user_name,a.*
select ls.location_id,ls.use_time,ls.create_time,ls.location_name,ls.bussiness_type,ls.out_in_state,ls.user_name,a.*
from base_log_summary ls
join (select summary_id,count(*)as number,max(size_name) as size_name,
max(type_name) as type_name,max(price)as price
......@@ -75,18 +75,22 @@
</if>
</select>
<select id="ShowInOutRecordsSum" resultType="java.lang.Integer">
select ls.location_id,ls.location_name,ls.bussiness_type,ls.out_in_state,ls.user_name,a.*
select count(*)
from (select ls.location_id,ls.use_time, ls.location_name, ls.bussiness_type, ls.out_in_state, ls.user_name, a.*
from base_log_summary ls
join (select summary_id,count(*)as number,max(size_name) as size_name,
max(type_name) as type_name,max(price)as price
join (select summary_id,
count(*) as number,
max(size_name) as size_name,
max(type_name) as type_name,
max(price) as price
FROM base_log_detail ld
where org_id=#{orgId}
and type_id=#{typeId}
and size_id=#{sizeId}
and price=#{price}
GROUP BY summary_id
) as a on ls.id=a.summary_id
where ls.org_id=#{orgId} and ls.location_type=0
where org_id = #{orgId}
and type_id = #{typeId}
and size_id = #{sizeId}
and price = #{price}
GROUP BY summary_id) as a on ls.id = a.summary_id
where ls.org_id = #{orgId}
and ls.location_type = 0) as b
</select>
......
......@@ -96,33 +96,33 @@
</if>
</select>
<select id="TjOrgPriceSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.FinalTjOrgPriceDto">
select sum(coalesce(start_num,0)) as start_num,sum(coalesce(start_price,0)) as start_price,
sum(coalesce(end_num,0)) as end_num,sum(coalesce(end_price,0)) as end_price,
sum(coalesce(add_num,0)) as add_num,sum(coalesce(destory_num,0)) as destory_num,
sum(coalesce(add_price,0)) as add_price,sum(coalesce(destory_price,0)) as destory_price FROM (
select org_id_int as org_id,org_code,org_name,
sum(start_num) as start_num,sum(start_price) as start_price,
sum(end_num) as end_num,sum(end_price) as end_price,
sum(add_num) as add_num,sum(destory_num) as destory_num,
sum(add_price) as add_price,sum(destory_price) as destory_price
FROM vie_price_sum_summary
where `year`= #{year} and (org_id_int=#{orgId} or parent_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>
GROUP BY org_id,org_code,org_name
) as t
</select>
<!-- <select id="TjOrgPriceSum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.FinalTjOrgPriceDto">-->
<!-- select sum(coalesce(start_num,0)) as start_num,sum(coalesce(start_price,0)) as start_price,-->
<!-- sum(coalesce(end_num,0)) as end_num,sum(coalesce(end_price,0)) as end_price,-->
<!-- sum(coalesce(add_num,0)) as add_num,sum(coalesce(destory_num,0)) as destory_num,-->
<!-- sum(coalesce(add_price,0)) as add_price,sum(coalesce(destory_price,0)) as destory_price FROM (-->
<!-- select org_id_int as org_id,org_code,org_name,-->
<!-- sum(start_num) as start_num,sum(start_price) as start_price,-->
<!-- sum(end_num) as end_num,sum(end_price) as end_price,-->
<!-- sum(add_num) as add_num,sum(destory_num) as destory_num,-->
<!-- sum(add_price) as add_price,sum(destory_price) as destory_price-->
<!-- FROM vie_price_sum_summary-->
<!-- where `year`= #{year} and (org_id_int=#{orgId} or parent_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>-->
<!-- GROUP BY org_id,org_code,org_name-->
<!-- ) as t-->
<!-- </select>-->
<select id="TjOrgPriceDetailSum" resultType="java.lang.Integer">
select count(*) from (
select org_id_int as org_id,org_code,org_name,type_id,type_name,
......
......@@ -38,7 +38,7 @@ spring:
redis:
#host: 192.168.3.188
host: 192.168.3.188
host: 192.168.3.121
port: 6379
database: 1
password:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论