2024年11月19日11:11:50

main
litao 1 year ago
parent 1f329ba376
commit e2f6f4f3cf
  1. 6
      src/main/java/org/springblade/modules/capital/controller/GoodsController.java
  2. 33
      src/main/java/org/springblade/modules/capital/entity/Goods.java
  3. 4
      src/main/java/org/springblade/modules/system/entity/User.java
  4. 282
      src/main/java/org/springblade/modules/workOrder/controller/WorkBenchesController.java
  5. 7
      src/main/java/org/springblade/modules/workOrder/controller/WorkOrderController.java
  6. 5
      src/main/java/org/springblade/modules/workOrder/dto/WorkOrderDTO.java
  7. 19
      src/main/java/org/springblade/modules/workOrder/entity/WorkOrder.java
  8. 14
      src/main/java/org/springblade/modules/workOrder/service/impl/WorkOrderServiceImpl.java

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.common.cache.DictBizCache;
@ -62,8 +63,10 @@ public class GoodsController extends BladeController {
Goods detail = goodsService.getById(goods.getId());
detail.setBigClassName(DictBizCache.getValue(GOODS_TYPE, detail.getBigClassId()));
detail.setTypeName(DictBizCache.getValue(MAJOR_TYPE, detail.getType()));
detail.setInventoryPrice(detail.getPurchasePrice() != null ? 0.00 : detail.getNum() * detail.getPurchasePrice());
return R.data(detail);
}
/**
* 物品表 分页
*/
@ -76,6 +79,7 @@ public class GoodsController extends BladeController {
for (Goods record : records) {
record.setBigClassName(DictBizCache.getValue(GOODS_TYPE, record.getBigClassId()));
record.setTypeName(DictBizCache.getValue(MAJOR_TYPE, record.getType()));
record.setInventoryPrice(record.getPurchasePrice() == null ? 0.00 : record.getNum() * record.getPurchasePrice());
}
return R.data(pages);
}
@ -99,6 +103,7 @@ public class GoodsController extends BladeController {
@ApiOperation(value = "新增", notes = "传入goods")
public R save(@Valid @RequestBody Goods goods) {
goods.setCode("编码格式待定");
goods.setAllEnterNum(0);
return R.status(goodsService.save(goods));
}
@ -162,6 +167,7 @@ public class GoodsController extends BladeController {
for (Goods entity : goodsList) {
if (goodsEntity.getId().equals(entity.getId())) {
goodsEntity.setNum(entity.getNum() + goodsEntity.getNum());
goodsEntity.setAllEnterNum(entity.getAllEnterNum() + goodsEntity.getNum());
break;
}
}

@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
@ -140,4 +142,35 @@ public class Goods extends BaseEntity {
@ApiModelProperty(value = "")
private String remark;
/**
* 库存id
*/
private String inventoryId;
/**
* 采购价格
*/
private Double purchasePrice;
/**
* 统一报价
*/
private Double unifiedQuotation;
/**
* 续订时间
*/
private Integer renewNum;
/**
* 累计入库数量
*/
private Integer allEnterNum;
/**
* 库存价值
*/
@TableField(exist = false)
private Double inventoryPrice;
}

@ -84,4 +84,8 @@ public class User extends TenantEntity {
* 坐标
*/
private String coordinate;
/**
* 背景图片
*/
private String backGroundPic;
}

@ -0,0 +1,282 @@
package org.springblade.modules.workOrder.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springblade.modules.workOrder.entity.DeviceAttach;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 工作台 控制器
*
* @author BladeX
* @since 2024-10-14
*/
@RestController
@AllArgsConstructor
@RequestMapping("/workBenches")
@Api(value = "工作台", tags = "工作台接口")
public class WorkBenchesController extends BladeController {
/**
* 工作台
*/
@GetMapping("/overview")
public R<List<Map<String, Object>>> overview() {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "实验室巡检");
map1.put("num", 10);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "报送记录");
map2.put("num", 8);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "设备报警");
map3.put("num", 16);
list.add(map3);
return R.data(list);
}
/**
* 实验室巡检列表
*/
@GetMapping("/workList")
public R<List<Map<String, Object>>> workList() {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("inspectionName", "水系统检查");
map1.put("inspectionTime", "2024-11-11");
map1.put("inspectionPerson", "张三");
map1.put("isStart", "0");
map1.put("appointTime", "2024-11-15");
map1.put("taskType", "1");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("inspectionName", "设备检查");
map2.put("inspectionTime", "2024-11-11");
map2.put("inspectionPerson", "李四");
map2.put("isStart", "1");
map2.put("appointTime", "2024-11-15");
map2.put("taskType", "2");
list.add(map2);
return R.data(list);
}
/**
* 设备报警列表
*/
@GetMapping("/deviceList")
public R<List<Map<String, Object>>> deviceList() {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("alarmLevel", "1");
map1.put("deviceName", "2024-11-11");
map1.put("brand", "品牌A");
map1.put("model", "GDXH-12582");
map1.put("alarmTime", "2024-11-15");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("alarmLevel", "2");
map2.put("deviceName", "2024-11-11");
map2.put("brand", "品牌B");
map2.put("model", "GDXH-88542");
map2.put("alarmTime", "2024-11-08");
list.add(map2);
return R.data(list);
}
/**
* 维修统计
*/
@GetMapping("/upkeepStat")
public R<Map<String, Object>> upkeepStat(String startTime, String endTime) {
Map<String, Object> map = new HashMap<>();
List<String> xData = new ArrayList<>();
xData.add("报送维修");
xData.add("巡检维修");
map.put("xData", xData);
List<Integer> total = new ArrayList<>();
total.add(10);
total.add(20);
map.put("total", total);
List<Integer> completed = new ArrayList<>();
completed.add(3);
completed.add(12);
map.put("completed", completed);
List<Integer> unCompleted = new ArrayList<>();
unCompleted.add(7);
unCompleted.add(8);
map.put("unCompleted", unCompleted);
return R.data(map);
}
/**
* 饼图数据
*/
@GetMapping("/pieStat")
public R<Map<String, Object>> pieStat(String startTime, String endTime) {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> fault = new ArrayList<>();
Map<String, Object> fault1 = new HashMap<>();
fault1.put("name", "电气");
fault1.put("value", 300);
fault.add(fault1);
Map<String, Object> fault2 = new HashMap<>();
fault2.put("name", "空调");
fault2.put("value", 248);
fault.add(fault2);
Map<String, Object> fault3 = new HashMap<>();
fault3.put("name", "装修类");
fault3.put("value", 135);
fault.add(fault3);
Map<String, Object> fault4 = new HashMap<>();
fault4.put("name", "智能设备");
fault4.put("value", 180);
fault.add(fault4);
Map<String, Object> fault5 = new HashMap<>();
fault5.put("name", "暖通、自控");
fault5.put("value", 654);
fault.add(fault5);
map.put("fault", fault);
List<Map<String, Object>> device = new ArrayList<>();
Map<String, Object> device1 = new HashMap<>();
device1.put("name", "设备1");
device1.put("value", 580);
device.add(device1);
Map<String, Object> device2 = new HashMap<>();
device2.put("name", "空调");
device2.put("value", 1048);
device.add(device2);
Map<String, Object> device3 = new HashMap<>();
device3.put("name", "通风柜");
device3.put("value", 735);
device.add(device3);
map.put("device", device);
return R.data(map);
}
/**
* 地图相关数据
*/
@GetMapping("/mapAddress")
public R<Map<String, Object>> mapAddress(String perType) {
Map<String, Object> map = new HashMap<>();
List<String> fault = new ArrayList<>();
fault.add("120.49149829538277");
fault.add("36.15297000628537");
map.put("软件创新园", fault);
return R.data(map);
}
/**
* 实验室巡检列表
*/
@GetMapping("/limsInspecList")
public R<List<Map<String, Object>>> limsInspecList(String perType) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "水系统检查");
map1.put("planTime", "2024-11-11");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "设备检查");
map2.put("planTime", "2024-11-11");
list.add(map2);
return R.data(list);
}
/**
* 工作台
*/
@GetMapping("/overview1")
public R<List<Map<String, Object>>> overview1(String perType) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> map2 = new HashMap<>();
Map<String, Object> map3 = new HashMap<>();
map1.put("title", "我的任务");
map1.put("mainName", "今日待办");
map1.put("subName", "今日已办");
map1.put("num", 5);
map1.put("num1", 10);
map2.put("title", "维修已办结");
map2.put("mainName", "本月");
map2.put("subName", "本年");
map2.put("num", 16);
map2.put("num1", 129);
if ("0".equals(perType)) {
map3.put("title", "巡检计划");
map3.put("mainName", "巡检签约");
map3.put("subName", "巡检");
map3.put("num", 22);
map3.put("num1", 159);
} else if ("1".equals(perType)) {
map3.put("title", "维修人员");
map3.put("mainName", "在岗");
map3.put("subName", "总计");
map3.put("num", 22);
map3.put("num1", 159);
}
list.add(map1);
list.add(map2);
list.add(map3);
return R.data(list);
}
/**
* 实验室巡检图表
*/
@GetMapping("/limsInspecChart")
public R<Map<String, Object>> limsInspecChart(String startTime, String endTime, String perType) {
Map<String, Object> map = new HashMap<>();
List<String> xData = new ArrayList<>();
if ("0".equals(perType)) {
xData.add("安池");
xData.add("畜牧局");
} else if ("1".equals(perType)) {
xData.add("班组1");
xData.add("班组2");
}
map.put("xData", xData);
List<Integer> total = new ArrayList<>();
total.add(172);
total.add(160);
map.put("yData", total);
return R.data(map);
}
/**
* 故障类占比统计
*/
@GetMapping("/faultRatio")
public R<Map<String, Object>> faultRatio(String startTime, String endTime, String perType) {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> fault = new ArrayList<>();
Map<String, Object> fault1 = new HashMap<>();
fault1.put("name", "空调");
fault1.put("value", 115);
fault.add(fault1);
map.put("fault", fault);
List<Map<String, Object>> rate = new ArrayList<>();
Map<String, Object> device1 = new HashMap<>();
device1.put("name", "正常数量");
device1.put("value", 115);
rate.add(device1);
map.put("rate", rate);
return R.data(map);
}
}

