You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

423 lines
17 KiB
Java

6 months ago
package com.ruoyi.webapi.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.config.RuoYiConfig;
6 months ago
import com.ruoyi.common.core.domain.AjaxResult;
4 months ago
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
6 months ago
import com.ruoyi.manager.domain.*;
import com.ruoyi.manager.service.*;
import com.ruoyi.webapi.doman.APKVersion;
6 months ago
import com.ruoyi.webapi.doman.BindingSubmitBeen;
3 months ago
import com.ruoyi.webapi.doman.ReceiptSubmitBeen;
6 months ago
import com.ruoyi.webapi.service.ApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
6 months ago
import java.io.IOException;
6 months ago
import java.util.Date;
3 months ago
import java.util.HashMap;
6 months ago
import java.util.List;
3 months ago
import java.util.Map;
6 months ago
/**
* Created by wangh on 2020/7/17-15:18
*/
@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired
ApiService service;
@Autowired
private IBaseManufacturerService baseManufacturerService;
@Autowired
private IBaseBasketInfoService baseBasketInfoService;
@Autowired
private IRecordBasketRepairService recordBasketRepairService;
@Autowired
private IRecordtRfidBindingService recordtRfidBindingService;
@Autowired
private ILedgerInstantBindingService ledgerInstantBindingService;//货物实时绑定信息
4 months ago
@Autowired
3 months ago
private IRecordCargoBindingService recordCargoBindingService;//货物绑定记录
@Autowired
private IRecordDeliveryTaskService recordDeliveryTaskService;//交货任务
@Autowired
private IRecordDeliveryTaskBaseketService recordDeliveryTaskBaseketService;//交货详情
@Autowired
private IRecordDeliveryTaskImgService recordDeliveryTaskImgService;//交货图片
@Autowired
private IRecordBasketRepairSparePartsService recordBasketRepairSparePartsService;//维修备件
6 months ago
@PostMapping("/findBindingList")
public AjaxResult findBindingList(String epc) {
List<String> codes = service.findBindingList(epc);
if (codes == null || codes.isEmpty()) return AjaxResult.error("没有运单绑定该资产");
return AjaxResult.success(codes);
}
@PostMapping("/deleteBindingList")
public AjaxResult deleteBindingList(String objids) {
4 months ago
int i = ledgerInstantBindingService.deleteLedgerInstantBindingByObjids(objids);
6 months ago
if (i > 0) return AjaxResult.success("全部解绑成功");
return AjaxResult.error();
}
@PostMapping("/deleteBindingItem")
public AjaxResult deleteBindingItem(Long ledgerId) {
// int i = service.deleteBindingItem(epc, code);
int i = ledgerInstantBindingService.deleteLedgerInstantBindingByObjid(ledgerId);
if (i == 1) return AjaxResult.success("解绑成功");
6 months ago
return AjaxResult.error();
}
@PostMapping("/deleteLocationCode")
public AjaxResult deleteLocationCode(String dbCode, String hkCode) {
int i = service.delectLocationInfoRemarkByDbCode(dbCode, hkCode);
if (i == 1) return AjaxResult.success();
return AjaxResult.error();
}
@PostMapping("/blueToothSubmit")
public AjaxResult blueToothSubmit(String locationCode, String hkCode) {
int i = service.blueToothSubmit(locationCode, hkCode);
if (i > 0) {
return AjaxResult.success();
}
return AjaxResult.error("库位没有维护");
}
4 months ago
// 接货查询
6 months ago
@PostMapping("/jion/select")
public AjaxResult jionSelect(String user) {
// List<LedgerInstantBinding> list = service.jionSelect(user);
LedgerInstantBinding query = new LedgerInstantBinding();
query.setCreateBy(user);
List<LedgerInstantBinding> list = ledgerInstantBindingService.selectList(query);
6 months ago
if (list == null || list.isEmpty()) return AjaxResult.error("账号无绑定记录");
return AjaxResult.success(list);
}
4 months ago
3 months ago
// 交货任务生成
@PostMapping("/delivery/createTask")
3 months ago
public AjaxResult createDeliveryTask(String json, String user, List<MultipartFile> files) {
List<Long> ids = JSONArray.parseArray(json, Long.class);
4 months ago
// 生成任务编码
int taskNumber = recordDeliveryTaskService.countNowDateTaskNumber();
3 months ago
taskNumber++;
String taskCode = "Task" + DateUtils.dateTime() + String.format("%03d", taskNumber);
4 months ago
// 插入任务
3 months ago
RecordDeliveryTask recordDeliveryTask = new RecordDeliveryTask();
4 months ago
recordDeliveryTask.setTaskCode(taskCode);
recordDeliveryTask.setCreateBy(user);
recordDeliveryTaskService.insertRecordDeliveryTask(recordDeliveryTask);
// 插入资产到任务表
3 months ago
recordDeliveryTaskBaseketService.insertRecordDeliveryTaskBaseket(taskCode, ids);
4 months ago
// 插入图片
3 months ago
String filePath = RuoYiConfig.getUploadPath() + "/task";
4 months ago
for (int i = 0; i < files.size(); i++) {
try {
String fileName = FileUploadUtils.upload(filePath, files.get(i));
3 months ago
RecordDeliveryTaskImg recordDeliveryTaskImg = new RecordDeliveryTaskImg();
4 months ago
recordDeliveryTaskImg.setTaskCode(taskCode);
recordDeliveryTaskImg.setImgPath(fileName);
recordDeliveryTaskImgService.insertRecordDeliveryTaskImg(recordDeliveryTaskImg);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
3 months ago
// ledgerInstantBindingService.deleteLedgerInstantByBasket(ids);// 删除实时绑定记录
// 更新状态
ledgerInstantBindingService.updateTaskStatebyBasketID(ids);
4 months ago
return AjaxResult.success();
}
3 months ago
6 months ago
//交货提交
@PostMapping("/join/jiaoSubmit")
3 months ago
public AjaxResult joinJiaoSubmit(@RequestBody ReceiptSubmitBeen been) {
6 months ago
int i = service.joinSelectByUser(been);
if (i == 0) {
return AjaxResult.success();
}
return AjaxResult.error();
}
//接货提交
@PostMapping("/join/shouSubmit")
3 months ago
public AjaxResult joinJieSubmit(@RequestBody ReceiptSubmitBeen been) {
6 months ago
int i = service.joinShouSubmit(been);
if (i >= been.getList().size()) {
return AjaxResult.success();
}
return AjaxResult.error();
}
3 months ago
// 远程接货扫描epc
@PostMapping("/receipt/scanEpc")
public AjaxResult ReceiptScanEpc(String epc) {
BaseBasketInfo baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoByEpc(epc);
if (baseBasketInfo == null) return AjaxResult.error("RFID查询失败没有维护该资产");
Long objId = baseBasketInfo.getObjId();
RecordDeliveryTaskBaseket select1 = recordDeliveryTaskBaseketService.selectRecordDeliveryTaskBaseketByBasket(objId);//查询资产是否绑定任务
if (select1 == null) return AjaxResult.error("资产未绑定任务或任务已完成");
// 查询所有资产
List<RecordDeliveryTaskBaseket> list = recordDeliveryTaskBaseketService.selectRecordDeliveryTaskBaseketList(select1);
// 查询所有图片
RecordDeliveryTaskImg recordDeliveryTaskImg = new RecordDeliveryTaskImg();
recordDeliveryTaskImg.setTaskCode(select1.getTaskCode());
List<RecordDeliveryTaskImg> imgList = recordDeliveryTaskImgService.selectRecordDeliveryTaskImgList(recordDeliveryTaskImg);
// 封装返回数据
Map<String, Object> map = new HashMap<>();
map.put("taskCode", select1.getTaskCode());
map.put("baseketList", list);
map.put("imgList", imgList);
return AjaxResult.success(map);
}
// 远程接货确认
@PostMapping("/receipt/submit")
public AjaxResult receiptSubmit(@RequestBody ReceiptSubmitBeen been) {
int i = service.joinShouSubmit(been);
String taskCode = been.getTaskCode();
String user = been.getUser();
recordDeliveryTaskService.closeTaskByReceipt(taskCode, user);
return AjaxResult.success();
}
6 months ago
/**
*
*/
@PostMapping("/manufacturerList")
public AjaxResult manufacturerList() {
List<BaseManufacturer> list = baseManufacturerService.selectBaseManufacturerList(new BaseManufacturer());
if (list == null || list.isEmpty()) return AjaxResult.error("没有维护生产厂家");
return AjaxResult.success(list);
}
/**
*
*/
@PostMapping("/saveBasketInfo")
public AjaxResult saveBasketInfo(@RequestBody BaseBasketInfo baseBasketInfo) {
int tagCount = baseBasketInfoService.selectCountBasketByEpc(baseBasketInfo.getBasketEpc());
if (tagCount > 0) {
return AjaxResult.error("RFID标签1已绑定");
}
tagCount = baseBasketInfoService.selectCountBasketByEpc(baseBasketInfo.getBasketEpc2());
if (tagCount > 0) {
return AjaxResult.error("RFID标签2已绑定");
}
List<BaseBasketInfo> list = baseBasketInfoService.checkBasketInfoBySteelGradeAndSelfCode(baseBasketInfo);
if (list != null && !list.isEmpty()) {
return AjaxResult.error("钢号或自编号已存在");
}
6 months ago
baseBasketInfo.setUpdatedTime(new Date());
int i = 0;
6 months ago
if (baseBasketInfo.getObjId() == null) {
i = baseBasketInfoService.insertBaseBasketInfo(baseBasketInfo);
} else {
6 months ago
baseBasketInfo.setUpdatedBy(baseBasketInfo.getCreatedBy());
baseBasketInfo.setCreatedBy(null);
i = baseBasketInfoService.updateBaseBasketInfo(baseBasketInfo);
}
if (i > 0) return AjaxResult.success();
return AjaxResult.error();
}
/**
*
*/
@PostMapping("/saveRepairInfo")
public AjaxResult saveRepairInfo(@RequestBody RecordBasketRepair recordBasketRepair) {
int i = recordBasketRepairService.insertRecordBasketRepair(recordBasketRepair);
3 months ago
if (i > 0) {
Long objId = recordBasketRepair.getObjId();
List<RecordBasketRepairSpareParts> list = recordBasketRepair.getList();
recordBasketRepairSparePartsService.insertRecordBasketRepairSpareParts(list, objId);
}
6 months ago
return AjaxResult.error();
}
/**
* RFID
*/
@PostMapping("/findBasketInfoByEpc")
public AjaxResult findBasketInfoByEpc(String epc) {
BaseBasketInfo baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoByEpc(epc);
if (baseBasketInfo == null) return AjaxResult.error("没有维护该资产");
return AjaxResult.success(baseBasketInfo);
}
3 months ago
// 维修验收查询资产
@PostMapping("/repair/checkBasketSelectByEpc")
public AjaxResult repairCheckBasketSelectByEpc(String epc) {
BaseBasketInfo baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoByEpc(epc);
if (baseBasketInfo == null) return AjaxResult.error("没有维护该资产");
// 查询主表
RecordBasketRepair recordBasketRepair = recordBasketRepairService.selectRepairByBasketId(baseBasketInfo.getObjId(), 0);
if (recordBasketRepair == null) {
return AjaxResult.error("查询失败,暂未找到该资产待验收记录");
}
// 查询子表
List<RecordBasketRepairSpareParts> recordBasketRepairSpareParts = recordBasketRepairSparePartsService.selectRecordBasketRepairSparePartsList(new RecordBasketRepairSpareParts() {{
setRepairId(recordBasketRepair.getObjId());
}});
recordBasketRepair.setList(recordBasketRepairSpareParts);
return AjaxResult.success(recordBasketRepair);
}
@PostMapping("/repair/overRepairSubmit")
public AjaxResult overRepairSubmit(Long objId, String userName) {
recordBasketRepairService.updateRecordBasketRepair(new RecordBasketRepair(){{
setObjId(objId);
setRepairState(1L);
setUpdateBy(userName);
setUpdateTime(new Date());
}});
return AjaxResult.success();
}
6 months ago
/**
*
*/
@GetMapping("/getBasketInfoBySearchCode")
public AjaxResult getBasketInfoBySearchCode(String searchCode) {
List<BaseBasketInfo> baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoBySearchCode2(searchCode);
6 months ago
if (baseBasketInfo == null) return AjaxResult.error("没有维护该资产");
return AjaxResult.success(baseBasketInfo);
}
/**
*
*/
@PostMapping("/submitBindingRecord")
public AjaxResult submitBindingRecord(Long baseBasketId, String basketEpc, String basketEpc2, String localWeight, String createdBy, List<MultipartFile> files) {
int tagCount = baseBasketInfoService.selectCountBasketByEpc(basketEpc);
if (tagCount > 0) {
return AjaxResult.error("RFID标签1已绑定");
}
tagCount = baseBasketInfoService.selectCountBasketByEpc(basketEpc2);
if (tagCount > 0) {
return AjaxResult.error("RFID标签2已绑定");
}
// 验证钢号与自编号重复
String filePath = RuoYiConfig.getUploadPath();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < files.size(); i++) {
String fileName = null;
try {
fileName = FileUploadUtils.upload(filePath, files.get(i));
} catch (IOException e) {
throw new RuntimeException(e);
}
// System.out.println("上传路径="+fileName);
stringBuilder.append(fileName);
if (i != files.size() - 1) {
stringBuilder.append(",");
}
}
// 新增绑定记录
RecordtRfidBinding recordtRfidBinding = new RecordtRfidBinding();
recordtRfidBinding.setBaseBasketId(baseBasketId);
recordtRfidBinding.setBasketEpc(basketEpc);
recordtRfidBinding.setBasketEpc2(basketEpc2);
recordtRfidBinding.setCreatedBy(createdBy);
recordtRfidBinding.setFilePath(stringBuilder.toString());
int i = recordtRfidBindingService.insertRecordtRfidBinding(recordtRfidBinding);
// 更新资产信息
BaseBasketInfo baseBasketInfo = new BaseBasketInfo();
baseBasketInfo.setBasketEpc(basketEpc);
baseBasketInfo.setBasketEpc2(basketEpc2);
baseBasketInfo.setUpdatedTime(new Date());
baseBasketInfo.setUpdatedBy(createdBy);
baseBasketInfo.setObjId(baseBasketId);
baseBasketInfo.setLocalWeight(Double.parseDouble(localWeight));
int i1 = baseBasketInfoService.updateBaseBasketInfo(baseBasketInfo);
if (i > 0) return AjaxResult.success();
return AjaxResult.error();
}
6 months ago
/**
* -使
*
* @param epc
* @return
*/
@PostMapping("/binding/findBasketByEpc")
public AjaxResult findBasketByEpc(String epc) {
BaseBasketInfo baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoByEpc(epc);
if (baseBasketInfo == null) return AjaxResult.error("RFID查询失败没有维护该资产");
LedgerInstantBinding ledgerInstantBinding = new LedgerInstantBinding();
ledgerInstantBinding.setBasketId(baseBasketInfo.getObjId());
List<LedgerInstantBinding> ledgerInstantBindings = ledgerInstantBindingService.selectLedgerChildTablelist(ledgerInstantBinding);
baseBasketInfo.setLedgerInstantBindings(ledgerInstantBindings);
return AjaxResult.success(baseBasketInfo);
}
// 解绑货物和货框
@PostMapping("/unbindingCargo")
public AjaxResult unbindingCargo(Long basketId) {
int i = ledgerInstantBindingService.unbindingCargoDeleteLedger(basketId);
if (i > 0) return AjaxResult.success();
return AjaxResult.error();
}
4 months ago
// 货物绑定货框
@PostMapping("/bindingSubmit")
public AjaxResult bindingSubmit(@RequestBody BindingSubmitBeen submitBeen) {
List<String> watBills = submitBeen.getWatBills();
String user = submitBeen.getUser();
String epc1 = submitBeen.getEpc();
Long basketId = submitBeen.getBasketId();
watBills.forEach(code -> {
String epc = service.selectEpcByWaybill(code, basketId);
if (epc == null) {
int i = service.insertLedgerBinding(epc1, code, user, basketId);
4 months ago
RecordCargoBinding recordCargoBinding = new RecordCargoBinding();
recordCargoBinding.setBasketId(basketId);
recordCargoBinding.setCargoFrameEpc(epc1);
recordCargoBinding.setWaybillNumber(code);
recordCargoBinding.setCreateBy(user);
recordCargoBinding.setLocationInfo(submitBeen.getLocationInfo());
recordCargoBindingService.insertRecordCargoBinding(recordCargoBinding);
}
});
return AjaxResult.success();
}
@GetMapping("/getVersion")
public String getVersion() {
APKVersion apkVersion = service.getVersion();
6 months ago
apkVersion.setCode(0);
apkVersion.setMsg("");
if (apkVersion == null) {
apkVersion = new APKVersion();
6 months ago
apkVersion.setUpdateStatus(0);
} else {
6 months ago
apkVersion.setUpdateStatus(1);
}
String s = JSONObject.toJSONString(apkVersion);
System.out.println("请求版本信息" + s);
6 months ago
return s;
}
6 months ago
}