|
|
|
|
@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
|
|
import org.dromara.common.core.enums.FormatsType;
|
|
|
|
|
import org.dromara.common.core.utils.DateUtils;
|
|
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
|
|
import org.dromara.wms.domain.WmsInStockBill;
|
|
|
|
|
import org.dromara.wms.domain.WmsInStockDetails;
|
|
|
|
|
import org.dromara.wms.domain.bo.WmsInStockBillBo;
|
|
|
|
|
@ -17,10 +19,14 @@ import org.dromara.wms.domain.vo.WmsInStockBillVo;
|
|
|
|
|
import org.dromara.wms.mapper.WmsInStockBillMapper;
|
|
|
|
|
import org.dromara.wms.mapper.WmsInStockDetailsMapper;
|
|
|
|
|
import org.dromara.wms.service.IWmsInStockBillService;
|
|
|
|
|
import org.dromara.workflow.api.RemoteWorkflowService;
|
|
|
|
|
import org.dromara.workflow.api.domain.RemoteStartProcess;
|
|
|
|
|
import org.dromara.workflow.api.event.ProcessEvent;
|
|
|
|
|
import org.springframework.context.event.EventListener;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@ -36,6 +42,8 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
|
|
|
|
|
|
|
|
|
|
private final WmsInStockBillMapper baseMapper;
|
|
|
|
|
private final WmsInStockDetailsMapper wmsInStockDetailsMapper;
|
|
|
|
|
@DubboReference(timeout = 30000)//超时时间
|
|
|
|
|
private RemoteWorkflowService remoteWorkflowService;//流程
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询物料入库
|
|
|
|
|
@ -108,9 +116,6 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
|
|
|
|
|
} else {
|
|
|
|
|
add.setInStockCode("RK" + dateTimeNow + "-" + "001");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add.setFlowStatus("就绪");
|
|
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
|
|
if (flag) {
|
|
|
|
|
Long inStockBillId = add.getInStockBillId();
|
|
|
|
|
@ -118,8 +123,6 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
|
|
|
|
|
// 设置入库单明细的入库单ID
|
|
|
|
|
inStockDetailsList.forEach(item -> item.setInStockBillId(inStockBillId));
|
|
|
|
|
wmsInStockDetailsMapper.insert(inStockDetailsList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
@ -133,16 +136,14 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateByBo(WmsInStockBillBo bo) {
|
|
|
|
|
WmsInStockBill update = MapstructUtils.convert(bo, WmsInStockBill.class);
|
|
|
|
|
// validEntityBeforeSave(update);
|
|
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
|
|
}
|
|
|
|
|
boolean flag = baseMapper.updateById(update) > 0;
|
|
|
|
|
if (flag) {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 保存前的数据校验
|
|
|
|
|
*/
|
|
|
|
|
/* private void validEntityBeforeSave(WmsInStockBill entity){
|
|
|
|
|
//TODO 做一些数据校验,如唯一约束
|
|
|
|
|
}*/
|
|
|
|
|
List<WmsInStockDetails> inStockDetailsList = bo.getInStockDetailsList();
|
|
|
|
|
wmsInStockDetailsMapper.updateBatchById(inStockDetailsList);
|
|
|
|
|
}
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 校验并批量删除物料入库信息
|
|
|
|
|
@ -158,4 +159,43 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
|
|
|
|
|
}*/
|
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean submitFlowData(WmsInStockBillBo bo) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RemoteStartProcess startProcess = new RemoteStartProcess();
|
|
|
|
|
startProcess.setBusinessId(bo.getInStockBillId().toString());
|
|
|
|
|
startProcess.setFlowCode("wms_in");
|
|
|
|
|
// startProcess.setStartUserId(loginUser.getUserId().toString());
|
|
|
|
|
|
|
|
|
|
// 设置流程变量
|
|
|
|
|
Map<String, Object> variables = new HashMap<>();
|
|
|
|
|
variables.put("inStockBillId", bo.getInStockBillId());
|
|
|
|
|
variables.put("inStockCode", bo.getInStockCode());
|
|
|
|
|
variables.put("inStockType", bo.getInStockType());
|
|
|
|
|
// 可以根据需要添加更多业务变量
|
|
|
|
|
startProcess.setVariables(variables);
|
|
|
|
|
startProcess.setBizExt(bo.getBizExt());
|
|
|
|
|
// 使用正确的方法发起流程
|
|
|
|
|
boolean flag = remoteWorkflowService.startCompleteTask(startProcess);
|
|
|
|
|
|
|
|
|
|
if (flag) {
|
|
|
|
|
// 更新业务数据的流程状态
|
|
|
|
|
WmsInStockBill update = new WmsInStockBill();
|
|
|
|
|
update.setInStockBillId(bo.getInStockBillId());
|
|
|
|
|
update.setFlowStatus("waiting"); // 流程进行中状态
|
|
|
|
|
baseMapper.updateById(update);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@EventListener(condition = "#processEvent.flowCode =='wms_in'")
|
|
|
|
|
public void processHandler(ProcessEvent processEvent) {
|
|
|
|
|
TenantHelper.dynamic(processEvent.getTenantId(), () -> {
|
|
|
|
|
System.out.println("当前任务执行了: " + processEvent.toString());
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|