@ -104,7 +104,12 @@ public class WorkOrderController extends BladeController {
}
// 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序
eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation()).eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType()).between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime()).orderByDesc(WorkOrder::getCreateTime);
eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation())
.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType())
.in(workOrderDTO.getType() != null, WorkOrder::getStatus, Func.toIntList(workOrderDTO.getType()))
.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode())
.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime())
.orderByDesc(WorkOrder::getCreateTime);
// 执行分页查询
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), eq);

@ -47,4 +47,9 @@ public class WorkOrderDTO extends WorkOrder{
* 数据权限标识1客户 2客服 3维修负责人 4维修人员
*/
private String dataType;
/**
* 工单状态
*/
private String type;
}

@ -1,6 +1,5 @@
package org.springblade.modules.workOrder.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.annotations.ApiModel;
@ -21,7 +20,7 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
public class WorkOrder extends BaseEntity {
// 工单状态(-1草稿 0待客服接单 1待班组派单 2待维修人员确认 3待维修 4待领导审批 5待评价 6已完成 7已驳回(维修人员) 8已驳回(维修负责人) 9已关闭(客服)
// 工单状态: -1草稿 0待客服接单 1待班组派单 2待维修人员确认 3待维修 4待领导审批 5待评价 6已完成 7已驳回(维修人员) 8已驳回(维修负责人) 9已关闭(客服)
/**
* 故障位置
@ -192,4 +191,20 @@ public class WorkOrder extends BaseEntity {
* 关闭原因
*/
private String cloneReason;
/**
* 总价
*/
private Double totalPrice;
/**
* 折扣
*/
private Double discount;
/**
* 折扣后总价
*/
private Double discountPrice;
}

@ -159,11 +159,19 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 保存附件
saveFiles(workOrder.getVideoAttaches(), workOrder.getPicAttaches(), workOrder.getId());
List<WorkOrderRepairMaterial> materials = workOrder.getMaterials();
workOrderRepairMaterialService.remove(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId()));
// 维修材料
if (CollectionUtil.isNotEmpty(materials)) {
materials.forEach(material -> material.setOrderId(workOrder.getId()));
workOrderRepairMaterialService.saveBatch(materials);
// 需要新增的附件
List<WorkOrderRepairMaterial> newSave = materials.stream().filter(material -> material.getId() == null).collect(Collectors.toList());
// 不删除的附件ids
List<Long> ids = materials.stream().filter(material -> material.getId() != null).map(WorkOrderRepairMaterial::getId).collect(Collectors.toList());
// 删除
workOrderRepairMaterialService.remove(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class)
.eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId())
.notIn(CollectionUtils.isNotEmpty(ids), WorkOrderRepairMaterial::getId, ids));
newSave.forEach(material -> material.setOrderId(workOrder.getId()));
workOrderRepairMaterialService.saveBatch(newSave);
}
return this.updateById(workOrder);
}

Loading…
Cancel
Save