【admin&front】新增&优化# 1.新增小程序模块返修 2.优化配件出入库审核 3.新增后台模块返修信息

dev
dabin 2024-08-27 23:32:46 +08:00
parent 5e0db033de
commit ebde88902d
62 changed files with 951 additions and 3722 deletions

View File

@ -37,6 +37,7 @@ public class MaintenanceOrderController {
PageResult<MaintenanceOrderListVo> list = iMaintenanceOrderService.list(pageParam, maintenanceOrderParam);
return AjaxResult.success(list);
}
/**
*
*
@ -44,7 +45,7 @@ public class MaintenanceOrderController {
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
public Object detail(@Validated @IDMust() @RequestParam("id") Long id) {
MaintenanceOrderDetailVo detail = iMaintenanceOrderService.detail(id);
return AjaxResult.success(detail);
}
@ -113,4 +114,16 @@ public class MaintenanceOrderController {
iMaintenanceOrderService.returnMaintain(maintenanceOrderParam);
return AjaxResult.success();
}
/**
*
*
* @param pageParam
* @param maintenanceOrderParam
* @return Object
*/
@GetMapping("/modelRepairList")
public Object modelRepairList(@Validated PageParam pageParam, MaintenanceOrderParam maintenanceOrderParam) {
return AjaxResult.success(iMaintenanceOrderService.modelRepairList(pageParam, maintenanceOrderParam));
}
}

View File

