Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java
master
wangwei 2 years ago
commit b3bf13592b

@ -25,9 +25,10 @@ public class BasicProcessStatus {
public static final int BASIC_THIRD_PRODUCTS = 4; //往来单位
public static final int BASIC_THIRD_CORP = 5; //往来单位
public static final int BASIC_THIRD_ORDER = 6; //往来单位
public static final int NEW_ALL_DATA = 7; //所有最新数据
public static final int NEW_ALL_BUS = 8;
public static final int NEW_ALL_ORDER = 9;
public static final String NEW_ALL_DATA = "7"; //所有最新数据
public static final String NEW_ALL_BUS = "8";
public static final String NEW_ALL_ORDER = "9";
public static final String ALL_BUS_ORDER = "11";
public static final int NEW_ALL_DI = 10;
public static final int SCHEDULE_NORMAL = 1; //常规任务

@ -231,17 +231,24 @@ public class Constant {
*/
public static final String ORDER_STATUS_AUDITED = "audited";
/**
* -
*/
public static final String ORDER_STATUS_SUP_SEARCH = "supSearch";
public static final String ORDER_STATUS_INVOICE = "supInvoice";
public static final String ORDER_STATUS_INCODE = "supInCode";
/**前端页面查询相关单据类型标识*/
/**
* supDelivery
* supDelAudit
* supInout
* supArrival
* 退 supReturned
* supPurchase
@ -254,9 +261,7 @@ public class Constant {
public static final String ORDER_ACTION_PRE_DETAIL = "preDetail";
public static final String ORDER_ACTION_SUP_DELIVERY = "supDelivery";
public static final String ORDER_ACTION_SUP_INVOICE = "supInvoice";
public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit";
public static final String ORDER_ACTION_SUP_INOUT = "supInout";
}

@ -2,9 +2,11 @@ package com.glxp.api.controller.basic;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.req.basic.FilterBusTypeChangeRequest;
import com.glxp.api.req.system.DeleteRequest;
@ -58,6 +60,7 @@ public class BasicBusTypeChangeController {
* @return
*/
@PostMapping("/basic/bustype/change/insert")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse insertBusType(@RequestBody @Valid BasicBusTypeChangeEntity basicBusTypeChangeEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -79,6 +82,7 @@ public class BasicBusTypeChangeController {
* @return
*/
@PostMapping("/basic/bustype/change/update")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateBusType(@RequestBody @Valid BasicBusTypeChangeEntity basicBusTypeChangeEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -100,6 +104,7 @@ public class BasicBusTypeChangeController {
* @return
*/
@PostMapping("/basic/bustype/change/delete")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse delBussinessType(@RequestBody @Valid DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());

@ -3,9 +3,11 @@ package com.glxp.api.controller.basic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.InvWarehouseEntity;
@ -119,6 +121,7 @@ public class BasicBusTypePreController {
* @return
*/
@PostMapping("/spms/busTypePre/remove")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse removeBuTypePre(@RequestBody BasicBusTypePreEntity basicBusTypePreEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -140,6 +143,7 @@ public class BasicBusTypePreController {
* @return
*/
@PostMapping("/spms/busTypePre/delete")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deleteBusTypePre(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -157,6 +161,7 @@ public class BasicBusTypePreController {
* @return
*/
@PostMapping("/spms/busTypePre/update")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateBusTypePre(@RequestBody BasicBusTypePreEntity basicBusTypePreEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -165,7 +170,7 @@ public class BasicBusTypePreController {
//判断是否重复添加
boolean result = basicBusTypePreService.verifyExists(basicBusTypePreEntity);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!");
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "原单据类型已存在,不允许重复添加!");
}
basicBusTypePreService.updateBusChangeType(basicBusTypePreEntity);
@ -183,6 +188,7 @@ public class BasicBusTypePreController {
* @return
*/
@PostMapping("/spms/busTypePre/insert")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse insertBusTypePre(@RequestBody BasicBusTypePreEntity basicBusTypePreEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -191,7 +197,7 @@ public class BasicBusTypePreController {
//判断是否重复添加
boolean result = basicBusTypePreService.verifyExists(basicBusTypePreEntity);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!");
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "原单据类型已存在,不允许重复添加!");
}
if (StrUtil.isNotBlank(basicBusTypePreEntity.getDefaultInvCode())) {

@ -6,9 +6,12 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.req.basic.BusNoUserRequest;
@ -116,6 +119,7 @@ public class BasicBussinessTypeController extends BaseController {
* @return
*/
@PostMapping(value = "/udiwms/bussinessType/insert")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse insertBussinessType(@RequestBody @Valid BussinessTypeSaveRequest bussinessTypeSaveRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -144,6 +148,7 @@ public class BasicBussinessTypeController extends BaseController {
* @return
*/
@PostMapping("/udiwms/bussinessType/update")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateBussinessType(@RequestBody BussinessTypeSaveRequest bussinessTypeSaveRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@ -171,9 +176,6 @@ public class BasicBussinessTypeController extends BaseController {
public BaseResponse filterJoinByUser(FilterBussinessTypeRequest bussinessTypeFilterRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) {
List<BasicBussinessTypeEntity> bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType());
@ -208,6 +210,7 @@ public class BasicBussinessTypeController extends BaseController {
* @return
*/
@PostMapping("/udiwms/bussinessType/delete")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deleteBussinessType(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@ -350,4 +353,40 @@ public class BasicBussinessTypeController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@GetMapping("/udiwms/busType/change/origin")
public BaseResponse changeOrigins(FilterBussinessTypeRequest bussinessTypeFilterRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
bussinessTypeFilterRequest.setEnable(true);
List<BasicBussinessTypeResponse> bussinessTypeEntities;
bussinessTypeEntities = basicBussinessTypeService.filterList(bussinessTypeFilterRequest);
PageSimpleResponse<BasicBussinessTypeResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setList(bussinessTypeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@GetMapping("/udiwms/busType/change/target")
public BaseResponse changeTarget(FilterBussinessTypeRequest bussinessTypeFilterRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
bussinessTypeFilterRequest.setEnable(true);
bussinessTypeFilterRequest.setMainAction(ConstantType.TYPE_PUT);
List<BasicBussinessTypeResponse> bussinessTypeEntities;
bussinessTypeEntities = basicBussinessTypeService.filterList(bussinessTypeFilterRequest);
PageSimpleResponse<BasicBussinessTypeResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setList(bussinessTypeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
}

@ -1,12 +1,13 @@
package com.glxp.api.controller.basic;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
@ -47,7 +48,7 @@ public class BasicInCodeController {
public BaseResponse filterOrder(FilterOrderRequest filterOrderRequest) {
List<IoOrderResponse> ioOrderEntityList=ioOrderService.filterList(filterOrderRequest);
List<IoOrderResponse> ioOrderEntityList = ioOrderService.filterList(filterOrderRequest);
PageInfo<IoOrderResponse> pageInfo = new PageInfo<>(ioOrderEntityList);
PageSimpleResponse<IoOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
@ -60,7 +61,7 @@ public class BasicInCodeController {
@GetMapping("/udiwms/stock/order/detail/filter")
public BaseResponse filterStockOrderDetail(FilterOrderDetailBizRequest filterOrderDetailBizRequest) {
List<IoOrderDetailBizResponse> ioOrderDetailBizResponseList=ioOrderDetailBizService.filterList(filterOrderDetailBizRequest);
List<IoOrderDetailBizResponse> ioOrderDetailBizResponseList = ioOrderDetailBizService.filterList(filterOrderDetailBizRequest);
PageInfo<IoOrderDetailBizResponse> pageInfo = new PageInfo<>(ioOrderDetailBizResponseList);
PageSimpleResponse<IoOrderDetailBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
@ -70,17 +71,18 @@ public class BasicInCodeController {
}
@PostMapping("/udiwms/stock/order/addOrderPrint")
public BaseResponse addOrderPrint(@RequestBody invInnerOrderprintReques invInnerOrderprintReques){
if(invInnerOrderprintReques.getOrderIdFk()!=null){
Boolean falg=invInnerOrderPrintService.addInCodeList(invInnerOrderprintReques.getOrderIdFk(),invInnerOrderprintReques.isChack());
if(!falg){
return ResultVOUtils.error(999,"生成失败!");
}
}else{
return ResultVOUtils.error(999,"参数错误!");
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addOrderPrint(@RequestBody invInnerOrderprintReques invInnerOrderprintReques) {
if (invInnerOrderprintReques.getOrderIdFk() != null) {
Boolean falg = invInnerOrderPrintService.addInCodeList(invInnerOrderprintReques.getOrderIdFk(), invInnerOrderprintReques.isChack());
if (!falg) {
return ResultVOUtils.error(999, "生成失败!");
}
} else {
return ResultVOUtils.error(999, "参数错误!");
}
return ResultVOUtils.success();
return ResultVOUtils.success();
}
}

@ -1,21 +1,18 @@
package com.glxp.api.controller.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.AcceptOrderResponse;
import com.glxp.api.res.inout.IoCodeLostResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.service.inout.IoCodeLostService;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
@ -35,8 +32,6 @@ public class IoCodeLostController extends BaseController {
@Resource
IoCodeLostService codeLostService;
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/getCodeLost")
public BaseResponse getCodeLost(@RequestBody @Valid IoCodeLostEntity ioCodeLostEntity, BindingResult bindingResult) {
@ -54,6 +49,7 @@ public class IoCodeLostController extends BaseController {
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/updateCodeLost")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateCodeLost(@RequestBody @Valid IoCodeLostEntity ioCodeLostEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());

@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.BaseController;
@ -82,6 +84,10 @@ public class IoOrderController extends BaseController {
if (StrUtil.isNotBlank(filterOrderRequest.getVueType())) {
orderService.setActions(filterOrderRequest);
}
if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) {
orderService.setInvoiceFiltes(filterOrderRequest);
}
String customerId = getCustomerId();
if (!customerId.equals("110")) {
filterOrderRequest.setFromCorp(customerId);
@ -108,6 +114,7 @@ public class IoOrderController extends BaseController {
//新增业务-立即提交
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/submitBiz")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse submitBiz(@RequestBody AddOrderRequest addOrderRequest) {
//校验单据是否已完成
@ -142,6 +149,7 @@ public class IoOrderController extends BaseController {
//新增扫码单据-立即提交
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/submitCodes")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse submitCodes(@RequestBody AddOrderRequest addOrderRequest) {
//校验单据是否已完成
@ -164,6 +172,7 @@ public class IoOrderController extends BaseController {
//新增业务单据,新增扫码单据,等待校验-草稿保存
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/saveOrderWeb")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest) {
IoOrderEntity orderEntity = new IoOrderEntity();
if (StrUtil.isEmpty(addOrderRequest.getAction()))
@ -193,6 +202,7 @@ public class IoOrderController extends BaseController {
//等待校验-立即提交
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/submitOrderWeb")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse submitOrderWeb(@RequestBody AddOrderRequest addOrderRequest) {
//校验单据是否已完成
@ -209,11 +219,11 @@ public class IoOrderController extends BaseController {
if (StrUtil.isNotEmpty(errMsg)) {
return ResultVOUtils.error(500, "单据校验提交失败,请检查后重新提交!");
return ResultVOUtils.error(500, errMsg);
}
errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities);
if (StrUtil.isNotEmpty(errMsg)) {
return ResultVOUtils.error(500, "单据校验提交失败,请检查后重新提交!");
return ResultVOUtils.error(500, errMsg);
}
saveOrderWeb(addOrderRequest);
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
@ -241,6 +251,7 @@ public class IoOrderController extends BaseController {
//未校验单据删除
@AuthRuleAnnotation("")
@PostMapping("udiwms/inout/order/delete")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deletById(@RequestBody DeleteRequest deleteRequest) {
orderService.deleteByBillNo(deleteRequest.getBillNo());
orderDetailBizService.deleteByOrderId(deleteRequest.getBillNo());
@ -254,6 +265,7 @@ public class IoOrderController extends BaseController {
//已验收单据删除、单据编辑删除等
@AuthRuleAnnotation("")
@PostMapping("udiwms/inout/order/finish/delete")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deleteById(@RequestBody DeleteRequest deleteRequest) {
List<String> delBillNos = new ArrayList<>();
if (CollUtil.isNotEmpty(deleteRequest.getBillNos())) {
@ -276,6 +288,7 @@ public class IoOrderController extends BaseController {
//单据编辑,条码减一
@AuthRuleAnnotation("")
@PostMapping("udiwms/inout/code/finish/delete")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse deleteCodeById(@RequestBody IoCodeEntity codeEntity) {
orderService.deleteInvCode(codeEntity.getOrderId(), codeEntity.getCode());
return ResultVOUtils.success("删除成功!");
@ -284,6 +297,7 @@ public class IoOrderController extends BaseController {
//已验收单据撤回
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/order/received/rollback")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse rollbackOrder(String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
@ -307,6 +321,7 @@ public class IoOrderController extends BaseController {
//已校验单据撤回到等待处理
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/order/unReceive/rollback")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse rollUnReceivebackOrder(String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
@ -437,6 +452,7 @@ public class IoOrderController extends BaseController {
* @return
*/
@PostMapping("/udiwms/inout/order/updateOrderInfo")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateOrderInfo(@RequestBody OrderEditRequest orderEditRequest) {
if (null == orderEditRequest || CollUtil.isEmpty(orderEditRequest.getOrderIds())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
@ -472,6 +488,17 @@ public class IoOrderController extends BaseController {
return orderService.submitToThrSys(billNo);
}
@PostMapping("/udiwms/inout/order/updateOrderDetailBiz")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateOrderDetailBiz(@RequestBody IoOrderDetailBizEntity ioOrderDetailBizEntity) {
if (null == ioOrderDetailBizEntity) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
// ioOrderDetailBizEntity.setCheckFileName(ioOrderDetailBizEntity.getCheckFileName().substring(0,ioOrderDetailBizEntity.getCheckFileName().length() - 4));
orderDetailBizService.updateOrderDetailBiz(ioOrderDetailBizEntity);
return ResultVOUtils.success();
}
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
@ -550,5 +577,4 @@ public class IoOrderController extends BaseController {
orderService.update(originOrder);
return ResultVOUtils.success();
}
}

@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.BaseController;
@ -16,6 +18,8 @@ import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.PurOrderDetailEntity;
import com.glxp.api.entity.purchase.PurOrderEntity;
import com.glxp.api.entity.purchase.SupProductEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
@ -31,6 +35,9 @@ import com.glxp.api.res.inout.IoOrderInvoiceResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.purchase.PurOrderDetailService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrOrderDetailService;
@ -98,15 +105,16 @@ public class IoOrderDetailBizController extends BaseController {
SupProductService supProductService;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
SupCertService supCertService;
//录入业务单据详情
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/addBizProduct")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addBizProduct(@RequestBody AddBizProductReqeust addBizProductReqeust) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert");
boolean isVailCert = false;
if (systemParamConfigEntity != null)
isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false;
boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false;
AuthAdmin authAdmin = getUser();
if (addBizProductReqeust.getRelId() == null && CollUtil.isEmpty(addBizProductReqeust.getDatas()))
return ResultVOUtils.error(500, "未选择产品信息");
@ -188,6 +196,7 @@ public class IoOrderDetailBizController extends BaseController {
//修改业务单据详情
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/updateBizProduct")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateBizProduct(@RequestBody IoOrderDetailBizEntity orderDetailBizEntity) {
boolean isExit = orderDetailBizService.isExit(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getId(), orderDetailBizEntity.getOrderIdFk());
if (isExit) {
@ -207,6 +216,7 @@ public class IoOrderDetailBizController extends BaseController {
//选入第三方单据至业务单据
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/addThrOrder")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addThrOrder(@RequestBody ThrOrderEntity thrOrderRequest) {
ThrOrderEntity thrOrderEntity = thrOrderService.findById(thrOrderRequest.getId());
@ -332,6 +342,7 @@ public class IoOrderDetailBizController extends BaseController {
//选入领用单据至业务单据
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/addReceiveOrder")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addReceiveOrder(@RequestBody PurReceiveEntity purReceiveEntity,
BindingResult bindingResult) {
@ -392,8 +403,74 @@ public class IoOrderDetailBizController extends BaseController {
}
@Resource
PurOrderService purOrderService;
@Resource
PurOrderDetailService purOrderDetailService;
//选入领用单据至业务单据
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/addPurOrder")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addPurOrder(@RequestBody PurOrderEntity purOrderEntity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
purOrderEntity = purOrderService.selectById(purOrderEntity.getId());
List<PurOrderDetailEntity> purOrderDetailEntities = purOrderDetailService.findByOrderId(purOrderEntity.getId() + "");
BasicBusTypeChangeEntity basicBusTypeChangeEntity = basicBusTypeChangeService.selectByOriginAction(purOrderEntity.getBillType());
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(basicBusTypeChangeEntity.getTargetAction());
AuthAdmin authAdmin = getUser();
//创建单据
IoOrderEntity orderEntity = new IoOrderEntity();
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
orderEntity.setBillNo(orderNo);
orderEntity.setCreateUser(authAdmin.getId() + "");
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateUser(authAdmin.getId() + "");
orderEntity.setUpdateTime(new Date());
orderEntity.setCustomerId(authAdmin.getCustomerId() + "");
orderEntity.setCorpOrderId(purOrderEntity.getBillNo());
orderEntity.setAction(bussinessTypeEntity.getAction());
orderEntity.setMainAction(bussinessTypeEntity.getMainAction());
orderEntity.setDeptCode(purOrderEntity.getDeptCode());
orderEntity.setInvCode(purOrderEntity.getInvCode());
orderEntity.setFromReceiveBillNo(purOrderEntity.getBillNo());
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);
orderEntity.setFromType(ConstantStatus.FROM_RECEIVE);
orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ);
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderService.insertOrder(orderEntity);
for (PurOrderDetailEntity purReceiveDetailEntity : purOrderDetailEntities) {
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(purReceiveDetailEntity.getProductId().longValue());
ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo());
ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId());
ioOrderDetailBizEntity.setUuidFk(udiRelevanceResponse.getUuid());
ioOrderDetailBizEntity.setNameCode(udiRelevanceResponse.getNameCode());
ioOrderDetailBizEntity.setCoName(udiRelevanceResponse.getCpmctymc());
ioOrderDetailBizEntity.setCertCode(udiRelevanceResponse.getZczbhhzbapzbh());
ioOrderDetailBizEntity.setYlqxzcrbarmc(udiRelevanceResponse.getYlqxzcrbarmc());
ioOrderDetailBizEntity.setManufacturer(udiRelevanceResponse.getManufactory());
ioOrderDetailBizEntity.setMeasname(udiRelevanceResponse.getMeasname());
ioOrderDetailBizEntity.setSpec(udiRelevanceResponse.getGgxh());
ioOrderDetailBizEntity.setPrice(udiRelevanceResponse.getPrice());
ioOrderDetailBizEntity.setSupId(purReceiveDetailEntity.getSupId());
ioOrderDetailBizEntity.setCount(purReceiveDetailEntity.getCount());
orderDetailBizService.insert(ioOrderDetailBizEntity);
}
return ResultVOUtils.success("选入成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/delBizProduct")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse delBizProduct(@RequestBody DeleteRequest deleteRequest) {
return orderDetailBizService.deleteById(Integer.parseInt(deleteRequest.getId())) > 0 ? ResultVOUtils.success("删除成功!") : ResultVOUtils.error(500, "删除失败");
}
@ -424,6 +501,7 @@ public class IoOrderDetailBizController extends BaseController {
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/biz/updateBind")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateBindSup(@RequestBody BizBindUpdateRequest bizBindUpdateRequest) {
@ -447,6 +525,7 @@ public class IoOrderDetailBizController extends BaseController {
* @return
*/
@GetMapping("/udiwms/inout/biz/deleteById")
@Log(title = "发票管理", businessType = BusinessType.DELETE)
public BaseResponse deleteById(Integer id) {
return ResultVOUtils.success(ioOrderInvoiceService.deleteByInvId(id));
@ -461,6 +540,7 @@ public class IoOrderDetailBizController extends BaseController {
*/
@PostMapping("/udiwms/inout/biz/updateById")
@Log(title = "发票管理", businessType = BusinessType.UPDATE)
public BaseResponse deleteById(@RequestBody IoOrderInvoiceRequest ioOrderInvoiceRequest) {
return ResultVOUtils.success(ioOrderInvoiceService.updateByInvId(ioOrderInvoiceRequest));
@ -469,20 +549,17 @@ public class IoOrderDetailBizController extends BaseController {
@PostMapping("/udiwms/inout/biz/insertInvoice")
public BaseResponse insertInvoice(@RequestBody List<IoOrderDetailResultEntity> list) {
if (CollUtil.isEmpty(list)) {
return ResultVOUtils.error(500, "请选入产品!");
}
for (IoOrderDetailResultEntity ioOrderDetailResultEntity : list) {
IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity();
ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailResultEntity.getOrderIdFk());
ioOrderInvoiceEntity.setBindRlFk(ioOrderDetailResultEntity.getBindRlFk() + "");
ioOrderInvoiceEntity.setBatchNo(ioOrderDetailResultEntity.getBatchNo());
ioOrderInvoiceEntity.setProductDate(ioOrderDetailResultEntity.getProductDate());
ioOrderInvoiceEntity.setExpireDate(ioOrderDetailResultEntity.getExpireDate());
boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity);
}
@Log(title = "发票管理", businessType = BusinessType.INSERT)
public BaseResponse insertInvoice(@RequestBody IoOrderDetailBizEntity ioOrderDetailBizEntity) {
IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity();
ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailBizEntity.getOrderIdFk());
ioOrderInvoiceEntity.setBindRlFk(ioOrderDetailBizEntity.getBindRlFk() + "");
ioOrderInvoiceEntity.setBatchNo(ioOrderDetailBizEntity.getBatchNo());
ioOrderInvoiceEntity.setProductDate(ioOrderDetailBizEntity.getProductDate());
ioOrderInvoiceEntity.setExpireDate(ioOrderDetailBizEntity.getExpireDate());
ioOrderInvoiceEntity.setBizIdFk(ioOrderDetailBizEntity.getId());
boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity);
return ResultVOUtils.success("成功");

@ -7,6 +7,7 @@ import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
@ -73,9 +74,15 @@ public class IoOrderDetailResultController extends BaseController {
orderDetailResultRequest.setActions(actions);
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterOrderList(orderDetailResultRequest);
// for (IoOrderDetailResultResponse orderDetailResultResponse : list) {
// if(orderDetailResultResponse.get)
// }
for (IoOrderDetailResultResponse orderDetailResultResponse : list) {
if (orderDetailResultResponse.getMainAction().equals(ConstantType.TYPE_OUT)) {
orderDetailResultResponse.setOutCount(orderDetailResultResponse.getReCount());
orderDetailResultResponse.setInCount(0);
} else {
orderDetailResultResponse.setOutCount(0);
orderDetailResultResponse.setInCount(orderDetailResultResponse.getReCount());
}
}
PageInfo<IoOrderDetailResultResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}

@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.BaseController;
@ -16,16 +18,20 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.EntrustReceEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.http.sync.SpGetHttpClient;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inout.ReviewFinishRequest;
import com.glxp.api.req.inout.ReviewSpmsRequest;
import com.glxp.api.req.inout.UpdateExportStatusRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.AcceptOrderResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.sync.SpsSyncOrderResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.basic.EntrustReceService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.sync.HeartService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils;
@ -109,6 +115,7 @@ public class IoOrderReviewController extends BaseController {
//前端二次审核
@AuthRuleAnnotation("")
@PostMapping("/spms/inout/order/web/updateStatus")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse webUpdateStatus(@RequestBody ReviewFinishRequest updateExportStatusRequest,
BindingResult bindingResult) {
@ -133,6 +140,7 @@ public class IoOrderReviewController extends BaseController {
//前端第三次验收
@AuthRuleAnnotation("")
@PostMapping("/spms/inout/order/third/updateStatus")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse thirdUpdateStatus(@RequestBody ReviewFinishRequest updateExportStatusRequest,
BindingResult bindingResult) {
@ -221,6 +229,7 @@ public class IoOrderReviewController extends BaseController {
//手持终端验收完成后,更新订单状态
@AuthRuleAnnotation("")
@PostMapping("/spms/inout/order/check/updateStatus")
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse updateStatus(@RequestBody UpdateExportStatusRequest updateExportStatusRequest,
BindingResult bindingResult) {
AuthAdmin authAdmin = null;
@ -291,6 +300,7 @@ public class IoOrderReviewController extends BaseController {
supplementOrder.setFromType(ConstantStatus.FROM_REVIEW);
supplementOrder.setMainAction(bussinessTypeEntity.getMainAction());
supplementOrder.setAction(bussinessTypeEntity.getAction());
orderEntity.setBusType(bussinessTypeEntity.getBusType());
//复制码表
List<IoCodeTempEntity> supplementCodes = new ArrayList<>();
warehouseEntities.forEach(
@ -366,6 +376,7 @@ public class IoOrderReviewController extends BaseController {
return false;
}
//前端页面清空,重新验收
@AuthRuleAnnotation("")
@PostMapping("/udiwms/stock/order/acceptClear")
public BaseResponse acceptClear(@RequestBody AcceptOrderResponse acceptOrderEntity) {
@ -388,17 +399,24 @@ public class IoOrderReviewController extends BaseController {
orderService.update(orderEntity);
redisUtil.del(ConstantStatus.REDIS_BILLNO + orderEntity.getBillNo());
redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo());
if (orderEntity.getFromType() == ConstantStatus.FROM_UDISP) {
ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest();
reviewFinishRequest.setOrderId(orderEntity.getBillNo());
spGetHttp.reviewOrder(reviewFinishRequest);
}
//验收完成->进入流程
ioCheckInoutService.checkSecond(orderEntity);
return ResultVOUtils.success("更新成功");
}
//前端第三次验收
//前端第二次次验收
public BaseResponse thirdUpdateReview(AuthAdmin authAdmin, IoOrderEntity orderEntity) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
orderEntity.setReviewUser(authAdmin.getId() + "");
orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderEntity.setCheckTime(new Date());
orderEntity.setDeliveryStatus(ConstantStatus.ORDER_DELIVERY_STATUS_ED);
orderService.update(orderEntity);
redisUtil.del(ConstantStatus.REDIS_BILLNO + orderEntity.getBillNo());
@ -408,4 +426,66 @@ public class IoOrderReviewController extends BaseController {
return ResultVOUtils.success("更新成功");
}
@Resource
HeartService heartService;
@Resource
SpGetHttpClient spGetHttp;
// 新增扫码验收单,本地不存在拉去自助平台待验收单
@AuthRuleAnnotation("")
@PostMapping("/udiwms/order/reviewSpms")
public BaseResponse reviewSpms(@RequestBody ReviewSpmsRequest reviewSpmsRequest) {
String billNo = reviewSpmsRequest.getBillNo();
if (StrUtil.isEmpty(reviewSpmsRequest.getBillNo())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse();
acceptOrderEntity.setBillNo(billNo);
List<IoOrderDetailResultResponse> datas = (List<IoOrderDetailResultResponse>) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo);
if (CollUtil.isNotEmpty(datas)) {
acceptOrderEntity.setOrderDetailEntities(datas);
acceptOrderEntity.setExitAccept(true);
} else {
FilterOrderDetailResultRequest filterOrderDetailResultRequest = new FilterOrderDetailResultRequest();
filterOrderDetailResultRequest.setOrderIdFk(billNo);
List<IoOrderDetailResultResponse> orderDetailResultResponses = orderDetailResultService.filterList(filterOrderDetailResultRequest);
//本地已存在,则直接返回
if (CollUtil.isNotEmpty(orderDetailResultResponses)) {
acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses);
acceptOrderEntity.setExitAccept(false);
} else {
//获取自助平台待审核单据,并插入到数据库
BaseResponse<SpsSyncOrderResponse> baseResponse = spGetHttp.getReviewOrder(reviewSpmsRequest);
if (baseResponse.getCode() == 20000) {
SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData();
List<IoOrderEntity> orderEntities = spsSyncOrderResponse.getOrderEntities();
if (CollUtil.isNotEmpty(orderEntities)) {
IoOrderEntity orderEntity = orderEntities.get(0);
orderEntity.setUpdateTime(null);
orderEntity.setFromType(ConstantStatus.FROM_UDISP);
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
IoOrderEntity temp = orderService.findByBillNo(orderEntity.getBillNo());
if (temp == null) {
orderEntity.setId(null);
orderService.insertOrder(orderEntity);
heartService.insetOrderDb(spsSyncOrderResponse, orderEntity);
}
FilterOrderDetailResultRequest tempRequest = new FilterOrderDetailResultRequest();
tempRequest.setOrderIdFk(billNo);
List<IoOrderDetailResultResponse> detailResultResponses = orderDetailResultService.filterList(tempRequest);
if (CollUtil.isNotEmpty(detailResultResponses)) {
acceptOrderEntity.setOrderDetailEntities(detailResultResponses);
acceptOrderEntity.setExitAccept(false);
}
}
} else {
return ResultVOUtils.error(500, baseResponse.getMessage());
}
}
}
return ResultVOUtils.success(acceptOrderEntity);
}
}

@ -3,18 +3,16 @@ package com.glxp.api.controller.inout;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inout.IoCodeRelEntity;
import com.glxp.api.req.inout.IoOrderRelRequest;
import com.glxp.api.req.purchase.PurApplyRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoCodeLostResponse;
import com.glxp.api.res.inout.IoCodeRelResponse;
import com.glxp.api.res.purchase.PurApplyResponse;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.inout.IoCodeRelService;
import com.glxp.api.util.udi.FilterUdiUtils;
@ -69,6 +67,7 @@ public class ioCodeRelController {
}
@GetMapping("/udi/ioCode/Rel/checkLowProduct")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse checkLowProduct(String upCode, String lowCode) {
UdiProductEntity udiProductEntity = new UdiProductEntity();
@ -131,6 +130,7 @@ public class ioCodeRelController {
@GetMapping("/udi/ioCode/Rel/del")
@Log(title = "单据管理", businessType = BusinessType.DELETE)
public BaseResponse del(String code, String parentCode) {
int count = ioCodeRelServicec.delIoCodeRel(code, parentCode);

@ -1,24 +1,18 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.thread.ThreadUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.inv.InvInnerOrderPdfTempDao;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.entity.system.SystemPDFModuleEntity;
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.req.inout.InspectionPDFTemplateRequest;
import com.glxp.api.req.inv.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.inv.InnerOrderDetailService;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import com.glxp.api.service.inv.InvInnerOrderPdfTempService;
import com.glxp.api.service.inv.InvInnerOrderPrintService;
import com.glxp.api.service.inv.JaspaperService;
@ -29,7 +23,6 @@ import com.glxp.api.util.FileUtils;
import com.glxp.api.util.JasperUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -40,7 +33,10 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
public class InvInnerOrderPrintController {
@ -111,23 +107,23 @@ public class InvInnerOrderPrintController {
SystemPDFTemplateEntity systemPDFTemplateEntity =
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
if (systemPDFTemplateEntity == null) return null;
List<innerOrderPrintRequest> printEntities = new ArrayList<>();
List<innerOrderPrintRequest> mStockPrintEntities = new ArrayList<>();
List<InnerOrderPrintResponse> printEntities = new ArrayList<>();
List<InnerOrderPrintResponse> mStockPrintEntities = new ArrayList<>();
FilterinnerOrderprintRequest filterinnerOrderprintRequest = new FilterinnerOrderprintRequest();
if (stockQRCodeTextPDFTemplateRequest.getOrderId() != null) {
filterinnerOrderprintRequest.setSOrderId(stockQRCodeTextPDFTemplateRequest.getOrderId());
} else {
filterinnerOrderprintRequest.setId(stockQRCodeTextPDFTemplateRequest.getQueryId());
}
List<innerOrderPrintRequest> stockPrintEntities = invInnerOrderPrintService.filterJoinInnerPrint(filterinnerOrderprintRequest);
List<InnerOrderPrintResponse> stockPrintEntities = invInnerOrderPrintService.filterJoinInnerPrint(filterinnerOrderprintRequest);
if (stockPrintEntities != null && stockPrintEntities.size() > 0) {
mStockPrintEntities.addAll(stockPrintEntities);
}
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
for (InnerOrderPrintResponse innerOrderPrintRequest : mStockPrintEntities) {
PdfPrintCountEntity pdfPrintCount = getCount(stockQRCodeTextPDFTemplateRequest.getCountList(), innerOrderPrintRequest);
if (pdfPrintCount != null && pdfPrintCount.getRowCount() > 0) {
for (int i = 0; i < pdfPrintCount.getRowCount(); i++) {
innerOrderPrintRequest clone = new innerOrderPrintRequest();
InnerOrderPrintResponse clone = new InnerOrderPrintResponse();
BeanUtils.copyProperties(innerOrderPrintRequest, clone);
printEntities.add(clone);
}
@ -140,7 +136,7 @@ public class InvInnerOrderPrintController {
if (!FileUtils.isFileExist(dirPath + "/pdfprint")) {
new File(dirPath + "/pdfprint").mkdirs();
}
List<List<innerOrderPrintRequest>> splits = CustomUtil.splitList(printEntities, 100);
List<List<InnerOrderPrintResponse>> splits = CustomUtil.splitList(printEntities, 100);
int index = 0;
List<InvInnerOrderPdfTempEntity> stockPrintTempEntities = new ArrayList<>();
for (int i = 0; i < splits.size(); i++) {
@ -179,7 +175,7 @@ public class InvInnerOrderPrintController {
}
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
for (InnerOrderPrintResponse innerOrderPrintRequest : mStockPrintEntities) {
InvInnerOrderPrintEntity innerOrderPrintEntity = new InvInnerOrderPrintEntity();
innerOrderPrintEntity.setStatus(1);
innerOrderPrintEntity.setId(innerOrderPrintRequest.getId());
@ -189,7 +185,7 @@ public class InvInnerOrderPrintController {
}
public PdfPrintCountEntity getCount(List<PdfPrintCountEntity> countList, innerOrderPrintRequest innerOrderPrintRequest) {
public PdfPrintCountEntity getCount(List<PdfPrintCountEntity> countList, InnerOrderPrintResponse innerOrderPrintRequest) {
for (PdfPrintCountEntity pdfPrintCount : countList) {
if (pdfPrintCount.getQueryId().equals(innerOrderPrintRequest.getId() + "")) {
return pdfPrintCount;

@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
@RestController
@ -57,14 +58,21 @@ public class SyncDataSetController {
) {
SyncDataSetEntity syncDataSetEntity = new SyncDataSetEntity();
BeanUtils.copyProperties(syncDataSetResponse, syncDataSetEntity);
syncDataSetEntity.setUpdateTime(new Date());
syncDataSetEntity.setId(1);
List<SyncDataBustypeEntity> busTypes = syncDataSetResponse.getBusTypes();
syncDataBustypeService.deleteAll();
syncDataBustypeService.deleteAll(1);
if (CollUtil.isNotEmpty(busTypes))
syncDataBustypeService.inserts(busTypes);
syncDataSetEntity.setBusTypes(null);
List<SyncDataBustypeEntity> toInBusTypes = syncDataSetResponse.getToInBusTypes();
syncDataBustypeService.deleteAll(2);
if (CollUtil.isNotEmpty(toInBusTypes))
syncDataBustypeService.inserts(toInBusTypes);
if (CollUtil.isNotEmpty(syncDataSetResponse.getChangeBusTypes())) {
syncDataChangeBustypeService.deleteAll();
syncDataChangeBustypeService.inserts(syncDataSetResponse.getChangeBusTypes());
}
@ -77,6 +85,8 @@ public class SyncDataSetController {
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
//todo 请立即同步至UDI管理系统
return ResultVOUtils.success();
}
}

@ -2,6 +2,7 @@ package com.glxp.api.dao.auth;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.req.auth.FilterInvSubWarehouseRequest;
import com.glxp.api.req.auth.FilterInvWarehouseRequest;
import com.glxp.api.res.auth.InvSubWarehouseResponse;
@ -95,4 +96,6 @@ public interface InvWarehouseDao extends BaseMapperPlus<InvWarehouseDao, InvWare
*/
String selectParentIdByCode(@Param("invCode") String invCode);
}

@ -24,6 +24,7 @@ public interface BasicBussinessTypeDao extends BaseMapperPlus<BasicBussinessType
List<BasicBussinessTypeResponse> filterJoinByUser(FilterBussinessTypeRequest filterBussinessTypeRequest);
List<BasicBussinessTypeResponse> filterJoinByInv(FilterBussinessTypeRequest filterBussinessTypeRequest);
/**
*
@ -71,4 +72,6 @@ public interface BasicBussinessTypeDao extends BaseMapperPlus<BasicBussinessType
* @return
*/
String selectNameByAction(@Param("action") String action);
List<BasicBussinessTypeEntity> selectbyNotAction(@Param("list") List<String> list);
}

@ -1,10 +1,8 @@
package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.entity.inout.IoCodeRelEntity;
import com.glxp.api.req.inout.IoOrderRelRequest;
import com.glxp.api.res.inout.IoCodeLostResponse;
import com.glxp.api.res.inout.IoCodeRelResponse;
import org.apache.ibatis.annotations.Mapper;

@ -4,7 +4,7 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import org.apache.ibatis.annotations.Param;
import io.lettuce.core.dynamic.annotation.Param;
import java.util.List;

@ -3,7 +3,7 @@ package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.req.inv.FilterinnerOrderprintRequest;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import java.util.List;
@ -11,5 +11,5 @@ public interface InvInnerOrderPrintDao extends BaseMapper<InvInnerOrderPrintEnti
List<InvInnerOrderPrintEntity> filterOrderPrintList(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
List<innerOrderPrintRequest> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
}
List<InnerOrderPrintResponse> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvRemindSetEntity;
import com.glxp.api.req.inv.FilterInvRemindSetRequest;
import com.glxp.api.res.inv.InvRemindSetResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -19,4 +20,12 @@ public interface InvRemindSetDao extends BaseMapper<InvRemindSetEntity> {
* @return
*/
List<InvRemindSetResponse> filterList(FilterInvRemindSetRequest filterInvRemindSetRequest);
/**
* ID
*
* @param invId
* @return
*/
InvRemindSetResponse selectInfoByInvId(@Param("invId") Integer invId);
}

@ -1,15 +1,13 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.purchase.PurOrderEntity;
import com.glxp.api.req.purchase.PurOrderRequest;
import com.glxp.api.req.purchase.PurPlanRequest;
import com.glxp.api.res.purchase.PurOrderResponse;
import com.glxp.api.res.purchase.PurPlanResponse;
import java.util.List;
public interface PurOrderDao extends BaseMapper<PurOrderEntity> {
public interface PurOrderDao extends BaseMapperPlus<PurOrderDao, PurOrderEntity, PurOrderEntity> {
List<PurOrderResponse> queryPageList(PurOrderRequest purPlanRequest);
}
}

@ -1,17 +1,18 @@
package com.glxp.api.dao.sync;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.system.SyncDataBustypeEntity;
import com.glxp.api.entity.system.SyncDataChangeBustypesEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface SyncDataBustypeDao {
public interface SyncDataBustypeDao extends BaseMapper<SyncDataBustypeEntity> {
List<SyncDataBustypeEntity> findAll();
boolean deleteAll();
void inserts(@Param("syncDataBustypeEntities") List<SyncDataBustypeEntity> syncDataBustypeEntities);

@ -14,7 +14,7 @@ import java.util.List;
*
*/
@Mapper
public interface ThrBusTypeOriginDao extends BaseMapperPlus<ThrBusTypeOriginDao, ThrBusTypeOriginEntity, ThrBusTypeOriginResponse> {
public interface ThrBusTypeOriginDao extends BaseMapperPlus<ThrBusTypeOriginDao, ThrBusTypeOriginEntity, ThrBusTypeOriginEntity> {
/**
*
@ -47,4 +47,4 @@ public interface ThrBusTypeOriginDao extends BaseMapperPlus<ThrBusTypeOriginDao,
* @return
*/
String selectNameByAction(@Param("originAction") String originAction);
}
}

@ -44,13 +44,13 @@ public class IoOrderDetailBizEntity {
/**
*
*/
@TableField(value = "productDate")
@TableField(value = "productDate", updateStrategy = FieldStrategy.IGNORED)
private String productDate;
/**
*
*/
@TableField(value = "expireDate")
@TableField(value = "expireDate", updateStrategy = FieldStrategy.IGNORED)
private String expireDate;
/**
@ -176,6 +176,16 @@ public class IoOrderDetailBizEntity {
@TableField(value = "bindRlIds")
private String bindRlIds;
@TableField(value = "filePath")
private String filePath;
/**
*
*/
@TableField(value = "checkFileName")
private String checkFileName;
@TableField(exist = false)
private boolean checkSuccess;
@ -183,4 +193,8 @@ public class IoOrderDetailBizEntity {
@TableField(exist = false)
private int scanCount;
@TableField(exist = false)
private String errMsg;
}

@ -188,4 +188,8 @@ public class IoOrderDetailCodeEntity {
@TableField(exist = false)
private int orderCount;
@TableField(exist = false)
private String errMsg;
}

@ -111,6 +111,9 @@ public class IoOrderEntity {
@TableField(value = "auditTime")
private Date auditTime;
@TableField(value = "checkTime")
private Date checkTime;
/**
* ID
*/
@ -226,4 +229,9 @@ public class IoOrderEntity {
@TableField(value = "inCodeStatus")
private int inCodeStatus; //内部码生成状态
@TableField(value = "relKey")
private String relKey; //关联单据唯一键
@TableField(value = "suppleCount")
private Integer suppleCount; //补单次数
}

@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "io_order_invoice")
public class IoOrderInvoiceEntity {
@ -99,10 +100,12 @@ public class IoOrderInvoiceEntity {
private String licenseUrl;
@TableField(value = "remark")
private String remark;
@TableField(value = "bizIdFk")
private Integer bizIdFk;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";

@ -90,6 +90,12 @@ public class InvRemindSetEntity {
@TableField(value = "updateTime")
private Date updateTime;
/**
* 0 1
*/
@TableField(value = "`status`")
private Integer status;
@Override
public String toString() {
return "InvRemindSetEntity{" +

@ -18,7 +18,7 @@ public class BasicDownloadStatusEntity {
private String taskId;
private String idDatas;
private Integer status;
private Integer type;
private String type;
private Date updateTime;
private Integer scheduleType;
private Date startTime;

@ -1,25 +1,26 @@
package com.glxp.api.entity.sync;
import lombok.Data;
import java.util.Date;
import lombok.Data;
@Data
public class BasicExportStatusEntity {
private String id;
private String idDatas;
private Integer status;
private Integer type;
private String type;
private Date updateTime;
private Integer scheduleType;
private Date startTime;
private Date endTime;
private String remark;
private String cacheFilePath;
/**
* -1 0 1
*/
private Integer receiveStatus;
private String receiveStatus;
}

@ -1,16 +1,27 @@
package com.glxp.api.entity.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
*/
@Data
@TableName(value = "sync_data_bustypes")
public class SyncDataBustypeEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField(value = "`action`")
private String action;
@TableField(value = "`name`")
private String name;
@TableField(value = "`outChange`")
private boolean outChange;
@TableField(value = "`orderStatus`")
private Integer orderStatus; //单据状态
@TableField(value = "`direct`")
private int direct; //1:UDI管理系统->SPMS 2:SPMS->UDI管理系统
}

@ -2,44 +2,60 @@ package com.glxp.api.entity.system;
import lombok.Data;
import java.util.Date;
@Data
public class SyncDataSetEntity {
private Integer id;
private boolean typeBus; //业务单据类型
private boolean typeScan; //扫码单据类型
private boolean typeThird; //第三方单据类型
private boolean basicProducts; //耗材字典
private boolean basicCorp; //往来单位字典
private boolean basicInv; //仓库字典
private boolean basicThirdProducts; //第三方产品信息
private boolean basicThirdCorp; //第三方往来信息
private boolean basicThirdInv; //第三方仓库信息
private boolean basicThirdBusOrder; //第三方业务单据
private boolean orderScanFinish; //已完成单据
private boolean dbDiProducts; //DI产品信息
private int typeBus; //业务单据类型
private int typeScan; //扫码单据类型
private int typeThird; //第三方单据类型
private int basicProducts; //耗材字典
private int basicCorp; //往来单位字典
private int basicDept; //部门字典
private int basicInv; //仓库字典
private int basicThirdProducts; //第三方产品信息
private int basicThirdCorp; //第三方往来信息
private int basicThirdInv; //第三方仓库信息
private int basicThirdBusOrder; //第三方业务单据
private int dbDiProducts; //DI产品信息
private boolean downstreamEnable; //上游是否联通
private Integer syncTime; //数据上传间隔时间
private Integer syncDownloadTime; //数据下载间隔时间
private boolean orderUnReceive; //未验收单据
private boolean orderUnCheck; //待校验单据
private String busTypes; //单据类型
private String syncIp;
private boolean sysUser;
private boolean entrustAction;
private int sysUser; //系统用户信息
private int entrustAction; //委托验收设置
private int systemConfig; //系统参数设置
private int printConfig; //打印设置
private int scanChangeConfig; //自动建出入库单设置
private int busChangeConfig; //自动建业务单设置
private int orderScanFinish; //已完成单据
private int orderUnReceive; //未验收单据
private int orderUnCheck; //待校验单据
private Integer orderSyncTime;
private Integer orderSyncDlTime;
private int supCert; //首营资质证书
private boolean unCheckCert;
private boolean checkedCert;
private boolean companyCert;
private boolean manufacturerCert;
private boolean productCert;
private String syncIp; //上级服务地址
private Integer orderSyncTime; //单据向外同步时间
private Integer orderSyncDlTime; //单据向内同步时间
private Integer orderToInSyncTime; //单据向内同步时间
private Integer delaySyncTime;
private int unCheckCert;
private int checkedCert;
private String busTypes;
private String orderSyncStart;
private String basicSyncStart;
private Date updateTime;
private int companyCert;
private int manufacturerCert;
private int productCert;
}

@ -8,14 +8,15 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.entity.sync.IOOrderStatusEntity;
import com.glxp.api.entity.system.SyncDataSetEntity;
import com.glxp.api.req.inout.ReviewFinishRequest;
import com.glxp.api.req.inout.ReviewSpmsRequest;
import com.glxp.api.req.sync.BasicExportStatusRequest;
import com.glxp.api.req.sync.OrderStatusFilterRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.sync.DlOrderResponse;
import com.glxp.api.res.sync.SpsSyncBusOrderResponse;
import com.glxp.api.res.sync.SpsSyncOrderResponse;
import com.glxp.api.res.sync.*;
import com.glxp.api.service.sync.SyncDataSetService;
import com.glxp.api.util.OkHttpCli;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -32,24 +33,79 @@ public class SpGetHttpClient {
@Resource
SyncDataSetService syncDataSetService;
@Value("${API_KEY}")
private String apiKey;
@Value("${API_SECRET}")
private String apiSecret;
public String getIpUrl() {
SyncDataSetEntity syncDataSetEntity = syncDataSetService.findSet();
return syncDataSetEntity.getSyncIp();
}
public String[] buildHeader() {
String[] headers = {"apiKey", apiKey, "apiSecret", apiSecret};
return headers;
}
//上传扫码单据
public BaseResponse<String> postAllOrder(SpsSyncOrderResponse spsSyncOrderResponse) {
String json = JSONUtil.toJsonStr(spsSyncOrderResponse);
String result = okHttpCli.doPostJson(getIpUrl() + "/orderApi/sps/sync/order/upload", json);
String result = okHttpCli.doPostJson(getIpUrl() + "/orderApi/sps/sync/order/upload", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
//上传业务单据
public BaseResponse<String> postAllBusOrder(SpsSyncBusOrderResponse spsSyncOrderResponse) {
String json = JSONUtil.toJsonStr(spsSyncOrderResponse);
String result = okHttpCli.doPostJson(getIpUrl() + "/busOrderApi/sps/sync/busOrder/upload", json);
String result = okHttpCli.doPostJson(getIpUrl() + "/busOrderApi/sps/sync/busOrder/upload", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
//上传单据类型
public BaseResponse<String> postAllBusType(SpsSyncBusResponse spsSyncBusResponse) {
String json = JSONUtil.toJsonStr(spsSyncBusResponse);
String result = okHttpCli.doPostJson(getIpUrl() + "/sps/sync/busType/upload", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
//上传单据类型
public BaseResponse<String> postAllUser(SpsSyncDataResponse syncDataResponse) {
String json = JSONUtil.toJsonStr(syncDataResponse);
String result = okHttpCli.doPostJson(getIpUrl() + "/sps/sync/allUser/upload", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
//获取自助平台验收单据---直连接口
public BaseResponse<SpsSyncOrderResponse> getReviewOrder(ReviewSpmsRequest reviewSpmsRequest) {
String json = JSONUtil.toJsonStr(reviewSpmsRequest);
String result = okHttpCli.doPostJson(getIpUrl() + "/udiwms/order/getReviews", json, buildHeader());
BaseResponse<SpsSyncOrderResponse> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() {
});
return response;
}
//验收自助平台单据--直连接口
public BaseResponse<String> reviewOrder(ReviewFinishRequest reviewFinishRequest) {
String json = JSONUtil.toJsonStr(reviewFinishRequest);
String result = okHttpCli.doPostJson(getIpUrl() + "/spms/inout/order/web/updateStatus", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
@ -60,7 +116,7 @@ public class SpGetHttpClient {
public BaseResponse<PageSimpleResponse<IOOrderStatusEntity>> getOrderStatus() {
Map<String, String> paramMap = new HashMap<>(16);
paramMap.put("status", 1 + "");
String response = okHttpCli.doGet(getIpUrl() + "/spms/inout/order/status", paramMap);
String response = okHttpCli.doGet(getIpUrl() + "/spms/inout/order/status", paramMap, buildHeader());
try {
BaseResponse<PageSimpleResponse<IOOrderStatusEntity>> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<IOOrderStatusEntity>>>() {
@ -77,7 +133,7 @@ public class SpGetHttpClient {
public BaseResponse<List<DlOrderResponse>> getOrders(String orderId) {
Map<String, String> paramMap = new HashMap<>(16);
paramMap.put("orderId", orderId);
String response = okHttpCli.doGet(getIpUrl() + "/spms/inout/order/dlByStatus", paramMap);
String response = okHttpCli.doGet(getIpUrl() + "/spms/inout/order/dlByStatus", paramMap, buildHeader());
try {
BaseResponse<List<DlOrderResponse>> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<DlOrderResponse>>>() {
@ -95,7 +151,7 @@ public class SpGetHttpClient {
orderStatusFilterRequest.setOrderId(orderId);
orderStatusFilterRequest.setStatus(2);
String json = JSONUtil.toJsonStr(orderStatusFilterRequest);
String result = okHttpCli.doPostJson(getIpUrl() + "/spms/inout/order/updateStatus", json);
String result = okHttpCli.doPostJson(getIpUrl() + "/spms/inout/order/updateStatus", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
@ -107,7 +163,7 @@ public class SpGetHttpClient {
Map<String, String> paramMap = new HashMap<>(16);
paramMap.put("type", type);
paramMap.put("status", "3");
String response = okHttpCli.doGet(getIpUrl() + "/spssync/basic/udiinfo/getStatus", paramMap);
String response = okHttpCli.doGet(getIpUrl() + "/spssync/basic/udiinfo/getStatus", paramMap, buildHeader());
try {
BaseResponse<List<BasicExportStatusEntity>> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<BasicExportStatusEntity>>>() {
@ -144,7 +200,7 @@ public class SpGetHttpClient {
paramMap.put("id", basicExportStatusRequest.getId());
if (basicExportStatusRequest.getScheduleType() != null)
paramMap.put("scheduleType", basicExportStatusRequest.getScheduleType() + "");
String response = okHttpCli.doGet(getIpUrl() + "/spssync/basic/udiinfo/getStatus", paramMap);
String response = okHttpCli.doGet(getIpUrl() + "/spssync/basic/udiinfo/getStatus", paramMap, buildHeader());
try {
BaseResponse<List<BasicExportStatusEntity>> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<BasicExportStatusEntity>>>() {
@ -158,12 +214,12 @@ public class SpGetHttpClient {
}
public String getBasicData(String id, int type) {
public String getBasicData(String id, String type) {
BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest();
basicExportStatusRequest.setId(id);
basicExportStatusRequest.setType(type);
String json = JSONUtil.toJsonStr(basicExportStatusRequest);
String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/basic/udiinfo/downloadByStatus", json);
String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/basic/udiinfo/downloadByStatus", json, buildHeader());
return result;
}
@ -172,7 +228,7 @@ public class SpGetHttpClient {
BasicExportStatusRequest basicStatusFilterRequest = new BasicExportStatusRequest();
basicStatusFilterRequest.setId(id);
String json = JSONUtil.toJsonStr(basicStatusFilterRequest);
String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/basic/udiinfo/deleteByStatus", json);
String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/basic/udiinfo/deleteByStatus", json, buildHeader());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});

@ -0,0 +1,35 @@
package com.glxp.api.idc.controller;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.idc.service.ConnectService;
/**
*
*/
@RestController
public class ConnectController {
@Resource
ConnectService connectService;
@RequestMapping(value = "/spssync/common/connect")
@ResponseBody
public BaseResponse connect(HttpServletRequest request, @RequestBody Map<String, Object> params) {
return connectService.connectStatus(request,params);
}
}

@ -0,0 +1,37 @@
package com.glxp.api.idc.controller;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.idc.service.DeleteService;
/**
*
*/
@RestController
public class DeleteController {
@Resource
DeleteService deleteService;
@RequestMapping(value = "/spssync/common/delete")
@ResponseBody
public BaseResponse delete(HttpServletRequest request, @RequestBody Map<String, Object> params) {
if(deleteService.syncDelete(params))
return ResultVOUtils.success();
return ResultVOUtils.error(9999, "失败");
}
}

@ -57,7 +57,14 @@ public class IdcController {
return idcService.receive(request, content, files);
}
@RequestMapping(value = "/spssync/common/once")
@ResponseBody
public BaseResponse once(HttpServletRequest request,@RequestBody Map<String, Object> params) {
//
boolean isUpload = params.get("isUpload")!=null && params.get("isUpload").equals("1") ? true : false ;
return idcService.onceSync( params.get("tableName").toString(), isUpload);
}
//@Log("数据同步测试")
@RequestMapping(value = "/spssync/common/test")
public BaseResponse test(HttpServletRequest request, @RequestBody Map<String, Object> params) {
@ -78,7 +85,17 @@ public class IdcController {
public BaseResponse download(HttpServletRequest request, @RequestBody Map<String, Object> params) {
return idcService.download(request, params);
}
@RequestMapping(value = "/spssync/common/uploadStatus")
@ResponseBody
public BaseResponse uploadStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) {
return idcService.uploadStatus(request, params);
}
@RequestMapping(value = "/spssync/common/downloadStatus")
@ResponseBody
public BaseResponse downloadStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) {
return idcService.downloadStatus(request, params);
}
//@Log("数据同步任务根据任务ID,返回下载成功标记")
@RequestMapping(value = "/spssync/common/success")
@ResponseBody

@ -0,0 +1,12 @@
package com.glxp.api.idc.service;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.glxp.api.common.res.BaseResponse;
/*连通状态服务*/
public interface ConnectService {
BaseResponse connectStatus(HttpServletRequest request,Map<String,Object> params);
}

@ -0,0 +1,10 @@
package com.glxp.api.idc.service;
import java.util.Map;
/*数据中继删除数据处理*/
public interface DeleteService {
boolean syncDelete(String tableName,String uniqueValue);
boolean syncDelete(Map<String,Object> params);
}

@ -9,27 +9,33 @@ import org.springframework.web.multipart.MultipartFile;
import com.glxp.api.common.res.BaseResponse;
/*数据中继数据中心(接收)*/
public interface IdcService {
BaseResponse receive(HttpServletRequest request,
String content,MultipartFile[] files);
BaseResponse receiveJson(HttpServletRequest request,Map<String, Object> params);
BaseResponse uploadFile(HttpServletRequest request,
String content,MultipartFile[] files);
BaseResponse send(Map<String,Object> params);
BaseResponse send(String messageType,String tableName,Map<String,Object> params);
BaseResponse taskList(HttpServletRequest request,Map<String,Object> params);
BaseResponse download(HttpServletRequest request,Map<String,Object> params);
BaseResponse uploadStatus(HttpServletRequest request,Map<String,Object> params);
BaseResponse downloadStatus(HttpServletRequest request,Map<String,Object> params);
public void asyncFetchTask();
public void asyncFetchUdiTask();
BaseResponse downlaodSuccess(HttpServletRequest request,Map<String,Object> params);
public void asyncIdcTask();
void asyncUdiTask();
void asyncSpsTask();
void downloadFile(String fileName,HttpServletResponse response) ;
BaseResponse onceSync(String tableName,boolean isUpload);
}

@ -0,0 +1,84 @@
package com.glxp.api.idc.service.impl;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.idc.DbDao;
import com.glxp.api.idc.service.ConnectService;
import com.glxp.api.idc.utils.IDCUtils;
/*连通检测*/
@Service
public class ConnectServiceImpl implements ConnectService {
private static final Logger logger = LoggerFactory.getLogger(IdcServiceImpl.class);
@Resource
private DbDao dbDao;
private static String NUM_STRS = "⊙①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯";
//⊙①②③④⑤⑥⑦⑧⑨⑩→⊗
@Override
public BaseResponse connectStatus(HttpServletRequest request,Map<String,Object> params) {
int level = 0;
if(params.get("level")!=null) {
level = Integer.valueOf(params.get("level").toString());
} else if(params.get("data")!=null) {
Map data = JSONObject.parseObject(JSON.toJSONString(params.get("data")), Map.class);
if(data.get("level")!=null) {
level = Integer.valueOf(data.get("level").toString());
}
}
level++;
Map<String,Object> map = new HashMap<String,Object>();
map.put("level", level);
Map<String,Object> config = new HashMap<>();
try
{
if(level==0) {
config = dbDao.get("select syncIp as paramValue from sync_data_set limit 1");
} else {
config = dbDao.get("select * from system_param_config where paramKey='upper_server_ip'");
}
} catch (Exception ex) {
}
String msg = "UDI管理系统";
for(int i=1;i<level;i++) {
msg+="→中继服务"+NUM_STRS.substring(i,i+1)+"正常";
}
if(config!=null&&config.get("paramValue")!=null) {
logger.info("next host:"+config.get("paramValue"));
String result = IDCUtils.post(config.get("paramValue") + "/spssync/common/connect", map);
logger.info("result:"+result);
if (!StringUtils.isEmpty(result)&&IDCUtils.isJson(result)) {
BaseResponse object = JSON.parseObject(result, BaseResponse.class);
if(object.getCode()!=20000) {
map.replace("level", level +1);
msg+="→中继服务"+NUM_STRS.substring(level+1,level+2)+"正常";
map.put("msg", msg);
return ResultVOUtils.success(map);
}
return object;
} else {
msg+="→自助平台运行服务连接异常";
map.put("failLevel", level+1);
}
} else {
msg+="自助平台运行正常";
map.put("successLevel", level);
}
map.put("msg", msg);
return ResultVOUtils.success(map);
}
}

@ -0,0 +1,58 @@
package com.glxp.api.idc.service.impl;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson2.JSON;
import com.glxp.api.dao.idc.DbDao;
import com.glxp.api.idc.service.DeleteService;
import com.glxp.api.util.CustomUtil;
@Service
public class DeleteServiceImpl implements DeleteService {
private static final Logger logger = LoggerFactory.getLogger(DeleteServiceImpl.class);
@Resource
private JdbcTemplate jdbcTemplate;
@Resource
private DbDao dbDao;
@Override
public boolean syncDelete(String tableName,String uniqueValue) {
Map<String,Object> map = new HashMap<>();
map.put("tableName", tableName);
map.put("uniqueValue", uniqueValue);
return syncDelete(map);
}
@Override
public boolean syncDelete(Map<String,Object> params) {
createTable();
String sql = "insert into idc_delete (id,tableName,updateTime,uniqueValue) values ('"+CustomUtil.getId()+"','"+params.get("tableName").toString().toLowerCase()+"',now(),'"+JSON.toJSONString(params.get("uniqueValue"))+"')";
if(dbDao.save(sql)>0)
return true;
return false;
}
private void createTable() {
try {
jdbcTemplate.execute("create table idc_delete (id varchar(36),tableName varchar(100),uniqueValue varchar(600),updateTime datetime,PRIMARY KEY (id))");
} catch (Exception e) {
}
try {
jdbcTemplate.execute("create index i_idc_delete_table_name on idc_delete (tableName asc)");
} catch (Exception e) {
}
}
}

@ -1,14 +1,24 @@
package com.glxp.api.idc.utils;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSON;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
@ -129,4 +139,27 @@ public class IDCUtils {
}
}
public static String post(String url, Map<String, Object> params) {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "");
if (params != null)
body = RequestBody.create(mediaType, JSON.toJSONString(params));
Request request = new Request.Builder()
.url(url)
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
String result = "";
try {
Response response = client.newCall(request).execute();
result = response.body().string();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}

@ -0,0 +1,50 @@
package com.glxp.api.idc.utils;
/**
* @author chenqf
*/
public class TableUtils {
/*同步表,格式:同步设置表列名/同步设置表列名(子表时设置,主表不设置)/主表唯一列(多列逗号分隔)/主表关联列/子表关联列/数据库实际表/时间列/图片或文件列/数据条件/说明*/
private static final String[] SYNC_TABLES = {
"typeThird//thr_bustype_origin/id///updateTime///第三方单据类型",
"basicThirdCorp//thr_corp/id///updateTime///第三方往来单位",
"//thr_dept/id///updateTime///第三方部门",
"//thr_inv_products/id///updateTime///第三方库存",
"basicThirdInv//thr_inv_warehouse/id//////第三方仓库",
"basicThirdBusOrder//thr_order/id///updateTime///第三方业务单据",
"/basicThirdBusOrder/thr_order_detail/orderIdFk/id/orderIdFk/updateTime///第三方单据详情",
"basicThirdProducts//thr_products/id///updateTime///第三方产品信息",
"basicType//basic_hosp_type/id///updateTime///物资字典分类",
"basicDept//auth_dept/id///updateTime///部门信息",
"basicInv//auth_warehouse/id///updateTime///仓库信息",
"typeBus//basic_bustype_change/id///updateTime///业务单据类型",
"typeScan//basic_bussiness_type/id///updateTime///扫码单据类型"
};
/**
* "entrustAction//basic_entrust_accept/id///updateTime///委托验收",
* "basicProducts//basic_udirel/id///updateTime///耗材字典",
* "/basicProducts/basic_products/id/uuid/uuid////耗材字典信息详情",
* "basicCorp//basic_corp/id///updateTime///往来单位",
* "//company_product_relevance/id///updateTime///供应商关联信息",
* <p>
* "//sup_cert_set/id///updateTime///供应商资质证书设置",
* "companyCert//sup_company/customerId///updateTime///配送企业",
* "manufacturerCert//sup_manufacturer/id///updateTime///生产企业",
* "productCert//sup_product/id///updateTime///产品资质信息",
* "/companyCert/sup_cert/id/customerId/customerId/updateTime/filePath/type=1/配送企业资质证书信息",
* "/manufacturerCert/sup_cert/id/manufacturerId/manufacturerIdFk/updateTime/filePath/type=2/生产企业资质证书信息",
* "/productCert/sup_cert/id/productId/productIdFk/updateTime/filePath/type=3/产品资质证书信息",
* "//udicompany/id///updateTime///国际库医疗器械注册人信息",
*/
//"dbDiProducts//productinfo/id///updateTime///DI产品信息",
//"basicInv/////////仓库字典",
//"typeBus/////////业务单据类型",
//"typeScan/////////扫码单据类型",
public static String[] syncTables() {
return SYNC_TABLES;
}
}

@ -28,4 +28,6 @@ public class FilterOrderDetailBizRequest extends ListPageRequest {
*
*/
private String productName;
private Long bizIdFk;
}

@ -176,5 +176,11 @@ public class FilterOrderRequest extends ListPageRequest {
private Integer busType;
private Integer inCodeStatus;
private String relKey;
//发票查询
private String supInoivceSearch;
private List<String> invoiceActions1;
private List<String> invoiceActions2;
}

@ -46,4 +46,6 @@ public class FilterUploadOrderRequest extends ListPageRequest {
*/
private String submitStatus;
private Integer busType;
}

@ -0,0 +1,10 @@
package com.glxp.api.req.inout;
import lombok.Data;
@Data
public class ReviewSpmsRequest {
private String billNo;
}

@ -2,6 +2,8 @@ package com.glxp.api.req.inv;
import lombok.Data;
import java.util.List;
/**
*
*/
@ -64,5 +66,9 @@ public class AddInvRemindSetRequest {
*
*/
private String remark;
/**
* ID
*/
private List<String> relIdList;
}

@ -8,7 +8,7 @@ public class BasicDownloadRequest extends ListPageRequest {
private String id;
private String taskId; //任务ID
private Integer status;
private Integer type;
private String type;
private String idDatas;
private Integer scheduleType;
public Integer createType;

@ -7,7 +7,7 @@ import lombok.Data;
public class BasicExportStatusRequest extends ListPageRequest {
private String id;
private Integer status;
private Integer type;
private String type;
private String idDatas;
private Integer scheduleType;
public Integer createType;

@ -122,6 +122,10 @@ public class IoOrderDetailResultResponse {
*/
private int reCount;
private Integer inCount;
private Integer outCount;
/**
*
*/
@ -152,5 +156,9 @@ public class IoOrderDetailResultResponse {
*/
private String remark5;
private int acceptCount;
private String fromCorpName;
private String billTypeName;
private String mainAction;
}

@ -0,0 +1,41 @@
package com.glxp.api.res.inv;
import lombok.Data;
import java.util.Date;
@Data
public class InnerOrderPrintResponse {
private Integer id;
private String udiRlIdFk;
private String udiCode;
private String nameCode;
private String cpmctymc;
private String batchNo;
private String productDate;
private String expireDate;
private String serialNo;
private String codeType;
private String thirdId;
private String thirdName;
private String printStatus;
private String ggxh;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private String warehouseName;
private String warehouseCode;
private String spaceCode;
private String spaceName;
private String thirdSysFk;
private String nnum;
private String genKeyFk;
private String sOrderId;
private String sDetailId;
private Date updateTime;
private Integer count;
private String corpName;
}

@ -80,4 +80,28 @@ public class InvRemindSetResponse {
*/
private String ggxh;
/**
*
*/
private Integer lowStockNum;
/**
*
*/
private Integer overStockNum;
/**
*
*/
private Integer recentDateTime;
/**
* 12
*/
private Integer isDateBy;
/**
* 0 1
*/
private Integer status;
}

@ -0,0 +1,14 @@
package com.glxp.api.res.sync;
import lombok.Data;
import java.util.List;
@Data
public class BaseSyncResponse {
private String taskId;
private List<String> files;
private String updateTime;
}

@ -6,10 +6,10 @@ import lombok.Data;
import java.util.List;
//同步业务单据相关
@Data
public class SpsSyncBusOrderResponse {
public class SpsSyncBusOrderResponse extends BaseSyncResponse {
private String taskId;
private List<PurOrderEntity> purOrderEntities;
private List<PurOrderDetailEntity> purOrderDetailEntities;

@ -0,0 +1,18 @@
package com.glxp.api.res.sync;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.EntrustReceEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import lombok.Data;
import java.util.List;
//同步单据类型相关
@Data
public class SpsSyncBusResponse extends BaseSyncResponse {
private List<BasicBussinessTypeEntity> bussinessTypeEntities;
private List<BasicBusTypeChangeEntity> busTypeChangeEntities;
private List<ThrBusTypeOriginEntity> thrBusTypeOriginEntities;
}

@ -0,0 +1,30 @@
package com.glxp.api.res.sync;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.basic.EntrustReceEntity;
import com.glxp.api.entity.system.SystemPDFModuleEntity;
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.entity.system.SystemPDFTemplateRelevanceEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import lombok.Data;
import java.util.List;
@Data
public class SpsSyncConfigResponse extends BaseSyncResponse {
SystemParamConfigEntity systemParamConfigEntity;
List<EntrustReceEntity> entrustReceEntities;
// 模板相关
List<SystemPDFModuleEntity> systemPDFModuleEntityList;
List<SystemPDFTemplateEntity> systemPDFTemplateEntities;
List<SystemPDFTemplateRelevanceEntity> systemPDFTemplateRelevanceEntities;
// List<SysPdfTemplateRelevanceBizEntity> sysPdfTemplateRelevanceBizEntities;
// List<SysPdfTemplateRelevanceLabelEntity> sysPdfTemplateRelevanceLabelEntities;
// List<SysPdfTemplateRelevanceStatemenEntity> sysPdfTemplateRelevanceStatemenEntities;
List<BasicBusTypePreEntity> basicBusTypePreEntities;
List<BasicBusTypeChangeEntity> basicBusTypeChangeEntities;
}

@ -0,0 +1,32 @@
package com.glxp.api.res.sync;
import com.glxp.api.entity.auth.*;
import lombok.Data;
import java.util.List;
//同步用户信息相关
@Data
public class SpsSyncDataResponse extends BaseSyncResponse {
//用户信息
List<AuthAdmin> authAdminList;
List<InvBusUserEntity> invBusUserEntities;
//部门信息
List<DeptEntity> deptEntityList;
List<DeptUserEntity> deptUserEntities;
//仓库相关
List<InvWarehouseEntity> invWarehouseEntities;
List<WarehouseBussinessTypeEntity> warehouseBussinessTypeEntities;
List<WarehouseUserEntity> warehouseUserEntities;
//货位信息
List<InvSpace> invSpaces;
}

@ -4,19 +4,15 @@ import com.glxp.api.entity.inout.*;
import lombok.Data;
import java.util.List;
//同步扫码单据相关
@Data
public class SpsSyncOrderResponse {
public class SpsSyncOrderResponse extends BaseSyncResponse {
//同步任务ID
private String taskId;
List<IoOrderEntity> orderEntities;
List<IoCodeEntity> codeEntities;
List<IoOrderDetailBizEntity> orderDetailBizEntities;
List<IoOrderDetailCodeEntity> orderDetailCodeEntities;
List<IoOrderDetailResultEntity> orderDetailResultEntities;
List<IoOrderInvoiceEntity> orderInvoiceEntities;
}

@ -10,41 +10,47 @@ import java.util.List;
@Data
public class SyncDataSetResponse {
private Integer id;
private boolean typeBus;
private boolean typeScan;
private boolean typeThird;
private boolean basicProducts;
private boolean basicCorp;
private boolean basicInv;
private boolean basicThirdProducts;
private boolean basicThirdCorp;
private boolean basicThirdInv;
private boolean basicThirdBusOrder;
private boolean dbDiProducts;
private int typeBus; //0:不传输1:由内向外2:由外向内
private int typeScan;
private int typeThird;
private int basicProducts;
private int basicCorp;
private int basicInv;
private int basicDept;
private int basicThirdProducts;
private int basicThirdCorp;
private int basicThirdInv;
private int basicThirdBusOrder;
private int dbDiProducts;
private boolean downstreamEnable;
private boolean orderScanFinish;
private boolean orderUnReceive;
private boolean orderUnCheck;
private int orderScanFinish;
private int orderUnReceive;
private int orderUnCheck;
private Integer syncTime;
private String syncIp;
private Integer syncDownloadTime; //定时下载时间
private boolean sysUser;
private int sysUser;
private List<SyncDataBustypeEntity> busTypes; //扫码单据类型
private List<SyncDataChangeBustypesEntity> changeBusTypes; //业务单据类型
private List<SyncDataPurTypeEntity> purTypeEntities;
private List<SyncDataBustypeEntity> busTypes; //UDI管理系统->SPMS单据类型
private List<SyncDataBustypeEntity> toInBusTypes; //SPMS->UDI管理系统单据类型
private List<SyncDataChangeBustypesEntity> changeBusTypes; //UDI管理系统->业务单据类型
private String orderSyncStart;
private String basicSyncStart;
private boolean entrustAction;
private Integer orderSyncTime;
private Integer orderSyncDlTime;
private int systemConfig;
private int entrustAction;
private int printConfig;
private int scanChangeConfig;
private int busChangeConfig;
private Integer orderSyncTime; //单据向外同步时间
private Integer orderToInSyncTime; //单据向内同步时间
private Integer orderSyncDlTime; //单据向外下载时间
private Integer delaySyncTime;
private int supCert;
private boolean unCheckCert;
private boolean checkedCert;
private boolean companyCert;
private boolean manufacturerCert;
private boolean productCert;
private int unCheckCert;
private int checkedCert;
private int companyCert;
private int manufacturerCert;
private int productCert;
}

@ -7,6 +7,7 @@ import com.glxp.api.res.auth.InvSubWarehouseResponse;
import com.glxp.api.res.auth.InvWarehouseThirdSysResponse;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface InvWarehouseService {
@ -82,5 +83,8 @@ public interface InvWarehouseService {
* @return
*/
List<InvWarehouseEntity> findInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest);
String selectParentIdByCode( String invCode);
String selectParentIdByCode(String invCode);
List<InvWarehouseEntity> findByLastTime(Date lastUpdateTime);
}

@ -3,10 +3,12 @@ package com.glxp.api.service.auth.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.auth.InvWarehouseDao;
import com.glxp.api.dao.thrsys.ThrSystemDao;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.req.auth.FilterInvSubWarehouseRequest;
import com.glxp.api.req.auth.FilterInvWarehouseRequest;
@ -20,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@ -231,4 +234,9 @@ public class InvWarehouseServiceImpl implements InvWarehouseService {
public String selectParentIdByCode(String invCode) {
return invWarehouseDao.selectParentIdByCode(invCode);
}
@Override
public List<InvWarehouseEntity> findByLastTime(Date lastUpdateTime) {
return invWarehouseDao.selectList(new QueryWrapper<InvWarehouseEntity>().gt("updateTime", lastUpdateTime));
}
}

@ -1,9 +1,11 @@
package com.glxp.api.service.basic;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.req.basic.FilterBusTypeChangeRequest;
import com.glxp.api.res.basic.BasicBusTypeChangeResponse;
import java.util.Date;
import java.util.List;
/**
@ -51,4 +53,7 @@ public interface IBasicBusTypeChangeService {
* @return
*/
boolean verifyExists(BasicBusTypeChangeEntity basicBusTypeChangeEntity);
List<BasicBusTypeChangeEntity> findByLastTime(Date lastUpdateTime);
}

@ -4,6 +4,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.req.basic.FilterBussinessTypeRequest;
import com.glxp.api.res.basic.BasicBussinessTypeResponse;
import java.util.Date;
import java.util.List;
/**
@ -21,6 +22,9 @@ public interface IBasicBussinessTypeService {
List<BasicBussinessTypeResponse> filterJoinByUser(FilterBussinessTypeRequest filterBussinessTypeRequest);
List<BasicBussinessTypeResponse> filterJoinByInv(FilterBussinessTypeRequest filterBussinessTypeRequest);
/**
*
*
@ -113,4 +117,8 @@ public interface IBasicBussinessTypeService {
List<BasicBussinessTypeEntity> findByVueType(String vueType);
List<BasicBussinessTypeEntity> selectbyNotAction(List<String> list);
List<BasicBussinessTypeEntity> findByLastTime(Date lastUpdateTime);
}

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicBusTypeChangeDao;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.req.basic.FilterBusTypeChangeRequest;
import com.glxp.api.res.basic.BasicBusTypeChangeResponse;
import com.glxp.api.service.auth.CustomerService;
@ -82,6 +83,11 @@ public class BasicBusTypeChangeServiceImpl implements IBasicBusTypeChangeService
return false;
}
@Override
public List<BasicBusTypeChangeEntity> findByLastTime(Date lastUpdateTime) {
return basicBusTypeChangeDao.selectList(new QueryWrapper<BasicBusTypeChangeEntity>().gt("updateTime", lastUpdateTime));
}
private void setUpdateInfo(BasicBusTypeChangeEntity basicBusTypeChangeEntity) {
Date now = new Date();
String userId = String.valueOf(customerService.getUserBean().getId());

@ -13,6 +13,7 @@ import com.glxp.api.req.basic.FilterBussinessTypeRequest;
import com.glxp.api.res.basic.BasicBussinessTypeResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.system.SystemParamConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -55,6 +56,11 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
return basicBussinessTypeDao.filterJoinByUser(filterBussinessTypeRequest);
}
@Override
public List<BasicBussinessTypeResponse> filterJoinByInv(FilterBussinessTypeRequest filterBussinessTypeRequest) {
return basicBussinessTypeDao.filterJoinByInv(filterBussinessTypeRequest);
}
@Override
public boolean insertBussinessType(BasicBussinessTypeEntity bussinessTypeEntity) {
//设置创建时间和更新时间数据
@ -191,6 +197,10 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
return list;
}
@Resource
SystemParamConfigService systemParamConfigService;
@Override
public List<BasicBussinessTypeEntity> findByVueType(String vueType) {
@ -204,18 +214,38 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
case Constant.ORDER_ACTION_PRE_DETAIL:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("actionType", 3).eq("inStock", true));
.eq("actionType", 3).eq("inStock", true).eq("enable", true));
break;
case Constant.ORDER_ACTION_SUP_DELIVERY:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.eq("spUse", true).eq("inStock", false));
//允许送货单直接入库变更库存,则不判断送货单是否入库
String deliveryInstock = systemParamConfigService.selectValueByParamKey("deliveryInstock");
if (StrUtil.isNotEmpty(deliveryInstock) && deliveryInstock.equals("1")) {
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.gt("spUse", 1).eq("enable", true));
} else {
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.gt("spUse", 1).eq("inStock", false).eq("enable", true));
}
break;
case Constant.ORDER_ACTION_SUP_INVOICE:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.eq("spUse", true).eq("actionType", 1));
.gt("spUse", 0).eq("actionType", 1).eq("enable", true));
break;
case Constant.ORDER_ACTION_SUP_DELAUDIT: //供应商审核送货单
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.gt("spUse", 1).eq("enable", true));
break;
case Constant.ORDER_ACTION_SUP_INOUT: //供应商查询出入库单
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.gt("spUse", 0).eq("enable", true));
break;
default:
break;
@ -252,4 +282,13 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
bussinessTypeEntity.setUpdateTime(now);
}
@Override
public List<BasicBussinessTypeEntity> selectbyNotAction(List<String> list) {
return basicBussinessTypeDao.selectbyNotAction(list);
}
@Override
public List<BasicBussinessTypeEntity> findByLastTime(Date lastUpdateTime) {
return basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>().gt("updateTime", lastUpdateTime));
}
}

@ -297,7 +297,8 @@ public class IoAddInoutService {
public void genOrderDetailCode(IoOrderEntity orderEntity, IoCodeTempEntity codeTempEntity) {
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId());
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId());
// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId());
if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) {
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse));
} else {

@ -1,6 +1,7 @@
package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
@ -8,15 +9,14 @@ import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBusTypePreService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
@ -56,18 +56,21 @@ public class IoChangeInoutService {
SystemParamConfigService systemParamConfigService;
@Resource
IoCodeTempService codeTempService;
@Resource
IoOrderInvoiceService ioOrderInvoiceService;
@Resource
IoOrderDetailBizService orderDetailBizService;
public void changeOrder(IoOrderEntity orderEntity) {
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
} else {
//结束,不生成库存,
}
if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, true);
}
//结束,不生成库存,
}
@ -84,7 +87,7 @@ public class IoChangeInoutService {
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity.getSupplementAll()) {//全量补单
invProductDetailService.insertList(invProductDetailEntities);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity, false);
} else { //缺量补单
List<IoCodeEntity> inList = new ArrayList<>();
for (IoCodeEntity warehouseEntity : codeEnttities) {
@ -106,7 +109,7 @@ public class IoChangeInoutService {
InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode());
invProductDetailService.insert(invProductDetailEntity);
}
buildInOrder(basicBusTypePreEntity, inList, orderEntity);
buildInOrder(basicBusTypePreEntity, inList, orderEntity, false);
}
}
@ -138,7 +141,13 @@ public class IoChangeInoutService {
}
//生成单据
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity) {
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity, boolean isGenInovice) {
if (StrUtil.isEmpty(orderEntity.getRelKey())) {
orderEntity.setRelKey(UUID.fastUUID().toString(true));
orderService.update(orderEntity);
}
if (useInList.size() <= 0) {
return;
}
@ -173,7 +182,7 @@ public class IoChangeInoutService {
if (bussinessChangeTypeEntity.getBeforeTime() != null)
outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime()));
else
outOrder.setCreateTime(DateUtil.fromDate(orderEntity));
outOrder.setCreateTime(new Date()); //不设,默认为当前时间
outOrder.setAction(targetBustypeEntity.getAction());
outOrder.setMainAction(targetBustypeEntity.getMainAction());
outOrder.setBusType(targetBustypeEntity.getBusType());
@ -223,6 +232,8 @@ public class IoChangeInoutService {
outOrder.setCreateUser(null);
outOrder.setReviewUser(null);
orderService.insertOrder(outOrder);
//生成条码
List<IoCodeTempEntity> codeTempEntities = new ArrayList<>();
for (IoCodeEntity warehouseEntity : temps) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
@ -234,20 +245,30 @@ public class IoChangeInoutService {
codeTempEntities.add(codeTempEntity);
}
codeTempService.insertBatch(codeTempEntities);
//根据单据设置状态 1:草稿
if (bussinessChangeTypeEntity.getAuditStatus() != null) {
if (bussinessChangeTypeEntity.getAuditStatus() == 1) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
orderService.update(orderEntity);
} else if (bussinessChangeTypeEntity.getAuditStatus() == 2 || bussinessChangeTypeEntity.getAuditStatus() == 3) {
addInoutService.dealProcess(outOrder);
if (!ioCheckInoutService.checkManual(outOrder.getBillNo())) {
ioCheckInoutService.check(outOrder.getBillNo());
if (isGenInovice) {
//生成发票信息
List<IoOrderInvoiceEntity> invoiceEntities = ioOrderInvoiceService.findByBillNo(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(invoiceEntities)) {
for (IoOrderInvoiceEntity orderInvoiceEntity : invoiceEntities) {
orderInvoiceEntity.setOrderIdFk(outOrder.getBillNo());
orderInvoiceEntity.setId(null);
orderInvoiceEntity.setBizIdFk(null);
orderInvoiceEntity.setUpdateTime(new Date());
ioOrderInvoiceService.insertInvoice(orderInvoiceEntity);
}
}
}
//根据单据设置状态 1:草稿
if (bussinessChangeTypeEntity.getAuditStatus() == 1) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
orderService.update(orderEntity);
} else if (bussinessChangeTypeEntity.getAuditStatus() == 2 || bussinessChangeTypeEntity.getAuditStatus() == 3) {
addInoutService.dealProcess(outOrder);
if (!ioCheckInoutService.checkManual(outOrder.getBillNo())) {
ioCheckInoutService.check(outOrder.getBillNo());
}
}
}
}

@ -1,6 +1,7 @@
package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
@ -44,8 +45,6 @@ public class IoCheckInoutService {
@Resource
IoOrderDetailResultService orderDetailResultService;
@Resource
InvPreinOrderService invPreinOrderService;
@Resource
InvPreinDetailService invPreinDetailService;
@Resource
IoGenInvService genInvService;
@ -208,7 +207,7 @@ public class IoCheckInoutService {
return "请先录入业务详情";
}
IoOrderDetailBizEntity bizEntity = orderDetailBizService.findByUnique(codeEntity.getOrderId(), codeEntity.getRelId(), codeEntity.getBatchNo());
IoOrderDetailBizEntity bizEntity = orderDetailBizService.findByUnique(codeEntity.getOrderId(), codeEntity.getRelId(), codeEntity.getBatchNo(), codeEntity.getProduceDate(), codeEntity.getExpireDate());
if (bizEntity == null) {
return "非此单产品!";
}
@ -237,28 +236,29 @@ public class IoCheckInoutService {
orderService.update(orderEntity);
return;
}
orderDetailBizService.deleteByOrderId(orderEntity.getBillNo());
orderDetailResultService.deleteByOrderId(orderEntity.getBillNo());
orderDetailCodeEntities.forEach(orderDetailCodeEntity ->
{
//生成业务单据
IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity();
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity);
orderDetailBizEntity.setCount(orderDetailCodeEntity.getReCount());
orderDetailBizEntity.setId(null);
orderDetailBizService.insert(orderDetailBizEntity);
if (orderEntity.getFromType() != ConstantStatus.FROM_UDISP) {
orderDetailBizService.deleteByOrderId(orderEntity.getBillNo());
orderDetailResultService.deleteByOrderId(orderEntity.getBillNo());
orderDetailCodeEntities.forEach(orderDetailCodeEntity ->
{
//生成业务单据
IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity();
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity);
orderDetailBizEntity.setCount(orderDetailCodeEntity.getReCount());
orderDetailBizEntity.setId(null);
orderDetailBizService.insert(orderDetailBizEntity);
//生成单据结果
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity);
orderDetailResultEntity.setCount(orderDetailCodeEntity.getReCount());
orderDetailResultEntity.setReCount(orderDetailCodeEntity.getReCount());
orderDetailResultEntity.setId(null);
orderDetailResultService.insert(orderDetailResultEntity);
//生成单据结果
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity);
orderDetailResultEntity.setCount(orderDetailCodeEntity.getReCount());
orderDetailResultEntity.setReCount(orderDetailCodeEntity.getReCount());
orderDetailResultEntity.setId(null);
orderDetailResultService.insert(orderDetailResultEntity);
});
});
}
//临时表转正式表
List<IoCodeTempEntity> codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo());
@ -274,7 +274,7 @@ public class IoCheckInoutService {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
// genLostCode(orderEntity.getBillNo());
genLostCode(orderEntity.getBillNo());
checkThird(orderEntity);
}
@ -303,6 +303,7 @@ public class IoCheckInoutService {
String errMsg = "";
//正向校验
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
String msg = "";
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
if (!bizEntity.isCheckSuccess() && !codeEntity.isCheckSuccess() && checkId(bizEntity, codeEntity) == null
&& checkBatchNo(bizEntity, codeEntity) == null
@ -314,15 +315,23 @@ public class IoCheckInoutService {
bizEntity.setCheckSuccess(true);
bizEntity.setScanCount(codeEntity.getReCount());
codeEntity.setCheckSuccess(true);
} else {
bizEntity.setScanCount(codeEntity.getReCount());
bizEntity.setCheckSuccess(false);
msg = "数量不匹配";
}
break;
}
}
if (StrUtil.isEmpty(msg) && !bizEntity.isCheckSuccess()) {
msg = "三期不匹配";
}
bizEntity.setErrMsg(msg);
}
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
if (!bizEntity.isCheckSuccess()) {
errMsg = errMsg + bizEntity.getCoName() + ";";
errMsg = errMsg + bizEntity.getCoName() + bizEntity.getErrMsg() + ";";
}
}
@ -380,7 +389,7 @@ public class IoCheckInoutService {
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
//生成缺失码
// genLostCode(orderEntity.getBillNo());
genLostCode(orderEntity.getBillNo());
checkThird(orderEntity);
@ -398,28 +407,36 @@ public class IoCheckInoutService {
bizEntity.setCheckSuccess(false);
}
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
String msg = "";
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
if (!bizEntity.isCheckSuccess() && !codeEntity.isCheckSuccess() && checkId(bizEntity, codeEntity) == null
&& checkBatchNo(bizEntity, codeEntity) == null
&& checkProductDate(bizEntity, codeEntity) == null
&& checkExpireDate(bizEntity, codeEntity) == null
) {
if (checkCount(bizEntity, codeEntity) == null) {
bizEntity.setCheckSuccess(true);
codeEntity.setCheckSuccess(true);
bizEntity.setScanCount(codeEntity.getReCount());
} else {
msg = "数量不匹配";
bizEntity.setScanCount(codeEntity.getReCount());
bizEntity.setCheckSuccess(false);
}
break;
}
}
if (StrUtil.isEmpty(msg) && !bizEntity.isCheckSuccess()) {
msg = "三期不匹配";
}
bizEntity.setErrMsg(msg);
}
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
if (!bizEntity.isCheckSuccess()) {
errMsg = errMsg + bizEntity.getCoName() + ";";
errMsg = errMsg + bizEntity.getCoName() + bizEntity.getErrMsg() + ";";
}
}
return errMsg;
@ -531,17 +548,21 @@ public class IoCheckInoutService {
}
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
String msg = "";
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
if (!bizEntity.isCheckSuccess() && !codeEntity.isCheckSuccess()
&& checkId(bizEntity, codeEntity) == null
&& checkBatchNo(bizEntity, codeEntity) == null
&& checkProductDate(bizEntity, codeEntity) == null
&& checkExpireDate(bizEntity, codeEntity) == null
) {
if (checkCount(bizEntity, codeEntity) == null) {
bizEntity.setCheckSuccess(true);
codeEntity.setCheckSuccess(true);
codeEntity.setOrderCount(bizEntity.getCount());
} else {
msg = "数量不匹配";
codeEntity.setCheckSuccess(false);
codeEntity.setOrderCount(bizEntity.getCount());
}
@ -550,12 +571,16 @@ public class IoCheckInoutService {
codeEntity.setCheckSuccess(false);
}
}
if (StrUtil.isEmpty(msg) && !codeEntity.isCheckSuccess()) {
msg = "三期不匹配";
}
codeEntity.setErrMsg(msg);
}
String errMsg = "";
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
if (!codeEntity.isCheckSuccess()) {
errMsg = errMsg + codeEntity.getCoName() + ";";
errMsg = errMsg + codeEntity.getCoName() + codeEntity.getErrMsg() + ";";
}
}
return errMsg;
@ -633,7 +658,7 @@ public class IoCheckInoutService {
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_REW);
orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderEntity.setCheckTime(new Date());
orderService.update(orderEntity);
checkSecond(orderEntity);
}
@ -716,6 +741,11 @@ public class IoCheckInoutService {
}
}
if (preInOrder.size() > 0) {
if (StrUtil.isEmpty(orderEntity.getRelKey())) {
orderEntity.setRelKey(UUID.fastUUID().toString(true));
}
String preInBillNo = "";
boolean isBreak = false;
for (String key : preInOrder.keySet()) {
@ -723,6 +753,7 @@ public class IoCheckInoutService {
preInBillNo = preInBillNo + "," + key;
IoOrderEntity preInEntity = orderService.findByBillNo(key);
preInEntity.setPreOutBillNo(orderEntity.getBillNo());
preInEntity.setRelKey(orderEntity.getRelKey());
orderService.update(preInEntity);
BasicBussinessTypeEntity preBusType = basicBussinessTypeService.findByAction(preInEntity.getAction());
//预验收不删除单号,方便后续查询
@ -776,7 +807,6 @@ public class IoCheckInoutService {
}
}
//校验是否是不入库存单据
if (bussinessTypeEntity.isInStock()) {
// if (bussinessTypeEntity.getBusType() == ConstantStatus.BUS_TYPE_NORMAL) {

@ -1,7 +1,6 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoCodeRelEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.req.inout.IoOrderRelRequest;
import com.glxp.api.res.inout.IoCodeRelResponse;

@ -65,7 +65,6 @@ public class IoGenInvService {
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderId);
//生成库存产品表
List<InvProductEntity> invProductEntities = new ArrayList<>();
for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) {
InvProductEntity invProductEntity = invProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode());
if (invProductEntity == null) {

@ -14,7 +14,7 @@ public interface IoOrderDetailBizService {
List<IoOrderDetailBizEntity> findByOrderId(String orderId);
List<IoOrderDetailBizEntity> findByOrderIdAndNameCode(String orderId,boolean chack);
List<IoOrderDetailBizEntity> findByOrderIdAndNameCode(String orderId, boolean chack);
int insert(IoOrderDetailBizEntity orderDetailBizEntity);
@ -28,14 +28,16 @@ public interface IoOrderDetailBizService {
boolean isExit(Long relId, String bacthNo, Integer ignoreId, String orderId);
IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo);
IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo, String productDate, String expireDate);
List<IoOrderDetailBizResponse> filterList(FilterOrderDetailBizRequest orderDetailBizRequest);
IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo,String bindRlFk);
IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk);
List<IoOrderDetailBizEntity> checkOrderList(String orderId);
List<IoOrderInvoiceResponse> filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest);
Boolean updateOrderDetailBiz(IoOrderDetailBizEntity ioOrderDetailBizEntity);
}

@ -1,11 +1,15 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest;
import java.util.List;
public interface IoOrderInvoiceService {
List<IoOrderInvoiceEntity> findByBillNo(String billNo);
boolean deleteByInvId(Integer id);
boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest);

@ -7,6 +7,7 @@ import com.glxp.api.req.inout.FilterUploadOrderRequest;
import com.glxp.api.req.inout.OrderEditRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import java.util.Date;
import java.util.List;
public interface IoOrderService {
@ -14,8 +15,6 @@ public interface IoOrderService {
List<IoOrderEntity> selectAll();
List<IoOrderEntity> findByStatus(String action, Integer status);
List<IoOrderEntity> findAll(FilterOrderRequest filterOrderRequest);
List<IoOrderEntity> isExitRepeat(String corpOrderId, String billNo);
@ -24,6 +23,8 @@ public interface IoOrderService {
IoOrderEntity findByBillNo(String billNO);
List<IoOrderEntity> findByStatus(String action, Integer status, Date lastUpdateTime);
int insertOrder(IoOrderEntity orderEntity);
int insertOrUpdate(IoOrderEntity orderEntity);
@ -78,6 +79,8 @@ public interface IoOrderService {
List<String> setActions(FilterOrderRequest filterOrderRequest);
void setInvoiceFiltes(FilterOrderRequest filterOrderRequest);
/**
*
*

@ -38,14 +38,14 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
@Override
public List<IoOrderDetailBizEntity> findByOrderIdAndNameCode(String orderId, boolean chack) {
QueryWrapper<IoOrderDetailBizEntity> ew=new QueryWrapper<>();
if(StrUtil.isNotEmpty(orderId)){
ew.eq("orderIdFk",orderId);
QueryWrapper<IoOrderDetailBizEntity> ew = new QueryWrapper<>();
if (StrUtil.isNotEmpty(orderId)) {
ew.eq("orderIdFk", orderId);
}
// if(chack){
// ew.isNull("nameCode");
// }
List<IoOrderDetailBizEntity> ioOrderDetailBizEntityList=ioOrderDetailBizDao.selectList(ew);
List<IoOrderDetailBizEntity> ioOrderDetailBizEntityList = ioOrderDetailBizDao.selectList(ew);
return ioOrderDetailBizEntityList;
}
@ -84,9 +84,17 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
}
@Override
public IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo) {
return ioOrderDetailBizDao.selectOne(new QueryWrapper<IoOrderDetailBizEntity>().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo)
.isNull(StrUtil.isEmpty(bacthNo), "batchNo"));
public IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo, String productDate, String expireDate) {
return ioOrderDetailBizDao.selectOne(new QueryWrapper<IoOrderDetailBizEntity>()
.eq("orderIdFk", orderId).eq("bindRlFk", relId)
.eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo)
.isNull(StrUtil.isEmpty(bacthNo), "batchNo")
.eq(StrUtil.isNotEmpty(productDate), "productDate", productDate)
.isNull(StrUtil.isEmpty(productDate), "productDate")
.eq(StrUtil.isNotEmpty(expireDate), "expireDate", expireDate)
.isNull(StrUtil.isEmpty(expireDate), "expireDate")
);
}
@Override
@ -102,14 +110,14 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
@Override
public IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk) {
QueryWrapper<IoOrderDetailBizEntity> ew=new QueryWrapper<>();
QueryWrapper<IoOrderDetailBizEntity> ew = new QueryWrapper<>();
if (StrUtil.isNotEmpty(batchNo)) {
ew.eq("batchNo",batchNo);
ew.eq("batchNo", batchNo);
}
if (StrUtil.isNotEmpty(bindRlFk)) {
ew.eq("bindRlFk",bindRlFk);
ew.eq("bindRlFk", bindRlFk);
}
IoOrderDetailBizEntity ioOrderDetailBizEntity=ioOrderDetailBizDao.selectOne(ew);
IoOrderDetailBizEntity ioOrderDetailBizEntity = ioOrderDetailBizDao.selectOne(ew);
return ioOrderDetailBizEntity;
}
@ -133,4 +141,9 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
return ioOrderDetailBizDao.filterListInv(orderDetailBizRequest);
}
@Override
public Boolean updateOrderDetailBiz(IoOrderDetailBizEntity ioOrderDetailBizEntity) {
return ioOrderDetailBizDao.updateById(ioOrderDetailBizEntity) > 0;
}
}

@ -1,14 +1,17 @@
package com.glxp.api.service.inout.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.dao.inout.IoOrderInvoiceMapper;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest;
import com.glxp.api.service.inout.IoOrderInvoiceService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.glxp.api.service.inout.IoOrderInvoiceService;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
@ -16,20 +19,26 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService {
@Resource
IoOrderInvoiceMapper ioOrderInvoiceMapper;
@Override
public List<IoOrderInvoiceEntity> findByBillNo(String orderIdFk) {
return ioOrderInvoiceMapper.selectList(new QueryWrapper<IoOrderInvoiceEntity>().eq("orderIdFk", orderIdFk));
}
@Override
public boolean deleteByInvId(Integer id) {
return this.ioOrderInvoiceMapper.deleteById(id)>0;
return this.ioOrderInvoiceMapper.deleteById(id) > 0;
}
@Override
public boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest) {
IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity();
BeanUtils.copyProperties(ioOrderInvoiceRequest,ioOrderInvoiceEntity);
return this.ioOrderInvoiceMapper.updateById(ioOrderInvoiceEntity)>0;
BeanUtils.copyProperties(ioOrderInvoiceRequest, ioOrderInvoiceEntity);
return this.ioOrderInvoiceMapper.updateById(ioOrderInvoiceEntity) > 0;
}
@Override
public boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) {
return ioOrderInvoiceMapper.insertInvoice(ioOrderInvoiceEntity);
return ioOrderInvoiceMapper.insert(ioOrderInvoiceEntity) > 0;
}
}

@ -103,12 +103,6 @@ public class IoOrderServiceImpl implements IoOrderService {
return orderDao.selectList();
}
@Override
public List<IoOrderEntity> findByStatus(String action, Integer status) {
return orderDao.selectList(new QueryWrapper<IoOrderEntity>().eq("action", action).eq("status", status));
}
@Override
public List<IoOrderEntity> findAll(FilterOrderRequest filterOrderRequest) {
QueryWrapper<IoOrderEntity> queryWrapper = new QueryWrapper<IoOrderEntity>()
@ -143,6 +137,11 @@ public class IoOrderServiceImpl implements IoOrderService {
return orderDao.selectOne(new QueryWrapper<IoOrderEntity>().eq("billNo", billNO));
}
@Override
public List<IoOrderEntity> findByStatus(String action, Integer status, Date lastUpdateTime) {
return orderDao.selectList(new QueryWrapper<IoOrderEntity>().eq("action", action).eq("status", status).gt("updateTime", lastUpdateTime));
}
@Override
public int insertOrder(IoOrderEntity orderEntity) {
orderEntity.setId(null);
@ -532,10 +531,6 @@ public class IoOrderServiceImpl implements IoOrderService {
filterOrderRequest.setStatuses(Arrays.asList(5, 8));
filterOrderRequest.setDealStatuses(Arrays.asList(2));
break;
case Constant.ORDER_STATUS_WAIT_AUDITED:
filterOrderRequest.setStatuses(Arrays.asList(10));
filterOrderRequest.setDealStatuses(Arrays.asList(3, 4));
break;
case Constant.ORDER_STATUS_AUDITED:
filterOrderRequest.setStatuses(Arrays.asList(7));
filterOrderRequest.setDealStatuses(Arrays.asList(3, 4));
@ -544,6 +539,20 @@ public class IoOrderServiceImpl implements IoOrderService {
filterOrderRequest.setStatuses(Arrays.asList(5, 7));
filterOrderRequest.setDealStatuses(Arrays.asList(2, 3));
break;
case Constant.ORDER_STATUS_INVOICE:
filterOrderRequest.setStatuses(Arrays.asList(5, 10, 7));
filterOrderRequest.setDealStatuses(Arrays.asList(3, 4));
break;
case Constant.ORDER_STATUS_INCODE:
filterOrderRequest.setStatuses(Arrays.asList(1, 3, 5, 10, 7));
filterOrderRequest.setDealStatuses(Arrays.asList(1, 2, 3, 4));
break;
case Constant.ORDER_STATUS_WAIT_AUDITED:
filterOrderRequest.setStatuses(Arrays.asList(10, 7));
filterOrderRequest.setDealStatuses(Arrays.asList(3, 4));
break;
default:
break;
}
@ -562,6 +571,25 @@ public class IoOrderServiceImpl implements IoOrderService {
return actions;
}
@Override
public void setInvoiceFiltes(FilterOrderRequest filterOrderRequest) {
List<BasicBussinessTypeEntity> bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("inStock", false)
.gt("spUse", 1).eq("actionType", 1).eq("enable", true));
List<String> actions1 = null;
actions1 = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList());
filterOrderRequest.setInvoiceActions1(actions1);
List<BasicBussinessTypeEntity> bussinessTypeEntities2 = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.eq("inStock", true)
.gt("spUse", 0).eq("actionType", 1).eq("enable", true));
List<String> actions2 = null;
actions2 = bussinessTypeEntities2.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList());
filterOrderRequest.setInvoiceActions2(actions2);
}
@Override
public List<IoOrderEntity> filterOrderTrace(String billNo) {
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().eq("billNo", billNo));
@ -705,28 +733,31 @@ public class IoOrderServiceImpl implements IoOrderService {
* @return
*/
private List<IoOrderEntity> getAllOrder(IoOrderEntity order) {
Set<String> billNos = new HashSet<>();
billNos.add(order.getBillNo());
getLinkedBillNo(order.getBillNo(), billNos);
//去除本单的单据号
Iterator<String> iterator = billNos.iterator();
while (iterator.hasNext()) {
if (iterator.next().equals(order.getBillNo())) {
iterator.remove();
break;
}
}
ArrayList<IoOrderEntity> orders = new ArrayList<>();
if (CollUtil.isNotEmpty(billNos)) {
List<IoOrderEntity> list = orderDao.selectList(new QueryWrapper<IoOrderEntity>().in("billNo", billNos).orderByDesc("id"));
orders.addAll(list);
}
// Set<String> billNos = new HashSet<>();
// billNos.add(order.getBillNo());
List<IoOrderEntity> orderEntities = orderDao.selectList(new QueryWrapper<IoOrderEntity>().eq("relKey", order.getRelKey()));
// getLinkedBillNo(order.getBillNo(), billNos);
//
// //去除本单的单据号
// Iterator<String> iterator = billNos.iterator();
// while (iterator.hasNext()) {
// if (iterator.next().equals(order.getBillNo())) {
// iterator.remove();
// break;
// }
// }
//
// ArrayList<IoOrderEntity> orders = new ArrayList<>();
// if (CollUtil.isNotEmpty(billNos)) {
// List<IoOrderEntity> list = orderDao.selectList(new QueryWrapper<IoOrderEntity>().in("billNo", billNos).orderByDesc("id"));
// orders.addAll(list);
// }
//将查询入口单据放在第一位的顺序
orders.add(0, order);
return orders;
// orders.add(0, order);
return orderEntities;
}
/**

@ -1,11 +1,10 @@
package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.req.inv.DeleteStPrintTempRequest;
import com.glxp.api.req.inv.FilterinnerOrderprintRequest;
import com.glxp.api.req.inv.InnerOrderQRCodeTextPDFTemplateRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import java.util.List;
@ -16,18 +15,15 @@ public interface InvInnerOrderPrintService {
Boolean addOrderList(String orderIdFk);
Boolean addInCodeList(String orderIdFk,boolean check);
Boolean addInCodeList(String orderIdFk, boolean check);
InvInnerOrderPrintEntity selectById(String id);
List<innerOrderPrintRequest> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
List<InnerOrderPrintResponse> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
Boolean updateOrder(InvInnerOrderPrintEntity invInnerOrderPrintEntity);
PageSimpleResponse print(InnerOrderQRCodeTextPDFTemplateRequest innerOrderQRCodeTextPDFTemplateRequest);
}

@ -45,4 +45,19 @@ public interface InvRemindSetService {
*/
BaseResponse deleteInvRemindSet(Integer id);
/**
* ID
*
* @param invId
* @return
*/
BaseResponse getInfoByInvId(Integer invId);
/**
*
*
* @param addInvRemindSetRequest
* @return
*/
BaseResponse batchAddInvRemindSet(AddInvRemindSetRequest addInvRemindSetRequest);
}

@ -4,7 +4,7 @@ package com.glxp.api.service.inv;
import cn.hutool.core.thread.ThreadUtil;
import com.glxp.api.dao.inv.InvInnerOrderPdfTempDao;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import com.glxp.api.util.JasperUtils;
import net.sf.jasperreports.engine.JRException;
import org.springframework.beans.factory.annotation.Value;
@ -25,7 +25,7 @@ public class JaspaperService {
private InvInnerOrderPdfTempDao innerOrderPdfTempDao;
@Async
public void printPdfLocal(List<List<innerOrderPrintRequest>> splits, List<InvInnerOrderPdfTempEntity> stockPrintTempEntities, String resource) {
public void printPdfLocal(List<List<InnerOrderPrintResponse>> splits, List<InvInnerOrderPdfTempEntity> stockPrintTempEntities, String resource) {
ThreadUtil.execAsync(() -> {
for (int i = 0; i < stockPrintTempEntities.size(); i++) {

@ -18,11 +18,9 @@ import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.inv.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inv.InvCountOrderDetailResponse;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import com.glxp.api.res.inv.InnerOrderPrintResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inv.InnerOrderDetailService;
@ -35,7 +33,6 @@ import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.FileUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -133,7 +130,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
}
@Override
public List<innerOrderPrintRequest> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest) {
public List<InnerOrderPrintResponse> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest) {
if (filterinnerOrderprintRequest == null) {
return Collections.emptyList();
}
@ -142,7 +139,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
PageHelper.offsetPage(offset, filterinnerOrderprintRequest.getLimit());
}
List<innerOrderPrintRequest> data = invInnerOrderPrintDao.filterJoinInnerPrint(filterinnerOrderprintRequest);
List<InnerOrderPrintResponse> data = invInnerOrderPrintDao.filterJoinInnerPrint(filterinnerOrderprintRequest);
return data;
}
@ -161,8 +158,8 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
SystemPDFTemplateEntity systemPDFTemplateEntity =
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
if (systemPDFTemplateEntity == null) return null;
List<innerOrderPrintRequest> printEntities = new ArrayList<>();
List<innerOrderPrintRequest> mStockPrintEntities = new ArrayList<>();
List<InnerOrderPrintResponse> printEntities = new ArrayList<>();
List<InnerOrderPrintResponse> mStockPrintEntities = new ArrayList<>();
FilterinnerOrderprintRequest filterStockprintRequest = new FilterinnerOrderprintRequest();
DeleteStPrintTempRequest deleteStPrintTempRequest = new DeleteStPrintTempRequest();
if (innerOrderQRCodeTextPDFTemplateRequest.getOrderId() != null) {
@ -175,27 +172,27 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
}
innerOrderPdfTempService.delete(deleteStPrintTempRequest);
List<innerOrderPrintRequest> stockPrintEntities = invInnerOrderPrintService.filterJoinInnerPrint(filterStockprintRequest);
List<InnerOrderPrintResponse> stockPrintEntities = invInnerOrderPrintService.filterJoinInnerPrint(filterStockprintRequest);
if (stockPrintEntities != null && stockPrintEntities.size() > 0) {
mStockPrintEntities.addAll(stockPrintEntities);
}
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
PdfPrintCountEntity pdfPrintCount = getCount(innerOrderQRCodeTextPDFTemplateRequest.getCountList(), innerOrderPrintRequest);
for (InnerOrderPrintResponse InnerOrderPrintResponse : mStockPrintEntities) {
PdfPrintCountEntity pdfPrintCount = getCount(innerOrderQRCodeTextPDFTemplateRequest.getCountList(), InnerOrderPrintResponse);
if (pdfPrintCount != null && pdfPrintCount.getRowCount() > 0) {
for (int i = 0; i < pdfPrintCount.getRowCount(); i++) {
innerOrderPrintRequest clone = new innerOrderPrintRequest();
BeanUtils.copyProperties(innerOrderPrintRequest, clone);
InnerOrderPrintResponse clone = new InnerOrderPrintResponse();
BeanUtils.copyProperties(InnerOrderPrintResponse, clone);
printEntities.add(clone);
}
} else {
printEntities.add(innerOrderPrintRequest);
printEntities.add(InnerOrderPrintResponse);
}
}
if (!FileUtils.isFileExist(dirPath + "/pdfprint")) {
new File(dirPath + "/pdfprint").mkdirs();
}
List<List<innerOrderPrintRequest>> splits = CustomUtil.splitList(printEntities, 100);
List<List<InnerOrderPrintResponse>> splits = CustomUtil.splitList(printEntities, 100);
int index = 0;
List<InvInnerOrderPdfTempEntity> stockPrintTempEntities = new ArrayList<>();
for (int i = 0; i < splits.size(); i++) {
@ -222,10 +219,10 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
innerOrderPdfTempService.insertStockPrintTempList(stockPrintTempEntities);
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
for (InnerOrderPrintResponse InnerOrderPrintResponse : mStockPrintEntities) {
InvInnerOrderPrintEntity innerOrderPrintEntity = new InvInnerOrderPrintEntity();
innerOrderPrintEntity.setStatus(ConstantStatus.PRINT_SUCCESS);
innerOrderPrintEntity.setId(innerOrderPrintRequest.getId());
innerOrderPrintEntity.setId(InnerOrderPrintResponse.getId());
invInnerOrderPrintService.updateOrder(innerOrderPrintEntity);
}
PageInfo<InvInnerOrderPdfTempEntity> pageInfo;
@ -237,9 +234,9 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
return pageSimpleResponse;
}
public PdfPrintCountEntity getCount(List<PdfPrintCountEntity> countList, innerOrderPrintRequest innerOrderPrintRequest) {
public PdfPrintCountEntity getCount(List<PdfPrintCountEntity> countList, InnerOrderPrintResponse InnerOrderPrintResponse) {
for (PdfPrintCountEntity pdfPrintCount : countList) {
if (pdfPrintCount.getQueryId().equals(innerOrderPrintRequest.getId() + "")) {
if (pdfPrintCount.getQueryId().equals(InnerOrderPrintResponse.getId() + "")) {
return pdfPrintCount;
}
}
@ -293,7 +290,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
innerOrderPrintEntity.setUdiCode(udiCode);
invInnerOrderPrintDao.insert(innerOrderPrintEntity);
}
orderEntity.setInCodeStatus(1);//
orderEntity.setInCodeStatus(0);//
orderService.update(orderEntity);
return true;
}

@ -1,12 +1,16 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.inv.InvRemindSetDao;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.inv.InvRemindSetEntity;
import com.glxp.api.req.inv.AddInvRemindSetRequest;
import com.glxp.api.req.inv.FilterInvRemindSetRequest;
@ -14,6 +18,10 @@ import com.glxp.api.res.inv.InvRemindSetResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.inv.InvRemindSetService;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.TransactionIsolationLevel;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -31,6 +39,10 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
private InvRemindSetDao invRemindSetDao;
@Resource
private CustomerService customerService;
@Resource
private UdiRelevanceDao udiRelevanceDao;
@Resource
private SqlSessionFactory sqlSessionFactory;
@Override
public List<InvRemindSetResponse> filterList(FilterInvRemindSetRequest filterInvRemindSetRequest) {
@ -51,10 +63,31 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
if (false == addInvRemindSetRequest.getLowStock() && false == addInvRemindSetRequest.getLackStock() && false == addInvRemindSetRequest.getOverStock() && false == addInvRemindSetRequest.getExpireDate() && false == addInvRemindSetRequest.getRecentDate()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "预警设置至少开启一项预警!");
}
InvRemindSetEntity invRemindSetEntity = new InvRemindSetEntity();
BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.insert(invRemindSetEntity);
//查询此设置项是否已经存在,若已经存在,则直接覆盖,没有则新增
InvRemindSetEntity invRemindSetEntity = invRemindSetDao.selectOne(new QueryWrapper<InvRemindSetEntity>()
.eq("invCode", addInvRemindSetRequest.getInvCode())
.eq(StrUtil.isNotBlank(addInvRemindSetRequest.getInvSpaceCode()), "invSpaceCode", addInvRemindSetRequest.getInvSpaceCode())
.eq(StrUtil.isNotBlank(addInvRemindSetRequest.getRelId()), "relId", addInvRemindSetRequest.getRelId())
);
if (null == invRemindSetEntity) {
invRemindSetEntity = new InvRemindSetEntity();
BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity);
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.insert(invRemindSetEntity);
} else {
//设置预警参数设置
invRemindSetEntity.setLackStock(addInvRemindSetRequest.getLackStock());
invRemindSetEntity.setLowStock(addInvRemindSetRequest.getLowStock());
invRemindSetEntity.setOverStock(addInvRemindSetRequest.getOverStock());
invRemindSetEntity.setExpireDate(addInvRemindSetRequest.getExpireDate());
invRemindSetEntity.setRecentDate(addInvRemindSetRequest.getRecentDate());
//校验预警参数是否符合开启条件
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.updateById(invRemindSetEntity);
}
return ResultVOUtils.success("添加成功");
}
@ -63,6 +96,7 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
if (false == invRemindSetEntity.getLowStock() && false == invRemindSetEntity.getLackStock() && false == invRemindSetEntity.getOverStock() && false == invRemindSetEntity.getExpireDate() && false == invRemindSetEntity.getRecentDate()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "预警设置至少开启一项预警!");
}
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.updateById(invRemindSetEntity);
return ResultVOUtils.success("更新成功");
@ -77,6 +111,72 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
return ResultVOUtils.success("删除成功");
}
@Override
public BaseResponse getInfoByInvId(Integer invId) {
InvRemindSetResponse response = invRemindSetDao.selectInfoByInvId(invId);
if (null != response) {
if (response.getIsDateBy() == 1 && null != response.getRecentDateTime()) {
//将近效期预警值由小时换算成天
response.setRecentDateTime(response.getRecentDateTime() / 24);
}
return ResultVOUtils.success(response);
}
return ResultVOUtils.error(500, "未查询到指定的库存产品信息");
}
@Override
public BaseResponse batchAddInvRemindSet(AddInvRemindSetRequest addInvRemindSetRequest) {
if (CollUtil.isNotEmpty(addInvRemindSetRequest.getRelIdList())) {
//生成多条库存预警设置
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
addInvRemindSetRequest.getRelIdList().forEach(relId -> {
//查询此产品是否存在预警设置
//查询此设置项是否已经存在,若已经存在,则直接覆盖,没有则新增
InvRemindSetEntity invRemindSetEntity = invRemindSetDao.selectOne(new QueryWrapper<InvRemindSetEntity>()
.eq("invCode", addInvRemindSetRequest.getInvCode())
.eq(StrUtil.isNotBlank(addInvRemindSetRequest.getInvSpaceCode()), "invSpaceCode", addInvRemindSetRequest.getInvSpaceCode())
.eq("relId", relId)
.eq(StrUtil.isNotBlank(addInvRemindSetRequest.getGgxh()), "ggxh", addInvRemindSetRequest.getGgxh())
);
if (null == invRemindSetEntity) {
invRemindSetEntity = new InvRemindSetEntity();
BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity);
invRemindSetEntity.setRelId(relId);
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.insert(invRemindSetEntity);
} else {
//校验预警参数是否符合开启条件
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.updateById(invRemindSetEntity);
}
});
sqlSession.commit();
sqlSession.close();
} else {
//只选择了仓库货位信息,未选择产品列表,直接添加单条预警设置
//查询有无相同设置,有则更新时间
InvRemindSetEntity invRemindSetEntity = invRemindSetDao.selectOne(new QueryWrapper<InvRemindSetEntity>()
.eq("invCode", addInvRemindSetRequest.getInvCode())
.eq(StrUtil.isNotBlank(addInvRemindSetRequest.getInvSpaceCode()), "invSpaceCode", addInvRemindSetRequest.getInvSpaceCode())
.isNull("relId")
);
if (null == invRemindSetEntity) {
invRemindSetEntity = new InvRemindSetEntity();
BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity);
invRemindSetEntity.setStatus(1);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.insert(invRemindSetEntity);
} else {
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
invRemindSetDao.updateById(invRemindSetEntity);
}
}
return ResultVOUtils.success("添加成功");
}
/**
*
*
@ -93,4 +193,29 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
invRemindSetEntity.setUpdateTime(date);
}
/**
*
*
* @param invRemindSetEntity
*/
private void verifySetParams(InvRemindSetEntity invRemindSetEntity) {
//判断开启的预警设置,是否有设置对应的参数,若未设置,则修改状态为不启用
if (null != invRemindSetEntity.getRelId()) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectRemindParams(Long.valueOf(invRemindSetEntity.getRelId()));
if (null == udiRelevanceEntity) {
invRemindSetEntity.setStatus(0);
} else {
if (invRemindSetEntity.getLowStock() && null == udiRelevanceEntity.getLowStockNum()) {
invRemindSetEntity.setStatus(0);
} else if (invRemindSetEntity.getOverStock() && null == udiRelevanceEntity.getOverStockNum()) {
invRemindSetEntity.setStatus(0);
} else if (invRemindSetEntity.getRecentDate() && null == udiRelevanceEntity.getRecentDateTime()) {
invRemindSetEntity.setStatus(0);
} else {
invRemindSetEntity.setStatus(1);
}
}
}
}
}

@ -1,8 +1,7 @@
package com.glxp.api.service.purchase;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.entity.purchase.PurOrderEntity;
import com.glxp.api.entity.purchase.PurPlanEntity;
import com.glxp.api.req.purchase.PurOrderRequest;
@ -10,13 +9,19 @@ import com.glxp.api.req.purchase.PurPlanRequest;
import com.glxp.api.res.purchase.PurOrderResponse;
import com.glxp.api.res.purchase.PurPlanResponse;
import java.util.Date;
import java.util.List;
public interface PurOrderService {
PurOrderEntity selectByBillNo(String billNo);
PurOrderEntity selectById(Long id);
List<PurOrderResponse> queryPageList(PurOrderRequest purOrderRequest);
List<PurOrderEntity> findByStatus(String billType, Integer status);
List<PurOrderEntity> findByStatus(String billType, Integer status, Date lastUpdateTime);
Boolean insert(PurOrderEntity purOrderEntity);

@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.purchase.PurOrderDao;
import com.glxp.api.dao.purchase.PurPlanDao;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.entity.purchase.PurOrderEntity;
import com.glxp.api.entity.purchase.PurPlanEntity;
import com.glxp.api.req.purchase.PurOrderRequest;
@ -18,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@ -30,6 +31,16 @@ public class PurOrderServiceImpl implements PurOrderService {
@Resource
PurOrderDao purOrderDao;
@Override
public PurOrderEntity selectByBillNo(String billNo) {
return purOrderDao.selectOne(new QueryWrapper<PurOrderEntity>().eq("billNo", billNo));
}
@Override
public PurOrderEntity selectById(Long id) {
return purOrderDao.selectById(id);
}
@Override
public List<PurOrderResponse> queryPageList(PurOrderRequest purOrderRequest) {
if (purOrderRequest == null) {
@ -44,8 +55,8 @@ public class PurOrderServiceImpl implements PurOrderService {
}
@Override
public List<PurOrderEntity> findByStatus(String billType, Integer status) {
return purOrderDao.selectList(new QueryWrapper<PurOrderEntity>().eq("billType", billType).eq("status", status));
public List<PurOrderEntity> findByStatus(String billType, Integer status, Date lastUpdateTime) {
return purOrderDao.selectList(new QueryWrapper<PurOrderEntity>().eq("billType", billType).eq("status", status).gt("updateTime", lastUpdateTime));
}
@Override

@ -6,6 +6,11 @@ import java.util.List;
import javax.annotation.Resource;
import com.glxp.api.dao.inout.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.res.sync.SpsSyncBusResponse;
import com.glxp.api.res.sync.SpsSyncDataResponse;
import com.glxp.api.service.inout.*;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
@ -19,15 +24,6 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.inout.IoCodeTempDao;
import com.glxp.api.dao.inout.IoOrderDao;
import com.glxp.api.dao.inout.IoOrderDetailBizDao;
import com.glxp.api.dao.inout.IoOrderDetailCodeDao;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.sync.BasicDownloadStatusEntity;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.entity.sync.BasicExportStatusTimeEntity;
@ -35,7 +31,6 @@ import com.glxp.api.http.sync.SpGetHttpClient;
import com.glxp.api.req.sync.SpsSyncDataRequest;
import com.glxp.api.res.sync.SpsSyncBusOrderResponse;
import com.glxp.api.res.sync.SpsSyncOrderResponse;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
@ -57,7 +52,12 @@ public class HeartService {
SqlSessionFactory sqlSessionFactory;
@Resource
IoOrderService orderService;
@Resource
IoAddInoutService addInoutService;
@Resource
IoCheckInoutService ioCheckInoutService;
//上传最近更新扫码单据
public BaseResponse uploadAllOrder(String syncTime) {
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (syncTime == null) {
@ -117,11 +117,11 @@ public class HeartService {
return ResultVOUtils.success();
}
//上传最近更新业务单据
public BaseResponse uploadAllBusOrder(String syncTime) {
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (syncTime == null) {
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_SCAN_ORDER);
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_BUS_ORDER);
if (basicExportStatusTimeEntity == null) {
basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00");
@ -137,12 +137,12 @@ public class HeartService {
return ResultVOUtils.success("无数据");
}
BasicExportStatusEntity basicExportStatusEntity1 = basicExportService.findByData(ConstantStatus.SYNC_SCAN_ORDER, 0);
BasicExportStatusEntity basicExportStatusEntity1 = basicExportService.findByData(ConstantStatus.SYNC_BUS_ORDER, 0);
if (basicExportStatusEntity1 == null) {
BasicExportStatusEntity orderStatusEntity = new BasicExportStatusEntity();
orderStatusEntity.setId(CustomUtil.getId());
orderStatusEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER);
orderStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER);
orderStatusEntity.setIdDatas(ConstantStatus.SYNC_BUS_ORDER);
orderStatusEntity.setType(BasicProcessStatus.ALL_BUS_ORDER);
orderStatusEntity.setUpdateTime(new Date());
orderStatusEntity.setStartTime(new Date());
orderStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_WAIT);
@ -175,18 +175,188 @@ public class HeartService {
return ResultVOUtils.success();
}
//上传最近更新单据类型
public BaseResponse uploadAllBus(String syncTime) {
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (syncTime == null) {
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_BUS_TYPE);
if (basicExportStatusTimeEntity == null) {
basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00");
}
spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime());
} else {
spsSyncDataRequest.setLastUpdateTime(syncTime);
}
SpsSyncBusResponse spsSyncBusResponse = upBasicService.upAllBus(spsSyncDataRequest);
if (CollUtil.isEmpty(spsSyncBusResponse.getBussinessTypeEntities())
&& CollUtil.isEmpty(spsSyncBusResponse.getBusTypeChangeEntities())
&& CollUtil.isEmpty(spsSyncBusResponse.getThrBusTypeOriginEntities())
) {
return ResultVOUtils.success("无数据");
}
BasicExportStatusEntity basicExportStatusEntity2 = basicExportService.findByData(ConstantStatus.SYNC_BUS_TYPE, 0);
if (basicExportStatusEntity2 == null) {
BasicExportStatusEntity busTypetatusEntity = new BasicExportStatusEntity();
busTypetatusEntity.setId(CustomUtil.getId());
busTypetatusEntity.setIdDatas(ConstantStatus.SYNC_BUS_TYPE);
busTypetatusEntity.setType(BasicProcessStatus.NEW_ALL_BUS);
busTypetatusEntity.setUpdateTime(new Date());
busTypetatusEntity.setStartTime(new Date());
busTypetatusEntity.setStatus(0);
busTypetatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
basicExportService.insertExportStatus(busTypetatusEntity);
basicExportStatusEntity2 = busTypetatusEntity;
}
BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
basicExportStatusTimeEntity.setLastUpdateTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
basicExportStatusTimeEntity.setKey(ConstantStatus.SYNC_BUS_TYPE);
spsSyncBusResponse.setTaskId(basicExportStatusEntity2.getId());
BaseResponse<String> baseResponse2 = spGetHttp.postAllBusType(spsSyncBusResponse);
if (baseResponse2.getCode() == 20000) {
basicExportStatusEntity2.setStatus(1);
} else {
basicExportStatusEntity2.setStatus(ConstantStatus.SYNC_STATUS_FAIL);
}
basicExportStatusEntity2.setEndTime(new Date());
basicExportTimeService.insertExportStatus(basicExportStatusTimeEntity);
//拼接日志
String logs = "";
if (CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessTypeEntities()))
logs = logs + "扫码单据类型:" + spsSyncBusResponse.getBussinessTypeEntities().size() + "条\n";
if (CollUtil.isNotEmpty(spsSyncBusResponse.getBusTypeChangeEntities()))
logs = logs + "业务单据类型:" + spsSyncBusResponse.getBusTypeChangeEntities().size() + "条\n";
if (CollUtil.isNotEmpty(spsSyncBusResponse.getThrBusTypeOriginEntities()))
logs = logs + "第三方单据类型:" + spsSyncBusResponse.getThrBusTypeOriginEntities().size() + "条\n";
basicExportStatusEntity2.setRemark(logs);
basicExportStatusEntity2.setUpdateTime(new Date());
basicExportService.updateExportStatus(basicExportStatusEntity2);
return ResultVOUtils.success();
}
//上传用户信息
public BaseResponse uploadAllUserData(String syncTime) {
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (syncTime == null) {
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_BASIC_DATA);
if (basicExportStatusTimeEntity == null) {
basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00");
}
spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime());
} else {
spsSyncDataRequest.setLastUpdateTime(syncTime);
}
SpsSyncDataResponse syncDataResponse = upBasicService.uploadAllUserData(spsSyncDataRequest);
if (CollUtil.isEmpty(syncDataResponse.getInvWarehouseEntities())
&& CollUtil.isEmpty(syncDataResponse.getAuthAdminList())
&& CollUtil.isEmpty(syncDataResponse.getDeptEntityList())
&& CollUtil.isEmpty(syncDataResponse.getWarehouseBussinessTypeEntities())
&& CollUtil.isEmpty(syncDataResponse.getWarehouseUserEntities())
) {
//数据不记录日志
return ResultVOUtils.success("无数据");
}
BasicExportStatusEntity basicExportStatusEntity3 = basicExportService.findByData(ConstantStatus.SYNC_BASIC_DATA, 0);
if (basicExportStatusEntity3 == null) {
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
basicExportStatusEntity.setId(CustomUtil.getId());
basicExportStatusEntity.setIdDatas(ConstantStatus.SYNC_BASIC_DATA);
basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DATA);
basicExportStatusEntity.setUpdateTime(new Date());
basicExportStatusEntity.setStartTime(new Date());
basicExportStatusEntity.setStatus(0);
basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
basicExportService.insertExportStatus(basicExportStatusEntity);
basicExportStatusEntity3 = basicExportStatusEntity;
}
BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
basicExportStatusTimeEntity.setLastUpdateTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
basicExportStatusTimeEntity.setKey(ConstantStatus.SYNC_BASIC_DATA);
syncDataResponse.setTaskId(basicExportStatusEntity3.getId());
BaseResponse<String> baseResponse = spGetHttp.postAllUser(syncDataResponse);
if (baseResponse.getCode() == 20000) {
basicExportStatusEntity3.setStatus(1);
} else {
basicExportStatusEntity3.setStatus(ConstantStatus.SYNC_STATUS_FAIL);
}
basicExportStatusEntity3.setEndTime(new Date());
basicExportTimeService.insertExportStatus(basicExportStatusTimeEntity);
String logs = "";
if (CollUtil.isNotEmpty(syncDataResponse.getInvWarehouseEntities()))
logs = logs + "仓库字典:" + syncDataResponse.getInvWarehouseEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getWarehouseUserEntities())) {
logs = logs + "仓库用户信息:" + syncDataResponse.getWarehouseUserEntities().size() + "条\n";
}
if (CollUtil.isNotEmpty(syncDataResponse.getWarehouseBussinessTypeEntities())) {
logs = logs + "仓库单据类型:" + syncDataResponse.getWarehouseBussinessTypeEntities().size() + "条\n";
}
if (CollUtil.isNotEmpty(syncDataResponse.getAuthAdminList()))
logs = logs + "系统用户信息:" + syncDataResponse.getAuthAdminList().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getInvBusUserEntities()))
logs = logs + "用户关联单据类型信息:" + syncDataResponse.getInvBusUserEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getDeptEntityList()))
logs = logs + "部门信息:" + syncDataResponse.getDeptEntityList().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getDeptUserEntities()))
logs = logs + "部门用户信息:" + syncDataResponse.getDeptUserEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getInvSpaces()))
logs = logs + "货位信息:" + syncDataResponse.getInvSpaces().size() + "条\n";
basicExportStatusEntity3.setRemark(logs);
basicExportStatusEntity3.setUpdateTime(new Date());
basicExportService.updateExportStatus(basicExportStatusEntity3);
return ResultVOUtils.success();
}
// 上传系统参数设置
public BaseResponse uploadAllConfig(String syncTime) {
return null;
}
//
// //上传最近更新第三方基础数据
// public BaseResponse uploadThirdData(String syncTime) {
//
// }
@Resource
IoCodeTempService codeTempService;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
IoOrderDetailCodeService orderDetailCodeService;
@Resource
IoOrderDetailResultService orderDetailResultService;
@Resource
IoOrderInvoiceService orderInvoiceService;
//下载最近更新扫码单据
public void dlAllOrder() {
BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.NEW_ALL_ORDER + "");
List<BasicExportStatusEntity> pageSimpleResponse = baseResponse !=null ? baseResponse.getData() : new ArrayList<>();
List<BasicExportStatusEntity> pageSimpleResponse = baseResponse != null ? baseResponse.getData() : new ArrayList<>();
if (pageSimpleResponse != null) {
List<BasicExportStatusEntity> basicExportStatusEntities = pageSimpleResponse;
if (basicExportStatusEntities != null && basicExportStatusEntities.size() > 0) {
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
String datas = spGetHttp.getBasicData(basicExportStatusEntity.getId(), BasicProcessStatus.NEW_ALL_ORDER);
BaseResponse<SpsSyncOrderResponse> response = JSONObject.parseObject(datas, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() {
BaseResponse<String> response = JSONObject.parseObject(datas, new TypeReference<BaseResponse<String>>() {
});
if (response.getCode() == 20000 && response.getData() != null) {
SpsSyncOrderResponse syncDataResponse = response.getData();
SpsSyncOrderResponse syncDataResponse = JSONObject.parseObject(response.getData(), new TypeReference<SpsSyncOrderResponse>() {
});
BasicDownloadStatusEntity basicDownloadStatusEntity = new BasicDownloadStatusEntity();
basicDownloadStatusEntity.setId(CustomUtil.getId());
basicDownloadStatusEntity.setTaskId(syncDataResponse.getTaskId());
@ -198,71 +368,45 @@ public class HeartService {
basicDownloadService.insertDownloadStatus(basicDownloadStatusEntity);
StringBuffer remark = new StringBuffer();
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) {
try {
List<IoOrderEntity> orderEntities = syncDataResponse.getOrderEntities();
IoOrderDao mapper = batchSession.getMapper(IoOrderDao.class);
for (IoOrderEntity orderEntity : orderEntities) {
orderEntity.setUpdateTime(null);
orderEntity.setFromType(ConstantStatus.FROM_UDISP);
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
IoOrderEntity temp = orderService.findById(orderEntity.getBillNo());
IoOrderEntity temp = orderService.findByBillNo(orderEntity.getBillNo());
if (temp == null) {
orderEntity.setId(null);
mapper.insert(orderEntity);
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) {
IoCodeTempDao codeMappert = batchSession.getMapper(IoCodeTempDao.class);
List<IoCodeEntity> warehouseEntityList = syncDataResponse.getCodeEntities();
for (IoCodeEntity warehouseEntity : warehouseEntityList) {
if (warehouseEntity.getOrderId().equals(orderEntity.getBillNo())) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
BeanUtils.copyProperties(warehouseEntity, codeTempEntity);
codeTempEntity.setId(null);
codeMappert.insert(codeTempEntity);
}
}
}
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) {
IoOrderDetailBizDao orderDetailBizDao = batchSession.getMapper(IoOrderDetailBizDao.class);
List<IoOrderDetailBizEntity> orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities();
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
if (bizEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
orderDetailBizDao.insert(bizEntity);
}
}
orderService.insertOrder(orderEntity);
insetOrderDb(syncDataResponse, orderEntity);
orderEntity = orderService.findByBillNo(orderEntity.getBillNo());
addInoutService.dealProcess(orderEntity);
orderEntity = orderService.findByBillNo(orderEntity.getBillNo());
if (orderEntity.getStatus() != ConstantStatus.ORDER_STATS_ERROR && !ioCheckInoutService.checkManual(orderEntity.getBillNo())) {
ioCheckInoutService.check(orderEntity.getBillNo());
}
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) {
IoOrderDetailCodeDao orderDetailCodeDao = batchSession.getMapper(IoOrderDetailCodeDao.class);
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities();
for (IoOrderDetailCodeEntity detailCodeEntity : orderDetailCodeEntities) {
if (detailCodeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
orderDetailCodeDao.insert(detailCodeEntity);
}
}
}
batchSession.commit();
}
}
batchSession.commit();
String logs = "";
if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities()))
logs = logs + "单据:" + syncDataResponse.getOrderEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities()))
logs = logs + "单据详情:" + syncDataResponse.getOrderDetailBizEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities()))
logs = logs + "业务详情:" + syncDataResponse.getOrderDetailBizEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities()))
logs = logs + "单据扫码详情:" + syncDataResponse.getOrderDetailCodeEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailResultEntities()))
logs = logs + "单据结果详情:" + syncDataResponse.getOrderDetailResultEntities().size() + "条\n";
if (CollUtil.isNotEmpty(syncDataResponse.getCodeEntities()))
logs = logs + "单据条码信息:" + syncDataResponse.getCodeEntities().size() + "条\n";
remark.append(logs);
} catch (Exception e) {
e.printStackTrace();
}
}
batchSession.close();
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
basicDownloadStatusEntity.setUpdateTime(new Date());
@ -270,10 +414,72 @@ public class HeartService {
basicDownloadStatusEntity.setRemark(remark.toString());
basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS);
basicDownloadService.updateDownloadStatus(basicDownloadStatusEntity);
}
}
}
}
}
public void insetOrderDb(SpsSyncOrderResponse syncDataResponse, IoOrderEntity orderEntity) {
//更新码详情
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) {
List<IoCodeEntity> warehouseEntityList = syncDataResponse.getCodeEntities();
for (IoCodeEntity warehouseEntity : warehouseEntityList) {
if (warehouseEntity.getOrderId().equals(orderEntity.getBillNo())) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
BeanUtils.copyProperties(warehouseEntity, codeTempEntity);
codeTempEntity.setId(null);
codeTempService.insert(codeTempEntity);
}
}
}
//更新业务详情
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) {
List<IoOrderDetailBizEntity> orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities();
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
if (bizEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
bizEntity.setId(null);
orderDetailBizService.insert(bizEntity);
}
}
}
//更新码详情
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) {
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities();
for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) {
if (codeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
codeEntity.setId(null);
orderDetailCodeService.insert(codeEntity);
}
}
}
//更新结果详情
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailResultEntities())) {
List<IoOrderDetailResultEntity> orderDetailResultEntities = syncDataResponse.getOrderDetailResultEntities();
for (IoOrderDetailResultEntity detailResultEntity : orderDetailResultEntities) {
if (detailResultEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
detailResultEntity.setId(null);
orderDetailResultService.insert(detailResultEntity);
}
}
}
//更新发票信息
if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) {
List<IoOrderInvoiceEntity> orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities();
for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) {
if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
orderInvoiceService.insertInvoice(orderInvoiceEntity);
}
}
}
}
}

@ -7,9 +7,9 @@ import java.util.List;
public interface SyncDataBustypeService {
List<SyncDataBustypeEntity> findAll();
List<SyncDataBustypeEntity> findAll(Integer direct);
boolean deleteAll();
boolean deleteAll(Integer direct);
void inserts(List<SyncDataBustypeEntity> syncDataBustypeEntities);

@ -2,20 +2,41 @@ package com.glxp.api.service.sync;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.auth.*;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.PurOrderDetailEntity;
import com.glxp.api.entity.purchase.PurOrderEntity;
import com.glxp.api.entity.purchase.*;
import com.glxp.api.entity.system.SyncDataBustypeEntity;
import com.glxp.api.entity.system.SyncDataChangeBustypesEntity;
import com.glxp.api.entity.system.SyncDataPurTypeEntity;
import com.glxp.api.entity.thrsys.*;
import com.glxp.api.req.auth.*;
import com.glxp.api.req.basic.BasicEntrustRecRequest;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest;
import com.glxp.api.req.basic.FilterUdiInfoRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.purchase.FilterPoductRequest;
import com.glxp.api.req.purchase.FilterSupCompanyRequest;
import com.glxp.api.req.purchase.FilterSupManufacturerRequest;
import com.glxp.api.req.sync.SpsSyncDataRequest;
import com.glxp.api.req.thrsys.*;
import com.glxp.api.res.sync.SpsSyncBusOrderResponse;
import com.glxp.api.res.sync.SpsSyncBusResponse;
import com.glxp.api.res.sync.SpsSyncDataResponse;
import com.glxp.api.res.sync.SpsSyncOrderResponse;
import com.glxp.api.res.system.SyncDataSetResponse;
import com.glxp.api.service.auth.*;
import com.glxp.api.service.basic.IBasicBusTypeChangeService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.impl.BasicBussinessTypeServiceImpl;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.purchase.PurOrderDetailService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.thrsys.IThrBusTypeOriginService;
import com.glxp.api.util.DateUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.data.annotation.Reference;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -45,7 +66,10 @@ public class UpBasicService {
PurOrderService purOrderService;
@Resource
PurOrderDetailService purOrderDetailService;
@Resource
IoOrderInvoiceService orderInvoiceService;
//上传最近更新扫码单据
public SpsSyncOrderResponse upAllOrder(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse();
//查询数据同步设置
@ -55,7 +79,7 @@ public class UpBasicService {
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
List<IoOrderEntity> temps = orderService.findByStatus(syncDataBustypeEntity.getAction(), syncDataBustypeEntity.getOrderStatus());
List<IoOrderEntity> temps = orderService.findByStatus(syncDataBustypeEntity.getAction(), syncDataBustypeEntity.getOrderStatus(), DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime()));
if (CollUtil.isNotEmpty(temps)) {
orderEntities.addAll(temps);
}
@ -66,6 +90,7 @@ public class UpBasicService {
List<IoOrderDetailBizEntity> orderDetailBizEntities = new ArrayList<>();
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = new ArrayList<>();
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
List<IoOrderInvoiceEntity> orderInvoiceEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(orderEntities)) {
for (IoOrderEntity orderEntity : orderEntities) {
@ -90,15 +115,23 @@ public class UpBasicService {
if (CollUtil.isNotEmpty(detailResultEntities)) {
orderDetailResultEntities.addAll(detailResultEntities);
}
List<IoOrderInvoiceEntity> invoiceEntities = orderInvoiceService.findByBillNo(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(invoiceEntities)) {
orderInvoiceEntities.addAll(invoiceEntities);
}
}
}
syncOrderResponse.setCodeEntities(codeEntities);
syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities);
syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities);
syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities);
syncOrderResponse.setOrderInvoiceEntities(orderInvoiceEntities);
return syncOrderResponse;
}
//上传最近更新业务单据
public SpsSyncBusOrderResponse upAllBusOrder(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncBusOrderResponse syncOrderResponse = new SpsSyncBusOrderResponse();
//查询数据同步设置
@ -106,10 +139,10 @@ public class UpBasicService {
List<PurOrderEntity> purOrderEntities = new ArrayList<>();
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
if (CollUtil.isNotEmpty(syncDataSetEntity.getPurTypeEntities())) {
for (SyncDataPurTypeEntity syncDataBustypeEntity : syncDataSetEntity.getPurTypeEntities()) {
if (syncDataBustypeEntity.getType() == ConstantStatus.BUS_TYPE_DD) {
List<PurOrderEntity> temps = purOrderService.findByStatus(syncDataBustypeEntity.getAction(), syncDataBustypeEntity.getOrderStatus());
if (CollUtil.isNotEmpty(syncDataSetEntity.getChangeBusTypes())) {
for (SyncDataChangeBustypesEntity syncDataChangeBustypesEntity : syncDataSetEntity.getChangeBusTypes()) {
if (syncDataChangeBustypesEntity.getAction().equals(ConstantStatus.BUS_ORDER_CGDD)) {
List<PurOrderEntity> temps = purOrderService.findByStatus(syncDataChangeBustypesEntity.getAction(), syncDataChangeBustypesEntity.getOrderStatus(), DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime()));
if (CollUtil.isNotEmpty(temps)) {
purOrderEntities.addAll(temps);
}
@ -120,7 +153,7 @@ public class UpBasicService {
List<PurOrderDetailEntity> purOrderDetailEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(purOrderEntities)) {
for (PurOrderEntity orderEntity : purOrderEntities) {
List<PurOrderDetailEntity> detailResultEntities = purOrderDetailService.findByOrderId(orderEntity.getBillNo());
List<PurOrderDetailEntity> detailResultEntities = purOrderDetailService.findByOrderId(orderEntity.getId() + "");
if (CollUtil.isNotEmpty(detailResultEntities)) {
purOrderDetailEntities.addAll(detailResultEntities);
}
@ -130,4 +163,126 @@ public class UpBasicService {
return syncOrderResponse;
}
@Resource
IBasicBussinessTypeService basicBussinessTypeService;
@Resource
IBasicBusTypeChangeService basicBusTypeChangeService;
@Resource
IThrBusTypeOriginService thrBusTypeOriginService;
//上传最近更新单据类型
public SpsSyncBusResponse upAllBus(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncBusResponse spsSyncBusResponse = new SpsSyncBusResponse();
SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet();
//扫码单据类型
if (syncDataSetEntity.getTypeScan() == 1) {
List<BasicBussinessTypeEntity> bussinessTypeEntities = basicBussinessTypeService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime()));
spsSyncBusResponse.setBussinessTypeEntities(bussinessTypeEntities);
}
// 业务单据类型
if (syncDataSetEntity.getTypeBus() == 1) {
List<BasicBusTypeChangeEntity> basicBusTypeChangeEntities = basicBusTypeChangeService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime()));
spsSyncBusResponse.setBusTypeChangeEntities(basicBusTypeChangeEntities);
}
//第三方单据类型
if (syncDataSetEntity.getTypeThird() == 1) {
List<ThrBusTypeOriginEntity> thrBusTypeOriginEntities = thrBusTypeOriginService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime()));
spsSyncBusResponse.setThrBusTypeOriginEntities(thrBusTypeOriginEntities);
}
return spsSyncBusResponse;
}
@Resource
InvWarehouseService invWarehouseService;
@Resource
WarehouseBussinessTypeService warehouseBussinessTypeService;
@Resource
WarehouseUserService warehouseUserService;
@Resource
InvBusUserService invBusUserService;
@Resource
AuthAdminService authAdminService;
@Resource
DeptService deptService;
@Resource
DeptUserService deptUserService;
public SpsSyncDataResponse uploadAllUserData(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncDataResponse syncDataResponse = new SpsSyncDataResponse();
SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet();
if (syncDataSetEntity.getBasicDept() == 1) {
//获取部门信息
FilterInvWarehouseRequest filterDeptRequest = new FilterInvWarehouseRequest();
BeanUtils.copyProperties(spsSyncDataRequest, filterDeptRequest);
List<DeptEntity> deptEntityList = deptService.filterGroupInvWarehouse(filterDeptRequest);
syncDataResponse.setDeptEntityList(deptEntityList);
List<DeptUserEntity> allDeptUserEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(deptEntityList)) {
for (DeptEntity deptEntity : deptEntityList) {
FilterDeptUserReqeust filterDeptUserReqeust = new FilterDeptUserReqeust();
filterDeptUserReqeust.setDeptId(deptEntity.getId().longValue());
List<DeptUserEntity> deptUserEntities = deptUserService.selectDeptUser(filterDeptUserReqeust);
allDeptUserEntities.addAll(deptUserEntities);
}
syncDataResponse.setDeptUserEntities(allDeptUserEntities);
}
}
//仓库字典
if (syncDataSetEntity.getBasicInv() == 1) {
//仓库字典
List<InvWarehouseEntity> invWarehouseEntities = invWarehouseService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime()));
syncDataResponse.setInvWarehouseEntities(invWarehouseEntities);
if (CollUtil.isNotEmpty(invWarehouseEntities)) {
List<WarehouseBussinessTypeEntity> mWarehouseBussinessTypeEntities = new ArrayList<>();
List<WarehouseUserEntity> mWarehouseUserEntities = new ArrayList<>();
List<InvBusUserEntity> mInvBusUserEntities = new ArrayList<>();
for (InvWarehouseEntity invWarehouseEntity : invWarehouseEntities) {
//获取仓库关联单据类型
FilterInvBusTypeRequest filterInvBusTypeRequest = new FilterInvBusTypeRequest();
filterInvBusTypeRequest.setCode(invWarehouseEntity.getCode());
List<WarehouseBussinessTypeEntity> warehouseBussinessTypeEntities = warehouseBussinessTypeService.filterList(filterInvBusTypeRequest);
mWarehouseBussinessTypeEntities.addAll(warehouseBussinessTypeEntities);
//获取仓库关联用户
FilterInvUserRequest filterInvUserRequest = new FilterInvUserRequest();
filterInvUserRequest.setCode(invWarehouseEntity.getCode());
List<WarehouseUserEntity> warehouseUserEntities = warehouseUserService.filterWarehouseUsers(filterInvUserRequest);
mWarehouseUserEntities.addAll(warehouseUserEntities);
if (CollUtil.isNotEmpty(warehouseUserEntities)) {
for (WarehouseUserEntity warehouseUserEntity : warehouseUserEntities) {
List<InvBusUserEntity> invBusUserEntities = invBusUserService.selectByUnion(warehouseUserEntity.getUserid() + "", invWarehouseEntity.getCode());
mInvBusUserEntities.addAll(invBusUserEntities);
}
}
}
syncDataResponse.setInvBusUserEntities(mInvBusUserEntities);
syncDataResponse.setWarehouseUserEntities(mWarehouseUserEntities);
syncDataResponse.setWarehouseBussinessTypeEntities(mWarehouseBussinessTypeEntities);
}
}
//系统用户信息
if (syncDataSetEntity.getSysUser() == 1) {
FilterAuthUserRequest authAdminQueryRequest = new FilterAuthUserRequest();
BeanUtils.copyProperties(spsSyncDataRequest, authAdminQueryRequest);
List<AuthAdmin> authAdminList = authAdminService.listAdminPage(authAdminQueryRequest);
syncDataResponse.setAuthAdminList(authAdminList);
}
return syncDataResponse;
}
}

@ -1,5 +1,6 @@
package com.glxp.api.service.sync.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.dao.sync.SyncDataBustypeDao;
import com.glxp.api.entity.system.SyncDataBustypeEntity;
import com.glxp.api.service.sync.SyncDataBustypeService;
@ -17,13 +18,13 @@ public class SyncDataBustypeServiceImpl implements SyncDataBustypeService {
SyncDataBustypeDao syncDataBustypeDao;
@Override
public List<SyncDataBustypeEntity> findAll() {
return syncDataBustypeDao.findAll();
public List<SyncDataBustypeEntity> findAll(Integer direct) {
return syncDataBustypeDao.selectList(new QueryWrapper<SyncDataBustypeEntity>().eq("direct", direct));
}
@Override
public boolean deleteAll() {
return syncDataBustypeDao.deleteAll();
public boolean deleteAll(Integer direct) {
return syncDataBustypeDao.delete(new QueryWrapper<SyncDataBustypeEntity>().eq("direct", direct)) > 0 ? true : false;
}
@Override

@ -37,11 +37,12 @@ public class SyncDataSetServiceImpl implements SyncDataSetService {
SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet();
SyncDataSetResponse syncDataSetResponse = new SyncDataSetResponse();
BeanUtils.copyProperties(syncDataSetEntity, syncDataSetResponse);
List<SyncDataBustypeEntity> syncDataBustypeEntities = syncDataBustypeService.findAll();
List<SyncDataBustypeEntity> syncDataBustypeEntities = syncDataBustypeService.findAll(1);
List<SyncDataBustypeEntity> syncDataToInBustypeEntities = syncDataBustypeService.findAll(2);
List<SyncDataChangeBustypesEntity> changeBustypesEntities = syncDataChangeBustypeService.findAll();
syncDataSetResponse.setBusTypes(syncDataBustypeEntities);
syncDataSetResponse.setChangeBusTypes(changeBustypesEntities);
syncDataSetResponse.setToInBusTypes(syncDataToInBustypeEntities);
return syncDataSetResponse;
}

@ -1,10 +1,12 @@
package com.glxp.api.service.thrsys;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.entity.thrsys.ThrSystemDetailEntity;
import com.glxp.api.req.thrsys.FilterThrBusTypeOriginRequest;
import com.glxp.api.res.thrsys.ThrBusTypeOriginResponse;
import java.util.Date;
import java.util.List;
/**
@ -101,4 +103,7 @@ public interface IThrBusTypeOriginService {
*/
String findNameByAction(String originAction);
List<ThrBusTypeOriginEntity> findByLastTime(Date lastUpdateTime);
}

@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.thrsys.ThrBusTypeOriginDao;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.entity.thrsys.ThrSystemDetailEntity;
import com.glxp.api.req.thrsys.FilterThrBusTypeOriginRequest;
@ -86,7 +87,7 @@ public class ThrBusTypeOriginServiceImpl implements IThrBusTypeOriginService {
@Override
public ThrBusTypeOriginEntity findByAction(String action) {
QueryWrapper<ThrBusTypeOriginEntity> query = new QueryWrapper<>();
if(StrUtil.isNotEmpty(action)){
if (StrUtil.isNotEmpty(action)) {
query.like("action", action);
}
List<ThrBusTypeOriginEntity> list = thrBusTypeOriginDao.selectList(query);
@ -149,4 +150,8 @@ public class ThrBusTypeOriginServiceImpl implements IThrBusTypeOriginService {
thrBusTypeOriginEntity.setUpdateTime(now);
}
@Override
public List<ThrBusTypeOriginEntity> findByLastTime(Date lastUpdateTime) {
return thrBusTypeOriginDao.selectList(new QueryWrapper<ThrBusTypeOriginEntity>().gt("updateTime", lastUpdateTime));
}
}

@ -36,12 +36,12 @@ public class AsyncFetchUdiTask implements SchedulingConfigurer {
scheduledRequest.setCronName("syncFetch");
logger.info("syncFetch----------------");
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity!=null ? scheduledEntity.getCron() : "0 0/5 * * * ?";
String cron = scheduledEntity!=null ? scheduledEntity.getCron() : "0 0/3 * * * ?";
if (cron.isEmpty()) {
logger.error("cron is null");
}
logger.info("syncFetch----------------");
logger.info("syncFetch----------------"+cron);
return new CronTrigger(cron).nextExecutionTime(triggerContext);
});
}

@ -16,7 +16,6 @@ import com.glxp.api.idc.service.IdcService;
import com.glxp.api.req.system.ScheduledRequest;
@Component
@EnableScheduling
public class AsyncUdiTask implements SchedulingConfigurer {
@ -37,7 +36,7 @@ public class AsyncUdiTask implements SchedulingConfigurer {
scheduledRequest.setCronName("syncIdcUdi");
logger.info("syncIdcUdi----------------");
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity!=null ? scheduledEntity.getCron() : "0 0/3 * * * ?";
String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0/1 * * * ?";
if (cron.isEmpty()) {
logger.error("cron is null");
@ -48,9 +47,8 @@ public class AsyncUdiTask implements SchedulingConfigurer {
}
private void process() {
logger.info("syncIdcUdi----process------------");
idcService.asyncUdiTask();
}
logger.info("syncIdcUdi----process------------");
idcService.asyncUdiTask();
}
}

@ -57,6 +57,23 @@ public class SyncHeartTask implements SchedulingConfigurer {
SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet();
if (syncDataSetEntity.isDownstreamEnable()) {
//定时上传最近更新基础数据至上游轮询时间
long timeInterval1 = syncDataSetEntity.getSyncTime() * 60 * 1000L;
long curTime1 = System.currentTimeMillis();
Long lastTime1 = (Long) redisUtil.get("SPS_SYNC_UPLOAD_DATA");
if (lastTime1 == null) {
lastTime1 = System.currentTimeMillis();
redisUtil.set("SPS_SYNC_UPLOAD_DATA", lastTime1);
}
if (curTime1 - lastTime1 > timeInterval1) {
heartService.uploadAllBus(null);
heartService.uploadAllUserData(null);
// heartService.uploadScheduleList();
redisUtil.set("SPS_SYNC_UPLOAD_DATA", curTime1);
}
//定时上传最近更新单据数据至上游轮询时间
long timeInterval2 = syncDataSetEntity.getOrderSyncTime() * 60 * 1000L;
long curTime2 = System.currentTimeMillis();
@ -67,6 +84,7 @@ public class SyncHeartTask implements SchedulingConfigurer {
}
if (curTime2 - lastTime2 > timeInterval2) {
heartService.uploadAllOrder(null);
heartService.uploadAllBusOrder(null);
redisUtil.set("SPS_SYNC_UPLOAD_ORDER", curTime2);
}

@ -1,6 +1,19 @@
package com.glxp.api.util;
import java.io.*;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@ -750,7 +763,7 @@ public class FileUtils {
in.close();
bytes = out.toByteArray();
out.close();
} catch (Exception e1) {
e1.printStackTrace();
} finally {

@ -46,7 +46,7 @@ logging:
level:
com.glxp.api.dao: debug
file_path: D:/udi/udiwms/udiwmsfile/
file_path: D:/udi/inUdiwms/udiwmsfile/
UDI_KEY: 6b137c66-6286-46c6-8efa-c2f5dd9237df
UDI_SERVER_URL: https://www.udims.com/UDI_DL_Server_test
SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs

@ -3,7 +3,7 @@ server:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
hikari:

@ -3,7 +3,10 @@ spring:
active: dev
jmx:
enabled: false
servlet:
multipart:
max-file-size: 200MB
max-request-size: 200MB
mybatis-plus:
mapper-locations: classpath:mybatis/mapper/*/*.xml
configuration:
@ -24,3 +27,10 @@ pagehelper:
auto-dialect: true
auto-runtime-dialect: true
server:
tomcat:
max-http-form-post-size: 100MB
max-http-post-size: 100MB
max-http-header-size: 100MB

@ -3,17 +3,15 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.auth.DeptUserDao">
<select id="selectDeptUser" parameterType="com.glxp.api.req.auth.FilterDeptUserReqeust"
resultType="com.glxp.api.entity.auth.DeptUserEntity">>
resultType="com.glxp.api.entity.auth.DeptUserEntity">
SELECT *
FROM auth_dept_user
<where>
<if test="deptId != null ">
<if test="deptId != null">
and deptId = #{deptId}
</if>
<if test="userId != null ">
<if test="userId != null">
and userId = #{userId}
</if>
</where>
@ -22,11 +20,15 @@
<select id="selectJoinDeptUser" parameterType="com.glxp.api.req.auth.FilterDeptUserReqeust"
resultType="com.glxp.api.res.auth.DeptUserResponse">
SELECT auth_dept_user.*, auth_user.userName, auth_user.employeeName, auth_dept.`name` deptName, auth_user.comments
SELECT auth_dept_user.*,
auth_user.userName,
auth_user.employeeName,
auth_dept.`name` deptName,
auth_user.comments
FROM auth_dept_user
INNER JOIN auth_user
on auth_dept_user.userId = auth_user.id
INNER JOIN auth_dept on auth_dept_user.deptId = auth_dept.id
INNER JOIN auth_user
on auth_dept_user.userId = auth_user.id
INNER JOIN auth_dept on auth_dept_user.deptId = auth_dept.id
<where>
<if test="deptId != null">
and deptId = #{deptId}
@ -64,27 +66,21 @@
>
delete
from auth_dept_user
where deptId in
where deptId in
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<insert id="insertBatch" keyProperty="id" parameterType="java.util.List">
insert INTO auth_dept_user
(
deptId,userId
)
values
(deptId, userId)
values
<foreach collection="list" item="item" index="index"
separator=",">
(
#{item.deptId},
#{item.userId}
)
(#{item.deptId},
#{item.userId})
</foreach>
</insert>
</mapper>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save