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.

520 lines
21 KiB
Java

5 months ago
package com.ruoyi.webapi.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
5 months ago
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
4 months ago
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
5 months ago
import com.ruoyi.manager.domain.*;
import com.ruoyi.manager.service.*;
import com.ruoyi.webapi.doman.APKVersion;
5 months ago
import com.ruoyi.webapi.doman.BindingSubmitBeen;
3 months ago
import com.ruoyi.webapi.doman.ReceiptSubmitBeen;
5 months ago
import com.ruoyi.webapi.service.ApiService;
import org.springframework.beans.factory.annotation.Autowired;
2 months ago
import org.springframework.transaction.annotation.Transactional;
5 months ago
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
5 months ago
import java.io.IOException;
5 months ago
import java.util.Date;
3 months ago
import java.util.HashMap;
5 months ago
import java.util.List;
3 months ago
import java.util.Map;
2 months ago
import java.util.stream.Collectors;
5 months ago
/**
* Created by wangh on 2020/7/17-15:18
*/
@RestController
@RequestMapping("/api")
public class ApiController extends BaseController {
5 months ago
@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;//维修备件
@Autowired
private IRecordBasketCheckTaskService recordBasketCheckTaskService;//盘点任务
@Autowired
private IRecordBasketCheckContentService recordBasketCheckContentService;//盘点内容
2 months ago
@Autowired
private IBaseAirCodeService baseAirCodeService;
5 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);
5 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("解绑成功");
5 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
2 months ago
// 接货查询
5 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);
5 months ago
if (list == null || list.isEmpty()) return AjaxResult.error("账号无绑定记录");
return AjaxResult.success(list);
}
4 months ago
3 months ago
// 交货任务生成
2 months ago
@Transactional
@PostMapping("/delivery/createTask")
2 months ago
public AjaxResult createDeliveryTask(String json, String airCode, String gps, String user, String type, List<MultipartFile> files) {
4 months ago
// 生成任务编码
int taskNumber = recordDeliveryTaskService.countNowDateTaskNumber();
3 months ago
taskNumber++;
String taskCode = "Task" + DateUtils.dateTime() + String.format("%03d", taskNumber);
4 months ago
// 插入任务
2 months ago
recordDeliveryTaskService.insertRecordDeliveryTask(new RecordDeliveryTask() {{
setTaskCode(taskCode);
setCreateBy(user);
setAirCode(airCode);
setGpsLocation(gps);
setTaskType(type);
}});
2 months ago
if (files != null && !files.isEmpty()) {
String filePath = RuoYiConfig.getUploadPath() + "/task";
for (MultipartFile file : files) {
try {
2 months ago
// 插入图片
recordDeliveryTaskImgService.insertRecordDeliveryTaskImg( new RecordDeliveryTaskImg(){{
setTaskCode(taskCode);
setImgPath(FileUploadUtils.upload(filePath, file));
}});
2 months ago
} catch (IOException e) {
throw new RuntimeException(e);
}
4 months ago
}
}
2 months ago
if (type.equals("0")){
// 出港
// 插入资产到任务表
List<LedgerInstantBinding> ledgerInstantBindings = JSONArray.parseArray(json, LedgerInstantBinding.class);
recordDeliveryTaskBaseketService.insertRecordDeliveryTaskBaseket(taskCode, ledgerInstantBindings);
// ledgerInstantBindingService.deleteLedgerInstantByBasket(ids);// 删除实时绑定记录
// 更新状态
List<Long> ids = ledgerInstantBindings.stream().map(LedgerInstantBinding::getBasketId).collect(Collectors.toList());
ledgerInstantBindingService.updateTaskStatebyBasketID(ids);
}else if (type.equals("1")){
List<String> stringList = JSONArray.parseArray(json, String.class);
recordDeliveryTaskBaseketService.insertRecordDeliveryTaskWaybill(taskCode,stringList);
}
4 months ago
return AjaxResult.success();
}
3 months ago
5 months ago
//交货提交
@PostMapping("/join/jiaoSubmit")
3 months ago
public AjaxResult joinJiaoSubmit(@RequestBody ReceiptSubmitBeen been) {
5 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) {
5 months ago
int i = service.joinShouSubmit(been);
if (i >= been.getList().size()) {
return AjaxResult.success();
}
return AjaxResult.error();
}
2 months ago
// 查询货框下的货物
@PostMapping("/delivery/sanEpcQueryBasket")
public AjaxResult deliverySanEpcQueryBasket(String epc) {
3 months ago
BaseBasketInfo baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoByEpc(epc);
if (baseBasketInfo == null) return AjaxResult.error("RFID查询失败没有维护该资产");
2 months ago
LedgerInstantBinding ledgerInstantBinding = ledgerInstantBindingService.deliverySanEpcQueryBasketbyBasketId(baseBasketInfo.getObjId());
if (ledgerInstantBinding == null) return AjaxResult.error("查询失败,没有绑定条码");
return AjaxResult.success(ledgerInstantBinding);
}
// 远程接货扫描epc
@PostMapping("/receipt/scanEpc")
public AjaxResult ReceiptScanEpc(@RequestParam(name = "epc", required = false, defaultValue = "") String epc,
@RequestParam(name = "waybillNumber", required = false, defaultValue = "") String waybillNumber) {
2 months ago
Long objId = null;
2 months ago
if (epc != null && !epc.equals("")) {
BaseBasketInfo baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoByEpc(epc);
if (baseBasketInfo == null) return AjaxResult.error("RFID查询失败没有维护该资产");
objId = baseBasketInfo.getObjId();
}
//查询资产是否绑定任务
RecordDeliveryTaskBaseket recordDeliveryTaskBaseket = new RecordDeliveryTaskBaseket();
recordDeliveryTaskBaseket.setBasketId(objId);
recordDeliveryTaskBaseket.setWaybillNumber(waybillNumber);
RecordDeliveryTaskBaseket select1 = recordDeliveryTaskBaseketService.selectRecordDeliveryTaskBaseketByBasket(recordDeliveryTaskBaseket);
3 months ago
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);
}
2 months ago
3 months ago
// 远程接货确认
@PostMapping("/receipt/submit")
public AjaxResult receiptSubmit(@RequestBody ReceiptSubmitBeen been) {
int i = service.joinShouSubmit(been);
String taskCode = been.getTaskCode();
String user = been.getUser();
2 months ago
recordDeliveryTaskService.closeTaskByReceipt(taskCode, user, been.getReceiveGpsLocation());//关闭任务
3 months ago
return AjaxResult.success();
}
5 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("钢号或自编号已存在");
}
5 months ago
baseBasketInfo.setUpdatedTime(new Date());
int i = 0;
5 months ago
if (baseBasketInfo.getObjId() == null) {
i = baseBasketInfoService.insertBaseBasketInfo(baseBasketInfo);
} else {
5 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);
}
5 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() {{
3 months ago
setObjId(objId);
setRepairState(1L);
setUpdateBy(userName);
setUpdateTime(new Date());
}});
return AjaxResult.success();
}
5 months ago
/**
*
*/
@GetMapping("/getBasketInfoBySearchCode")
public AjaxResult getBasketInfoBySearchCode(String searchCode) {
List<BaseBasketInfo> baseBasketInfo = baseBasketInfoService.selectBaseBasketInfoBySearchCode2(searchCode);
5 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();
}
5 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);
}
/**
* -使
2 months ago
*
* @param code
* @return
*/
@PostMapping("/binding/findBasketByCode")
public AjaxResult findBasketByCode(String code) {
List<LedgerInstantBinding> ledgerInstantBindings = ledgerInstantBindingService.selectLedgerlistByCode(code);
if (ledgerInstantBindings == null || ledgerInstantBindings.isEmpty())
return AjaxResult.error("查询失败,条码查询为空");
return AjaxResult.success(ledgerInstantBindings);
}
// 解绑货物和货框
@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();
}
@PostMapping("/basketCheck/select")
public AjaxResult selectBasketCheck() {
List<BaseBasketInfo> baseBasketInfos = service.selectBasketCheckList();
return AjaxResult.success(baseBasketInfos);
}
// 盘点任务查询
@PostMapping("/selectCheckTaskList")
public TableDataInfo selectCheckTaskList(RecordBasketCheckTask recordBasketCheckTask) {
startPage();
List<RecordBasketCheckTask> list = recordBasketCheckTaskService.selectRecordBasketCheckTaskList(recordBasketCheckTask);
return getDataTable(list);
}
/**
*
*/
@PostMapping("/createCheckTask")
@ResponseBody
public AjaxResult createCheckTask(RecordBasketCheckTask recordBasketCheckTask) {
return toAjax(recordBasketCheckTaskService.insertRecordBasketCheckTask(recordBasketCheckTask));
}
// 查询资产盘点情况
@PostMapping("/selectCheckContent")
public TableDataInfo selectCheckContent(RecordBasketCheckContent recordBasketCheckContent) {
startPage();
List<RecordBasketCheckContent> list = recordBasketCheckContentService.selectRecordBasketCheckContentList(recordBasketCheckContent);
return getDataTable(list);
}
2 months ago
// 查询航司代码
@PostMapping("/queryAirCode")
public AjaxResult queryAirCode() {
List<String> list = baseAirCodeService.queryAirCode();
return AjaxResult.success(list);
}
@GetMapping("/getVersion")
public String getVersion() {
APKVersion apkVersion = service.getVersion();
5 months ago
apkVersion.setCode(0);
apkVersion.setMsg("");
if (apkVersion == null) {
apkVersion = new APKVersion();
5 months ago
apkVersion.setUpdateStatus(0);
} else {
5 months ago
apkVersion.setUpdateStatus(1);
}
String s = JSONObject.toJSONString(apkVersion);
System.out.println("请求版本信息" + s);
5 months ago
return s;
}
5 months ago
}