@ -8,6 +8,7 @@ import com.hcy.admin.vo.order.repair.MaintenanceRepairDetailVo;
import com.hcy.admin.vo.order.repair.MaintenanceRepairListVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -19,7 +20,7 @@ import java.util.Map;
*
*/
@RestController
@RequestMapping("api/repair")
@RequestMapping("api/oldModuleRepair")
public class MaintenanceRepairController {
@Resource
@ -33,60 +34,9 @@ public class MaintenanceRepairController {
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
public Object list(@Validated PageParam pageParam, MaintenanceRepairParam params) {
PageResult<MaintenanceRepairListVo> list = iMaintenanceRepairService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
MaintenanceRepairDetailVo detail = iMaintenanceRepairService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @param maintenanceRepairParam
* @return Object
*/
@Log(title = "旧模块返修信息新增")
@PostMapping("/add")
public Object add(@Validated(value = MaintenanceRepairParam.create.class) @RequestBody MaintenanceRepairParam maintenanceRepairParam) {
iMaintenanceRepairService.add(maintenanceRepairParam);
return AjaxResult.success();
}
/**
*
*
* @param maintenanceRepairParam
* @return Object
*/
@Log(title = "旧模块返修信息编辑")
@PostMapping("/edit")
public Object edit(@Validated(value = MaintenanceRepairParam.update.class) @RequestBody MaintenanceRepairParam maintenanceRepairParam) {
iMaintenanceRepairService.edit(maintenanceRepairParam);
return AjaxResult.success();
}
/**
*
*
* @param maintenanceRepairParam
* @return Object
*/
@Log(title = "旧模块返修信息删除")
@PostMapping("/del")
public Object del(@Validated(value = MaintenanceRepairParam.delete.class) @RequestBody MaintenanceRepairParam maintenanceRepairParam) {
iMaintenanceRepairService.del(maintenanceRepairParam.getId());
return AjaxResult.success();
}
}

View File

@ -1,98 +0,0 @@
package com.hcy.admin.controller.sparePartAllot;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.sparePartAllot.ISparePartAllotService;
import com.hcy.admin.service.sparePartOutWarehouse.ISparePartOutWarehouseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.admin.vo.sparePartAllotListVo.SparePartAllotListVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
/**
*
*/
@RestController
@RequestMapping("api/sparePartAllot")
public class SparePartAllotController {
@Resource
ISparePartAllotService iSparePartAllotService;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<SparePartAllotListVo> list = iSparePartAllotService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SparePartAllotListVo detail = iSparePartAllotService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件调拨新增")
@PostMapping("/add")
public Object add(@Validated(value = SparePartStockAuditParam.create.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartAllotService.add(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件调拨编辑")
@PostMapping("/edit")
public Object edit(@Validated(value = SparePartStockAuditParam.update.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartAllotService.edit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件调拨删除")
@PostMapping("/del")
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartAllotService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
return AjaxResult.success();
}
}

View File

@ -2,7 +2,7 @@ package com.hcy.admin.controller.sparePartAudit;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.sparePartAudit.ISparePartAuditService;
import com.hcy.admin.validate.SparePartAudit.SparePartAuditParam;
import com.hcy.admin.validate.sparePartAudit.SparePartAuditParam;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditDetailVo;

View File

@ -1,98 +0,0 @@
package com.hcy.admin.controller.sparePartInWarehouse;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.sparePartInWarehouse.ISparePartInWarehouseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.sparePartInWarehouse.SparePartInWarehouseListVo;
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditListVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
/**
*
*/
@RestController
@RequestMapping("api/sparePartInWarehouse")
public class SparePartInWarehouseController {
@Resource
ISparePartInWarehouseService iSparePartInWarehouseService;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<SparePartInWarehouseListVo> list = iSparePartInWarehouseService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SparePartInWarehouseListVo detail = iSparePartInWarehouseService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件入库新增")
@PostMapping("/add")
public Object add(@Validated(value = SparePartStockAuditParam.create.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartInWarehouseService.add(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件入库编辑")
@PostMapping("/edit")
public Object edit(@Validated(value = SparePartStockAuditParam.update.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartInWarehouseService.edit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件入库删除")
@PostMapping("/del")
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartInWarehouseService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
return AjaxResult.success();
}
}

View File

@ -1,98 +0,0 @@
package com.hcy.admin.controller.sparePartOutWarehouse;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.sparePartInWarehouse.ISparePartInWarehouseService;
import com.hcy.admin.service.sparePartOutWarehouse.ISparePartOutWarehouseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.admin.vo.sparePartInWarehouse.SparePartInWarehouseListVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
/**
*
*/
@RestController
@RequestMapping("api/sparePartOutWarehouse")
public class SparePartOutWarehouseController {
@Resource
ISparePartOutWarehouseService iSparePartOutWarehouseService;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<SparePartOutWarehouseListVo> list = iSparePartOutWarehouseService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SparePartOutWarehouseListVo detail = iSparePartOutWarehouseService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件出库新增")
@PostMapping("/add")
public Object add(@Validated(value = SparePartStockAuditParam.create.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartOutWarehouseService.add(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件出库编辑")
@PostMapping("/edit")
public Object edit(@Validated(value = SparePartStockAuditParam.update.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartOutWarehouseService.edit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件出库删除")
@PostMapping("/del")
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartOutWarehouseService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
return AjaxResult.success();
}
}

View File

@ -1,152 +0,0 @@
package com.hcy.admin.controller.sparePartPurchase;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.SparePartReceive.ISparePartReceiveService;
import com.hcy.admin.service.sparePartPurchase.ISparePartPurchaseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.sparePartPurchase.SparePartPurchaseListVo;
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
/**
*
*/
@RestController
@RequestMapping("api/sparePartPurchase")
public class sparePartPurchaseController {
@Resource
ISparePartPurchaseService iSparePartPurchaseService;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<SparePartPurchaseListVo> list = iSparePartPurchaseService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SparePartPurchaseListVo detail = iSparePartPurchaseService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件采购新增")
@PostMapping("/add")
public Object add(@Validated(value = SparePartStockAuditParam.create.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartPurchaseService.add(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件采购编辑")
@PostMapping("/edit")
public Object edit(@Validated(value = SparePartStockAuditParam.update.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartPurchaseService.edit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件采购删除")
@PostMapping("/del")
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartPurchaseService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
return AjaxResult.success();
}
/**
*
* @param sparePartStockAuditParam
* @return
*/
@Log(title = "备件采购审核")
@PostMapping("/purchaseAudit")
public Object purchaseAudit(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartPurchaseService.purchaseAudit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/purchaseOrderlist")
public Object purchaseOrderlist(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<SparePartPurchaseListVo> list = iSparePartPurchaseService.purchaseOrderlist(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件物流发送")
@PostMapping("/logisticsSending")
public Object logisticsSending(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartPurchaseService.logisticsSending(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件采购收货")
@PostMapping("/receiving")
public Object receiving(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartPurchaseService.receiving(sparePartStockAuditParam);
return AjaxResult.success();
}
}

View File

@ -1,137 +0,0 @@
package com.hcy.admin.controller.sparePartReceive;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.SparePartReceive.ISparePartReceiveService;
import com.hcy.admin.service.sparePartOutWarehouse.ISparePartOutWarehouseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
/**
*
*/
@RestController
@RequestMapping("api/sparePartReceive")
public class SparePartReceiveController {
@Resource
ISparePartReceiveService iSparePartReceiveService;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<SparePartReceiveListVo> list = iSparePartReceiveService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
SparePartReceiveListVo detail = iSparePartReceiveService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用新增")
@PostMapping("/add")
public Object add(@Validated(value = SparePartStockAuditParam.create.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartReceiveService.add(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用编辑")
@PostMapping("/edit")
public Object edit(@Validated(value = SparePartStockAuditParam.update.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartReceiveService.edit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用删除")
@PostMapping("/del")
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartReceiveService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
return AjaxResult.success();
}
/**
*
* @param sparePartStockAuditParam
* @return
*/
@Log(title = "备件领用审核")
@PostMapping("/receiveAudit")
public Object receiveAudit(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartReceiveService.receiveAudit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用发送")
@PostMapping("/logisticsSending")
public Object logisticsSending(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartReceiveService.logisticsSending(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用收货")
@PostMapping("/receiving")
public Object receiving(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartReceiveService.receiving(sparePartStockAuditParam);
return AjaxResult.success();
}
}

View File

@ -34,8 +34,7 @@ public class SparePartStockAuditController {
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
public Object list(@Validated PageParam pageParam, SparePartStockAuditParam params) {
PageResult<SparePartStockAuditListVo> list = iSparePartStockAuditService.list(pageParam, params);
return AjaxResult.success(list);
}
@ -47,7 +46,7 @@ public class SparePartStockAuditController {
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
public Object detail(@Validated @IDMust() @RequestParam("id") Long id) {
SparePartStockAuditDetailVo detail = iSparePartStockAuditService.detail(id);
return AjaxResult.success(detail);
}
@ -90,7 +89,7 @@ public class SparePartStockAuditController {
@Log(title = "备件出入库审核删除")
@PostMapping("/del")
public Object del(@Validated(value = SparePartStockAuditParam.delete.class) @RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartStockAuditService.del(Math.toIntExact(sparePartStockAuditParam.getId()));
iSparePartStockAuditService.del(sparePartStockAuditParam.getId());
return AjaxResult.success();
}
@ -131,4 +130,44 @@ public class SparePartStockAuditController {
iSparePartStockAuditService.inventoryComparison(id);
return AjaxResult.success();
}
/**
*
* @param sparePartStockAuditParam
* @return
*/
@Log(title = "备件领用审核")
@PostMapping("/receiveAudit")
public Object receiveAudit(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartStockAuditService.receiveAudit(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用发送")
@PostMapping("/logisticsSending")
public Object logisticsSending(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartStockAuditService.logisticsSending(sparePartStockAuditParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
* @return Object
*/
@Log(title = "备件领用收货")
@PostMapping("/receiving")
public Object receiving(@RequestBody SparePartStockAuditParam sparePartStockAuditParam) {
iSparePartStockAuditService.receiving(sparePartStockAuditParam);
return AjaxResult.success();
}
}

View File

@ -1,76 +0,0 @@
package com.hcy.admin.service.SparePartReceive;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
import com.hcy.common.core.PageResult;
import java.util.Map;
/**
*
*/
public interface ISparePartReceiveService {
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
PageResult<SparePartReceiveListVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @author hcy
* @param id ID
* @return SparePartInWarehouseListVo
*/
SparePartReceiveListVo detail(Integer id);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void add(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void edit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param id ID
*/
void del(Integer id);
/**
*
* @param sparePartStockAuditParam
*/
void receiveAudit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
* @param sparePartStockAuditParam
*/
void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
* @param sparePartStockAuditParam
*/
void receiving(SparePartStockAuditParam sparePartStockAuditParam);
}

View File

@ -1,461 +0,0 @@
package com.hcy.admin.service.SparePartReceive.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.SparePartReceive.ISparePartReceiveService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
*/
@Service
public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
SparePartAuditMapper sparePartAuditMapper;
@Resource
SparePartMapper sparePartMapper;
@Resource
WarehouseMapper warehouseMapper;
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
public PageResult<SparePartReceiveListVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("receipt_type",1);
queryWrapper.eq("out_in_warehouse_type", 2);
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"like:workOrderId@work_order_id:str",
"like:recipient@recipient:str",
"=:deliveryMethod@delivery_method:int",
"datetime:handlingTimeStart-handlingTimeEnd@handling_time:str",
"=:purchaseStatus@purchase_status:int",
});
//领用时间范围,配送方式查询
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartReceiveListVo> list = new LinkedList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartReceiveListVo vo = new SparePartReceiveListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
if(item.getRecipient() != null && item.getRecipientPhone() != null){
vo.setRecipientAndPhone(item.getRecipient() + "/" + item.getRecipientPhone()); //领料员工/联系电话
}else{
vo.setRecipientAndPhone("--");
}
int number = 0; //领用数量
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", item.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
number = number + sparePartAudit.getCount();
listVo.add(sparePartAudit1);
}
vo.setRecipientNumber(number); //领用数量
vo.setSparePartAuditList(listVo);
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author hcy
* @param id
* @return SparePartInWarehouseListVo
*/
@Override
public SparePartReceiveListVo detail(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
SparePartReceiveListVo vo = new SparePartReceiveListVo();
BeanUtils.copyProperties(model, vo);
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId()); // 备件id
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId()); // 出入库审核id
sparePartAudit1.setUnit(sparePart.getUnit()); //单位
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
sparePartAudit1.setQuantity(sparePart.getQuantity()); //库存数量
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", sparePart.getWarehouseId())
.eq("is_delete", 0)
.last("limit 1"));
sparePartAudit1.setWarehouseName(warehouse.getWarehouseName());
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo);
vo.setConsigneePhone(model.getConsignee() + "/" + model.getPhone());
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
return vo;
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = new SparePartStockAudit();
QueryWrapper<SparePartStockAudit> qw = new QueryWrapper<>();
qw.select("max(id) as id");
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(qw);
if(sparePartStockAudit == null){
model.setId(1L);
}else{
Long id = sparePartStockAudit.getId() + 1;
SparePartStockAudit idModel = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
if(idModel != null){
model.setId(idModel.getId() + 1);
}else{
model.setId(sparePartStockAudit.getId() + 1);
}
}
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料3=销售出库)
model.setConsignee(sparePartStockAuditParam.getConsignee()); // 收货单位(人员)
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(generateOrderNumber()); // 单据编号
model.setShippingAddress(sparePartStockAuditParam.getShippingAddress()); //收货地址
model.setRecipient(sparePartStockAuditParam.getRecipient()); //领用员工
model.setRecipientPhone(sparePartStockAuditParam.getRecipientPhone()); //领用员工联系电话
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setDeliveryMethod(sparePartStockAuditParam.getDeliveryMethod()); //配送方式0=物流快递1=上门取件2=送货上门)
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
model.setResponsiblePerson((String) username);
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(sparePartStockAuditParam.getId());
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料3=销售出库)
model.setConsignee(sparePartStockAuditParam.getConsignee()); // 收货单位(人员)
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(generateOrderNumber()); // 单据编号
model.setShippingAddress(sparePartStockAuditParam.getShippingAddress()); //收货地址
model.setRecipient(sparePartStockAuditParam.getRecipient()); //领用员工
model.setRecipientPhone(sparePartStockAuditParam.getRecipientPhone()); //领用员工联系电话
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setDeliveryMethod(sparePartStockAuditParam.getDeliveryMethod()); //配送方式0=物流快递1=上门取件2=送货上门)
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0));
for (SparePartAudit sparePartAudit : auditList) {
//将旧备件审核信息删除
SparePartAudit delectSparePartAudit = sparePartAuditMapper.selectOne(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
.last("limit 1"));
if(delectSparePartAudit != null){
delectSparePartAudit.setIsDelete(1);
delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.updateById(delectSparePartAudit);
}
}
for (SparePartAudit sparePartAudit : sparePartAuditList) {
//插入新的备件审核信息
SparePartAudit insertSparePartAudit = new SparePartAudit();
if(sparePartAudit.getSparePartsId() != null){
insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @author hcy
* @param id ID
*/
@Override
public void del(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void receiveAudit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setPurchaseStatus(sparePartStockAuditParam.getPurchaseStatus()); // 配件领用状态 1=未通过2=待管理员审核
model.setPurchaseIdea(sparePartStockAuditParam.getPurchaseIdea()); // 采购意见
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
System.out.println("单据类型" + model.getReceiptType());
System.out.println(model.getPurchaseStatus());
if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getPurchaseStatus() == AuditStateEnum.CHECKPENDING.getStatus()){
// 通过审核的出库单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
if(sparePart.getQuantity() >= sparePartAudit.getCount()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}else{
throw new OperateException("备件库存数量不足,请联系客服人员!");
}
sparePartMapper.updateById(sparePart);
}
}
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setPurchaseStatus(AuditStateEnum.WAITFORRECEIVING.getStatus()); // 采购状态 4=待收货
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void receiving(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setPurchaseStatus(AuditStateEnum.DONE.getStatus()); // 采购状态 5=已完成
sparePartStockAuditMapper.updateById(model);
}
/**
* +6
* @return
*/
public String generateOrderNumber() {
String DATE_FORMAT = "yyyyMMdd";
int SEQUENCE_LENGTH = 6;
int sequence = 1; // 流水号从1开始
// 获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
String dateStr = dateFormat.format(new Date());
//查看数据库是否今日有订单编号
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.like("receipt_number",dateStr);
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(queryWrapper);
int max = sparePartStockAudits.size();
if(sequence <= max){
sequence = max + 1; // 递增流水号
}
// 生成6位流水号
StringBuilder sequenceBuilder = new StringBuilder();
for (int i = 0; i < SEQUENCE_LENGTH; i++) {
sequenceBuilder.append(String.format("%0" + (SEQUENCE_LENGTH - i) + "d", sequence));
}
String truncatedString = sequenceBuilder.substring(0, 6);
// 拼接订单号
String orderNumber = dateStr + truncatedString;
return orderNumber;
}
}

View File

@ -28,7 +28,7 @@ public interface IMaintenanceOrderService {
* @param id ID
* @return MaintenanceOrder
*/
MaintenanceOrderDetailVo detail(Integer id);
MaintenanceOrderDetailVo detail(Long id);
/**
*
@ -65,4 +65,12 @@ public interface IMaintenanceOrderService {
*/
void returnMaintain(MaintenanceOrderParam maintenanceOrderParam);
/**
*
*
* @param pageParam
* @param maintenanceOrderParam
* @return PageResult<MaintenanceOrderVo>
*/
PageResult<MaintenanceOrderListVo> modelRepairList(PageParam pageParam, MaintenanceOrderParam maintenanceOrderParam);
}

View File

@ -20,35 +20,6 @@ public interface IMaintenanceRepairService {
* @param params
* @return PageResult<MaintenanceRepairVo>
*/
PageResult<MaintenanceRepairListVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @param id ID
* @return MaintenanceRepair
*/
MaintenanceRepairDetailVo detail(Integer id);
/**
*
*
* @param maintenanceRepairParam
*/
void add(MaintenanceRepairParam maintenanceRepairParam);
/**
*
*
* @param maintenanceRepairParam
*/
void edit(MaintenanceRepairParam maintenanceRepairParam);
/**
*
*
* @param id ID
*/
void del(Long id);
PageResult<MaintenanceRepairListVo> list(PageParam pageParam, MaintenanceRepairParam params);
}

View File

@ -9,26 +9,32 @@ import com.hcy.admin.service.order.IMaintenanceOrderService;
import com.hcy.admin.service.region.IDevRegionService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.MaintenanceOrderParam;
import com.hcy.admin.vo.client.EquipmentDetailVo;
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import com.hcy.admin.vo.order.MaintenanceOrderListVo;
import com.hcy.admin.vo.order.MaintenanceOrderDetailVo;
import com.hcy.admin.vo.order.OrderSparePartListVo;
import com.hcy.admin.vo.order.repair.MaintenanceRepairDetailVo;
import com.hcy.common.constant.GlobalConstant;
import com.hcy.common.core.PageResult;
import com.hcy.common.dto.order.MaintenanceOrderDto;
import com.hcy.common.dto.order.OrderSparePart;
import com.hcy.common.entity.address.UserAddress;
import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.ClientContacts;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderStateEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.address.UserAddressMapper;
import com.hcy.common.mapper.client.ClientContactsMapper;
import com.hcy.common.mapper.client.ClientMapper;
import com.hcy.common.mapper.client.EquipmentMapper;
@ -36,8 +42,12 @@ import com.hcy.common.mapper.client.EquipmentModelMapper;
import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.order.repair.MaintenanceRepairMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.OrderUtil;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
@ -83,6 +93,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Resource
EquipmentModelMapper equipmentModelMapper;
@Resource
MaintenanceRepairMapper maintenanceRepairMapper;
@Resource
UserAddressMapper userAddressMapper;
@Resource
WarehouseMapper warehouseMapper;
/**
*
*
@ -149,12 +168,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
* @return MaintenanceOrder
*/
@Override
public MaintenanceOrderDetailVo detail(Integer id) {
MaintenanceOrder model = maintenanceOrderMapper.selectOne(
new QueryWrapper<MaintenanceOrder>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
public MaintenanceOrderDetailVo detail(Long id) {
MaintenanceOrder model = maintenanceOrderMapper.findMaintenanceOrderById(id);
Assert.notNull(model, "数据不存在");
@ -164,14 +179,22 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//设置客户信息
Client client = clientMapper.selectById(model.getClientId());
if (client != null) {
vo.setClientType(client.getClientType());
vo.setClientName(client.getClientName());
vo.setClientDirector(client.getDirector());
vo.setClientPhone(client.getPhone());
}
Map<Long, String> regionMap = regionService.getRegionMap();
//设置设备信息
Equipment equipment = equipmentMapper.selectById(model.getEquipmentId());
if(equipment != null){
vo.setEquipment(equipment);
EquipmentDetailVo equipmentDetailVo = new EquipmentDetailVo();
BeanUtils.copyProperties(equipment,equipmentDetailVo);
equipmentDetailVo.setProvince(regionMap.get(equipment.getProvinceId()));
equipmentDetailVo.setCity(regionMap.get(equipment.getCityId()));
equipmentDetailVo.setDistrict(regionMap.get(equipment.getDistrictId()));
vo.setEquipment(equipmentDetailVo);
}
//设置创建人姓名
@ -206,10 +229,32 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
for (OrderSparePart item : orderSpareParts) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
BeanUtils.copyProperties(item, orderSparePartListVo);
Warehouse warehouse = warehouseMapper.findWarehouseById(item.getWarehouseId());
if(warehouse != null){
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
}
orderSparePartListVos.add(orderSparePartListVo);
}
vo.setSparePartList(orderSparePartListVos);
//设置返修信息
MaintenanceRepair maintenanceRepair = maintenanceRepairMapper.findMaintenanceRepairByOrderId(model.getId());
if(maintenanceRepair != null){
MaintenanceRepairDetailVo maintenanceRepairDetailVo = new MaintenanceRepairDetailVo();
BeanUtils.copyProperties(maintenanceRepair,maintenanceRepairDetailVo);
UserAddress userAddress = userAddressMapper.findUserAddressById(maintenanceRepair.getAddressId());
if(userAddress != null){
maintenanceRepairDetailVo.setAddressDetail(regionMap.get(userAddress.getProvinceId()) +
regionMap.get(userAddress.getCityId()) +
regionMap.get(userAddress.getDistrictId()) +
userAddress.getAddress());
maintenanceRepairDetailVo.setReceiver(userAddress.getContact());
maintenanceRepairDetailVo.setReceiverPhone(userAddress.getMobile());
}
vo.setMaintenanceRepair(maintenanceRepairDetailVo);
}
return vo;
}
@ -240,42 +285,13 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
model.setOrderStatus(OrderStateEnum.REPAIRER.getStatus());
}
model.setOrderNo(getOrderNo());
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findLastMaintenanceOrderByTime(TimeUtil.getCurrentTimeYYYYMMDD());
model.setOrderNo(OrderUtil.getOrderNo(maintenanceOrder.getOrderNo()));
model.setCreatorId(AdminThreadLocal.getAdminId().longValue());
maintenanceOrderMapper.insert(model);
}
private String getOrderNo() {
//获取当前日期并将其进行格式化
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String formatDate = simpleDateFormat.format(new Date());
StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001");
MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.selectOne(new LambdaQueryWrapper<MaintenanceOrder>()
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.like(MaintenanceOrder::getOrderNo, formatDate)
.orderByDesc(MaintenanceOrder::getOrderNo)
.last("limit 1"));
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
if (lastmMaintenanceOrder == null) {
return currentOrderNo.toString();
} else {
int lastOrderNo = Integer.parseInt(lastmMaintenanceOrder.getOrderNo().substring(8));
int length = String.valueOf((lastOrderNo + 1)).length();
StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + "");
//如果流水号长度小于6位则在前面补0
if (length < 6) {
for (int i = 0; i < 6 - length; i++) {
newOrderNo.insert(0, "0");
}
}
return formatDate + newOrderNo;
}
}
/**
*
*
@ -374,4 +390,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
}
@Override
public PageResult<MaintenanceOrderListVo> modelRepairList(PageParam pageParam, MaintenanceOrderParam maintenanceOrderParam) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
return null;
}
}

View File

@ -6,12 +6,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.service.order.IMaintenanceRepairService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.repair.MaintenanceRepairParam;
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import com.hcy.admin.vo.order.repair.MaintenanceRepairDetailVo;
import com.hcy.admin.vo.order.repair.MaintenanceRepairListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.dto.order.MaintenanceRepairDto;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import com.hcy.common.entity.user.User;
import com.hcy.common.mapper.client.EquipmentModelMapper;
import com.hcy.common.mapper.order.repair.MaintenanceRepairMapper;
import com.hcy.common.utils.TimeUtil;
import com.hcy.common.mapper.user.UserMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
@ -28,6 +33,12 @@ public class MaintenanceRepairServiceImpl implements IMaintenanceRepairService {
@Resource
MaintenanceRepairMapper maintenanceRepairMapper;
@Resource
EquipmentModelMapper equipmentModelMapper;
@Resource
UserMapper userMapper;
/**
*
*
@ -36,114 +47,35 @@ public class MaintenanceRepairServiceImpl implements IMaintenanceRepairService {
* @return PageResult<MaintenanceRepairListVo>
*/
@Override
public PageResult<MaintenanceRepairListVo> list(PageParam pageParam, Map<String, String> params) {
public PageResult<MaintenanceRepairListVo> list(PageParam pageParam, MaintenanceRepairParam params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<MaintenanceRepair> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("id");
maintenanceRepairMapper.setSearch(queryWrapper, params, new String[]{
"=:priorityId@priority_id:long",
"=:logisticsMode@logistics_mode:str",
"like:expressageName@expressage_name:str",
"=:expressageNo@expressage_no:str",
"=:addressId@address_id:long",
"=:moduleNo@module_no:str",
"=:brand:str",
"=:moduleImg@module_img:str",
"=:creatorId@creator_id:long",
});
IPage<MaintenanceRepair> iPage = maintenanceRepairMapper.selectPage(new Page<>(page, limit), queryWrapper);
MaintenanceRepairDto maintenanceRepairDto = new MaintenanceRepairDto();
BeanUtils.copyProperties(params, maintenanceRepairDto);
IPage<MaintenanceRepairDto> iPage = maintenanceRepairMapper.list(new Page<>(page, limit), maintenanceRepairDto);
List<MaintenanceRepairListVo> list = new LinkedList<>();
for(MaintenanceRepair item : iPage.getRecords()) {
for(MaintenanceRepairDto item : iPage.getRecords()) {
MaintenanceRepairListVo vo = new MaintenanceRepairListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(item.getCreateTime());
//设置设备模块信息
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(item.getEquipmentId());
EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo();
if(equipmentModel != null){
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @param id
* @return MaintenanceRepair
*/
@Override
public MaintenanceRepairDetailVo detail(Integer id) {
MaintenanceRepair model = maintenanceRepairMapper.selectOne(
new QueryWrapper<MaintenanceRepair>()
.eq("id", id)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
MaintenanceRepairDetailVo vo = new MaintenanceRepairDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @param maintenanceRepairParam
*/
@Override
public void add(MaintenanceRepairParam maintenanceRepairParam) {
MaintenanceRepair model = new MaintenanceRepair();
BeanUtils.copyProperties(maintenanceRepairParam,model);
maintenanceRepairMapper.insert(model);
}
/**
*
*
* @param maintenanceRepairParam
*/
@Override
public void edit(MaintenanceRepairParam maintenanceRepairParam) {
MaintenanceRepair model = maintenanceRepairMapper.selectOne(
new QueryWrapper<MaintenanceRepair>()
.eq("id", maintenanceRepairParam.getId())
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(maintenanceRepairParam.getId());
model.setPriorityId(maintenanceRepairParam.getPriorityId());
model.setLogisticsMode(maintenanceRepairParam.getLogisticsMode());
model.setExpressName(maintenanceRepairParam.getExpressageName());
model.setExpressNo(maintenanceRepairParam.getExpressageNo());
model.setAddressId(maintenanceRepairParam.getAddressId());
model.setModuleNo(maintenanceRepairParam.getModuleNo());
model.setBrand(maintenanceRepairParam.getBrand());
model.setModuleImg(maintenanceRepairParam.getModuleImg());
model.setCreatorId(maintenanceRepairParam.getCreatorId());
maintenanceRepairMapper.updateById(model);
}
/**
*
*
* @param id ID
*/
@Override
public void del(Long id) {
MaintenanceRepair model = maintenanceRepairMapper.selectOne(
new QueryWrapper<MaintenanceRepair>()
.eq("id", id)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
maintenanceRepairMapper.delete(new QueryWrapper<MaintenanceRepair>().eq("id", id));
}
}

View File

@ -1,59 +0,0 @@
package com.hcy.admin.service.sparePartAllot;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.admin.vo.sparePartAllotListVo.SparePartAllotListVo;
import com.hcy.common.core.PageResult;
import java.util.Map;
/**
*
*/
public interface ISparePartAllotService {
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartAllotListVo>
* @author hcy
*/
PageResult<SparePartAllotListVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @author hcy
* @param id ID
* @return SparePartInWarehouseListVo
*/
SparePartAllotListVo detail(Integer id);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void add(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void edit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param id ID
*/
void del(Integer id);
}

View File

@ -1,345 +0,0 @@
package com.hcy.admin.service.sparePartAllot.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.sparePartAllot.ISparePartAllotService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.sparePartAllotListVo.SparePartAllotListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
*/
@Service
public class SpareParAllotServiceImpl implements ISparePartAllotService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
SparePartAuditMapper sparePartAuditMapper;
@Resource
SparePartMapper sparePartMapper;
@Resource
WarehouseMapper warehouseMapper;
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
public PageResult<SparePartAllotListVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("receipt_type",2); //单据类型
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"=:auditState@audit_state:int",
});
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartAllotListVo> list = new LinkedList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartAllotListVo vo = new SparePartAllotListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
// 调入仓库名
Warehouse importWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getImportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
vo.setImportWarehouseName(importWarehouseName.getWarehouseName());
// 调出仓库名
Warehouse exportWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getExportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
vo.setExportWarehouseName(exportWarehouseName.getWarehouseName());
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author hcy
* @param id
* @return SparePartInWarehouseListVo
*/
@Override
public SparePartAllotListVo detail(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
SparePartAllotListVo vo = new SparePartAllotListVo();
BeanUtils.copyProperties(model, vo);
// 调入仓库名
Warehouse importWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getImportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
vo.setImportWarehouseName(importWarehouseName.getWarehouseName());
// 调出仓库名
Warehouse exportWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getExportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
vo.setExportWarehouseName(exportWarehouseName.getWarehouseName());
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAudit> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAudit sparePartAudit1 = new SparePartAudit();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 调拨数量
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo); // 待入库的备件
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
return vo;
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = new SparePartStockAudit();
QueryWrapper<SparePartStockAudit> qw = new QueryWrapper<>();
qw.select("max(id) as id");
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(qw);
if(sparePartStockAudit.getId() == null){
model.setId(1L);
}else{
model.setId(sparePartStockAudit.getId() + 1);
}
model.setExportWarehouse(sparePartStockAuditParam.getExportWarehouse()); // 调出仓库
model.setImportWarehouse(sparePartStockAuditParam.getImportWarehouse()); // 调入仓库
model.setRemark(sparePartStockAuditParam.getRemark()); // 备注
model.setReceiptNumber(generateOrderNumber()); // 单据编号
model.setOutInWarehouseType(AuditStateEnum.STOCK_TRANSFER.getStatus()); //入库类别(2=库存调拨)
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
model.setResponsiblePerson((String) username);
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
// 审核状态
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.ALLOT.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件调拨数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getId())
.eq("is_delete", 0)
.last("limit 1"));
insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(sparePartStockAuditParam.getId());
model.setExportWarehouse(sparePartStockAuditParam.getExportWarehouse()); // 调出仓库
model.setImportWarehouse(sparePartStockAuditParam.getImportWarehouse()); // 调入仓库
model.setRemark(sparePartStockAuditParam.getRemark()); // 备注
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0));
for (SparePartAudit sparePartAudit : auditList) {
//将旧备件审核信息删除
SparePartAudit delectSparePartAudit = sparePartAuditMapper.selectOne(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
.last("limit 1"));
if(delectSparePartAudit != null){
delectSparePartAudit.setIsDelete(1);
delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.updateById(delectSparePartAudit);
}
}
for (SparePartAudit sparePartAudit : sparePartAuditList) {
//插入新的备件审核信息
SparePartAudit insertSparePartAudit = new SparePartAudit();
if(sparePartAudit.getSparePartsId() != null){
insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件调拨数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000);
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", insertSparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
//如果是已取消状态编辑改成未审核
if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @author hcy
* @param id ID
*/
@Override
public void del(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
* +6
* @return
*/
public String generateOrderNumber() {
String DATE_FORMAT = "yyyyMMdd";
int SEQUENCE_LENGTH = 6;
int sequence = 1; // 流水号从1开始
// 获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
String dateStr = dateFormat.format(new Date());
//查看数据库是否今日有订单编号
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.like("receipt_number",dateStr);
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(queryWrapper);
int max = sparePartStockAudits.size();
if(sequence <= max){
sequence = max + 1; // 递增流水号
}
// 生成6位流水号
StringBuilder sequenceBuilder = new StringBuilder();
for (int i = 0; i < SEQUENCE_LENGTH; i++) {
sequenceBuilder.append(String.format("%0" + (SEQUENCE_LENGTH - i) + "d", sequence));
}
String truncatedString = sequenceBuilder.substring(0, 6);
// 拼接订单号
String orderNumber = dateStr + truncatedString;
return orderNumber;
}
}

View File

@ -1,7 +1,7 @@
package com.hcy.admin.service.sparePartAudit;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.SparePartAudit.SparePartAuditParam;
import com.hcy.admin.validate.sparePartAudit.SparePartAuditParam;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditDetailVo;
import com.hcy.common.core.PageResult;

View File

@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.service.sparePartAudit.ISparePartAuditService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.SparePartAudit.SparePartAuditParam;
import com.hcy.admin.validate.sparePartAudit.SparePartAuditParam;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditDetailVo;
import com.hcy.common.core.PageResult;
@ -64,8 +64,6 @@ public class SparePartAuditServiceImpl implements ISparePartAuditService {
for(SparePartAudit item : iPage.getRecords()) {
SparePartAuditListVo vo = new SparePartAuditListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getWarehouseId())
@ -124,7 +122,6 @@ public class SparePartAuditServiceImpl implements ISparePartAuditService {
model.setQuantity(sparePartAuditParam.getQuantity());
model.setUnitPrice(sparePartAuditParam.getUnitPrice());
model.setCount(sparePartAuditParam.getCount());
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(model);
}
@ -173,7 +170,6 @@ public class SparePartAuditServiceImpl implements ISparePartAuditService {
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.updateById(model);
}

View File

@ -1,59 +0,0 @@
package com.hcy.admin.service.sparePartInWarehouse;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.sparePartInWarehouse.SparePartInWarehouseListVo;
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
import com.hcy.common.core.PageResult;
import java.util.Map;
/**
*
*/
public interface ISparePartInWarehouseService {
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
PageResult<SparePartInWarehouseListVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @author hcy
* @param id ID
* @return SparePartInWarehouseListVo
*/
SparePartInWarehouseListVo detail(Integer id);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void add(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void edit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param id ID
*/
void del(Integer id);
}

View File

@ -1,342 +0,0 @@
package com.hcy.admin.service.sparePartInWarehouse.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.sparePartInWarehouse.ISparePartInWarehouseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.sparePartInWarehouse.SparePartInWarehouseListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
*/
@Service
public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
SparePartAuditMapper sparePartAuditMapper;
@Resource
SparePartMapper sparePartMapper;
@Resource
WarehouseMapper warehouseMapper;
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
public PageResult<SparePartInWarehouseListVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("receipt_type",0);
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"=:warehouseId@warehouse_id:long",
"=:outInWarehouseType@out_in_warehouse_type:long",
"=:auditState@audit_state:int",
});
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartInWarehouseListVo> list = new LinkedList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartInWarehouseListVo vo = new SparePartInWarehouseListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
vo.setSupplierPhone(item.getSupplier() + "/" + item.getPhone());
//获取仓库名称
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getWarehouseId())
.last("limit 1"));
vo.setWarehouseName(warehouse.getWarehouseName());
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author hcy
* @param id
* @return SparePartInWarehouseListVo
*/
@Override
public SparePartInWarehouseListVo detail(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
SparePartInWarehouseListVo vo = new SparePartInWarehouseListVo();
//获取仓库名称
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getWarehouseId())
.last("limit 1"));
vo.setWarehouseName(warehouse.getWarehouseName());
BeanUtils.copyProperties(model, vo);
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAudit> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAudit sparePartAudit1 = new SparePartAudit();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 入库数量
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo);
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
return vo;
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = new SparePartStockAudit();
QueryWrapper<SparePartStockAudit> qw = new QueryWrapper<>();
qw.select("max(id) as id");
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(qw);
if(sparePartStockAudit == null){
model.setId(1L);
}else{
Long id = sparePartStockAudit.getId() + 1;
SparePartStockAudit idModel = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
if(idModel != null){
model.setId(idModel.getId() + 1);
}else{
model.setId(sparePartStockAudit.getId() + 1);
}
}
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 入库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); //入库类别(0=采购入库)
model.setSupplier(sparePartStockAuditParam.getSupplier()); //供应商
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(generateOrderNumber()); // 单据编号
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
model.setResponsiblePerson((String) username);
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
// 审核状态
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.IN_WAREHOUSE.getStatus());
//model.setSparePartAuditId(sparePartStockAuditParam.getSparePartAuditId()); // 备件审核id
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件入库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getId())
.eq("is_delete", 0)
.last("limit 1"));
insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(sparePartStockAuditParam.getId());
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 入库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); //出入库类别
model.setSupplier(sparePartStockAuditParam.getSupplier()); //供应商
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(sparePartStockAuditParam.getReceiptNumber()); // 单据编号
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0));
for (SparePartAudit sparePartAudit : auditList) {
//将旧备件审核信息删除
SparePartAudit delectSparePartAudit = sparePartAuditMapper.selectOne(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
.last("limit 1"));
if(delectSparePartAudit != null){
delectSparePartAudit.setIsDelete(1);
delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.updateById(delectSparePartAudit);
}
}
for (SparePartAudit sparePartAudit : sparePartAuditList) {
//插入新的备件审核信息
SparePartAudit insertSparePartAudit = new SparePartAudit();
if(sparePartAudit.getSparePartsId() != null){
insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件入库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
//如果是已取消状态编辑改成未审核
if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @author hcy
* @param id ID
*/
@Override
public void del(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
* +6
* @return
*/
public String generateOrderNumber() {
String DATE_FORMAT = "yyyyMMdd";
int SEQUENCE_LENGTH = 6;
int sequence = 1; // 流水号从1开始
// 获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
String dateStr = dateFormat.format(new Date());
//查看数据库是否今日有订单编号
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.like("receipt_number",dateStr);
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(queryWrapper);
int max = sparePartStockAudits.size();
if(sequence <= max){
sequence = max + 1; // 递增流水号
}
// 生成6位流水号
StringBuilder sequenceBuilder = new StringBuilder();
for (int i = 0; i < SEQUENCE_LENGTH; i++) {
sequenceBuilder.append(String.format("%0" + (SEQUENCE_LENGTH - i) + "d", sequence));
}
String truncatedString = sequenceBuilder.substring(0, 6);
// 拼接订单号
String orderNumber = dateStr + truncatedString;
return orderNumber;
}
}

View File

@ -1,59 +0,0 @@
package com.hcy.admin.service.sparePartOutWarehouse;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.admin.vo.sparePartInWarehouse.SparePartInWarehouseListVo;
import com.hcy.common.core.PageResult;
import java.util.Map;
/**
*
*/
public interface ISparePartOutWarehouseService {
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
PageResult<SparePartOutWarehouseListVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @author hcy
* @param id ID
* @return SparePartInWarehouseListVo
*/
SparePartOutWarehouseListVo detail(Integer id);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void add(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void edit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param id ID
*/
void del(Integer id);
}

View File

@ -1,339 +0,0 @@
package com.hcy.admin.service.sparePartOutWarehouse.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.sparePartOutWarehouse.ISparePartOutWarehouseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartOutWarehouseListVo.SparePartOutWarehouseListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
*/
@Service
public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
SparePartAuditMapper sparePartAuditMapper;
@Resource
SparePartMapper sparePartMapper;
@Resource
WarehouseMapper warehouseMapper;
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartInWarehouseListVo>
* @author hcy
*/
public PageResult<SparePartOutWarehouseListVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("receipt_type",1);
queryWrapper.isNull("purchase_status");
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"=:warehouseId@warehouse_id:long",
"=:outInWarehouseType@out_in_warehouse_type:long",
"=:auditState@audit_state:int",
});
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartOutWarehouseListVo> list = new LinkedList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartOutWarehouseListVo vo = new SparePartOutWarehouseListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
vo.setConsigneePhone(item.getConsignee() + "/" + item.getPhone());
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getWarehouseId())
.eq("is_delete", 0)
.last("limit 1"));
if(warehouse != null){
vo.setWarehouseName(warehouse.getWarehouseName());
}
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author hcy
* @param id
* @return SparePartInWarehouseListVo
*/
@Override
public SparePartOutWarehouseListVo detail(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
SparePartOutWarehouseListVo vo = new SparePartOutWarehouseListVo();
BeanUtils.copyProperties(model, vo);
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getWarehouseId())
.eq("is_delete", 0)
.last("limit 1"));
if(warehouse != null){
vo.setWarehouseName(warehouse.getWarehouseName());
}
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAudit> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAudit sparePartAudit1 = new SparePartAudit();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo);
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
return vo;
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = new SparePartStockAudit();
QueryWrapper<SparePartStockAudit> qw = new QueryWrapper<>();
qw.select("max(id) as id");
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(qw);
if(sparePartStockAudit == null){
model.setId(1L);
}else{
Long id = sparePartStockAudit.getId() + 1;
SparePartStockAudit idModel = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
if(idModel != null){
model.setId(idModel.getId() + 1);
}else{
model.setId(sparePartStockAudit.getId() + 1);
}
}
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料3=销售出库)
model.setConsignee(sparePartStockAuditParam.getConsignee()); // 收货单位(人员)
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(generateOrderNumber()); // 单据编号
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
model.setResponsiblePerson((String) username);
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
// 审核状态
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(sparePartStockAuditParam.getId());
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别1=调拨出库)
model.setConsignee(sparePartStockAuditParam.getConsignee()); // 收货单位(人员)
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(sparePartStockAuditParam.getReceiptNumber()); // 单据编号
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0));
for (SparePartAudit sparePartAudit : auditList) {
//将旧备件审核信息删除
SparePartAudit delectSparePartAudit = sparePartAuditMapper.selectOne(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
.last("limit 1"));
if(delectSparePartAudit != null){
delectSparePartAudit.setIsDelete(1);
delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.updateById(delectSparePartAudit);
}
}
for (SparePartAudit sparePartAudit : sparePartAuditList) {
//插入新的备件审核信息
SparePartAudit insertSparePartAudit = new SparePartAudit();
if(sparePartAudit.getSparePartsId() != null){
insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
//如果是已取消状态编辑改成未审核
if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @author hcy
* @param id ID
*/
@Override
public void del(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
* +6
* @return
*/
public String generateOrderNumber() {
String DATE_FORMAT = "yyyyMMdd";
int SEQUENCE_LENGTH = 6;
int sequence = 1; // 流水号从1开始
// 获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
String dateStr = dateFormat.format(new Date());
//查看数据库是否今日有订单编号
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.like("receipt_number",dateStr);
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(queryWrapper);
int max = sparePartStockAudits.size();
if(sequence <= max){
sequence = max + 1; // 递增流水号
}
// 生成6位流水号
StringBuilder sequenceBuilder = new StringBuilder();
for (int i = 0; i < SEQUENCE_LENGTH; i++) {
sequenceBuilder.append(String.format("%0" + (SEQUENCE_LENGTH - i) + "d", sequence));
}
String truncatedString = sequenceBuilder.substring(0, 6);
// 拼接订单号
String orderNumber = dateStr + truncatedString;
return orderNumber;
}
}

View File

@ -1,87 +0,0 @@
package com.hcy.admin.service.sparePartPurchase;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.sparePartPurchase.SparePartPurchaseListVo;
import com.hcy.admin.vo.sparePartReceive.SparePartReceiveListVo;
import com.hcy.common.core.PageResult;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
/**
*
*/
public interface ISparePartPurchaseService {
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartPurchaseListVo>
* @author hcy
*/
PageResult<SparePartPurchaseListVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @author hcy
* @param id ID
* @return SparePartPurchaseListVo
*/
SparePartPurchaseListVo detail(Integer id);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void add(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
void edit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*
* @author hcy
* @param id ID
*/
void del(Integer id);
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartPurchaseListVo>
* @author hcy
*/
PageResult<SparePartPurchaseListVo> purchaseOrderlist(PageParam pageParam, Map<String, String> params);
/**
*
* @param sparePartStockAuditParam
*/
void purchaseAudit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
* @param sparePartStockAuditParam
*/
void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
* @param sparePartStockAuditParam
*/
void receiving(SparePartStockAuditParam sparePartStockAuditParam);
}

View File

@ -1,607 +0,0 @@
package com.hcy.admin.service.sparePartPurchase.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.region.IDevRegionService;
import com.hcy.admin.service.sparePartPurchase.ISparePartPurchaseService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.sparePartPurchase.SparePartPurchaseListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.ClientContacts;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
import com.hcy.common.mapper.client.ClientContactsMapper;
import com.hcy.common.mapper.client.ClientMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
*/
@Service
public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
SparePartAuditMapper sparePartAuditMapper;
@Resource
SparePartMapper sparePartMapper;
@Resource
WarehouseMapper warehouseMapper;
@Resource
ClientContactsMapper clientContactsMapper;
@Resource
ClientMapper clientMapper;
@Resource
private IDevRegionService regionService;
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartPurchaseListVo>
* @author hcy
*/
public PageResult<SparePartPurchaseListVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("receipt_type",1);
queryWrapper.eq("out_in_warehouse_type", 3);
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id");
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"=:deliveryMethod@delivery_method:int",
"like:responsiblePerson@responsible_person:str",
"=:purchaseStatus@purchase_status:int",
"datetime:createTimeStart-createTimeEnd@create_time:str",
});
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartPurchaseListVo> list = new LinkedList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartPurchaseListVo vo = new SparePartPurchaseListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
vo.setResponsiblePersonPhone(vo.getResponsiblePerson() + "/" + vo.getPhone()); //采购人/联系电话
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", item.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo);
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author hcy
* @param id
* @return SparePartPurchaseListVo
*/
@Override
public SparePartPurchaseListVo detail(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
SparePartPurchaseListVo vo = new SparePartPurchaseListVo();
BeanUtils.copyProperties(model, vo);
vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime()));
Warehouse warehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getWarehouseId())
.eq("is_delete", 0)
.last("limit 1"));
if(warehouseName != null){
vo.setWarehouseName(warehouseName.getWarehouseName());
}
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId()); // 备件id
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId()); // 出入库审核id
sparePartAudit1.setUnit(sparePart.getUnit()); //单位
sparePartAudit1.setUnitPrice(sparePartAudit.getUnitPrice()); //销售价
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
sparePartAudit1.setQuantity(sparePart.getQuantity()); //库存数量
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", sparePart.getWarehouseId())
.eq("is_delete", 0)
.last("limit 1"));
if(warehouse != null){
sparePartAudit1.setWarehouseName(warehouse.getWarehouseName());
}
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo);
vo.setResponsiblePersonPhone(vo.getResponsiblePerson() + "/" + vo.getPhone()); //采购人/联系电话
//获取客户id
ClientContacts clientId = clientContactsMapper.selectOne(
new QueryWrapper<ClientContacts>()
.eq("admin_id", model.getResponsiblePersonId())
.last("limit 1"));
Map<Long, String> regionMap = regionService.getRegionMap();
if(clientId != null) {
//获取当前用户的客户,获取客户名称、地址
Client client = clientMapper.selectOne(
new QueryWrapper<Client>()
.eq("id", clientId.getClientId())
.last("limit 1"));
vo.setClientName(client.getClientName());
//获取客户地址
String province = regionMap.get(client.getProvinceId());
String city = regionMap.get(client.getCityId());
String district = regionMap.get(client.getDistrictId());
vo.setClientAddress(province + city + district + client.getAddress());
}
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
return vo;
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = new SparePartStockAudit();
QueryWrapper<SparePartStockAudit> qw = new QueryWrapper<>();
qw.select("max(id) as id");
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(qw);
if(sparePartStockAudit == null){
model.setId(1L);
}else{
Long id = sparePartStockAudit.getId() + 1;
SparePartStockAudit idModel = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
if(idModel != null){
model.setId(idModel.getId() + 1);
}else{
model.setId(sparePartStockAudit.getId() + 1);
}
}
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料3=销售出库)
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(generateOrderNumber()); // 单据编号
model.setShippingAddress(sparePartStockAuditParam.getShippingAddress()); //收货地址
model.setRemark(sparePartStockAuditParam.getRemark()); //备注
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setDeliveryMethod(sparePartStockAuditParam.getDeliveryMethod()); //配送方式0=物流快递1=上门取件2=送货上门)
//配件采购还有个暂存草稿的功能,操作后这个单还是填写中状态,不是未审核
System.out.println(sparePartStockAuditParam.getPurchaseStatus());
if(sparePartStockAuditParam.getPurchaseStatus() != null){
model.setPurchaseStatus(sparePartStockAuditParam.getPurchaseStatus());
}else {
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
}
//获取当前用户id
Integer adminId = AdminThreadLocal.getAdminId();
model.setResponsiblePersonId(adminId);
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
model.setResponsiblePerson((String) username); // 经办人
model.setConsignee((String) username); // 收货单位(人员)
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
insertSparePartAudit.setUnitPrice(sparePartAudit.getUnitPrice());
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
/**
*
*
* @author hcy
* @param sparePartStockAuditParam
*/
@Override
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(sparePartStockAuditParam.getId());
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId()); // 出库仓库
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType()); // 出库类别 2=员工领料3=销售出库)
model.setPhone(sparePartStockAuditParam.getPhone()); // 联系电话
model.setReceiptNumber(generateOrderNumber()); // 单据编号
model.setShippingAddress(sparePartStockAuditParam.getShippingAddress()); //收货地址
model.setRemark(sparePartStockAuditParam.getRemark()); //备注
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setDeliveryMethod(sparePartStockAuditParam.getDeliveryMethod()); //配送方式0=物流快递1=上门取件2=送货上门)
//配件采购还有个暂存草稿的功能,操作后这个单还是填写中状态,不是未审核
if(sparePartStockAuditParam.getPurchaseStatus() != null){
model.setPurchaseStatus(sparePartStockAuditParam.getPurchaseStatus());
}else {
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
}
//获取当前用户id
Integer adminId = AdminThreadLocal.getAdminId();
model.setResponsiblePersonId(adminId);
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
model.setResponsiblePerson((String) username); // 经办人
model.setConsignee((String) username); // 收货单位(人员)
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0));
for (SparePartAudit sparePartAudit : auditList) {
//将旧备件审核信息删除
SparePartAudit delectSparePartAudit = sparePartAuditMapper.selectOne(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
.last("limit 1"));
if(delectSparePartAudit != null){
delectSparePartAudit.setIsDelete(1);
delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.updateById(delectSparePartAudit);
}
}
for (SparePartAudit sparePartAudit : sparePartAuditList) {
//插入新的备件审核信息
SparePartAudit insertSparePartAudit = new SparePartAudit();
if(sparePartAudit.getSparePartsId() != null){
insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @author hcy
* @param id ID
*/
@Override
public void del(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param pageParam
* @param params
* @return PageResult<SparePartPurchaseListVo>
* @author hcy
*/
@Override
public PageResult<SparePartPurchaseListVo> purchaseOrderlist(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("receipt_type",1);
queryWrapper.eq("is_delete", 0);
queryWrapper.ne("purchase_status", 6);
queryWrapper.orderByDesc("id");
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"=:deliveryMethod@delivery_method:int",
"like:responsiblePerson@responsible_person:str",
"=:purchaseStatus@purchase_status:int",
"datetime:createTimeStart-createTimeEnd@create_time:str",
});
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartPurchaseListVo> list = new LinkedList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartPurchaseListVo vo = new SparePartPurchaseListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setHandlingTime(TimeUtil.timestampToDate(item.getHandlingTime())); //经办时间
vo.setResponsiblePersonPhone(vo.getResponsiblePerson() + "/" + vo.getPhone()); //采购人/联系电话
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", item.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 出库数量
listVo.add(sparePartAudit1);
}
vo.setSparePartAuditList(listVo);
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void purchaseAudit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setPurchaseStatus(sparePartStockAuditParam.getPurchaseStatus()); // 配件领用状态 1=未通过2=待管理员审核
model.setPurchaseIdea(sparePartStockAuditParam.getPurchaseIdea()); // 采购意见
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getPurchaseStatus() == AuditStateEnum.CHECKPENDING.getStatus()){
// 通过审核的出库单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
if(sparePart.getQuantity() >= sparePartAudit.getCount()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}else{
throw new OperateException("备件库存数量不足,请联系客服人员!");
}
sparePartMapper.updateById(sparePart);
}
}
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setConsignerTime(new Date()); //发货时间
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setPurchaseStatus(AuditStateEnum.WAITFORRECEIVING.getStatus()); // 采购状态 4=待收货
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void receiving(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setPurchaseStatus(AuditStateEnum.DONE.getStatus()); // 采购状态 5=已完成
sparePartStockAuditMapper.updateById(model);
}
/**
* +6
* @return
*/
public String generateOrderNumber() {
String DATE_FORMAT = "yyyyMMdd";
int SEQUENCE_LENGTH = 6;
int sequence = 1; // 流水号从1开始
// 获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
String dateStr = dateFormat.format(new Date());
//查看数据库是否今日有订单编号
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.like("receipt_number",dateStr);
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(queryWrapper);
int max = sparePartStockAudits.size();
if(sequence <= max){
sequence = max + 1; // 递增流水号
}
// 生成6位流水号
StringBuilder sequenceBuilder = new StringBuilder();
for (int i = 0; i < SEQUENCE_LENGTH; i++) {
sequenceBuilder.append(String.format("%0" + (SEQUENCE_LENGTH - i) + "d", sequence));
}
String truncatedString = sequenceBuilder.substring(0, 6);
// 拼接订单号
String orderNumber = dateStr + truncatedString;
return orderNumber;
}
}

View File

@ -21,7 +21,7 @@ public interface ISparePartStockAuditService {
* @param params
* @return PageResult<SparePartStockAuditVo>
*/
PageResult<SparePartStockAuditListVo> list(PageParam pageParam, Map<String, String> params);
PageResult<SparePartStockAuditListVo> list(PageParam pageParam, SparePartStockAuditParam params);
/**
*
@ -30,7 +30,7 @@ public interface ISparePartStockAuditService {
* @param id ID
* @return SparePartStockAudit
*/
SparePartStockAuditDetailVo detail(Integer id);
SparePartStockAuditDetailVo detail(Long id);
/**
*
@ -54,7 +54,7 @@ public interface ISparePartStockAuditService {
* @author hcy
* @param id ID
*/
void del(Integer id);
void del(Long id);
/**
*
@ -75,4 +75,19 @@ public interface ISparePartStockAuditService {
* @param id
*/
void inventoryComparison(Integer id);
/**
*
*/
void receiveAudit(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*/
void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam);
/**
*
*/
void receiving(SparePartStockAuditParam sparePartStockAuditParam);
}

View File

@ -1,28 +1,44 @@
package com.hcy.admin.service.sparePartStockAudit.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.sparePartStockAudit.ISparePartStockAuditService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.order.OrderSparePartListVo;
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditListVo;
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
import com.hcy.common.constant.GlobalConstant;
import com.hcy.common.core.PageResult;
import com.hcy.common.dto.order.OrderSparePart;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.OrderUtil;
import com.hcy.common.utils.TimeUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
@ -46,6 +62,18 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
@Resource
SparePartAuditMapper sparePartAuditMapper;
@Resource
MaintenanceOrderMapper maintenanceOrderMapper;
@Resource
UserMapper userMapper;
@Resource
OrderSparePartMapper orderSparePartMapper;
@Resource
SystemAuthAdminMapper systemAuthAdminMapper;
/**
*
*
@ -55,72 +83,106 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
* @return PageResult<SparePartStockAuditListVo>
*/
@Override
public PageResult<SparePartStockAuditListVo> list(PageParam pageParam, Map<String, String> params) {
public PageResult<SparePartStockAuditListVo> list(PageParam pageParam, SparePartStockAuditParam params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<SparePartStockAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.isNull("purchase_status");
queryWrapper.or();
queryWrapper.notIn("purchase_status", 0,1,6);
queryWrapper.orderByDesc("id");
// purchase_status IS NULL OR purchase_status NOT IN (0, 1, 6);
sparePartStockAuditMapper.setSearch(queryWrapper, params, new String[]{
"like:receiptNumber@receipt_number:str",
"=:receiptType@receipt_type:long",
"=:outInWarehouseType@out_in_warehouse_type:long",
"=:auditState@audit_state:int",
});
LambdaQueryWrapper<SparePartStockAudit> queryWrapper = new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(params.getReceiptType() != null, SparePartStockAudit::getReceiptType, params.getReceiptType())
.eq(params.getOutInWarehouseType() != null, SparePartStockAudit::getOutInWarehouseType, params.getOutInWarehouseType())
.eq(StringUtils.isNotEmpty(params.getReceiptNumber()), SparePartStockAudit::getReceiptNumber, params.getReceiptNumber())
.eq(params.getAuditState() != null, SparePartStockAudit::getAuditState, params.getAuditState())
.eq(params.getWarehouseId() != null,SparePartStockAudit::getWarehouseId,params.getWarehouseId())
.orderByDesc(SparePartStockAudit::getCreateTime);
//领用时间范围,配送方式查询
IPage<SparePartStockAudit> iPage = sparePartStockAuditMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<SparePartStockAuditListVo> list = new LinkedList<>();
long total = 0;//总查询数
List<SparePartStockAuditListVo> list = new ArrayList<>();
for(SparePartStockAudit item : iPage.getRecords()) {
SparePartStockAuditListVo vo = new SparePartStockAuditListVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(item.getUpdateTime()));
vo.setAuditTime(TimeUtil.timestampToDate(item.getAuditTime()));
//获取仓库名称
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getWarehouseId())
.last("limit 1"));
if (warehouse != null){
vo.setWarehouseName(warehouse.getWarehouseName());
}
// 调入仓库名
Warehouse importWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getImportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
if(importWarehouseName != null){
vo.setImportWarehouseName(importWarehouseName.getWarehouseName());
}
// 调出仓库名
Warehouse exportWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", item.getExportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
if(exportWarehouseName != null){
vo.setExportWarehouseName(exportWarehouseName.getWarehouseName());
vo.setRecipientAndPhone(item.getRecipient() + "/" + item.getRecipientPhone()); //领料员工/联系电话
vo.setSupplierPhone(item.getSupplier() + "/" + item.getPhone()); //领料员工/联系电话
if(item.getOrderType() != null){
User user = userMapper.selectById(item.getCreatorId());
vo.setCreator(user.getUsername());
}else{
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminById(item.getCreatorId());
if(systemAuthAdmin != null){
vo.setCreator(systemAuthAdmin.getUsername());
}
}
int number = 0; //领用数量
if(item.getOrderType() != null && item.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(item.getOrderId());
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
List<OrderSparePartListVo> orderSparePartListVoList = new ArrayList<>();
List<OrderSparePart> orderSparePartList = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(item.getOrderId());
for (OrderSparePart orderSparePart : orderSparePartList) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
BeanUtils.copyProperties(orderSparePart, orderSparePartListVo);
orderSparePartListVoList.add(orderSparePartListVo);
number += orderSparePart.getQuantity();
}
vo.setOrderSparePartListVoList(orderSparePartListVoList);
vo.setWorkOrderNo(maintenanceOrder.getOrderNo());
vo.setRecipient(user.getUsername());
vo.setRecipientPhone(user.getMobile());
vo.setRecipientNumber(number);
}else{
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", item.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePartAuditListVo sparePartAuditListVo = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePartAudit, sparePartAuditListVo);
number += sparePartAudit.getCount();
listVo.add(sparePartAuditListVo);
}
vo.setRecipientNumber(number); //领用数量
vo.setSparePartAuditList(listVo);
}
//设置仓库名称
if(AuditStateEnum.ALLOT.getStatus() == item.getOutInWarehouseType()){
// 调入仓库名
Warehouse importWarehouseName = warehouseMapper.findWarehouseById(item.getImportWarehouse());
if(importWarehouseName != null){
vo.setImportWarehouseName(importWarehouseName.getWarehouseName());
}
// 调出仓库名
Warehouse exportWarehouseName = warehouseMapper.findWarehouseById(item.getExportWarehouse());
if(exportWarehouseName != null){
vo.setExportWarehouseName(exportWarehouseName.getWarehouseName());
}
}else{
Long warehouseId = item.getWarehouseId();
if(item.getImportWarehouse() != null){
warehouseId = item.getImportWarehouse();
}else{
warehouseId = item.getExportWarehouse();
}
Warehouse warehouse = warehouseMapper.findWarehouseById(warehouseId);
if(warehouse != null){
vo.setWarehouseName(warehouse.getWarehouseName());
}
}
// //采购/领用单状态是待管理员审核才能显示
// if(item.getPurchaseStatus() != null && item.getPurchaseStatus() == AuditStateEnum.UNREVIEWED.getStatus()){
// System.out.println(item.getId() + "采购/领用状态是未审核不显示");
// }else if (item.getPurchaseStatus() != null && item.getPurchaseStatus() == AuditStateEnum.NOTPASSSTATE.getStatus() && item.getAuditResult() == null){
// System.out.println(item.getId() + "采购/领用状态是审核未通过不显示");
// }else if(item.getPurchaseStatus() != null && item.getPurchaseStatus() == AuditStateEnum.FILLINGOUT.getStatus()){
// System.out.println(item.getId() + "采购/领用状态是填写中不显示");
// }else {
// list.add(vo);
// total = total + 1;
// }
list.add(vo);
}
@ -135,83 +197,69 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
* @return SparePartStockAudit
*/
@Override
public SparePartStockAuditDetailVo detail(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
public SparePartStockAuditDetailVo detail(Long id) {
SparePartStockAudit model = sparePartStockAuditMapper.findSparePartStockAuditById(id);
Assert.notNull(model, "数据不存在");
SparePartStockAuditDetailVo vo = new SparePartStockAuditDetailVo();
//获取仓库名称
Warehouse warehouse = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getWarehouseId())
.last("limit 1"));
if (warehouse != null){
vo.setWarehouseName(warehouse.getWarehouseName());
}
//判断是否是调拨单
if(model.getReceiptType() == AuditStateEnum.ALLOT.getStatus()){
// 调入仓库名
Warehouse importWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getImportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
vo.setImportWarehouseName(importWarehouseName.getWarehouseName());
// 调出仓库名
Warehouse exportWarehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", model.getExportWarehouse())
.eq("is_delete", 0)
.last("limit 1"));
vo.setExportWarehouseName(exportWarehouseName.getWarehouseName());
}
BeanUtils.copyProperties(model, vo);
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
if(model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(model.getOrderId());
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
SparePartAuditListVo sparePartAudit1 = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePart, sparePartAudit1);
sparePartAudit1.setId(sparePartAudit.getId());
sparePartAudit1.setSparePartsId(sparePart.getId());
sparePartAudit1.setStockAuditId(sparePartAudit.getStockAuditId());
sparePartAudit1.setCount(sparePartAudit.getCount()); // 入库数量
//获取仓库名称
Warehouse warehouseName = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.eq("id", sparePart.getWarehouseId())
.last("limit 1"));
if (warehouseName != null){
sparePartAudit1.setWarehouseName(warehouseName.getWarehouseName());
List<OrderSparePartListVo> orderSparePartListVoList = new ArrayList<>();
List<OrderSparePart> orderSparePartList = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(model.getOrderId());
for (OrderSparePart orderSparePart : orderSparePartList) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
BeanUtils.copyProperties(orderSparePart, orderSparePartListVo);
orderSparePartListVoList.add(orderSparePartListVo);
}
listVo.add(sparePartAudit1);
vo.setOrderSparePartListVoList(orderSparePartListVoList);
vo.setWorkOrderNo(maintenanceOrder.getOrderNo());
vo.setRecipient(user.getUsername());
vo.setRecipientPhone(user.getMobile());
}else{
//获取待审核备件信息
List<SparePartAudit> sparePartAuditList = sparePartAuditMapper.findSparePartAuditByStockAuditId(model.getId());
//获取备件信息
List<SparePartAuditListVo> listVo = new ArrayList<>();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAuditListVo sparePartAuditListVo = new SparePartAuditListVo();
BeanUtils.copyProperties(sparePartAudit, sparePartAuditListVo);
listVo.add(sparePartAuditListVo);
}
vo.setSparePartAuditList(listVo);
}
vo.setSupplierPhone(model.getSupplier() + "/" + model.getPhone()); // 供应商/电话
vo.setConsigneePhone(model.getConsignee() + "/" + model.getPhone()); // 收货单位(人员)/电话
vo.setSparePartAuditList(listVo);
vo.setHandlingTime(TimeUtil.timestampToDate(model.getHandlingTime())); //经办时间
//设置仓库名称
if(AuditStateEnum.ALLOT.getStatus() == model.getOutInWarehouseType()){
// 调入仓库名
Warehouse importWarehouseName = warehouseMapper.findWarehouseById(model.getImportWarehouse());
if(importWarehouseName != null){
vo.setImportWarehouseName(importWarehouseName.getWarehouseName());
}
// 调出仓库名
Warehouse exportWarehouseName = warehouseMapper.findWarehouseById(model.getExportWarehouse());
if(exportWarehouseName != null){
vo.setExportWarehouseName(exportWarehouseName.getWarehouseName());
}
}else{
Long warehouseId = model.getWarehouseId();
if(model.getImportWarehouse() != null){
warehouseId = model.getImportWarehouse();
}else{
warehouseId = model.getExportWarehouse();
}
Warehouse warehouse = warehouseMapper.findWarehouseById(warehouseId);
if(warehouse != null){
vo.setWarehouseName(warehouse.getWarehouseName());
}
}
BeanUtils.copyProperties(model, vo);
return vo;
}
@ -222,25 +270,38 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
* @param sparePartStockAuditParam
*/
@Override
@Transactional
public void add(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = new SparePartStockAudit();
model.setReceiptNumber(sparePartStockAuditParam.getReceiptNumber());
model.setReceiptType(sparePartStockAuditParam.getReceiptType());
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId());
model.setImportWarehouse(sparePartStockAuditParam.getImportWarehouse());
model.setExportWarehouse(sparePartStockAuditParam.getExportWarehouse());
model.setSupplier(sparePartStockAuditParam.getSupplier());
model.setResponsiblePerson(sparePartStockAuditParam.getResponsiblePerson());
model.setHandlingTime(sparePartStockAuditParam.getHandlingTime().getTime());
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType());
model.setConsignee(sparePartStockAuditParam.getConsignee());
model.setAuditState(sparePartStockAuditParam.getAuditState());
model.setAuditResult(sparePartStockAuditParam.getAuditResult());
model.setAuditTime(sparePartStockAuditParam.getAuditTime().getTime());
model.setAuditIdea(sparePartStockAuditParam.getAuditIdea());
model.setPhone(sparePartStockAuditParam.getPhone());
model.setRemark(sparePartStockAuditParam.getRemark());
BeanUtils.copyProperties(sparePartStockAuditParam, model);
SparePartStockAudit lastSparePartStockAudit = sparePartStockAuditMapper.findLastSparePartStockAuditByTime(TimeUtil.getCurrentTimeYYYYMMDD());
model.setReceiptNumber(OrderUtil.getOrderNo(lastSparePartStockAudit == null ? "" : lastSparePartStockAudit.getReceiptNumber())); // 单据编号
// 获取当前的用户
model.setCreatorId(AdminThreadLocal.getAdminId());
if(sparePartStockAuditParam.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()){
model.setExportWarehouse(sparePartStockAuditParam.getWarehouseId());
}else if(sparePartStockAuditParam.getReceiptType() == AuditStateEnum.IN_WAREHOUSE.getStatus()){
model.setImportWarehouse(sparePartStockAuditParam.getWarehouseId());
}else if(sparePartStockAuditParam.getReceiptType() == AuditStateEnum.ALLOT.getStatus()){
model.setExportWarehouse(sparePartStockAuditParam.getWarehouseId());
model.setImportWarehouse(sparePartStockAuditParam.getWarehouseId());
}
sparePartStockAuditMapper.insert(model);
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
for (SparePartAudit item : sparePartAuditList) {
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
SparePartAudit sparePartAudit = new SparePartAudit();
BeanUtils.copyProperties(sparePart, sparePartAudit);
sparePartAudit.setId(null);
sparePartAudit.setStockAuditId(model.getId());
sparePartAudit.setCount(item.getCount());
sparePartAuditMapper.insert(sparePartAudit);//插入备件审核信息
}
}
/**
@ -251,31 +312,36 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
*/
@Override
public void edit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
SparePartStockAudit model = sparePartStockAuditMapper.findSparePartStockAuditById(sparePartStockAuditParam.getId());
Assert.notNull(model, "数据不存在!");
model.setId(sparePartStockAuditParam.getId());
model.setReceiptNumber(sparePartStockAuditParam.getReceiptNumber());
model.setReceiptType(sparePartStockAuditParam.getReceiptType());
model.setWarehouseId(sparePartStockAuditParam.getWarehouseId());
model.setImportWarehouse(sparePartStockAuditParam.getImportWarehouse());
model.setExportWarehouse(sparePartStockAuditParam.getExportWarehouse());
model.setSupplier(sparePartStockAuditParam.getSupplier());
model.setResponsiblePerson(sparePartStockAuditParam.getResponsiblePerson());
model.setHandlingTime(sparePartStockAuditParam.getHandlingTime().getTime());
model.setOutInWarehouseType(sparePartStockAuditParam.getOutInWarehouseType());
model.setConsignee(sparePartStockAuditParam.getConsignee());
model.setAuditState(sparePartStockAuditParam.getAuditState());
model.setAuditResult(sparePartStockAuditParam.getAuditResult());
model.setAuditTime(sparePartStockAuditParam.getAuditTime().getTime());
model.setAuditIdea(sparePartStockAuditParam.getAuditIdea());
model.setPhone(sparePartStockAuditParam.getPhone());
model.setRemark(sparePartStockAuditParam.getRemark());
//删除已保存的备件信息
List<SparePartAudit> sparePartAudits = sparePartAuditMapper.findSparePartAuditByStockAuditId(model.getId());
for (SparePartAudit sparePartAudit : sparePartAudits) {
sparePartAudit.setIsDelete(GlobalConstant.DELETE);
sparePartAuditMapper.updateById(sparePartAudit);
}
//新增新编辑备件信息
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
sparePartAudit.setStockAuditId(model.getId());
sparePartAuditMapper.insert(sparePartAudit);
}
BeanUtils.copyProperties(model,sparePartStockAuditParam);
//如果是已取消状态编辑改成未审核
if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
sparePartStockAuditMapper.updateById(model);
}
@ -286,17 +352,12 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
* @param id ID
*/
@Override
public void del(Integer id) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
public void del(Long id) {
SparePartStockAudit model = sparePartStockAuditMapper.findSparePartStockAuditById(id);
Assert.notNull(model, "数据不存在!");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
model.setIsDelete(GlobalConstant.NOT_DELETE);
model.setDeleteTime(new Date());
sparePartStockAuditMapper.updateById(model);
}
@ -433,7 +494,6 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
Assert.notNull(model, "数据不存在!");
model.setAuditState(AuditStateEnum.CANCELED.getStatus()); //取消审核
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
@ -492,4 +552,96 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
}
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
@Transactional
public void receiveAudit(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.findSparePartStockAuditById(sparePartStockAuditParam.getId());
Assert.notNull(model, "数据不存在!");
model.setPurchaseStatus(sparePartStockAuditParam.getPurchaseStatus()); // 配件领用状态 1=未通过2=待管理员审核
model.setPurchaseIdea(sparePartStockAuditParam.getPurchaseIdea()); // 采购意见
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
//获取待审核备件信息
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getPurchaseStatus() == AuditStateEnum.CHECKPENDING.getStatus()){
// 通过审核的出库单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {
SparePart sparePart = sparePartMapper.selectOne(
new QueryWrapper<SparePart>()
.eq("id", sparePartAudit.getSparePartsId())
.eq("is_delete", 0)
.last("limit 1"));
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
if(sparePart.getQuantity() >= sparePartAudit.getCount()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
}else{
throw new OperateException("备件库存数量不足,请联系客服人员!");
}
sparePartMapper.updateById(sparePart);
}
}
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setConsigner(sparePartStockAuditParam.getConsigner()); //发货人
model.setConsignerPhone(sparePartStockAuditParam.getConsignerPhone()); //发货人联系电话
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
model.setPurchaseStatus(AuditStateEnum.WAITFORRECEIVING.getStatus()); // 采购状态 4=待收货
sparePartStockAuditMapper.updateById(model);
}
/**
*
*
* @param sparePartStockAuditParam
*/
@Override
public void receiving(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new QueryWrapper<SparePartStockAudit>()
.eq("id", sparePartStockAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setPurchaseStatus(AuditStateEnum.DONE.getStatus()); // 采购状态 5=已完成
sparePartStockAuditMapper.updateById(model);
}
}

View File

@ -42,7 +42,7 @@ public class MaintenanceRepairParam implements Serializable {
@NotNull(message = "addressId参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "addressId参数值不能少于0", groups = {create.class, update.class})
private Long addressId;
private Integer addressId;
@NotNull(message = "moduleNo参数缺失", groups = {create.class, update.class})
@Length(max = 50, message = "moduleNo参数不能超出50个字符", groups = {create.class, update.class})
@ -60,4 +60,6 @@ public class MaintenanceRepairParam implements Serializable {
@DecimalMin(value = "0", message = "creatorId参数值不能少于0", groups = {create.class, update.class})
private Long creatorId;
private String clientName; //客户姓名
private String receiverName; //接单人
}

View File

@ -1,6 +1,5 @@
package com.hcy.admin.validate.SparePartAudit;
package com.hcy.admin.validate.sparePartAudit;
import io.swagger.models.auth.In;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

View File

@ -4,6 +4,7 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* SparePartAuditVo
@ -23,8 +24,8 @@ public class SparePartAuditListVo implements Serializable {
private String unit; // 单位
private Integer quantity; // 库存数量
private BigDecimal unitPrice; // 单价(元)
private String createTime; // 创建时间
private String updateTime; // 更新时间
private Integer isDelete; // 是否删除: [0=否, 1=是]
private Date createTime; // 创建时间
private String warehouseName; // 所属仓库名
private Integer count; // 出入库数量
}

View File

@ -1,36 +0,0 @@
package com.hcy.admin.vo.SparePartOutWarehouseListVo;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* sparePartOutWarehouseListVo
*/
@Data
public class SparePartOutWarehouseListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Long warehouseId; // 所属仓库
private String consignee; // 收货单位(人员)
private String phone; // 联系电话
private String responsiblePerson; // 经办人
private String handlingTime; // 经办时间
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
private Integer auditResult; // 审核结果0=已通过1=未通过)
private Long auditTime; // 审核时间
private String auditIdea; // 审核意见
private String createTime; // 创建时间
private String updateTime; // 更新时间
private String sparePartAuditId; // 备件审核id
private String consigneePhone; // 收货单位(人员)/电话
private List<SparePartAudit> sparePartAuditList; //待入库的备件
private String warehouseName; // 所属仓库名
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
}

View File

@ -1,6 +1,7 @@
package com.hcy.admin.vo.order;
import com.hcy.admin.vo.client.EquipmentDetailVo;
import com.hcy.admin.vo.order.repair.MaintenanceRepairDetailVo;
import com.hcy.common.entity.client.Equipment;
import lombok.Data;
@ -26,7 +27,7 @@ public class MaintenanceOrderDetailVo implements Serializable {
private Long faultId; // 故障id
private String faultDescription; // 故障描述
private String faultImg; // 故障图片
private Long receiverType; // 接单类型 0-区域派单1-距离派单
private Integer receiverType; // 接单类型 0-区域派单1-距离派单
private Long provinceId; // 省id
private Long cityId; // 市id
private Long districtId; // 区id
@ -45,16 +46,21 @@ public class MaintenanceOrderDetailVo implements Serializable {
private Long familiarFaultId; // 常见维修结论id
private String familiarFaultDescription; // 常见维修结论描述
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
private Date createTime; // 创建时间
private String clientName; // 客户姓名
private String clientDirector; // 客户负责人姓名
private String clientPhone; //客户电话
private Equipment equipment; //设备信息
private EquipmentDetailVo equipment; //设备信息
private String faultName; //故障名称
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
private String receiverPhone; //接单人手机
private Integer clientType; //维修类型
private List<OrderSparePartListVo> sparePartList; // 备件清单
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
}

View File

@ -55,11 +55,6 @@ public class MaintenanceOrderListVo implements Serializable {
private String clientName; // 客户姓名
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
<<<<<<< Updated upstream
private String shortName; //客户简称
=======
private EquipmentModelDetailVo equipmentModel; //设备模块信息
>>>>>>> Stashed changes
}

View File

@ -25,4 +25,5 @@ public class OrderSparePartListVo implements Serializable {
private Integer quantity; // 数量
private BigDecimal totalPrice; // 总价
private String warehouseName; //仓库名称
}

View File

@ -1,8 +1,11 @@
package com.hcy.admin.vo.order.repair;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* MaintenanceRepairVo
@ -12,15 +15,22 @@ public class MaintenanceRepairDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long priorityId; // 优先级 0-普通 1-加急
private String logisticsMode; // 物流方式
private String expressageName; // 快递名称
private String expressageNo; // 快递单号
private Long addressId; // 回寄地址
private Long maintenanceOrderId; //检修单id
private Long priority; // 优先级 0-普通 1-加急
private Integer logisticsMode; // 物流方式
private String expressName; // 快递名称
private String expressNo; // 快递单号
private Integer addressId; // 回寄地址
private String moduleNo; // 模块号
private String brand; // 品牌号
private String moduleImg; // 模块图片
private Long creatorId; // 创建人id
private Date createTime; // 创建时间
private String addressDetail; //地址详情
private String receiver; // 收件人
private String receiverPhone; // 收件人电话
private Integer isReturn; //是否回寄 0-是 1-不回寄
private String faultDescription; //故障详情
private String remark; //备注
}

View File

@ -1,5 +1,6 @@
package com.hcy.admin.vo.order.repair;
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import lombok.Data;
import java.io.Serializable;
@ -14,8 +15,9 @@ public class MaintenanceRepairListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // id
private Long priorityId; // 优先级 0-普通 1-加急
private String logisticsMode; // 物流方式
private Long maintenanceOrderId; //检修单id
private Long priority; // 优先级 0-普通 1-加急
private Integer logisticsMode; // 物流方式
private String expressName; // 快递名称
private String expressNo; // 快递单号
private Long addressId; // 回寄地址
@ -25,4 +27,12 @@ public class MaintenanceRepairListVo implements Serializable {
private Long creatorId; // 创建人id
private Date createTime; // 创建时间
private String orderNo; //工单号
private Integer equipmentId; //设备id
private String clientName; //客户姓名
private String receiverName; //接单人
private String equipmentName; //设备名称
private String director; //负责人
private String phone; //负责人电话
private EquipmentModelDetailVo equipmentModel;
}

View File

@ -1,36 +0,0 @@
package com.hcy.admin.vo.sparePartAllotListVo;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* sparePartAllotListVo
*/
@Data
public class SparePartAllotListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Long importWarehouse; // 调入仓库
private Long exportWarehouse; // 调出仓库
private String remark; // 备注
private String responsiblePerson; // 经办人
private String handlingTime; // 经办时间
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
private Integer auditResult; // 审核结果0=已通过1=未通过)
private Long auditTime; // 审核时间
private String auditIdea; // 审核意见
private String createTime; // 创建时间
private String updateTime; // 更新时间
private String sparePartAuditId; // 备件审核id
private List<SparePartAudit> sparePartAuditList; //待入库的备件
private String importWarehouseName; // 调入仓库名
private String exportWarehouseName; // 调出仓库名
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
}

View File

@ -1,36 +0,0 @@
package com.hcy.admin.vo.sparePartInWarehouse;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* sparePartInWarehouseListVo
*/
@Data
public class SparePartInWarehouseListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Long warehouseId; // 所属仓库
private String supplier; // 供应商
private String phone; // 联系电话
private String responsiblePerson; // 经办人
private String handlingTime; // 经办时间
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
private Integer auditResult; // 审核结果0=已通过1=未通过)
private Long auditTime; // 审核时间
private String auditIdea; // 审核意见
private String createTime; // 创建时间
private String updateTime; // 更新时间
private String sparePartAuditId; // 备件审核id
private String supplierPhone; // 供应商/电话
private List<SparePartAudit> sparePartAuditList; //待入库的备件
private String warehouseName; // 所属仓库名
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
}

View File

@ -1,56 +0,0 @@
package com.hcy.admin.vo.sparePartPurchase;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* SparePartPurchaseListVo
*/
@Data
public class SparePartPurchaseListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Integer receiptType; // 单据类型0=入库单1=出库单2=仓库调拨单)
private Long warehouseId; // 所属仓库
private String consignee; // 收货单位(人员)
private String phone; // 联系电话
private String responsiblePerson; // 经办人
private String handlingTime; // 经办时间
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
private Integer auditResult; // 审核结果0=已通过1=未通过)
private Long auditTime; // 审核时间
private String auditIdea; // 审核意见
private String createTime; // 创建时间
private String updateTime; // 更新时间
private String sparePartAuditId; // 备件审核id
private String consigneePhone; // 收货单位(人员)/电话
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
private String warehouseName; // 所属仓库名
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private String remark; // 备注
private Integer purchaseStatus; //配件状态0=待审核1=未通过2=待管理员审核3=待发货4=待收货5=已完成6=填写中7=收货超期)
private String shippingAddress; //收货地址
private String consigner; //发货人
private String consignerPhone; //发货人联系电话
private String shipAddress; //发货地址
private String logisticsCompany; //物流公司
private String trackingNumber; //物流编号
private Integer deliveryMethod; //配送方式0=物流快递1=上门取件2=送货上门)
private String responsiblePersonPhone; //采购人/联系电话
private String createTimeStart;
private String createTimeEnd;
private String purchaseIdea; //采购意见
private String clientName; // 客户名称
private String clientAddress; // 客户地址
private Date consignerTime; //发货时间
}

View File

@ -1,54 +0,0 @@
package com.hcy.admin.vo.sparePartReceive;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* SparePartReceiveListVo
*/
@Data
public class SparePartReceiveListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Integer receiptType; // 单据类型0=入库单1=出库单2=仓库调拨单)
private Long warehouseId; // 所属仓库
private String consignee; // 收货单位(人员)
private String phone; // 联系电话
private String responsiblePerson; // 经办人
private String handlingTime; // 经办时间
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
private Integer auditResult; // 审核结果0=已通过1=未通过)
private Long auditTime; // 审核时间
private String auditIdea; // 审核意见
private String createTime; // 创建时间
private String updateTime; // 更新时间
private String sparePartAuditId; // 备件审核id
private String consigneePhone; // 收货单位(人员)/电话
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
private String warehouseName; // 所属仓库名
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private String workOrderId; //工单号
private String recipient; //领用员工
private String recipientPhone; //领用员工联系电话
private Integer recipientNumber; //领用数量
private Integer purchaseStatus; //配件领用状态0=待审核1=未通过2=待管理员审核3=待发货4=待收货5=已完成)
private String shippingAddress; //收货地址
private String consigner; //发货人
private String consignerPhone; //发货人联系电话
private String shipAddress; //发货地址
private String logisticsCompany; //物流公司
private String trackingNumber; //物流编号
private Integer deliveryMethod; //配送方式0=物流快递1=上门取件2=送货上门)
private String recipientAndPhone; //领用员工/联系电话
private String handlingTimeStart;
private String handlingTimeEnd;
}

View File

@ -1,12 +1,14 @@
package com.hcy.admin.vo.sparePartStockAudit;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.order.OrderSparePartListVo;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import io.swagger.models.auth.In;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@ -19,11 +21,12 @@ public class SparePartStockAuditDetailVo implements Serializable {
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Long orderId; //订单编
private Integer receiptType; // 单据类型0=入库单1=出库单2=仓库调拨单)
private Long warehouseId; // 所属仓库
private Long importWarehouse; // 调入仓库
private Long exportWarehouse; // 调出仓库
private String supplier; // 供应商
private Long supplier; // 供应商
private String responsiblePerson; // 经办人
private String handlingTime; // 经办时间
private String consignee; // 收货单位(人员)
@ -37,12 +40,10 @@ public class SparePartStockAuditDetailVo implements Serializable {
private String warehouseName; // 所属仓库名
private String importWarehouseName; // 调入仓库名
private String exportWarehouseName; // 调出仓库名
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private Integer outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private String supplierPhone; // 供应商/电话
private String consigneePhone; // 收货单位(人员)/电话
private String workOrderId; //工单号
private String orderId; //订单编号
private String shippingAddress; //收货地址
private String consigner; //发货人
private String consignerPhone; //发货人联系电话
@ -55,5 +56,11 @@ public class SparePartStockAuditDetailVo implements Serializable {
private String recipientPhone; //领用员工联系电话
private Integer recipientNumber; //领用数量
private Integer purchaseStatus; //配件领用状态0=待审核1=未通过2=待管理员审核3=待发货4=待收货5=已完成)
private Date createTime; // 创建时间
private Integer orderType; // 0-检修工单 1-维修工单
private String workOrderNo; //工单号
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
private List<OrderSparePartListVo> orderSparePartListVoList; //订单配件
private String recipientAndPhone; //领用员工/联系电话
}

View File

@ -1,10 +1,13 @@
package com.hcy.admin.vo.sparePartStockAudit;
import com.hcy.admin.vo.SparePartAudit.SparePartAuditListVo;
import com.hcy.admin.vo.order.OrderSparePartListVo;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@ -27,17 +30,15 @@ public class SparePartStockAuditListVo implements Serializable {
private String consignee; // 收货单位(人员)
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
private Integer auditResult; // 审核结果0=已通过1=未通过)
private String auditTime; // 审核时间
private String createTime; // 创建时间
private String updateTime; // 更新时间
private Date auditTime; // 审核时间
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
private String sparePartAuditId; // 备件审核id
private String consigneePhone; // 收货单位(人员)/电话
private String supplierPhone; // 供应商/电话
private List<SparePartAudit> sparePartAuditList; //待入库的备件
private String warehouseName; // 所属仓库名
private String importWarehouseName; // 调入仓库名
private String exportWarehouseName; // 调出仓库名
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private Integer outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private String workOrderId; //工单号
private String orderId; //订单编号
@ -54,4 +55,10 @@ public class SparePartStockAuditListVo implements Serializable {
private Integer recipientNumber; //领用数量
private Integer purchaseStatus; //配件领用状态0=待审核1=未通过2=待管理员审核3=待发货4=待收货5=已完成)
private String workOrderNo; //工单号
private List<SparePartAuditListVo> sparePartAuditList; //待入库的备件
private List<OrderSparePartListVo> orderSparePartListVoList; //订单配件
private String recipientAndPhone; //领用员工/联系电话
private String supplierPhone; // 供应商/电话
private String creator; // 创建人
}

View File

@ -0,0 +1,41 @@
package com.hcy.common.dto.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
*/
@Data
public class MaintenanceRepairDto implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long maintenanceOrderId; //检修单id
private Long priority; // 优先级 0-普通 1-加急
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
private String expressName; // 快递名称
private String expressNo; // 快递单号
private Integer addressId; // 回寄地址
private Integer isReturn; //是否回寄 0-是 1-不回寄
private String moduleNo; // 模块号
private String brand; // 品牌号
private String moduleImg; // 模块图片
private String faultDescription; //故障详情
private String remark; //备注
private Date createTime; // 创建时间
private String orderNo; //工单号
private Long equipmentId; //设备id
private String clientName; //客户姓名
private String receiverName; //接单人
private String equipmentName; //设备名称
private String director; //负责人
private String phone; //负责人电话
}

View File

@ -6,6 +6,7 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
@ -27,9 +28,7 @@ public class SparePartAudit implements Serializable {
private Integer quantity; // 库存数量
private BigDecimal unitPrice; // 单价(元)
private Integer isDelete; // 是否删除: [0=否, 1=是]
private Long createTime; // 创建时间
private Long updateTime; // 更新时间
private Long deleteTime; // 删除时间
private Date createTime; // 创建时间
private Integer count; // 出入库数量
}

View File

@ -17,15 +17,18 @@ public class MaintenanceRepair implements Serializable {
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long priorityId; // 优先级 0-普通 1-加急
private String logisticsMode; // 物流方式
private Long maintenanceOrderId; //检修单id
private Long priority; // 优先级 0-普通 1-加急
private Integer logisticsMode; // 物流方式
private String expressName; // 快递名称
private String expressNo; // 快递单号
private Long addressId; // 回寄地址
private Integer addressId; // 回寄地址
private Integer isReturn; //是否回寄 0-是 1-不回寄
private String moduleNo; // 模块号
private String brand; // 品牌号
private String moduleImg; // 模块图片
private Long creatorId; // 创建人id
private String faultDescription; //故障详情
private String remark; //备注
private Date createTime; // 创建时间
}

View File

@ -21,13 +21,12 @@ public class SparePartStockAudit implements Serializable {
@TableId(value="id", type= IdType.AUTO)
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Long orderId; //订单编号
private Integer receiptType; // 单据类型0=入库单1=出库单2=仓库调拨单)
private Long warehouseId; // 所属仓库
private Long importWarehouse; // 调入仓库
private Long exportWarehouse; // 调出仓库
private String supplier; // 供应商
private String responsiblePerson; // 经办人
private Long handlingTime; // 经办时间
private String consignee; // 收货单位(人员)
private Integer auditState; // 审核状态0=未审核1=已审核2=已取消)
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ -37,11 +36,10 @@ public class SparePartStockAudit implements Serializable {
private String phone; // 联系电话
private String remark; // 备注
private Integer isDelete; // 是否删除: [0=否, 1=是]
private Long createTime; // 创建时间
private Long updateTime; // 更新时间
private Long deleteTime; // 删除时间
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
private Date deleteTime; // 删除时间
private Integer outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private Long orderId; //订单编号
private Integer orderType; // 0-检修工单 1-维修工单
private String shippingAddress; //收货地址
private String consigner; //发货人
@ -56,6 +54,6 @@ public class SparePartStockAudit implements Serializable {
private Integer recipientNumber; //领用数量
private Integer purchaseStatus; //配件领用状态0=待审核1=未通过2=待管理员审核3=待发货4=待收货5=已完成6=填写中7=收货超期)
private String purchaseIdea; //采购意见
private Integer responsiblePersonId; //经办人id
private Date consignerTime; //发货时间
private Integer creatorId;
}

View File

@ -4,10 +4,17 @@ package com.hcy.common.mapper.SparePartAudit;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Mapper
*/
@Mapper
public interface SparePartAuditMapper extends IBaseMapper<SparePartAudit> {
@Select("select * from la_spare_part_audit where stock_audit_id = #{id}")
List<SparePartAudit> findSparePartAuditByStockAuditId(@Param("id") Long id);
}

View File

@ -26,4 +26,7 @@ public interface MaintenanceOrderMapper extends IBaseMapper<MaintenanceOrder> {
*/
@Select("select * from la_maintenance_order where is_delete = 0 and id = #{id}")
MaintenanceOrder findMaintenanceOrderById(@Param("id") Long id);
@Select("select * from la_maintenance_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1")
MaintenanceOrder findLastMaintenanceOrderByTime(@Param("time") String time);
}

View File

@ -1,8 +1,14 @@
package com.hcy.common.mapper.order.repair;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hcy.common.core.PageResult;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.dto.order.MaintenanceOrderDto;
import com.hcy.common.dto.order.MaintenanceRepairDto;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* Mapper
@ -10,4 +16,11 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MaintenanceRepairMapper extends IBaseMapper<MaintenanceRepair> {
@Select("select * from la_maintenance_repair where maintenance_order_id = #{orderId}")
MaintenanceRepair findMaintenanceRepairByOrderId(@Param("orderId") Long orderId);
@Select("select * from la_maintenance_repair where module_no = #{moduleNo}")
MaintenanceRepair findMaintenanceRepairByModuleNo(@Param("moduleNo") String moduleNo);
Page<MaintenanceRepairDto> list(Page page, @Param("param") MaintenanceRepairDto maintenanceRepairDto);
}

View File

@ -2,12 +2,26 @@ package com.hcy.common.mapper.sparePartStockAudit;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* Mapper
*/
@Mapper
public interface SparePartStockAuditMapper extends IBaseMapper<SparePartStockAudit> {
@Select("select * from la_spare_part_stock_audit where is_delete = 0 and receipt_number like concat('%',#{time},'%') order by receipt_number desc limit 1")
SparePartStockAudit findLastSparePartStockAuditByTime(@Param("time") String time);
/**
* id
* @param id id
* @return SparePartStockAudit
*/
@Select("select * from la_spare_part_stock_audit where is_delete = 0 and id = #{id}")
SparePartStockAudit findSparePartStockAuditById(@Param("id") Long id);
}

View File

@ -23,6 +23,19 @@ public interface SystemAuthAdminMapper extends IBaseMapper<SystemAuthAdmin> {
*/
AdminLargeDataDto personnelStatistics();
/**
* id
* @param userId id
* @return SystemAuthAdmin
*/
@Select("select * from la_system_auth_admin where is_delete = 0 and user_id = #{userId}")
SystemAuthAdmin findSystemAuthAdminByUserId(@Param("userId") Integer userId);
/**
* idinxi
* @param id id
* @return SystemAuthAdmin
*/
@Select("select * from la_system_auth_admin where is_delete = 0 and id = #{id}")
SystemAuthAdmin findSystemAuthAdminById(@Param("id") Integer id);
}

View File

@ -0,0 +1,29 @@
package com.hcy.common.utils;
import org.apache.commons.lang3.StringUtils;
public class OrderUtil {
public static String getOrderNo(String orderNo) {
String formatDate = TimeUtil.getCurrentTimeYYYYMMDD();
StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001");
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
if (StringUtils.isEmpty(orderNo)) {
return currentOrderNo.toString();
} else {
int lastOrderNo = Integer.parseInt(orderNo.substring(8));
int length = String.valueOf((lastOrderNo + 1)).length();
StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + "");
//如果流水号长度小于6位则在前面补0
if (length < 6) {
for (int i = 0; i < 6 - length; i++) {
newOrderNo.insert(0, "0");
}
}
return formatDate + newOrderNo;
}
}
}

View File

@ -17,6 +17,8 @@ import java.util.regex.Pattern;
public class TimeUtil {
private static final SimpleDateFormat SDF_YYYY_MM_DD = new SimpleDateFormat("yyyyMMdd");
/**
* ()
*
@ -793,4 +795,9 @@ public class TimeUtil {
long diffInSeconds = endTime - (System.currentTimeMillis() / 1000);
return TimeUnit.SECONDS.toMinutes(diffInSeconds);
}
public static String getCurrentTimeYYYYMMDD(){
//获取当前日期并将其进行格式化
return SDF_YYYY_MM_DD.format(new Date());
}
}

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hcy.common.mapper.order.repair.MaintenanceRepairMapper">
<select id="list" resultType="com.hcy.common.dto.order.MaintenanceRepairDto">
SELECT
lmr.*,
lc.client_name as clientName,
lmo.order_no as orderNo,
lmo.equipment_id as equipmentId,
lu.username as receiverName,
le.name as equipmentName,
lc.director as director,
lc.phone as phone
FROM
la_maintenance_repair AS lmr
LEFT JOIN la_maintenance_order AS lmo ON lmo.id = lmr.maintenance_order_id
LEFT JOIN la_client as lc ON lc.id = lmo.client_id
LEFT JOIN la_user as lu ON lu.id = lmo.receiver_id
LEFT JOIN la_equipment as le ON le.id = lmo.equipment_id
<where>
lmr.maintenance_order_id is not null
<if test="param.clientName != null and param.clientName != ''">
and lc.client_name like concat('%',#{param.clientName},'%')
</if>
<if test="param.receiverName != null and param.receiverName != ''">
and lu.username like concat('%',#{param.receiverName},'%')
</if>
<if test="param.priority != null">
and lmr.priority = #{param.priority}
</if>
<if test="param.logisticsMode != null">
and lmr.logistics_mode = #{param.logisticsMode}
</if>
</where>
order by create_time desc
</select>
</mapper>

View File

@ -95,6 +95,15 @@ public class MaintenanceOrderController {
return AjaxResult.success(iMaintenanceOrderService.detail(id));
}
/**
*
* @return Object
*/
@GetMapping("/getMaintenanceOrderDetail")
public Object getMaintenanceOrderDetail(String modelNo) {
return AjaxResult.success(iMaintenanceOrderService.getMaintenanceOrderDetail(modelNo));
}
/**
*
* @param maintenanceOrderParam
@ -149,4 +158,15 @@ public class MaintenanceOrderController {
iMaintenanceOrderService.updateEquipmentModel(maintenanceOrderParam);
return AjaxResult.success();
}
/**
*
* @param maintenanceOrderParam
* @return Object
*/
@PostMapping("/oldModuleRepair")
public Object oldModuleRepair(@RequestBody MaintenanceOrderParam maintenanceOrderParam) {
iMaintenanceOrderService.oldModuleRepair(maintenanceOrderParam);
return AjaxResult.success();
}
}

View File

@ -54,6 +54,12 @@ public interface IMaintenanceOrderService {
*/
MaintenanceOrderDetailVo detail(Long id);
/**
*
* @return MaintenanceOrderDetailVo
*/
MaintenanceOrderDetailVo getMaintenanceOrderDetail(String modelNo);
/**
* 退
* @param maintenanceOrderParam
@ -83,4 +89,10 @@ public interface IMaintenanceOrderService {
* @param maintenanceOrderParam
*/
void updateEquipmentModel(MaintenanceOrderParam maintenanceOrderParam);
/**
*
* @param maintenanceOrderParam
*/
void oldModuleRepair(MaintenanceOrderParam maintenanceOrderParam);
}

View File

@ -13,6 +13,7 @@ import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.system.SystemAuthAdmin;
@ -31,10 +32,13 @@ import com.hcy.common.mapper.client.EquipmentModelMapper;
import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.order.repair.MaintenanceRepairMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.OrderUtil;
import com.hcy.common.utils.TimeUtil;
import com.hcy.common.utils.ToolsUtil;
import com.hcy.front.FrontThreadLocal;
import com.hcy.front.service.order.IMaintenanceOrderService;
@ -46,6 +50,7 @@ import com.hcy.front.vo.client.EquipmentDetailVo;
import com.hcy.front.vo.client.EquipmentModelDetailVo;
import com.hcy.front.vo.order.MaintenanceOrderDetailVo;
import com.hcy.front.vo.order.MaintenanceOrderListVo;
import com.hcy.front.vo.order.MaintenanceRepairDetailVo;
import com.hcy.front.vo.order.OrderSparePartListVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -105,6 +110,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Resource
EquipmentModelMapper equipmentModelMapper;
@Resource
MaintenanceRepairMapper maintenanceRepairMapper;
private final DecimalFormat df = new DecimalFormat ("#.#");
@Override
@ -115,47 +123,17 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//订单来源
model.setOrderSource(OrderStateEnum.CUSTOMER_REPORT.getStatus());
//接单类型
model.setReceiverType((long) OrderStateEnum.REGIONAL_DISPATCH.getStatus());
model.setReceiverType(OrderStateEnum.REGIONAL_DISPATCH.getStatus());
//订单状态
model.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus());
model.setOrderNo(getOrderNo());
MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.findLastMaintenanceOrderByTime(TimeUtil.getCurrentTimeYYYYMMDD());
model.setOrderNo(OrderUtil.getOrderNo(lastmMaintenanceOrder.getOrderNo()));
model.setCreatorId(FrontThreadLocal.getUserId().longValue());
maintenanceOrderMapper.insert(model);
}
private String getOrderNo() {
//获取当前日期并将其进行格式化
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String formatDate = simpleDateFormat.format(new Date());
StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001");
MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.selectOne(new LambdaQueryWrapper<MaintenanceOrder>()
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.like(MaintenanceOrder::getOrderNo, formatDate)
.orderByDesc(MaintenanceOrder::getOrderNo)
.last("limit 1"));
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
if (lastmMaintenanceOrder == null) {
return currentOrderNo.toString();
} else {
int lastOrderNo = Integer.parseInt(lastmMaintenanceOrder.getOrderNo().substring(8));
int length = String.valueOf((lastOrderNo + 1)).length();
StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + "");
//如果流水号长度小于6位则在前面补0
if (length < 6) {
for (int i = 0; i < 6 - length; i++) {
newOrderNo.insert(0, "0");
}
}
return formatDate + newOrderNo;
}
}
/**
*
*
@ -248,11 +226,30 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
List<MaintenanceOrderListVo> returnData = new LinkedList<>();
Map<Long, String> regionMap = regionService.getRegionMap();
Page<MaintenanceOrderDto> page = maintenanceOrderMapper.list(
new Page<>(pageParam.getPageNo(), pageParam.getPageSize()),maintenanceOrderDto);
for (MaintenanceOrderDto item : page.getRecords()) {
MaintenanceOrderListVo vo = new MaintenanceOrderListVo();
BeanUtils.copyProperties(item, vo);
//设置返修信息
MaintenanceRepair maintenanceRepair = maintenanceRepairMapper.findMaintenanceRepairByOrderId(item.getId());
if(maintenanceRepair != null){
MaintenanceRepairDetailVo maintenanceRepairDetailVo = new MaintenanceRepairDetailVo();
BeanUtils.copyProperties(maintenanceRepair,maintenanceRepairDetailVo);
UserAddress userAddress = userAddressMapper.findUserAddressById(maintenanceRepair.getAddressId());
if(userAddress != null){
maintenanceRepairDetailVo.setAddressDetail(regionMap.get(userAddress.getProvinceId()) +
regionMap.get(userAddress.getCityId()) +
regionMap.get(userAddress.getDistrictId()) +
userAddress.getAddress());
}
vo.setMaintenanceRepair(maintenanceRepairDetailVo);
}
returnData.add(vo);
}
@ -397,9 +394,39 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);
//设置返修信息
MaintenanceRepair maintenanceRepair = maintenanceRepairMapper.findMaintenanceRepairByOrderId(maintenanceOrder.getId());
if(maintenanceRepair != null){
Map<Long, String> regionMap = regionService.getRegionMap();
MaintenanceRepairDetailVo maintenanceRepairDetailVo = new MaintenanceRepairDetailVo();
BeanUtils.copyProperties(maintenanceRepair,maintenanceRepairDetailVo);
UserAddress userAddress = userAddressMapper.findUserAddressById(maintenanceRepair.getAddressId());
if(userAddress != null){
maintenanceRepairDetailVo.setAddressDetail(regionMap.get(userAddress.getProvinceId()) +
regionMap.get(userAddress.getCityId()) +
regionMap.get(userAddress.getDistrictId()) +
userAddress.getAddress());
maintenanceRepairDetailVo.setReceiver(userAddress.getContact());
maintenanceRepairDetailVo.setReceiverPhone(userAddress.getMobile());
}
vo.setMaintenanceRepair(maintenanceRepairDetailVo);
}
return vo;
}
@Override
public MaintenanceOrderDetailVo getMaintenanceOrderDetail(String modelNo) {
Assert.notNull(modelNo,"模块号不能为空");
MaintenanceRepair maintenanceRepair = maintenanceRepairMapper.findMaintenanceRepairByModuleNo(modelNo);
if(maintenanceRepair != null){
return detail(maintenanceRepair.getMaintenanceOrderId());
}else{
return null;
}
}
@Override
@Transactional
public void serviceOfferPrice(MaintenanceOrderParam maintenanceOrderParam) {
@ -504,13 +531,16 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
User user = userMapper.selectById(FrontThreadLocal.getUserId());
UserAddress userAddress = userAddressMapper.findUserAddressById(maintenanceOrderParam.getAddressId());
SparePartStockAudit lastSparePartStockAudit = sparePartStockAuditMapper.findLastSparePartStockAuditByTime(TimeUtil.getCurrentTimeYYYYMMDD());
SparePartStockAudit sparePartStockAudit = new SparePartStockAudit();
sparePartStockAudit.setReceiptNumber(OrderUtil.getOrderNo(lastSparePartStockAudit.getReceiptNumber()));
sparePartStockAudit.setOrderId(maintenanceOrderParam.getId());
sparePartStockAudit.setOrderType(SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
sparePartStockAudit.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
sparePartStockAudit.setOutInWarehouseType(AuditStateEnum.STAFF_MATERIALS.getStatus());
sparePartStockAudit.setConsignee(user.getUsername());
sparePartStockAudit.setPhone(user.getMobile());
sparePartStockAudit.setCreatorId(FrontThreadLocal.getUserId());
//获取检修员选择地址
Map<Long, String> regionMap = regionService.getRegionMap();
sparePartStockAudit.setShippingAddress(regionMap.get(userAddress.getProvinceId()) +
@ -531,6 +561,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
Assert.notNull(maintenanceOrderParam.getFamiliarFaultId(), "结论类型不可为空");
Assert.notNull(maintenanceOrderParam.getFamiliarFaultDescription(), "结论描述不可为空");
//只有维修中和填写回单状态才可以填写回单
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus() &&
maintenanceOrder.getIsConfirmReceipt() == MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()){
@ -555,7 +586,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()){
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(maintenanceOrder.getEquipmentId());
//未替换过创建设备模块信息
//未替换过创建设备模块信息
if(equipmentModel == null){
equipmentModel = new EquipmentModel();
equipmentModel.setEquipmentId(maintenanceOrder.getEquipmentId());
@ -576,4 +607,23 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
}
@Override
public void oldModuleRepair(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在");
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()){
MaintenanceRepair maintenanceRepair = new MaintenanceRepair();
maintenanceRepair.setMaintenanceOrderId(maintenanceOrder.getId());
maintenanceRepair.setId(null);
BeanUtils.copyProperties(maintenanceOrderParam, maintenanceRepair);
maintenanceRepairMapper.insert(maintenanceRepair);
}else{
throw new OperateException("当前订单状态无法进行旧模块返修");
}
}
}

View File

@ -110,7 +110,15 @@ public class MaintenanceOrderParam implements Serializable {
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
private Integer addressId; //地址id
private String modelNo; //模块编码
private Integer isReturn; //是否回寄 0-是 1-不回寄
private Integer addressId; //地址id
private String brand; //品牌
private Long priorityId; // 优先级 0-普通 1-加急
private String logisticsMode; // 物流方式
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String moduleNo; // 模块号
private String moduleImg; // 模块图片
}

View File

@ -2,6 +2,7 @@ package com.hcy.front.vo.order;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import com.hcy.front.vo.client.EquipmentModelDetailVo;
import lombok.Data;
@ -61,4 +62,5 @@ public class MaintenanceOrderDetailVo implements Serializable {
private String familiarFaultName; //结论名称
private List<OrderSparePartListVo> sparePartList; // 备件清单
private EquipmentModelDetailVo equipmentModel; //设备模块信息
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
}

View File

@ -1,5 +1,6 @@
package com.hcy.front.vo.order;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import lombok.Data;
import java.io.Serializable;
@ -58,4 +59,5 @@ public class MaintenanceOrderListVo implements Serializable {
private String clientName; // 客户姓名
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
}

View File

@ -0,0 +1,37 @@
package com.hcy.front.vo.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* MaintenanceRepairVo
*/
@Data
public class MaintenanceRepairDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long maintenanceOrderId; //检修单id
private Long priority; // 优先级 0-普通 1-加急
private Integer logisticsMode; // 物流方式
private String expressName; // 快递名称
private String expressNo; // 快递单号
private Integer addressId; // 回寄地址
private String moduleNo; // 模块号
private String brand; // 品牌号
private String moduleImg; // 模块图片
private Date createTime; // 创建时间
private String addressDetail; //地址详情
private String receiver; // 收件人
private String receiverPhone; // 收件人电话
private Integer isReturn; //是否回寄 0-是 1-不回寄
private String faultDescription; //故障详情
private String remark; //备注
}

View File

@ -0,0 +1,28 @@
package com.hcy.front.vo.order;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* MaintenanceRepairVo
*/
@Data
public class MaintenanceRepairListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // id
private Long priorityId; // 优先级 0-普通 1-加急
private Integer logisticsMode; // 物流方式
private String expressName; // 快递名称
private String expressNo; // 快递单号
private Long addressId; // 回寄地址
private String moduleNo; // 模块号
private String brand; // 品牌号
private String moduleImg; // 模块图片
private Long creatorId; // 创建人id
private Date createTime; // 创建时间
}